libvirt에 대한 "원래" VM 정의는 어디에 저장되며 여러 노드에서 이를 어떻게 동기화할 수 있나요?

libvirt에 대한 "원래" VM 정의는 어디에 저장되며 여러 노드에서 이를 어떻게 동기화할 수 있나요?

libvirt 제어 하에 Xen에서 Xen으로 마이그레이션할 때 다음 사항을 xm알고 싶습니다.xl

libvirt는 "원시" 가상 머신 구성을 어디에 저장합니까?

내 PVM 구성이 에 저장되어 있음을 발견했지만 /etc/libvirt/libxl/해당 파일을 볼 때 파일이 자동으로 생성되었으며 내 파일을 편집하면 안 된다는 설명이 표시됩니다("virsh를 사용하여 편집..."). 또한 /var/lib/xen가상 머신의 도메인 ID와 UUID의 이름을 딴 XML 및 JSON 파일도 발견했습니다 .

HA 클러스터를 구성할 때 모든 클러스터 노드에서 가상 머신 구성을 동기화하고 싶습니다(실시간 마이그레이션 허용). 과거에는 동기화 /etc/xen/vm만으로 충분했지만 libvirt를 사용하면 훨씬 더 복잡한 것 같습니다. 때로는 virsh defineXML 파일에서 VM을 가져와야 하는데, 이로 인해 실행 중인 VM 뿐만 virsh destroy아니라 보이는 구성도 파괴됩니다. virsh undefine삭제된 XML 파일이 /etc/libvirt/libxl/있는 것 같습니다. 클러스터 노드 전체에서 구성을 동기화하는 방법을 모르겠습니다.

/etc/libvirt/libxl/내가 보는 주요 문제는 VM 구성을 다른 클러스터 노드에 정의하는 XML 파일을 csync2-ing한 후 "편집하지 말고 대신 사용하십시오" 라는 파일의 변경 사항을 볼 수 있다는 것입니다 virsh edit.

그러나 이러한 파일 중 하나로 작업할 때 virsh edit편집기에 표시되는 내용은 /etc/libvirt/libxl/.

아마도 질문을 다음과 같이 바꿔볼 수 있을 것입니다. XML 파일을 업데이트하는 경우 /etc/libvirt/libxl/(예: 를 통해 csync2) libvirt가 업데이트된 구성을 사용하는지 어떻게 확인할 수 있나요?

고쳐 쓰다

xl block-attach이 문제는 편집된 구성에 해당하는 페이징용 블록 장치를 추가한 후에 더욱 중요해졌습니다. VM이 클러스터의 다른 노드로 라이브 마이그레이션될 때 추가된 디스크가 VM으로 전송되지 않아 디스크에 액세스하려고 시도하는 동안 VM이 정지되었습니다. 현재 머신의 구성은 라이브 마이그레이션에 사용되지 않았으며, XML 파일에 저장된 구성도 사용되지 않은 것으로 보입니다.

답변1

저는 "더 이상 상관하지 않습니다"라는 접근 방식으로 이 문제를 해결했습니다.

NET에서 사용할 수 있는 구성의 추가 복사본을 만듭니다 /etc/xen/vm/. 클러스터 RA가 지정된 구성 파일을 기반으로 VM을 새로 생성할 때 해당 복사본만 지정하면 더 이상 실제 VM 구성이 저장되는 위치 VirtualDomain에 신경 쓸 필요가 없습니다. libvirt.

관련 정보