ホームページ  >  記事  >  バックエンド開発  >  KVM 仮想マシンの構成 XML コードの詳細な説明

KVM 仮想マシンの構成 XML コードの詳細な説明

Y2J
Y2Jオリジナル
2017-04-24 09:17:343281ブラウズ

RHEL6 では、ディスクからのブートに XML ファイルが使用されました

例として dcs01.xml を示します:

 <domain type=&#39;kvm&#39;>
<name>dcs01</name>
<uuid>e5fff551-bbe1-e748-c8e4-8ecb3bffb902</uuid>
<memory>1048576</memory>
<currentMemory>1048576</currentMemory>
<vcpu>1</vcpu>
<os>
<type arch=&#39;x86_64&#39; machine=&#39;rhel6.0.0&#39;>hvm</type>
<boot dev=&#39;hd&#39;/>
</os>
<features>
<acpi/>
<apic/>
<pae/>
</features>
<clock offset=&#39;localtime&#39;/>
<on_poweroff>destroy</on_poweroff>
<on_reboot>restart</on_reboot>
<on_crash>restart</on_crash>
<devices>
<emulator>/usr/libexec/qemu-kvm</emulator>
<disk type=&#39;file&#39; device=&#39;disk&#39;>
<driver name=&#39;qemu&#39; type=&#39;raw&#39; cache=&#39;none&#39;/>
<source file=&#39;/home/kvm/images/dcs01.img&#39;/>
<target dev=&#39;hda&#39; bus=&#39;ide&#39;/>
<address type=&#39;drive&#39; controller=&#39;0&#39; bus=&#39;0&#39; unit=&#39;0&#39;/>
</disk>
<disk type=&#39;file&#39; device=&#39;cdrom&#39;>
<driver name=&#39;qemu&#39; type=&#39;raw&#39;/>
<target dev=&#39;hdc&#39; bus=&#39;ide&#39;/>
<readonly/>
<address type=&#39;drive&#39; controller=&#39;0&#39; bus=&#39;1&#39; unit=&#39;0&#39;/>
</disk>
<controller type=&#39;ide&#39; index=&#39;0&#39;>
<address type=&#39;pci&#39; domain=&#39;0x0000&#39; bus=&#39;0x00&#39; slot=&#39;0x01&#39; function=&#39;0x1&#39;/>
</controller>
<interface type=&#39;bridge&#39;>
<mac address=&#39;52:54:00:ad:75:98&#39;/>
<source bridge=&#39;br0&#39;/>
<address type=&#39;pci&#39; domain=&#39;0x0000&#39; bus=&#39;0x00&#39; slot=&#39;0x03&#39; function=&#39;0x0&#39;/>
</interface>
<input type=&#39;tablet&#39; bus=&#39;usb&#39;/>
<input type=&#39;mouse&#39; bus=&#39;ps2&#39;/>
<graphics type=&#39;vnc&#39; port=&#39;-1&#39; autoport=&#39;yes&#39;/>
<video>
<model type=&#39;vga&#39; vram=&#39;9216&#39; heads=&#39;1&#39;/>
<address type=&#39;pci&#39; domain=&#39;0x0000&#39; bus=&#39;0x00&#39; slot=&#39;0x02&#39; function=&#39;0x0&#39;/>
</video>
<memballoon model=&#39;virtio&#39;>
<address type=&#39;pci&#39; domain=&#39;0x0000&#39; bus=&#39;0x00&#39; slot=&#39;0x05&#39; function=&#39;0x0&#39;/>
</memballoon>
</devices>
</domain>

注意事項は次のとおりです:

1. kvm ゲスト定義の開始

<domain type=&#39;kvm&#39;>

2.ゲストの略称。文字と数字で構成され、スペースを含めることはできません

<name>dcs01</name>

3. uuid、コマンドラインツールuuidgenによって生成されます。

<uuid>e5fff551-bbe1-e748-c8e4-8ecb3bffb902</uuid>

4. ゲストを再起動せずにゲストが使用できる最大メモリ (KB 単位)

<memory>1048576</memory>

5. ゲスト起動時のメモリ。virsh setmem を通じてメモリを調整できますが、それより大きくすることはできません使用可能な最大メモリ メモリ。

<currentMemory>1048576</currentMemory>

6. 割り当てられた仮想CPU

<vcpu>1</vcpu>

7. OSについて
アーキテクチャ: i686、x86_64
マシン: ホストオペレーティングシステム
boot: ブートデバイスを指定します。複数の行を繰り返したり、異なる値を指定したりできます。リストとしてブートデバイスの。

<os>
<type arch=&#39;x86_64&#39; machine=&#39;rhel6.0.0&#39;>hvm</type>
<boot dev=&#39;hd&#39;/>
</os>

8. プロセッサーの機能

<features>
<acpi/>
<apic/>
<pae/>
</features>

9. クロック。現地時間を使用: localtime

<clock offset=&#39;localtime&#39;/>

10. kvm 環境での電源オフ、再起動、またはクラッシュ時のデフォルトのアクションは、それぞれ破棄と再起動として定義されています。その他に許可されるアクションには、preserve、rename-restart などがあります。
destroy: 仮想マシンを停止します。電源を切るのと同じです。
restart は仮想マシンを再起動します。

<on_poweroff>destroy</on_poweroff>
<on_reboot>restart</on_reboot>
<on_crash>restart</on_crash>

11.デバイス定義開始

<devices>

12.シミュレーション要素、ここでの記述はkvmゲスト用に使用します

<emulator>/usr/libexec/qemu-kvm</emulator>

13.kvmストレージに使用するファイル。この例では、ゲスト内の IDE デバイスとして表示されます。
このファイルを作成するには、qemu-img コマンドを使用します。kvm イメージのデフォルトのディレクトリは、/var/lib/libvirt/images/

<disk type=&#39;file&#39; device=&#39;disk&#39;>
<driver name=&#39;qemu&#39; type=&#39;raw&#39; cache=&#39;none&#39;/>
<source file=&#39;/home/kvm/images/dcs01.img&#39;/>
<target dev=&#39;hda&#39; bus=&#39;ide&#39;/>
<address type=&#39;drive&#39; controller=&#39;0&#39; bus=&#39;0&#39; unit=&#39;0&#39;/>
</disk>

追加: 複数のディスクを定義できます。
virtio を使用します:
通常のドライバーを使用します。つまり、ハードディスクとネットワーク カードの両方がデフォルト構成を採用している場合、ネットワーク カードはシミュレートされた rtl 8139 ネットワーク カードで動作し、速度は 100M 全二重です。 virtio ドライバーを使用すると、ネットワーク カードは 1000M モードで動作します。

通常のドライバーを使用する場合、つまり、ハードディスクとネットワークカードの両方がデフォルト構成を採用している場合、ハードディスクは IDE モードになります。 virtio ドライバーを使用すると、ハードディスクは SCSI モードで動作します。

<disk type=&#39;file&#39; device=&#39;disk&#39;>
<driver name=&#39;qemu&#39; type=&#39;raw&#39;/>
<source file=&#39;/usr/local/kvm/vmsample/disk.os&#39;/>
<target dev=&#39;vda&#39; bus=&#39;virtio&#39;/>
</disk>

CD-ROMデバイス:

<disk type=&#39;file&#39; device=&#39;cdrom&#39;>
<driver name=&#39;qemu&#39; type=&#39;raw&#39;/>
<target dev=&#39;hdc&#39; bus=&#39;ide&#39;/>
<readonly/>
<address type=&#39;drive&#39; controller=&#39;0&#39; bus=&#39;1&#39; unit=&#39;0&#39;/>
</disk>

14. ブリッジタイプを使用します。各 KVM ゲストの MAC アドレスが一意であることを確認してください。 tun デバイスは vnetx (x は 0,1,2...) という名前で作成されます

<interface type=&#39;bridge&#39;>
<mac address=&#39;52:54:00:ad:75:98&#39;/>
<source bridge=&#39;br0&#39;/>
<address type=&#39;pci&#39; domain=&#39;0x0000&#39; bus=&#39;0x00&#39; slot=&#39;0x03&#39; function=&#39;0x0&#39;/>
</interface>

補足:
ブリッジの代わりにデフォルトの仮想ネットワークを使用します。つまり、ゲストは NAT モードになります。 MAC アドレス要素を省略して、MAC アドレスが自動的に生成されるようにすることもできます。

<interface type=&#39;network&#39;>
<source network=&#39;default&#39;/>
<mac address="3B:6E:01:69:3A:11"/>
</interface>

アドレス 192.168.122.x/24 はデフォルトで割り当てられていますが、手動で指定することもできます。ゲートウェイは 192.168.122.1 です

virtio の使用:
通常のドライバーを使用する場合、つまり、ハードディスクとネットワーク カードがデフォルト構成を採用している場合、ネットワーク カードはシミュレートされた rtl 8139 ネットワーク カードで動作し、速度は 100M です。全二重。 virtio ドライバーを使用すると、ネットワーク カードは 1000M モードで動作します。

<interface type=&#39;bridge&#39;>
<source bridge=&#39;br1&#39;/>
<model type=&#39;virtio&#39; />
</interface>

15. 入力デバイス

<input type=&#39;tablet&#39; bus=&#39;usb&#39;/>
<input type=&#39;mouse&#39; bus=&#39;ps2&#39;/>

16. gusetと対話するグラフィックデバイスを定義します。この例では、vnc プロトコルが使用されます。 listen のアドレスはホストのアドレスです。 prot は -1 で、ポート番号が自動的に割り当てられることを意味します。次のコマンドを使用してポート番号を見つけます:
virsh vncdisplay 33e1e9ce7395ccd8e6281087cf15dba5

ここでは設定されていません

<graphics type=&#39;vnc&#39; port=&#39;-1&#39; autoport=&#39;yes&#39;/>

17. デバイス定義の終了

</devices>

18. KVM定義終了

</domain>

centos_x86_6.4
b9dcdd92-9b9b-14d6-3938-1982a9746a12
2097152
2097152
1
hvm
deセントロイ
再起動
再起動
/bin/qemu-kvm

  <disk type=&#39;file&#39; device=&#39;disk&#39;>
      <driver name=&#39;qemu&#39; type=&#39;qcow2&#39;/>

#この例では宛先ミラー パスがあり、ゲスト内の IDE デバイスとして表示されます。​

<source file=&#39;/home/template_make/centos_x86_6.4.img&#39;>
        <seclabel model=&#39;selinux&#39; relabel=&#39;no&#39;/>
      </source>
      <target dev=&#39;hda&#39; bus=&#39;ide&#39;/>
      <alias name=&#39;ide0-0-0&#39;/>
      <address type=&#39;drive&#39; controller=&#39;0&#39; bus=&#39;0&#39; target=&#39;0&#39; unit=&#39;0&#39;/>
    </disk>
    <disk type=&#39;file&#39; device=&#39;cdrom&#39;>
      <driver name=&#39;qemu&#39; type=&#39;raw&#39;/>
      <source file=&#39;/home/template_make/CentOS-6.4-x86_64-bin-DVD1.iso&#39;/>
      <target dev=&#39;hdc&#39; bus=&#39;ide&#39;/>
      <readonly/>
      <alias name=&#39;ide0-1-0&#39;/>
      <address type=&#39;drive&#39; controller=&#39;0&#39; bus=&#39;1&#39; target=&#39;0&#39; unit=&#39;0&#39;/>
    </disk>
    <controller type=&#39;usb&#39; index=&#39;0&#39;>
      <alias name=&#39;usb0&#39;/>
      <address type=&#39;pci&#39; domain=&#39;0x0000&#39; bus=&#39;0x00&#39; slot=&#39;0x01&#39; function=&#39;0x2&#39;/>
    </controller>
    <controller type=&#39;ide&#39; index=&#39;0&#39;>
      <alias name=&#39;ide0&#39;/>
      <address type=&#39;pci&#39; domain=&#39;0x0000&#39; bus=&#39;0x00&#39; slot=&#39;0x01&#39; function=&#39;0x1&#39;/>
    </controller>
    <interface type=&#39;bridge&#39;>

#仮想マシンのネットワーク接続方法

 <mac address=&#39;52:54:00:78:f9:5a&#39;/>
      <source bridge=&#39;br0&#39;/>
      <target dev=&#39;vnet27&#39;/>

## virtio を使用する: 通常のドライバーを使用します。つまり、ハード ディスクとネットワーク カードが両方ともデフォルト構成で、ハード ディスクが ide モードで、ネットワーク カードがシミュレートされた rtl 8139 ネットワークで動作する場合です。カード、100M 全二重の速度。 virtio ドライバーを使用すると、ネットワーク カードは 1000M モードで動作し、ハードディスクは SCSI モードで動作します。

<model type=&#39;virtio&#39;/>
      <alias name=&#39;net0&#39;/>
      <address type=&#39;pci&#39; domain=&#39;0x0000&#39; bus=&#39;0x00&#39; slot=&#39;0x03&#39; function=&#39;0x0&#39;/>
    </interface>
    <input type=&#39;mouse&#39; bus=&#39;ps2&#39;/>

#VNC モードでログインすると、ポート番号が自動的に割り当てられます。virsh vncdisplay を通じて [vncdisplay domainId] をクエリできます。

りー


以上がKVM 仮想マシンの構成 XML コードの詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。