libvirt: Yeniden başlatmadan dhcp-setup'ı değiştirme


11

Sunucumu sanallaştırmak için libvirt ve kvm kullanıyorum. Libvirt'i vm'lere ips'lerini vermek için köprü ağı arayüzünde bir dhcp sunucusu başlatacak şekilde yapılandırdım. Her VM'ler mac'una göre her zaman aynı ipi alır, bu şu şekilde yapılandırılır:

<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>

Sorun: DHCP bölümüne yeni bir ana bilgisayar eklediğimde, tüm vm'leri yeniden başlatan libvirt-bin'i yeniden başlatmam gerekiyor . Bu çözüm olamaz çünkü her yeni Sunucu eklediğimde kesinti anlamına gelir. Bir çözüm var mı?


İyi bir soru sadece etki alanları ile olduğu gibi xml dosyasını düzenledikten sonra virsh kullanarak ağda değişiklikler sonra ağ yeniden yaratma meselesi olduğunu düşündüm. Ancak durum böyle değil. Virsh net-dumpxml, libvirt'in orijinal dosyanın önbelleğe alınmış olduğunu açıkça göstermektedir.
3dinfluence

Yanıtlar:


7

Virsh içinde eklenen net-update komutu, sanal ağı yeniden başlatmadan bir dhcp-host güncellemesine izin vermelidir (henüz test etmedim).

adam virsh:

net güncelleme ağ komutu bölümü xml [--parent-index index] [[--live] [--config] | [--Current]]

Mevcut bir ağ tanımının verilen bölümünü, değişiklikleri yok etmek ve ağı yeniden başlatmak zorunda kalmadan, isteğe bağlı olarak hemen yürürlüğe girmek üzere güncelleyin.

komutu, "önce ekle", "son ekle", "ekle" (son ekleme ile eşanlamlı), "sil" veya "değiştir" ifadelerinden biridir.

bölümü "köprü", "etki alanı", "ip", "ip-dhcp-host", "ip-dhcp-range", "ileri", "ileri arayüz", "ileri-pf", "portgroup "," dns-host "," dns-txt "veya" dns-srv "; her bölüm, değiştirilen öğeye yönlendiren xml öğesi hiyerarşisinin bir birleşmesiyle adlandırılır. Örneğin, "ip-dhcp-host" ağ öğesinin <host>içindeki bir <dhcp>öğenin içinde yer alan bir öğeyi değiştirir <ip>.

xml, değiştirilen türde tam bir xml öğesinin metnidir (örneğin, "<host mac =" 00: 11: 22: 33: 44: 55 'ip =' 1.2.3.4 '/> "veya tam bir xml öğesi içeren bir dosyadır. Belirsizlik, sağlanan metnin ilk karakterine bakarak yapılır - ilk karakter "<" ise, ilk karakter "<" değilse, xml metnidir. kullanılacak xml metnini içeren dosyanın adı.

--Parent-index seçeneği, istenen öğenin (0 tabanlı) birkaç üst öğeden hangisini içerdiğini belirtmek için kullanılır. Örneğin, bir dhcp <host>öğesi <ip>ağdaki birden çok öğeden herhangi birinde olabilir ; bir üst dizin sağlanmazsa, "en uygun" <ip>öğe seçilir (genellikle zaten bir <dhcp>öğeye sahip olan tek öğe), ancak --parent-index belirtilirse, söz konusu belirli bir <ip>değişiklik değişikliği alır.

--Live belirtilirse, çalışan bir ağı etkiler. --Config belirtilirse, kalıcı bir ağın bir sonraki başlatılmasını etkiler. --Current belirtilirse, geçerli ağ durumunu etkiler. Hem --live hem de --config bayrakları verilebilir, ancak --current özeldir. Hiçbir bayrak belirtmemek --current değerini belirtmekle aynıdır.


5

Aşağıdaki yordam libvirt sürümüyle benim için çalıştı: 0.7.5-5ubuntu27 bir Ubuntu 10.04.4 LTS ana bilgisayarında:

  virsh net-dumpxml default > default.xml

  $EDITOR default.xml

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

Bu, varsayılan ağın yanındaki diğer ağlar için de geçerlidir. Örnekteki varsayılan kelimesini ağın adıyla değiştirmeniz yeterlidir.


Sadece denedim. Yeni ağ yapılandırması gerçekten etkili olsa da, tüm VM'ler ağ bağlantısını kaybetti ve yeniden başlatılması gerekiyordu.
user1202136

@ user1202136: Ne tür bir ağ yapılandırması değişikliği yaptınız? Ve ne tür VM'ler kullanıyordunuz?
pefu

Xen para sanallaştırmalı VM'ler kullandım. Ağ yapılandırma değişikliği ile ilgili olarak, yeni bir statik DHCP girişi ekledim.
user1202136

Dnsmaq'ı manuel olarak yeniden başlatmak dışında, ağ hizmetini yeniden başlatmayı tercih edersiniz.
Breno Leitão

@Breno Leitão: Tam olarak nasıl? Peki yorumunuz hangi Linux Dağıtım aromaları için geçerlidir?
pefu

2

@ pefu'nun çözümü CentOS 6.4 için de yaptı!

Kullanılması net-edithalinde virshde XML dosyasını güncelleme vermedi /var/lib/libvirt/network/default.xmlne de çalışan ağ yapılandırma durumunu değiştirdi.

Yeniden çalıştırma net-edit, yeniden başlatmanın ardından bile düzenlenmiş sürümü gösterdi, ancak henüz yüklenmedi!

Gerçek XML dosyasına vermek, düzenlemek ve yeniden yüklemek işe yarıyor!


1

Bence libvirt dhcp sunucusu için dnsmaq kullanıyor. Belki sadece dnsmasq'ı yeniden başlatabilirsin ve her şey yolunda olurdu?


1

Posta listesindeki bir tartışmadan sonra öğrendim: bu şu anda mümkün değil!


Bunun tavsiye edilip edilmediğini bilmiyorum, ama genellikle sadece dnsmasq işlemini öldürürüm ve tekrar çalıştığı argümanları kullanarak başlatırım.
bkzland

Cevap, Linux Dağıtımını ve uygulanacağı sürümü belirtmelidir. Aşağıda gösterdiğim gibi, Ubuntu 10.04 LTS ve daha yenisinde mümkündür.
pefu
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.