16.5. PXE サーバーから仮想マシンの起動

PXE (Preboot Execution Environment) を使用する仮想マシンは、ネットワークから起動して設定を読み込むことができます。本章では、libvirt を使用して、仮想ネットワークまたはブリッジネットワークの PXE サーバーから仮想マシンを起動する方法を説明します。

警告

以下の手順は、例としてのみ提供されます。続行する前に、十分なバックアップがあることを確認してください。

16.5.1. 仮想ネットワークで PXE ブートサーバーの設定

この手順では、PXE (Preboot Execution Environment) を提供するように libvirt 仮想ネットワークを設定する方法を説明します。これにより、ホストの仮想マシンを、仮想ネットワークで利用可能な起動イメージから起動するように設定できます。

前提条件

  • 次のようなローカルの PXE サーバー (DHCP および TFTP)

    • libvirt 内部サーバー
    • 手動で設定した dhcpd および tftpd
    • dnsmasq
    • Cobbler サーバー
  • Cobbler が設定した PXELINUX など、または手動で設定した PXE 起動イメージ。

手順

  1. PXE ブートイメージおよび設定を /var/lib/tftpboot フォルダーに置きます。
  2. フォルダーのパーミッションを設定する:

    # chmod -R a+r /var/lib/tftpboot
  3. フォルダーの所有権を設定する:

    # chown -R nobody: /var/lib/tftpboot
  4. SELinux コンテキストを更新します。

    # chcon -R --reference /usr/sbin/dnsmasq /var/lib/tftpboot
    # chcon -R --reference /usr/libexec/libvirt_leaseshelper /var/lib/tftpboot
  5. 仮想ネットワークをシャットダウンします。

    # virsh net-destroy default
  6. デフォルトエディターで仮想ネットワーク設定ファイルを開きます。

    # virsh net-edit default
  7. <ip> 要素を編集して、適切なアドレス、ネットワークマスク、DHCP アドレス範囲、および起動ファイルを追加します。example-pxelinux は、ブートイメージファイルの名前になります。

    <ip address='192.0.2.1' netmask='255.255.255.0'>
       <tftp root='/var/lib/tftpboot'/>
       <dhcp>
          <range start='192.0.2.2' end='192.0.2.254' />
          <bootp file='example-pxelinux'/>
       </dhcp>
    </ip>
  8. 仮想ネットワークを起動します。

    # virsh net-start default

検証

  • default 仮想ネットワークが有効であることを確認します。

    # virsh net-list
    Name             State    Autostart   Persistent
    ---------------------------------------------------
    default          active   no          no

16.5.2. PXE および仮想ネットワークを使用した仮想マシンの起動

仮想ネットワークで利用可能な PXE (Preboot Execution Environment) サーバーから仮想マシンを起動するには、PXE ブートを有効にする必要があります。

前提条件

手順

  • PXE 起動が有効になっている新しい仮想マシンを作成します。たとえば、default 仮想ネットワークで利用可能な PXE から、新しい 10GB の qcow2 イメージファイルにインストールする場合は、次のコマンドを実行します。

    # virt-install --pxe --network network=default --memory 2048 --vcpus 2 --disk size=10
    • または、既存の仮想マシンの XML 設定ファイルを手動で編集できます。

      1. <os> 要素の内部に <boot dev='network'/> 要素があることを確認します。

        <os>
           <type arch='x86_64' machine='pc-i440fx-rhel7.0.0'>hvm</type>
           <boot dev='network'/>
           <boot dev='hd'/>
        </os>
      2. 仮想ネットワークを使用するようにゲストネットワークが設定されている。

        <interface type='network'>
           <mac address='52:54:00:66:79:14'/>
           <source network='default'/>
           <target dev='vnet0'/>
           <alias name='net0'/>
           <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
        </interface>

検証

  • virsh start コマンドを使用して仮想マシンを起動します。PXE が正しく設定されていると、仮想マシンは、PXE サーバーで利用可能な起動イメージから起動します。

16.5.3. PXE およびブリッジネットワークを使用した仮想マシンの起動

ブリッジネットワークで利用可能な PXE (Preboot Execution Environment) サーバーから仮想マシンを起動するには、PXE ブートを有効にする必要があります。

前提条件

  • ネットワークブリッジが有効になっている。
  • ブリッジネットワークでは、PXE ブートサーバーが利用できます。

手順

  • PXE 起動が有効になっている新しい仮想マシンを作成します。たとえば、breth0 ブリッジネットワークで利用可能な PXE から、新しい 10GB の qcow2 イメージファイルにインストールする場合は、次のコマンドを実行します。

    # virt-install --pxe --network bridge=breth0 --memory 2048 --vcpus 2 --disk size=10
    • または、既存の仮想マシンの XML 設定ファイルを手動で編集できます。

      1. <os> 要素の内部に <boot dev='network'/> 要素があることを確認します。

        <os>
           <type arch='x86_64' machine='pc-i440fx-rhel7.0.0'>hvm</type>
           <boot dev='network'/>
           <boot dev='hd'/>
        </os>
      2. ブリッジネットワークを使用するように仮想マシンが設定されていることを確認します。

        <interface type='bridge'>
           <mac address='52:54:00:5a:ad:cb'/>
           <source bridge='breth0'/>
           <target dev='vnet0'/>
           <alias name='net0'/>
           <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
        </interface>

検証

  • virsh start コマンドを使用して仮想マシンを起動します。PXE が正しく設定されていると、仮想マシンは、PXE サーバーで利用可能な起動イメージから起動します。