독립형 QEMU 세션을 libvirt 사용자 세션에 연결하는 방법은 무엇입니까?

독립형 QEMU 세션을 libvirt 사용자 세션에 연결하는 방법은 무엇입니까?

qemu가 사용자 공간에서 컴퓨터를 실행하도록 하고 싶지만 개발 중에는 virtsh. (참고로 이는 virtsh가 필요하기 때문이 아니지만 QEMU 개발자는 virtsh와 작동하는 API만 노출합니다. "대화형 qemu 모니터 세션이 아닌 명령줄을 통해 실행 중인 QEMU에서 스냅샷을 조작하는 방법은 무엇입니까?"라고 질문할 수도 있을 것 같습니다. virtsh 질문은 qemu 문서에서 권장하는 내용을 따릅니다)

매뉴얼에는 qemu를 libvirt 인스턴스에 연결하는 방법이 명확하지 않으며 qemu:///session, qemu+unix:///sessionlibvirt가 모든 후크를 시작하도록 허용할 것이라고 가정하므로 아무 것도 설명하지 않습니다.

그리고 내가 무엇을생각하다솔루션이며 qemu:///embedlibvirt가 아닌 개발자에게는 세부 정보가 매우 부족하고 비밀스럽습니다.https://libvirt.org/drvqemu.html#embedded-driver

$ ps aux | grep qemu
gcb    ...    qemu-system-x86_64 -machine pc...

$ virsh -c qemu+unix:///session list --all
 Id   Name   State
--------------------

$ virsh -c qemu:///session list --all
 Id   Name   State
--------------------

$ id
uid=1000(gcb) ...

libvirt가 사용자 세션 qemu를 정확히 어떻게 찾나요? 그리고 위와 같이 virtsh 명령을 사용하여 동일한 사용자가 실행 중인 qemu와 인터페이스하려면 어떻게 해야 합니까?

답변1

내가 틀렸으면 좋겠지만 해당 문서를 읽은 후에는 다음과 같습니다.

답변, 그것은 불가능합니다.

libvirt는 redhat+gnome 프로젝트입니다. 따라서 이는 설계상 좋지 않습니다(systemd와 마찬가지로 위에서 아래로 밀려났습니다). 매뉴얼은 모퉁이를 잘랐다고 설명하는 대신 통제할 수 없는 어떤 행동이 버그를 일으킬까 봐 두려워하고 달리기의 PID를 얻는 것과 같은 기본적인 일과 관련이 없다고 사용자를 질책하는 거만한 구절로 가득 차 있습니다. VM. 매뉴얼의 더 깊은 부분은 gnome.org의 개인 블로그를 가리키는 전체 404 링크입니다.

새 VM에 대한 구성 xml을 작성하는 방법에 대한 문서는 거의 없습니다. GUI 프로그램이나 심지어 문서화된 해키 스크립트인 virsh-install에 의존해야 합니다. 둘 다 libvirtd 및 기타 서비스 실행 전용 시스템이 전체 설치되어 있다고 가정하고 해당 서비스를 실행하지 않는 한 어떤 작업도 수행하지 않습니다(xml 템플릿을 뱉어내는 경우도 있음). 어떤 시점에서는 qemu args에서 XML로의 편리한 번역기가 있었지만 오래 전에 사라졌습니다(이미 다른 프로젝트의 기여자를 유인하는 목적으로 사용되었습니다).

고용주가 사용하지 않는 한 libvirt를 피하십시오. 지금은 qemu 프론트엔드를 유지하세요.

편집: 해결 방법이 있을 수 있지만 아직 테스트되지 않았습니다.

virt-install --import --connect qemu://session --qemu-commandline '-m ...' 시스템 전체 libvirtd 없이 qemu 머신을 시작합니다.

편집 2: 아니요 이것은 궁극적으로 하이퍼바이저와 상호 작용합니다. 또한 2024년부터 qemu-commandline문서에서 param에 대한 문서를 제거했습니다.

관련 정보