付録A 補足

目次

A.1. 擬似仮想化ドライバのインストール
A.2. x509 クライアント/サーバ証明書の生成

A.1. 擬似仮想化ドライバのインストール

A.1.1. Microsoft Windows* への virtio ドライバのインストール

Microsoft Windows 環境では、インストール中に擬似仮想化のドライバを設定する ことはできません。これは、インストールの際に擬似仮想化ハードディスクから 起動しようとしても、拒否されてしまうためです。そのため、擬似仮想化ドライバは インストール済みの Windows 環境に対して追加することになります。

下記の手順では、インストール済みの Windows が単一の IDE ハードディスク上に 存在していて、ネットワークアダプタが 1 枚だけ接続されている場合を想定して います。 Windows 向けの virtio ドライバを含む ISO イメージは kvm パッケージ内に含まれていて、 KVM ホストの /usr/share/qemu-kvm/win-virtio-drivers.iso に配置されます。 8.4項 「Virtual Machine Manager を利用したフロッピィディスクまたは CD/DVD-ROM メディアの取り出しと交換」 の 手順に従って、 ISO イメージを仮想マシン内の CD-ROM として設定してください。 お使いの仮想マシンが CD-ROM デバイスの無い設定になっている場合は、 8.2項 「Virtual Machine Manager を利用した CD/DVD-ROM デバイスの追加」 を参照して CD-ROM デバイスを 2 番目のドライブとして追加してください。

Windows での virtio ドライバの検出

Windows XP 32 ビット版
メモリバルーン: balloon\install\XP\x86\balloon.inf
ネットワーク: NetKVM\install\XP_Win2003\x86\netkvm.inf
ストレージ: viostor\install\XP\x86\viostor.inf
Windows XP 64 ビット版
メモリバルーン: 未対応です
ネットワーク: NetKVM\install\XP_Win2003\amd64\netkvm.inf
ストレージ: viostor\install\XP\amd64\viostor.inf
Windows Server 2003 32 ビット版
メモリバルーン: balloon\install\Win2003\x86\balloon.inf
ネットワーク: NetKVM\install\XP_Win2003\x86\netkvm.inf
ストレージ: viostor\install\Win2003\x86\viostor.inf
Windows Server 2003 64 ビット版
メモリバルーン: balloon\install\Win2003\amd64\balloon.inf
ネットワーク: NetKVM\install\XP_Win2003\amd64\netkvm.inf
ストレージ: viostor\install\XP\amd64\viostor.inf
Windows Vista/Server 2008 32 ビット版
メモリバルーン: balloon\install\Vista_Win2008\x86\balloon.inf
ネットワーク: NetKVM\install\Vista_Win2008\x86\netkvm.inf
ストレージ: viostor\install\Vista_Win2008\x86\viostor.inf
Windows Vista/Server 2008 64 ビット版
メモリバルーン: balloon\install\Vista_Win2008\amd64\balloon.inf
ネットワーク: NetKVM\install\Vista_Win2008\amd64\netkvm.inf
ストレージ: viostor\install\Vista_Win2008\amd64\viostor.inf
Windows 7 32 ビット版
メモリバルーン: balloon\install\Win7\x86\balloon.inf
ネットワーク: NetKVM\install\Win7\x86\netkvm.inf
ストレージ: viostor\install\Win7\x86\viostor.inf
Windows 7 64 ビット版
メモリバルーン: balloon\install\Win7\amd64\balloon.inf
ネットワーク: NetKVM\install\Win7\amd64\netkvm.inf
ストレージ: viostor\install\Win7\amd64\viostor.inf

A.1.1.1. Windows 7

下記では、 Windows 7 に対して擬似仮想化ストレージドライバとネットワーク ドライバをインストールするための手順を示しています。なお、ストレージ ドライバをインストールする場合、下記に示す手順は 必ず 守ってください。手順から外れたことをしてしまうと全く起動できなくなってしまう 場合があるほか、 ブルースクリーン になってしまう場合も あります!

[Important]技術サポートについて

下記に示す手順では、 virsh edit コマンドを使用して行ないます。このコマンドは原則として SUSE で技術的に サポートしていないものですが、このような特殊な用途 (Windows への擬似仮想化 ストレージドライバのインストール) は本ルールの例外として扱われ、適切な 範囲でのサポートが提供されます。

手順A.1 Windows 7 32 ビット版に対する擬似仮想化ストレージドライバのインストール

  1. Windows 7 VM ゲスト をシャットダウンし、 Virtual Machine Manager を利用して virtio 形式の追加のハードディスク (擬似仮想化ハードディスク) を設定します。 このディスクは一時的に必要なもので、 VM ゲスト から後で削除します。

  2. 必要であれば Virtual Machine Manager を利用し、 Boot Device Order (起動デバイス順序) を設定します。この起動デバイス順序は Hard Disk (ハードディスク) から 始まっていなければならず 、それ以外の設定では システムディスクが擬似仮想化されてしまい、起動できなくなってしまいます。 変更を行なったら変更点を確認して Apply を押します。 それ以外を押してしまうと、設定が保存されません。

  3. VM ゲスト を再起動します。いったん起動したら、スタートメニューから ファイル名を指定して実行 を選び、 devmgmt.msc と入力して Enter を押すなどして、 デバイスマネージャ を開きます。

  4. その他のデバイス+SCSI コントローラ の項目を開きます。 すると、表示されている項目に感嘆符のマークが付けられ、問題があることを 示しているものがあります。その項目をマウスの右ボタンで押して、 ドライバソフトウェアの更新 を選択します。

  5. ドライバをインストールします。 コンピュータを参照してドライバ ソフトウェアを検索します を選んでから、 参照 ボタンを押し、お使いのオペレーティングシステムとアーキテクチャに適合した ドライバ CD のディレクトリを選択します (例: viostor\install\Win7\x86\) 。あとはセキュリティ 警告が表示されますので、そのまま インストール を押します。

  6. ドライバのインストールが完了すると、 デバイスマネージャ 内の 記憶域コントローラ に、新しい Novell VirtIO SCSI Adapater が表示されるようになります。 また、 ディスクドライブ の欄には、一時的に設定した 擬似仮想化ディスクが表示されるようになります。このディスクドライブは Novell VirtIO SCSI Disk Device という名称で 表示されます。

  7. Windows 7 VM ゲスト をシャットダウンし、一時的に設定していた擬似仮想化 ディスクを削除します。

  8. 仮想ハードディスクの種類を変更することは、現時点の Virtual Machine Manager ではサポート していません。そのため、 XML 設定ファイルを直接編集する必要があります。 端末を開いて下記のコマンドを入力してください (なお 名前 の欄には、お使いの Windows 7 VM ゲスト の名前を指定します) 。 リモートのホストから作業を行なっているような場合は、 -c オプションを利用して接続 URL を指定する必要も あります。

    virsh edit 名前

    するとエディタ (既定では vi) が表示されます。 下記のようなブロックを探してください:

    <disk type='block' device='disk'>
      <driver name='qemu' type='raw'/>
      <source file='/var/lib/libvirt/images/win7.raw'/>
      <target dev='hda' bus='ide'/>
      <address type='drive' controller='0' bus='0' unit='0'/>
    </disk>

    まずは <address> タグを削除します。次に <target> タグの属性を dev='vda' および bus='virtio' に書き換えます:

    <disk type='block' device='disk'>
      <driver name='qemu' type='raw'/>
      <source dev='/dev/Virtual/win7'/>
      <target dev='vda' bus='virtio'/>
    </disk>

    ファイルを保存します。保存が成功すると、 Domain 名前 XML configuration edited. というメッセージが表示されます。何らかのエラーが表示された場合 (たとえば不正な XML が書き込まれたなど) は、設定は変更されません。

  9. VM ゲスト を再起動します。 Virtual Machine Manager 経由で起動している場合は、起動を 行なう前に Details (詳細) 画面に変更後のハードウエア 設定が表示されていることを確認します (なお、 virsh で設定の変更を行なってから、画面に表示されるまでに数秒程度の時間を 必要とします) 。変更後の設定が表示されない場合は、 Virtual Machine Manager が直近で 使用していた設定で上書きされてしまいます。

    これですべての作業は終わりです。お使いの Windows 7 VM ゲスト で 擬似仮想化システムディスクを使用するようになっています。

擬似仮想化ネットワークドライバのインストールは、ストレージドライバの インストールに似ています:

手順A.2 Windows 7 に対する擬似仮想化ネットワークドライバのインストール

  1. Windows 7 VM ゲスト をシャットダウンし、 Virtual Machine Manager を利用して virtio 形式のネットワークアダプタ (擬似仮想化ネットワークアダプタ) を設定します。 追加のハードディスクを設定します。これはドライバをインストールする際に ネットワークの接続を維持するためのものです。

  2. VM ゲスト を再起動し、上記と同じ手順で デバイスマネージャ からドライバをインストールします。なお、新しいネットワークアダプタは その他のデバイス+イーサネットアダプタ 内に表示されます。 ドライバのインストールが完了すると、 デバイスマネージャ 内の ネットワークアダプタ に、新しい Novell VirtIO Ethernet Adapter が表示されるようになります。

  3. Windows 7 VM ゲスト をシャットダウンし、 Virtual Machine Manager を利用して元々設定されていた 擬似仮想化でないほうのネットワークアダプタを設定から削除します。 これでゲストを再度起動すると、擬似仮想化ネットワークアダプタを利用する ことができるようになります。

A.1.1.2. その他のバージョンの Windows (XP, Server 2003/2008, Vista)

その他のバージョンの Windows に対して擬似仮想化ドライバをインストール する作業は、 Windows 7 の場合 (A.1.1.1項 「Windows 7」) にとても似ています。なお、デバイスは デバイスマネージャ から手作業で開始したりはしないでください。 Windows ではドライバの インストールを促すメッセージを表示する仕組みが備わっているためです。 また、ドライバインストールの際には手動でドライバの場所を指定して ください。

[Warning]Windows Vista に対する擬似仮想化ストレージドライバ

現時点では、 Windows Vista 向けの擬似仮想化ストレージドライバは、 擬似仮想化ディスクから起動する機能に対応していません。擬似仮想化ディスクは、 起動ディスク以外での使用のみをサポートしています。

[Note]Windows XP に対する擬似仮想化ドライバの非推奨について

Windows XP 上での擬似仮想化ストレージドライバの使用は、性能面での利点が 得られないばかりか、場合によっては性能が悪化してしまう場合があります。 そのため、この環境では擬似仮想化ドライバを使用することは お勧めしません 。技術的な詳細については、 http://www.mail-archive.com/kvm@vger.kernel.org/msg22834.html をお読みください。

また、上記の非推奨は Windows XP 上の擬似仮想化 ストレージ ドライバのみを対象としたものです。その他のバージョンの Windows では 良好な性能を得ることができますし、 Windows XP 上の擬似仮想化ネットワーク ドライバについても利用する価値があります。

A.2. x509 クライアント/サーバ証明書の生成

x509 のサーバ/クライアント証明書を利用するには、証明機関 (CA) に対して 依頼を行ない、それらを発行してもらう必要があります。 libvirt で利用する場合は、独自の 証明機関を構築しておくことをお勧めします。

  1. まずは 項 「ルート CA の作成」 (第16章 X.509 証明書の管理, ↑セキュリティガイド) の手順に 従い、証明機関を構築します。

  2. 次に 項 「ユーザ証明書の作成と失効化」 (第16章 X.509 証明書の管理, ↑セキュリティガイド) の手順に 従い、サーバ/クライアントの各証明書を作成します。サーバ証明書のコモン ネーム (CN) は完全修飾ドメイン名 (FQDN) でなければなりませんが、 クライアントのコモンネームは自由に設定することができます。その他の 項目については、 YaST が提示する既定値を設定してください。

    作成したサーバ/クライアント証明書を、一時的な場所 (たとえば /tmp/x509/ など) にエクスポートします。具体的には 下記の手順を実施します:

    1. 証明書 タブで証明書を選択します。

    2. エクスポート+ファイルにエクスポート+証明書と鍵を暗号化せずに PEM 形式で を選択し、 証明書のパスワード を入力します。 また、 ファイル名 の欄には保存先のファイル名をフルパスで指定します。 たとえば /tmp/x509/server.pem/tmp/x509/client.pem のようになります。

    3. 端末を開いて証明書を保存したディレクトリに移動し、下記のコマンドを実行して 証明書と鍵を別々のファイルに分離します (下記の例ではサーバの証明書と鍵を 分離しています):

      csplit -z -f s_ server.pem '/-----BEGIN/' '{1}'
             mv s_00 servercert.pem
             mv s_01 serverkey.pem
    4. 上記の手順を、それぞれエクスポートしたクライアント/サーバ証明書に対して 繰り返し実施します。

  3. 最後に証明機関 (CA) の証明書をエクスポートします。下記の手順で行ないます:

    1. 説明 タブに切り替えます。

    2. 詳細設定+ファイルにエクスポート+証明書のみを PEM 形式で を選択し、 ファイル名 の欄に保存先のファイル名をフルパスで 指定します。たとえば /tmp/x509/cacert.pem のようになります。


openSUSE KVM を利用した仮想化 13.1