Dhcp

libvirt:在不重新啟動的情況下更改 dhcp-setup

  • May 23, 2015

我正在使用 libvirt 和 kvm 來虛擬化我的伺服器。我將 libvirt 配置為在 bridge-network-interface 上啟動 dhcp-server 以提供 vm 的 ips。每個 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 部分添加新主機時,我都必須重新啟動 libvirt-bin,它會重新啟動我所有的 vm。這不能成為解決方案,因為這意味著每次我添加新伺服器時都會停機。有解決辦法嗎?

virsh 中添加的net-update命令應該允許 dhcp-host 更新而無需重新啟動虛擬網路(我還沒有測試過)。

男人 virsh:

net-update 網路命令部分 xml

$$ –parent-index index $$ $$ [–live $$ $$ –config $$|$$ –current $$] 更新現有網路定義的給定部分,更改可以選擇立即生效,而無需銷毀並重新啟動網路。

command 是“add-first”、“add-last”、“add”(add-last 的同義詞)、“delete”或“modify”之一。

部分是“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&lt;host&gt;元素可以在&lt;ip&gt;網路中的多個元素中的任何一個中;如果沒有提供 parent-index,則將&lt;ip&gt;選擇“最合適”的元素(通常是唯一已經有元素的&lt;dhcp&gt;元素),但如果給出了 –parent-index,則該特定實例&lt;ip&gt;將獲得修改。

如果指定了 –live,則影響正在執行的網路。如果指定了 –config ,則影響持久網路的下一次啟動。如果指定了 –current,則影響目前網路狀態。可以同時給出 –live 和 –config 標誌,但 –current 是獨占的。不指定任何標誌與指定 –current 相同。

以下過程適用於我的 libvirt 版本:Ubuntu 10.04.4 LTS 主機上的 0.7.5-5ubuntu27:

 virsh net-dumpxml default &gt; default.xml

 $EDITOR default.xml

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

這也適用於預設網路之外的其他網路。只需將範例中的單詞 default 替換為網路名稱即可。

引用自:https://serverfault.com/questions/101292