サーバーを仮想化するためにlibvirtとkvmを使用しています。 libvirtを構成して、bridge-network-interfaceでdhcp-serverを起動し、VMにそれらのIPを提供しました。すべての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」のいずれかです。
セクションは、「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>
要素のいずれかにある可能性があります。 parent-indexが指定されていない場合、「最も適切な」<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
これは、デフォルトネットワーク以外のネットワークでも機能します。例のWordのデフォルトをネットワークの名前に置き換えるだけです。
@pefuのソリューションはCentOS 6.4でもそれを行いました!
virsh
でnet-edit
を使用しても、/var/lib/libvirt/network/default.xml
のXMLファイルは更新されず、実行中のネットワーク構成の状態も変更されませんでした。
net-edit
を再実行すると、再起動後も編集されたバージョンが表示されましたが、ロードされませんでした!
それを実際のXMLファイルにエクスポートし、編集して再ロードすることができます!
Libvirtはdhcpサーバーにdnsmaqを使用していると思います。多分あなたはちょうどdnsmasqを再起動することができ、すべてがうまくいくでしょうか?