Jump to contentJump to page navigation: previous page [access key p]/next page [access key n]
コンテンツコンテンツ
仮想化ガイド
  1. 前書き
  2. I 概要
    1. 1 仮想化技術
    2. 2 仮想化シナリオ
    3. 3 Xen 仮想化の紹介
    4. 4 KVM 仮想化の紹介
    5. 5 仮想化ツール
    6. 6 仮想化コンポーネントのインストール
  3. II libvirt を利用した仮想マシンの管理
    1. 7 libvirt デーモン
    2. 8 VM ホストサーバ の準備
    3. 9 ゲストのインストール
    4. 10 基本的な VM ゲスト の管理
    5. 11 接続と認可
    6. 12 高度なストレージ設定
    7. 13 仮想マシンマネージャ を利用した仮想マシンの設定
    8. 14 virsh を利用した仮想マシンの設定
    9. 15 AMD SEV-SNP による仮想マシンのセキュリティ強化
    10. 16 VM ゲスト の移行
    11. 17 Xen から KVM への移行ガイド
  4. III 全ハイパーバイザ共通の機能
    1. 18 ディスクのキャッシュモード
    2. 19 VM ゲスト の時刻設定
    3. 20 libguestfs
    4. 21 QEMU ゲストエージェント
    5. 22 ソフトウエア TPM エミュレータ
    6. 23 VM ゲスト に対するクラッシュダンプの作成
  5. IV Xen を利用した仮想マシンの管理
    1. 24 仮想マシンホストの設定
    2. 25 仮想ネットワーク
    3. 26 仮想環境の管理
    4. 27 Xen 内でのブロックデバイス
    5. 28 仮想化: オプション設定
    6. 29 管理作業
    7. 30 XenStore: ドメイン間で共有される設定データベース
    8. 31 Xen の高可用性仮想化ホストとしての使用
    9. 32 Xen: 準仮想化 (PV) ゲストから完全仮想化 (FV/HVM) ゲストへの変換
  6. V QEMU を利用した仮想マシンの管理
    1. 33 QEMU の概要
    2. 34 KVM VM ホストサーバ の構築
    3. 35 ゲストのインストール
    4. 36 qemu-system-ARCH を利用した仮想マシンの実行
    5. 37 QEMU モニタを利用した仮想マシンの管理
  7. VI トラブルシューティング
    1. 38 内蔵ヘルプとパッケージのドキュメンテーション
    2. 39 システム情報とログの収集
  8. 用語集
  9. A NVIDIA カードに対する GPU パススルー の設定
  10. B GNU ライセンス
ナビゲーション
適用先 openSUSE Leap 15.7

32 Xen: 準仮想化 (PV) ゲストから完全仮想化 (FV/HVM) ゲストへの変換 Edit source

本章では、 Xen の準仮想化ゲスト (仮想マシン) を Xen の完全仮想化マシンに変換する方法について説明しています。

手順 32.1: ゲスト側

ゲストを FV モードで起動できるようにするには、ゲスト内で下記の手順を実施する必要があります。

  1. まずはゲストを変換する前に、全ての修正を適用してゲストを再起動してください。

  2. FV の仮想マシンでは -default カーネルを使用します。このカーネルをインストールしていない場合は、 PV モードで動作させている間に kernel-default パッケージをインストールします。

  3. PV の仮想マシンでは vda* のようなデバイス名でディスクにアクセスしていますが、これらの名前を hd* のような名前に変換する必要があります。この変更は、それぞれ下記に示すファイルに対して行います:

    • /etc/fstab

    • /boot/grub/menu.lst (SLES 11 のみ)

    • /boot/grub*/device.map

    • /etc/sysconfig/bootloader

    • /etc/default/grub (SLES 12, 15 および openSUSE)

    注記
    注記: UUID の使用について

    /etc/fstab ファイル内では、 UUID や論理ボリューム名での指定の使用をお勧めします。 UUID を指定することにより、ネットワークストレージやマルチパスデバイス、仮想化などの様々なメリットを享受することができます。ディスクの UUID を表示させたい場合は、 blkid コマンドをお使いください。

  4. また、必要なモジュールを含む initrd の再生成にあたって発生するエラーを回避するため、 /dev/hda2 から /dev/xvda2 へのシンボリックリンクを作成することもできます。シンボリックリンクの作成は、 ln コマンドで行います:

    ln -sf /dev/xvda2 /dev/hda2
    ln -sf /dev/xvda1 /dev/hda1
    .....
  5. PV のマシンと FV のマシンではそれぞれ異なるディスクドライバモジュールやネットワークドライバモジュールを使用します。これらの FV モジュールは initrd 内に手作業で追加する必要があります。必要なモジュールはそれぞれ xen-vbd (ディスクデバイス用) および xen-vnif (ネットワークデバイス用) です。これらは完全仮想化 (FV) モードの VM ゲスト 向けの PV ドライバであり、それ以外の ata_piix , ata_generic, libata 等のモジュールは自動的に追加されます。

    ヒント
    ヒント: initrd へのモジュールの追加について
    • SLES 11 では、 /etc/sysconfig/kernel ファイル内の INITRD_MODULES 内に必要なモジュールを指定します。たとえば下記のようになります:

      INITRD_MODULES="xen-vbd xen-vnif"

      あとは dracut を実行することで、必要なモジュールを含む新しい initrd を生成することができます。

    • SLES 12, 15 および openSUSE の場合は、 /etc/dracut.conf.d/10-virt.conf という名前のファイルを開くか新規に作成して、下記のような行を記述して force_drivers 以下にドライバを追加していきます (なお、二重引用符の後ろにスペースがあることに注意してください):

      force_drivers+=" xen-vbd xen-vnif"

      あとは dracut -f --kver カーネルバージョン-default のように入力して実行することで、必要なモジュールを含む新しい initrd を生成することができます。

      カーネルバージョンの検出方法について: uname -r コマンドを実行することで、お使いのシステムで現在動作中のカーネルのバージョンを調べることができます。

  6. また、ゲストをシャットダウンする前に、 yast bootloader を利用して -default カーネルに対する既定の起動パラメータを設定してください。

  7. openSUSE Leap 11 の環境で、ゲスト側で X サーバを動作させている場合、 X ドライバを変更する目的で /etc/X11/xorg.conf ファイルを変更する必要があります。 fbdev という行を検索して、値を cirrus に変更してください。

    Section "Device"
              Driver       "cirrus"
              ......
              EndSection
    注記
    注記: openSUSE Leap 12/15 と Xorg について

    openSUSE Leap 12/15 では、 Xorg は必要なドライバを自動検出します。

  8. ゲストをシャットダウンします。

手順 32.2: ホスト側

下記では、ホスト側で実施すべき手順を説明しています。

  1. ゲストを FV モードで起動できるようにするため、 VM の設定を FV 用に調整する必要があります。 VM の設定編集は virsh edit [ドメイン] で行うのが簡単です。それぞれ下記の内容を編集してください:

    • OS セクション内のマシンの種類と loader の項目をそれぞれ編集し、 xenpvxenfv に変更します。変更後の OS セクションは下記のようになるはずです:

      <os>
                <type arch='x86_64' machine='xenfv'>hvm</type>
                <loader>/usr/lib/xen/boot/hvmloader</loader>
                <boot dev='hd'/>
      </os>
    • OS セクション内にある PV ゲスト固有の設定を削除します:

      • <bootloader>pygrub</bootloader>
      • <kernel>/usr/lib/grub2/x86_64-xen/grub.xen</kernel>
      • <cmdline>xen-fbfront.video=4,1024,768</cmdline>
    • デバイスセクション内に qemu エミュレータを追加します:

      <emulator>/usr/lib/xen/bin/qemu-system-i386</emulator>
    • ディスクの設定を FV 書式になるよう、ターゲットデバイスとバスをそれぞれ変更します。具体的には xen ディスクバスを ide に、 vda ターゲットデバイスを hda にそれぞれ変換します。変更後は下記のようになるはずです:

      <target dev='hda' bus='ide'/>
    • キーボードやマウスの接続に使用するバスを、 xen から ps2 に変更します。これに加えて、新しい USB タブレットデバイスを追加しておきます:

      <input type='mouse' bus='ps2'/>
                <input type='keyboard' bus='ps2'/>
      <input type='tablet' bus='usb'/>
    • コンソールターゲットの種類を xen から serial に変更します:

      <console type='pty'>
                <target type='serial' port='0'/>
      </console>
    • ビデオの設定を xen から cirrus に変更し、 VRAM に 8 MB 程度を割り当てます:

      <video>
                <model type='cirrus' vram='8192' heads='1' primary='yes'/>
      </video>
    • また、必要であれば VM の機能に acpiapic を追加します:

      <features>
                <acpi/>
                <apic/>
      </features>
  2. あとはゲストを起動する (virsh もしくは virt-manager を使用します) だけです。ゲストが kernel-default を利用して起動するようになったら (uname -a で確認できます) 、完全仮想化モードへの変換は完了となります。

注記
注記: guestfs-tools

この処理を自動化したい場合やディスクイメージを直接編集したい場合は、 guestfs-tools スイート (詳しくは 20.3項 「guestfs ツール」 をお読みください) をお使いください。ここにはディスクイメージを修正するための様々なツールが用意されています。

このページを印刷