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 Xen から KVM への移行ガイド
  4. III 全ハイパーバイザ共通の機能
    1. 16 ディスクのキャッシュモード
    2. 17 VM ゲスト の時刻設定
    3. 18 libguestfs
    4. 19 QEMU ゲストエージェント
    5. 20 ソフトウエア TPM エミュレータ
    6. 21 VM ゲスト に対するクラッシュダンプの作成
  5. IV Xen を利用した仮想マシンの管理
    1. 22 仮想マシンホストの設定
    2. 23 仮想ネットワーク
    3. 24 仮想環境の管理
    4. 25 Xen 内でのブロックデバイス
    5. 26 仮想化: オプション設定
    6. 27 管理作業
    7. 28 XenStore: ドメイン間で共有される設定データベース
    8. 29 Xen の高可用性仮想化ホストとしての使用
    9. 30 Xen: 準仮想化 (PV) ゲストから完全仮想化 (FV/HVM) ゲストへの変換
  6. V QEMU を利用した仮想マシンの管理
    1. 31 QEMU の概要
    2. 32 KVM VM ホストサーバ の構築
    3. 33 ゲストのインストール
    4. 34 qemu-system-ARCH を利用した仮想マシンの実行
    5. 35 QEMU モニタを利用した仮想マシンの管理
  7. VI トラブルシューティング
    1. 36 内蔵ヘルプとパッケージのドキュメンテーション
    2. 37 システム情報とログの収集
  8. 用語集
  9. A NVIDIA カードに対する GPU パススルー の設定
  10. B GNU ライセンス
ナビゲーション
適用先 openSUSE Leap 15.6

9 ゲストのインストール Edit source

VM ゲスト にはオペレーティングシステムやデータを含むイメージのほか、 VM ゲスト の仮想的なハードウエアリソースを表す設定ファイルが存在しています。 VM ゲスト は VM ホストサーバ 内で取り扱われ制御される仕組みであることから、本章では VM ゲスト をインストールする際の一般的な手順を説明しています。

仮想マシンには、インストールするオペレーティングシステムの要件が存在するほかには、特段の要件はほとんどありません。また、仮想マシンのホスト環境向けにオペレーティングシステムが最適化されていない場合、 ハードウエア支援 による仮想化のみを完全仮想化モードで動作させる必要が生じるほか、特殊なデバイスドライバを読み込む必要も発生します。一方の VM ゲスト 側に提供されるハードウエアは、ホスト側の設定に従って決まります。

なお、複数の仮想マシンを作成してそれぞれでライセンス済みのオペレーティングシステムを動作させる場合は、そのライセンス構成にも注意してください。詳しくはオペレーティングシステムのライセンス同意書などの資料をお読みください。

9.1 GUI ベースのゲストインストール Edit source

ヒント
ヒント: 新しい仮想マシンに対する既定のオプション設定の変更について

新しい仮想マシンを作成する際にはいくつかのオプションが自動的に設定されますが、この設定を変更することができます。たとえば新しい仮想マシンに対しては UEFI を使用するように設定したい場合は、 仮想マシンマネージャ のメインメニューから 編集 › 設定 を選択して、 新しい仮想マシン 内で UEFI を選択します。

新しい仮想マシンに対する既定のオプション設定
図 9.1: 新しい仮想マシンに対する既定のオプション設定

新しい仮想マシン ウイザードを利用することで、仮想マシンを作成し、オペレーティングシステムをインストールするまでに必要な作業を順に実施することができるようになっています。このウイザードを起動するには、 仮想マシンマネージャ を起動したあと、 ファイル › 新しい仮想マシン を選択します。それ以外の方法としては、 YaST を起動したあと 仮想化 › Create Virtual Machines を選択してもかまいません。

  1. YaST もしくは 仮想マシンマネージャ で 新しい仮想マシン ウイザードを起動します。

  2. インストール元を選択します。ローカルに保存しておいたメディアか、ネットワーク上にあるインストール元を選択することができます。既存の VM ゲスト を取り込んで使用したい場合は、 既存のディスクイメージをインポート を選択します。

    Xen ハイパーバイザが動作する VM ホストサーバ の場合、準仮想化 (paravirt) もしくは完全仮想化 (fullvirt) のいずれかを選択することができます。選択肢は アーキテクチャオプション 内に表示されます。なお、選択の内容によっては、インストールオプションで選択できないものがあることもあります。

  3. 直前の手順での選択内容に応じて、下記のデータを指定する必要があります:

    ローカルのインストールメディア (ISO イメージまたは CD-ROM ドライブ)

    インストールデータを含む ISO イメージの VM ホストサーバ 内でのパスを指定します。 libvirt のストレージプール内のボリュームとして利用できるように設定している場合は、 参照 を押して選択することもできます。詳しくは 第12章 「高度なストレージ設定 をお読みください。

    上記以外にも、 VM ホストサーバ 内の光学ドライブに CD-ROM や DVD のメディアが挿入されていれば、それを選択することもできます。

    ネットワークインストール (HTTP, HTTPS, or FTP)

    インストール元の URL を指定します。 URL として指定可能なプロトコルは、 ftp:// , http:// , https:// などがあります。

    URL のオプション 内には、自動インストール用のファイル (AutoYaST や Kickstart など) を選択したり、カーネルのパラメータを指定したりすることができるオプションが用意されています。また、 URL を指定した場合、通常はオペレーティングシステムを自動的に検出しますが、うまくいかない場合は手作業で指定することもできます。この場合は、 インストールメディアまたはソースから自動検出します のチェックを外して、 OS タイプ および バージョン に手動入力することもできます。

    既存のディスクイメージをインポート

    既存のイメージを利用して VM ゲスト の設定を行いたい場合は、まず VM ホストサーバ 内でのイメージのパスを指定してください。なお、 libvirt のストレージプール内のボリュームとして利用できるように設定している場合は、 参照 を押して選択することもできます。詳しくは 第12章 「高度なストレージ設定 をお読みください。

    手動インストール

    このインストール方法は、仮想マシンのコンポーネントを手作業で設定し、後から OS をインストールしたい場合に適切です。仮想マシンを製品に合わせて調整したい場合は、 sles 等のように OS の名称を入力したあと、表示された一覧の中からバージョンを選択してください。

  4. 次に新しい仮想マシンに設定する、メモリサイズと CPU 数を指定します。

  5. この手順は、 既存のディスクイメージをインポート を選択した場合は省略されます。

    VM ゲスト に対する仮想ハードディスクを設定します。新しいディスクイメージを作成するか、もしくはストレージプールから既存のものを選択 (詳しくは 第12章 「高度なストレージ設定 をお読みください) して進めることができます。ディスクを作成するよう選択した場合は、 qcow2 形式のイメージを作成します。また、既定では /var/lib/libvirt/images 内にイメージを配置します。

    ディスクの設定は任意です。 CD や DVD から直接実行することのできるライブシステムをお使いの場合は、 この仮想マシンにストレージデバイスを割り当てます の選択を外して、ディスクの作成を行わないこともできます。

  6. ウイザードの最後の画面では、仮想マシンに設定する名前を指定します。また、仮想マシンのハードウエア設定もカスタマイズすることができます。この場合は、 インストールの前に設定をカスタマイズする を選択してください。また、 ネットワークの選択 では、ネットワークデバイスを選択することもできます。 Bridge device を選択した場合は、ホスト側で設定されている最初のブリッジが自動的に選択されます。それ以外のブリッジを使用したい場合は、テキストボックス内にそのブリッジ名を入力してください。

    完了 を押します。

  7. 直前の手順で既定値のまま進めた場合、ここでインストール処理が始まります。 インストールの前に設定をカスタマイズする を選択した場合は、 VM ゲスト の設定ダイアログが表示されます。 VM ゲスト の設定に関する詳細は、 第13章 「仮想マシンマネージャ を利用した仮想マシンの設定 をお読みください。

    設定が終わったら、 インストールの開始 を押してください。

ヒント
ヒント: 仮想マシンに対する特殊キーの送信について

インストールが始まると、 仮想マシンマネージャ のコンソールウインドウが表示されます。ただし、 CtrlAltF1 などの特殊なキー入力については VM ホストサーバ 側で解釈されてしまい、仮想マシンには送信されません。 VM ホストサーバ ではなく仮想マシンにキー入力を送信したい場合は、 sticky key と呼ばれる機能をお使いください。これは Ctrl , Alt, Shift を 3 回押下することで有効化されます。すると、直後のキー入力が、仮想マシンに送信されるようになります。

たとえば CtrlAltF2 を Linux の仮想マシンに送信したい場合は、 Ctrl を 3 回押したあと、 AltF2 を押してください。なお、 Alt を 3 回押したあとは、 CtrlF2 を押します。

この sticky key 機能は、 仮想マシンマネージャ で VM ゲスト をインストールしている際だけでなく、インストール後でも利用することができます。

9.1.1 PXE 起動向けの仮想マシンの設定 Edit source

PXE 起動を使用することで、物理メディアやインストールディスクイメージを使用することなく、ネットワーク経由でインストールメディアにアクセスして起動することができるようになります。

PXE サーバから仮想マシンを起動するように設定するには、下記の手順を実施します:

  1. 9.1項 「GUI ベースのゲストインストール」 に示されている手順でインストールウイザードを起動します。

  2. Manual Install 方式を選択します。

  3. ウイザードの最後では インストールの前に設定をカスタマイズする を選択しておきます。後は 完了 を押します。

  4. カスタマイズ の画面が表示されたら、 ブートオプション を選択します。

  5. 起動デバイスの順序 内にある 起動メニューを有効化する を選択します。

  6. 起動メニューを有効化する の下にある ネットワーク PXE を選択して、 適用 を押します。

  7. インストールの開始 を押すと、インストールを始めることができます。 PXE サーバが正しく設定されていれば、 PXE メニューが表示されるはずです。

9.2 virt-install によるコマンドラインからのインストール Edit source

virt-install は、 libvirt ライブラリを利用した仮想マシンを作成することのできるコマンドラインツールです。グラフィカルなユーザインターフェイスを使用することのできない環境や、仮想マシンの作成を自動化したいような場合に有用です。

virt-install は多数のコマンドラインスイッチを含む、複雑なスクリプトです。下記に概要を示しますが、詳しい情報については virt-install (1) をお読みください。

一般的なオプション
  • --name ゲスト名 : 新しく作成する仮想マシンの名前を指定します。名前は同じ接続のハイパーバイザ内で唯一のものでなければなりません。また、このゲスト名は設定ファイルの名前にもなるほか、後から virsh コマンドでこの名前を指定し、アクセスすることができます。英数字と _-.:+ の文字を使用することができます。

  • --memory メモリサイズ : 仮想マシンに割り当てるメモリ量を、メガバイト単位で指定します。

  • --vcpus CPU_数 : 仮想マシンに割り当てる CPU 数を指定します。性能を確保するため、仮想マシンのプロセッサ数の合計は、実際に搭載されているプロセッサ数と同じか、それより少なく設定しておくことをお勧めします。

仮想化の種類
  • --paravirt : 準仮想化のゲストを作成します。これは VM ホストサーバ が準仮想化と完全仮想化の両方に対応している場合の既定値となります。

  • --hvm : 完全仮想化のゲストを作成します。

  • --virt-type ハイパーバイザ名 : ハイパーバイザの種類を指定します。 kvm , xen のいずれかを指定することができます。

ゲスト側のストレージ

--disk , --filesystem , --nodisks のいずれかのオプションを指定して、新しく作成する仮想マシンのストレージの種類を設定します。たとえば --disk size=10 のように指定すると、ハイパーバイザの既定のイメージ配置先に、 10 GB のディスクを作成し、 VM ゲスト に割り当てます。 --filesystem VM_ホスト内でのパス のように指定すると、指定した VM ホストサーバ 内のディレクトリをゲストからアクセスできるようになります。 --nodisks を指定すると、 VM ゲスト にローカルストレージを割り当てない意味になります (ライブ CD などの用途に便利です) 。

インストール方法

--location , --cdrom , --pxe , --import , --boot のいずれかのオプションを指定して、インストール方法を指定します。

インストール環境へのアクセス

--graphics を指定することで、インストール環境へのアクセス方法を指定することができます。 openSUSE Leap では、 vnc もしくは none のいずれかの値をサポートしています。

virt-install で VNC を指定した場合、 virt-viewer を起動しようとします。このコマンドがインストールされていないか、実行することができない場合、 VM ゲスト に対して手作業で接続を行ってください。 virt-install でビューアを起動しないように明示的に指定したい場合は、 --noautoconsole オプションを指定してください。 VNC のセッションにアクセスするためのパスワードを指定したい場合は、 --graphics vnc,password=パスワード のように指定してください。

--graphics none を指定した場合、 VM ゲスト へのアクセスは、オペレーティングシステム側で提供されるサービス (例: SSH, VNC) を使用することになります。インストールシステムでこれらのサービスを有効化する方法について、詳しくはオペレーティングシステムのインストールマニュアルをお読みください。

カーネルと initrd ファイルの設定

ネットワークからのインストールなどでは、インストーラで使用するカーネルと initrd を直接指定することもできます。

起動時のパラメータを指定したい場合は、 --extra-args オプションをお使いください。このパラメータでは、ネットワークの設定を行うこともできます。詳しくは https://ja.opensuse.org/SDB:Linuxrc をお読みください。

例 9.1: HTTP サーバからのカーネルと initrd の読み込み
# virt-install --location \
"http://download.opensuse.org/pub/opensuse/distribution/leap/15.0/repo/oss" \
--extra-args="textmode=1" --name "Leap15" --memory 2048 --virt-type kvm \
--connect qemu:///system --disk size=10 --graphics vnc --network \
network=vnet_nated
コンソールの有効化

既定では、 virt-install で新しく作成する仮想マシンに対して、コンソールは有効化されません。有効化したい場合は、 --extra-args="console=ttyS0 textmode=1" のようにオプションを指定してください。たとえば下記のようになります:

> virt-install --virt-type kvm --name sles12 --memory 1024 \
 --disk /var/lib/libvirt/images/disk1.qcow2 --os-variant sles12
 --extra-args="console=ttyS0 textmode=1" --graphics none

インストールが完了したら、仮想マシン内の /etc/default/grub にある GRUB_CMDLINE_LINUX_DEFAULT の行に、 console=ttyS0 が設定されるようになります。

UEFI Secure Boot の使用
注記
注記

SUSE では AMD64/Intel 64 の KVM ゲストに対してのみ UEFI Secure Boot のサポートを提供しています。 Xen HVM ゲストでも UEFI ファームウエアに対応していますが、こちらは UEFI Secure Boot をサポートしていません。

規定では、 virt-install を利用して新しい仮想マシンをインストールしようとすると、従来型の BIOS を利用するようになっています。 UEFI を使用したい場合は、 --boot firmware=efi を指定してください。この場合、 UEFI Secure Boot に対応し、 Microsoft 社の鍵を取り込み済みのファームウエアを選択します。 Secure Boot を利用したくない場合は、 --boot firmware=efi,firmware.feature0.name=secure-boot,firmware.feature0.enabled=no と指定してください。これにより、 Secure Boot に対応しない UEFI ファームウエアを選択するようになります。

このほか、 UEFI ファームウエアイメージを明示的に指定することもできます。仮想マシンで UEFI を使用する場合の高度な情報と設定例については、 9.3.1項 「高度な UEFI 設定」 をお読みください。

例 9.2: virt-install コマンドラインの例

下記のコマンドライン例は、新しい SUSE Linux Enterprise 15 SP2 の仮想マシンを作成し、 virtio で高速化したディスク環境と、ネットワークカードを接続する例です。ストレージとしては 10 GB の qcow2 形式のディスクイメージを作成し、インストール元のメディアはホスト側の CD-ROM ドライブを使用します。また、 VNC のグラフィックも使用し、グラフィカルなフロントエンドを自動的に起動します。

KVM
> virt-install --connect qemu:///system --virt-type kvm \
--name sle15sp2 --memory 1024 --disk size=10 --cdrom /dev/cdrom --graphics vnc \
--os-variant sle15sp2
Xen
> virt-install --connect xen:// --virt-type xen --hvm \
--name sle15sp2 --memory 1024 --disk size=10 --cdrom /dev/cdrom --graphics vnc \
--os-variant sle15sp2

9.3 高度なゲストインストール手順 Edit source

本章では、通常のインストール方法には含まれない機能、たとえば UEFI ファームウエアやメモリバルーンの手作業での設定、アドオン製品のインストールなどを使用する場合の手順について説明しています。

9.3.1 高度な UEFI 設定 Edit source

仮想マシンで使用される UEFI ファームウエアは OVMF ( Open Virtual Machine Firmware ) が提供するものです。 qemu-ovmf-x86_64 パッケージには AMD64/Intel 64 の VM ゲスト に対するファームウエアが含まれていますし、 qemu-uefi-aarch64 パッケージには AArch64 の VM ゲスト に対するファームウエアが含まれています。どちらのパッケージにも複数のファームウエアが含まれていますが、それらはそれぞれ異なる機能が含まれています。このほかこれらのパッケージには、 JSON ファームウエアディスクリプタファイルと呼ばれる、各ファームウエアが提供する機能を説明したファイルも含まれています。

libvirt では仮想マシンの UEFI ファームウエアの選択に際して、自動と手動の 2 種類の方式を提供しています。自動選択の場合、 libvirt はユーザが指定したオプションセットに従ってファームウエアを選択します。明示的に何も機能を指定しない場合、 libvirt は Secure Boot 対応で Microsoft 社の鍵を取り込み済みのファームウエアを選択します。手動選択の場合、ファームウエアのフルパスを手作業で指定し、オプション機能については明示的に設定することになります。この場合、 JSON ディスクリプタファイルを参照して、要件に合致するファームウエアを選択することができます。

なお、 virt-install を使用する場合、 boot オプションに firmware=efi パラメータを指定することで、ファームウエアの自動選択機能が有効化されます。この場合、ファームウエアに求める/求めない機能を指定して自動選択を行います。たとえば下記の例では、 UEFI Secure Boot が無効化されたファームウエアを自動選択するように指定しています。

> virt-install --connect qemu:///system --virt-type kvm \
--name sle15sp5 --memory 1024 --disk size=10 --cdrom /dev/cdrom --graphics vnc \
--boot firmware=efi,firmware.feature0.name=secure-boot,firmware.feature0.enabled=no \
--os-variant sle15sp5
注記
注記

ファームウエアの自動選択によって VM ゲスト が使用するファームウエアが変わってしまわないようにするため、 libvirt では VM ゲスト の XML 設定ファイル内に自動選択したファームウエアを記録するようにしています。これにより、ファームウエアの自動選択は 1 回だけ動作することになります。いったんファームウエアを自動選択したあとは、 VM ゲスト の管理者が明示的に変更しない限り、手動でのファームウエア選択と同じように動作することになります。

また、手動でのファームウエア選択を行う場合は、 loadernvram のパラメータを使用します。 loader は必須パラメータで nvram は任意パラメータとなります。 nvram パラメータは、 UEFI の変数ストアの保存先を指定します。たとえば下記の例では、 Secure Boot が有効化されたファームウエアを手動で指定しています。

> virt-install --connect qemu:///system --virt-type kvm \
--name sle15sp5 --memory 1024 --disk size=10 --cdrom /dev/cdrom --graphics vnc \
--boot loader=/usr/share/qemu/ovmf-x86_64-smm-code.bin,loader.readonly=yes,loader.type=pflash,loader.secure=yes,nvram.template=/usr/share/qemu/ovmf-x86_64-smm-vars.bin \
--os-variant sle15sp5
注記
注記

libvirt は UEFI ファームウエアの動作を変更することができません。たとえば UEFI Secure Boot が有効化されたファームウエアを使用している場合、 loader.secure=no を指定しても、 UEFI Secure Boot を無効化することはできません。また libvirt は、指定したファームウエアが指定した機能を提供するかどうかを確認します。たとえば loader.secure=no を指定して UEFI Secure Boot を無効化した状態で、 UEFI Secure Boot の有効化されたファームウエアを指定すると、設定が拒否されます。

また、 qemu-ovmf-x86_64 パッケージには、複数の UEFI ファームウエアイメージが含まれています。たとえば下記のファイルは、いずれも SMM と UEFI Secure Boot が有効化されていますが、 Microsoft, openSUSE, SUSE UEFI のそれぞれ異なる鍵が取り込まれているファームウエアになります:

# rpm -ql qemu-ovmf-x86_64
[...]
/usr/share/qemu/ovmf-x86_64-smm-ms-code.bin
/usr/share/qemu/ovmf-x86_64-smm-ms-vars.bin
/usr/share/qemu/ovmf-x86_64-smm-opensuse-code.bin
/usr/share/qemu/ovmf-x86_64-smm-opensuse-vars.bin
/usr/share/qemu/ovmf-x86_64-smm-suse-code.bin
/usr/share/qemu/ovmf-x86_64-smm-suse-vars.bin
[...]

AArch64 アーキテクチャの場合、パッケージ名は qemu-uefi-aarch32 になります:

# rpm -ql qemu-uefi-aarch32
[...]
/usr/share/qemu/aavmf-aarch32-code.bin
/usr/share/qemu/aavmf-aarch32-vars.bin
/usr/share/qemu/firmware
/usr/share/qemu/firmware/60-aavmf-aarch32.json
/usr/share/qemu/qemu-uefi-aarch32.bin

上記では *-code.bin ファイルが UEFI ファームウエアファイル、 *-vars.bin ファイルがそれぞれ対応する変数ストアイメージになります。変数ストアイメージは仮想マシンごとの不揮発性ストアの雛型として使用されるものです。変数ストアイメージは仮想マシンの作成時に /var/lib/libvirt/qemu/nvram/ 以下にコピーされ、その後はコピーしたファイルに対して書き込みを行います。 codevars を含まないファイルは単独 UEFI イメージと呼ばれますが、これらはいずれも仮想マシンのシャットダウンで UEFI 変数が消えてしまう構造のため、あまり使い道はありません。

また *-ms*.bin ファイルには、実在するハードウエアにも搭載されている UEFI CA 鍵が含まれています。そのため、これらは libvirt での既定値として指定されています。また *-suse*.bin には SUSE 社の鍵が取り込まれています。それ以外にも、事前には全く鍵を含まないファームウエアも存在しています。

OVMF に関する詳細は、 http://www.linux-kvm.org/downloads/lersek/ovmf-whitepaper-c770f8c.txt (英語) をお読みください。

9.3.2 インストール時のアドオン製品の取り込み Edit source

openSUSE Leap 等のオペレーティングシステムでは、インストール時にアドオン製品の追加を行うことができます。 SUSE Customer Center 経由でアドオン製品のインストールソースが提供されている場合は、 VM ゲスト 側での設定は特に必要とはなりませんが、 CD/DVD や ISO イメージとして提供されている場合、標準のインストールメディアとアドオン製品のイメージの両方を VM ゲスト に指定する必要があります。

GUI ベースのインストールを行っている場合は、ウイザードの最後の手順で インストール前にオンラインリポジトリを追加する を選択し、 ハードウェアを追加 › ストレージ を選択してアドオン製品の ISO イメージを追加してください。この場合、イメージのパスを指定し、 デバイスの種類CD-ROM デバイス に設定します。

コマンドライン経由でインストールを行っている場合は、 --cdrom ではなく、 --disk オプションで CD/DVD ドライブを設定する必要があります。最初に指定されたほうのデバイスが起動用に使用されます。たとえば下記のコマンドラインでは、 SUSE Linux Enterprise Server 15 と SUSE Enterprise Storage 拡張を一括でインストールすることができます:

> virt-install \
 --name sles15+storage \
 --memory 2048 --disk size=10 \
 --disk /path/to/SLE-15-SP6-Full-ARCH-GM-media1.iso-x86_64-GM-DVD1.iso,device=cdrom \
 --disk /path/to/SUSE-Enterprise-Storage-VERSION-DVD-ARCH-Media1.iso,device=cdrom \
 --graphics vnc --os-variant sle15
このページを印刷