libvirt : 다시 시작하지 않고 dhcp-setup 변경 구성했습니다. 모든

libvirt와 kvm을 사용하여 서버를 가상화하고 있습니다. 브리지 네트워크 인터페이스에서 dhcp-server를 시작하여 VM의 IP를 제공하도록 libvirt를 구성했습니다. 모든 VM은 Mac을 기반으로 항상 동일한 IP를 얻습니다. 이것은 다음과 같이 구성됩니다.

<dhcp>
 <range start='10.1.1.2' end='10.1.1.254' />
 <host mac='54:52:00:21:01:ba' name='virstvm' ip='10.1.1.10' />
 <host mac='00:16:36:2d:71:f9' name='secvm' ip='10.1.1.20' />
</dhcp>

문제 : dhcp 섹션에 새 호스트를 추가 할 때마다 모든 vm을 다시 시작하는 libvirt-bin을 다시 시작해야 합니다. 새 서버를 추가 할 때마다 가동 중지 시간이 발생하기 때문에 해결책이 될 수 없습니다. 해결책이 있습니까?



답변

virsh에 추가 된 net-update 명령은 가상 네트워크를 다시 시작하지 않고 dhcp-host 업데이트를 허용해야합니다 (아직 테스트하지는 않았습니다).

남자 virsh :

net-update 네트워크 명령 섹션 xml [–parent-index index] [[–live] [–config] | [–흐름]]

기존 네트워크 정의의 지정된 섹션을 업데이트하십시오. 변경 사항은 네트워크를 파괴하고 다시 시작할 필요없이 선택적으로 즉시 적용됩니다.

command는 “add-first”, “add-last”, “add”(add-last와 동의어), “delete”또는 “modify”중 하나입니다.

section은 “bridge”, “domain”, “ip”, “ip-dhcp-host”, “ip-dhcp-range”, “forward”, “forward-interface”, “forward-pf”, “portgroup 중 하나입니다. “,”dns-host “,”dns-txt “또는”dns-srv “. 각 섹션의 이름은 xml 요소 계층 구조를 연결하여 요소를 변경합니다. 예를 들어, “ip-dhcp-host”는 네트워크 요소 <host>내부의 <dhcp>요소 내부에 포함 된 요소를 변경 <ip>합니다.

xml은 변경되는 유형의 완전한 xml 요소 텍스트입니다 (예 : “<host mac =”00 : 11 : 22 : 33 : 44 : 55 ‘ip =’1.2.3.4 ‘/> “또는 완전한 xml 요소를 포함하는 파일 명확성 제공은 제공된 텍스트의 첫 번째 문자를보고 수행됩니다. 첫 번째 문자가 “<“이면 첫 번째 문자가 “<“이 아닌 경우 xml 텍스트입니다. 사용할 xml 텍스트가 포함 된 파일 이름입니다.

–parent-index 옵션은 요청 된 요소가 어떤 상위 요소 (0 기반)인지를 지정하는 데 사용됩니다. 예를 들어, dhcp <host>요소 <ip>는 네트워크 의 여러 요소 중 하나에있을 수 있습니다 . 부모 인덱스가 제공되지 않으면 “가장 적합한” <ip>요소가 선택되지만 (보통 이미 <dhcp>요소 가있는 유일한 요소) –parent-index가 제공되면 해당 특정 인스턴스가 <ip>수정됩니다.

–live를 지정하면 실행중인 네트워크에 영향을줍니다. –config를 지정하면 다음 영구 네트워크 시작에 영향을줍니다. –current를 지정하면 현재 네트워크 상태에 영향을줍니다. –live 및 –config 플래그가 모두 제공 될 수 있지만 –current는 배타적입니다. 플래그를 지정하지 않는 것은 –current를 지정하는 것과 같습니다.


답변

다음 절차는 Ubuntu 10.04.4 LTS 호스트에서 libvirt 버전 0.7.5-5ubuntu27에서 작동했습니다.

  virsh net-dumpxml default > default.xml

  $EDITOR default.xml

  virsh net-destroy default
  virsh net-define default.xml
  virsh net-start default

기본 네트워크 이외의 다른 네트워크에서도 작동합니다. 예제에서 default라는 단어를 네트워크 이름으로 바꾸십시오.


답변

@pefu의 솔루션은 CentOS 6.4에도 적용되었습니다!

net-editin을 사용 virsh하여 XML 파일을 업데이트하지 않았 /var/lib/libvirt/network/default.xml거나 실행중인 네트워크 구성의 상태도 변경하지 않았습니다.

다시 실행 net-edit하면 재부팅 후에도 편집 된 버전이 표시되었지만로드되지 않았습니다!

실제 XML 파일로 내보내고 편집하고 다시로드하면 작동합니다!


답변

libvirt는 dhcp 서버에 dnsmaq를 사용한다고 생각합니다. 어쩌면 dnsmasq를 다시 시작할 수 있고 모든 것이 좋을까요?


답변

메일 링리스트에 대한 토론 후 나는 이것을 발견했다 : 이것은 현재 전혀 불가능하다!