Top Banner
Fedora 13 仮想化ガイド Fedora における仮想化ガイドの決定版 Curran Christopher [FAMILY Given]
258

仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

Oct 18, 2019

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

Fedora 13

仮想化ガイド

Fedora における仮想化ガイドの決定版

Curran Christopher [FAMILY Given]

Page 2: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

仮想化ガイド

Fedora 13 仮想化ガイドFedora における仮想化ガイドの決定版エディッション 0

著者 Curran Christopher [FAMILYGiven]

[email protected]

Copyright © 2008,2009,2010 Red Hat, Inc.

The text of and illustrations in this document are licensed by Red Hat under a Creative CommonsAttribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA isavailable at http://creativecommons.org/licenses/by-sa/3.0/. The original authors of this document,and Red Hat, designate the Fedora Project as the "Attribution Party" for purposes of CC-BY-SA.In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you mustprovide the URL for the original version.

Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert,Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.

Red Hat, Red Hat Enterprise Linux, the Shadowman logo, JBoss, MetaMatrix, Fedora, the InfinityLogo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and othercountries.

For guidelines on the permitted uses of the Fedora trademarks, refer to https://fedoraproject.org/wiki/Legal:Trademark_guidelines.

Linux® is the registered trademark of Linus Torvalds in the United States and other countries.

Java® is a registered trademark of Oracle and/or its affiliates.

XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the UnitedStates and/or other countries.

MySQL® is a registered trademark of MySQL AB in the United States, the European Union andother countries.

All other trademarks are the property of their respective owners.

Fedora 仮想化ガイドには、Fedora に含まれる仮想化技術のインストール、設定、管理、トラブルシューティングに関する情報が含まれます。

注記:このドキュメントは、まだ執筆中であり、大幅に変更すること変更される可能性があり、プレビューとして本書を提供しています。本書の内容や説明は完全とみなすべきではなく、注意して利用してください。

Page 3: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

iii

序文 vii1. About this book ........................................................................................................... vii2. 表記方法 ....................................................................................................................... vii

2.1. 印刷における表記方法 .......................................................................................... vii2.2. 引用における表記方法 ........................................................................................... ix2.3. 注記および警告 .................................................................................................... ix

3. フィードバック ................................................................................................................... x

I. 要件と制限 1

1. システム要件 3

2. KVM 互換性 5

3. 仮想化の制限 73.1. 仮想化における一般的な制限 ................................................................................. 73.2. KVM の制限 ........................................................................................................ 73.3. アプリケーションの制限 .......................................................................................... 8

II. インストール 11

4. 仮想化パッケージのインストール 134.1. 新規 Fedora インストールでの KVM のインストール ................................................ 134.2. 既存の Fedora システムへの KVM パッケージのインストール .................................... 15

5. 仮想ゲストのインストールの概要 175.1. Virtualized guest prerequesites and considerations .......................................... 175.2. virt-install を用いたゲストの作成 .......................................................................... 175.3. virt-manager を用いたゲストの作成 ...................................................................... 185.4. PXE を用いたゲストのインストール ........................................................................ 30

6. Red Hat Enterprise Linux 5 の完全仮想化ゲストとしてのインストール 37

7. 完全仮想化ゲストとしての Windows XP のインストール 47

8. 完全仮想化ゲストとしての Windows Server 2003 のインストール 65

9. 完全仮想化ゲストとしての Windows Server 2008 のインストール 69

III. 設定 81

10. Virtualized storage devices 8310.1. 仮想フロッピーディスクコントローラーの作成方法 ................................................... 8310.2. ゲストへのストレージデバイスの追加 .................................................................... 8410.3. Configuring persistent storage in Fedora ........................................................ 8710.4. ゲストへの仮想 CD-ROM や DVD デバイスの追加 ............................................... 89

11. ネットワーク設定 9111.1. libvirt を用いた NAT (Network address translation) .......................................... 9111.2. libvirt を使用したブリッジネットワーク ................................................................... 92

12. KVM 準仮想化ドライバー 9512.1. KVM Windows 準仮想化ドライバーのインストール ................................................ 9512.2. 仮想フロッピーディスクでのドライバーのインストール ............................................. 10612.3. 既存のデバイスに KVM 準仮想化ドライバーを使用する ........................................ 10712.4. 新規デバイス用に KVM 準仮想化ドライバーを使用する ........................................ 107

13. PCI パススルー 11113.1. virsh での PCI デバイスの追加 ......................................................................... 112

Page 4: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

仮想化ガイド

iv

13.2. virt-manager を用いた PCI デバイスの追加 ...................................................... 11413.3. virt-install で用いる PCI パススルー ................................................................. 118

14. SR-IOV 12114.1. はじめに ........................................................................................................ 12114.2. SR-IOV の使用 .............................................................................................. 12214.3. SR-IOV のトラブルシューティング ...................................................................... 125

15. USB デバイスパススルー 127

16. N_Port ID Virtualization (NPIV) 129

17. KVM ゲストのタイミング管理 131

IV. 管理 135

18. サーバーのベストプラクティス 137

19. 仮想化のためのセキュリティ 13919.1. ストレージのセキュリティ問題 ............................................................................ 13919.2. SELinux と仮想化 ........................................................................................... 13919.3. SELinux ........................................................................................................ 14119.4. 仮想ファイアウォールの情報 .............................................................................. 141

20. KVM ライブマイグレーション 14320.1. ライブマイグレーションの要件 ............................................................................ 14320.2. 共有ストレージサンプル:簡単な移行のための NFS .............................................. 14420.3. virsh を使用した KVM ライブマイグレーション ..................................................... 14520.4. virt-manager を用いたマイグレーション ............................................................. 146

21. 仮想ゲストのリモート管理 15721.1. SSH を用いたリモート管理 ............................................................................... 15721.2. TLS と SSL を用いたリモート管理 ..................................................................... 15821.3. トランスポートモード ........................................................................................ 159

22. KSM 163

23. 高度な仮想化環境の管理 16523.1. ゲストのスケジューリング .................................................................................. 16523.2. 高度なメモリー管理 ......................................................................................... 16523.3. ゲストのブロック I/O の減速 ............................................................................. 16523.4. ゲストのネットワーク I/O の減速 ....................................................................... 165

24. Xen から KVM へのマイグレーション 16724.1. Xen から KVM ............................................................................................... 16724.2. KVM から KVM への古いバージョン .................................................................. 167

25. さまざまな管理作業 16925.1. ゲストの自動起動 ............................................................................................ 16925.2. qemu-img の使用 .......................................................................................... 16925.3. KVM でのオーバーコミット ............................................................................... 17025.4. 仮想化拡張の確認 .......................................................................................... 17225.5. Accessing data from a guest disk image ....................................................... 17325.6. KVM プロセッサーアフィニティの設定 ................................................................. 17525.7. 一意な新規 MAC アドレスの生成 ...................................................................... 17925.8. Very Secure ftpd .......................................................................................... 18025.9. Configuring LUN Persistence ........................................................................ 18125.10. ゲストに対する SMART ディスクモニタリングの無効化 ........................................ 18225.11. VNC サーバーの設定 .................................................................................... 182

Page 5: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

v

V. 仮想ストレージの話題 183

26. Using shared storage with virtual disk images 18526.1. Using iSCSI for storing virtual disk images .................................................... 18526.2. Using NFS for storing virtual disk images ...................................................... 18526.3. Using GFS2 for storing virtual disk images .................................................... 18526.4. Storage Pools ............................................................................................... 185

26.4.1. Configuring storage devices for pools ................................................ 18526.4.2. Mapping virtualized guests to storage pools ...................................... 185

VI. 仮想化の参考ガイド 187

27. 仮想化のツール 189

28. Managing guests with virsh 191

29. Managing guests with the Virtual Machine Manager (virt-manager) 20129.1. 接続の追加ウィンドウ ....................................................................................... 20129.2. 仮想マシンマネージャーのメインウィンドウ ............................................................ 20229.3. ゲストの概要のタブ ......................................................................................... 20229.4. 仮想マシングラフィカルコンソール ...................................................................... 20329.5. virt-manager の開始 ...................................................................................... 20429.6. 保存したマシンの復元 ...................................................................................... 20529.7. ゲストの詳細表示 ............................................................................................ 20729.8. ステータスの監視 ............................................................................................ 21129.9. ゲスト識別子の表示 ........................................................................................ 21229.10. ゲストの状態の表示 ...................................................................................... 21329.11. 仮想 CPU の表示 ......................................................................................... 21429.12. CPU 使用量の表示 ....................................................................................... 21529.13. メモリー使用量の表示 .................................................................................... 21629.14. 仮想ネットワークの管理 .................................................................................. 21729.15. 仮想ネットワークの作成 .................................................................................. 219

30. libvirt 設定の参考資料 227

31. カスタム libvirt スクリプトの作成 22931.1. virsh とともに XML 設定ファイルの使用 ............................................................. 229

VII. トラブルシューティング 231

32. トラブルシューティング 23332.1. デバッグとトラブルシューティングのツール ........................................................... 23332.2. ログファイル .................................................................................................... 23432.3. シリアルコンソールを用いたトラブルシューティング ............................................... 23432.4. 仮想化ログファイル .......................................................................................... 23532.5. ループデバイスのエラー ................................................................................... 23532.6. BIOS における Intel VT と AMD-V の仮想化ハードウェア拡張の有効化 ................. 23532.7. KVM ネットワークのパフォーマンス ..................................................................... 236

A. その他のリソース 239A.1. オンラインリソース ..................................................................................................... 239A.2. インストール済みドキュメント ....................................................................................... 239

用語集 241

B. 改訂履歴 245

C. 奥付 247

Page 6: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

vi

Page 7: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

vii

序文このドキュメントは Fedora 仮想化ガイドです。ガイドは Fedora に含まれる仮想化プロダクトの使用と管理に関するすべての観点を取り扱っています。

1. About this bookThis book is divided into 7 parts:• System Requirements

• Installation

• Configuration

• Administration

• Reference

• Tips and Tricks

• Troubleshooting

Key terms and concepts used throughout this book are covered in the glossary, 用用用.

このドキュメントは Fedora に対する仮想化の話題を取り扱っています。Kernel-based Virtual Machine ハイパーバイザーが Fedora で提供されています。KVM ハイパーバイザーは、用用用用用をサポートしています。

2. 表記方法本ガイドは特定の単語や語句を強調したり、 記載内容の特定部分に注意を引かせる目的で次のような表記方法を使用しています。

PDF版 および印刷版では、 Liberation Fonts1 セットから採用した書体を使用しています。 ご使用のシステムに Liberation Fonts セットがインストールされている場合、 HTML 版でもこのセットが使用されます。 インストールされていない場合は代替として同等の書体が表示されます。 注記: Red Hat Enterprise Linux 5 およびそれ以降のバージョンにはデフォルトで Liberation Fonts セットが収納されます。

2.1. 印刷における表記方法特定の単語や語句に注意を引く目的で 4 種類の表記方法を使用しています。 その表記方法および適用される状況は以下の通りです。

等幅の太字

シェルコマンド、ファイル名、パスなどシステムへの入力を強調するために使用しています。またキー配列やキーの組み合わせを強調するのにも使用しています。 例えば、

現在作業中のディレクトリ内のファイル my_next_bestselling_novel の内容を表示させるには、 シェルプロンプトで cat my_next_bestselling_novel コマンドを入力してから Enterを押してそのコマンドを実行します。

上記にはファイル名、シェルコマンド、キーが含まれています。 すべて等幅の太字で表されているため文中内で見分けやすくなっています。

1 https://fedorahosted.org/liberation-fonts/

Page 8: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

序文

viii

キーが 1 つの場合と複数のキーの組み合わせになる場合を区別するため、 その組み合わせを構成するキー同士をハイフンでつないでいます。 例えば、

Enter を押してコマンドを実行します。

1 番目の仮想ターミナルに切り替えるは、 Ctrl+Alt+F2 を押します。 X-Windows セッションに戻るには、 Ctrl+Alt+F1 を押します。

最初の段落では押すべき 1 つのキーを特定して強調しています。 次の段落では同時に押すべき 3 つのキーの組み合わせが 2 種類ありそれぞれ強調されています。

ソースコードの説明では 1 段落内で提示されるクラス名、 メソッド、 関数、 変数名、 戻り値を上記のように 等幅の太字 で表示します。 例えば、

ファイル関連のクラス群はファイルシステムに対しては filesystem、 ファイルには file、 ディレクトリには dir をそれぞれ含みます。 各クラスは個別に関連する権限セットを持っています。

プロポーショナルの太字

アプリケーション名、 ダイアログボックスのテキスト、ラベル付きボタン、 チェックボックスとラジオボタンのラベル、 メニュータイトルとサブメニュータイトルなどシステム上で見られる単語や語句を表します。 例えば、

メインメニューバーから システム > 個人設定 > マウス の順で選択し マウスの個人設定 を起動します。 ボタン タブ内で 左ききのマウス チェックボックスをクリックしてから 閉じる をクリックしマウスの主要ボタンを左から右に切り替えます (マウスを左ききの人が使用するのに適した設定にする)。

gedit ファイルに特殊な文字を挿入する場合は、 メインメニューバーから アプリケーション >アクセサリ > 文字マップ の順で選択します。 次に 文字マップ メニューバーから 検索 > 検索… と選択して 検索 フィールド内にその文字名を入力し 次 をクリックします。 探している文字が 文字表 内で強調表示されます。 この強調表示された文字をダブルクリックすると コピーするテキスト フィールド内に置かれるので次に コピー ボタンをクリックします。 ここでドキュメントに戻り gedit メニューバーから 編集 > 貼り付け を選択します。

上記には、 アプリケーション名、 システム全体のメニュー名と項目、 アプリケーション固有のメニュー名、 GUIインタフェースで見られるボタンやテキストがあります。 すべてプロポーショナルの太字で表示されているため文中内で見分けやすくなっています。

等等等等等等等等等等 または 等等等等等等等等等等等等等等等等

等幅の太字やプロポーショナルの太字はいずれであっても斜体の場合は置換可能なテキストか変化するテキストを示します。 斜体は記載されている通りには入力しないテキスト、あるいは状況に応じて変化する出力テキストを表します。 例えば、

ssh を使用してリモートマシンに接続するには、 シェルプロンプトで [email protected] と入力します。 リモートマシンが example.com であり、 そのマシンで使用しているユーザー名が john なら ssh [email protected] と入力します。

mount -o remount file-system コマンドは指定したファイルシステムを再マウントします。 例えば、 /home ファイルシステムを再マウントするコマンドは mount -o remount /homeになります。

現在インストールされているパッケージのバージョンを表示するには、 rpm -q package コマンドを使用します。 結果として次を返してきます、 package-version-release。

Page 9: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

引用における表記方法

ix

上記の太字斜体の単語 — username、 domain.name、 file-system、 package、 version、 release に注目してください。 いずれもコマンドを発行するときに入力するテキスト用のプレースホルダーかシステムにより出力されるテキスト用のプレースホルダーになっています。

タイトル表示のような標準的な使用の他、 斜体は新しい重要な用語が初めて出現する場合にも使用されます。 例えば、

Publican は DocBook の発行システムです。

2.2. 引用における表記方法端末の出力とソースコード一覧は、視覚的に周囲の文から区別されています。

端末に送信される出力は mono-spaced roman (等幅の Roman) にセットされるので以下のように表示されます。

books Desktop documentation drafts mss photos stuff svnbooks_tests Desktop1 downloads images notes scripts svgs

ソースコードの一覧も mono-spaced roman (等幅の Roman) でセットされますが、以下のように強調表示されます。

package org.jboss.book.jca.ex1;

import javax.naming.InitialContext;

public class ExClient{ public static void main(String args[]) throws Exception { InitialContext iniCtx = new InitialContext(); Object ref = iniCtx.lookup("EchoBean"); EchoHome home = (EchoHome) ref; Echo echo = home.create();

System.out.println("Created Echo");

System.out.println("Echo.echo('Hello') = " + echo.echo("Hello")); }}

2.3. 注記および警告情報が見過ごされないよう 3 種類の視覚的なスタイルを使用して注意を引いています。

注記

注記は説明している部分に対するヒントや近道あるいは代替となる手段などになります。注記を無視しても悪影響はありませんが知っておくと便利なコツを見逃すことになるかもしれません。

Page 10: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

序文

x

重要

重要ボックスは見逃しやすい事項を詳細に説明しています。現在のセッションにのみ適用される設定上の変更点、 更新を適用する前に再起動が必要なサービスなどがあります。重要ボックスを無視してもデータを喪失するような結果にはなりませんがイライラ感やフラストレーションが生じる可能性があります。

警告

警告は無視しないでください。警告を無視するとデータを喪失する可能性が非常に高くなります。

3. フィードバック

本ガイドに誤植を見つけられた場合や本ガイドの改善案をお持ちの場合はぜひお知らせください。 Bugzillahttp://bugzilla.redhat.com/bugzilla/ にて、 Product には Fedora Documentation. を選びレポートの提出をお願いいたします。

バグレポートを提出される場合は、 そのガイドの識別子となる virtualization-guide を必ず明記して頂くようお願いします。

ドキュメントに関する改善のご意見についてはできるだけ具体的にお願いいたします。 エラーを発見された場合は、 セクション番号および該当部分の前後の文章も含めてご報告頂くと照合が容易になります。

Page 11: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

パート I. 要件と制限

システム要件、サポートの制約およびFedora を用いた仮想化に対する制限

これらの章は、システム要件、サポートの制約、および Fedora における仮想化の制限の概要を説明します。

Page 12: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13
Page 13: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

3

システム要件本章は、Fedora において仮想化を正しく実行するためのシステム要件を示します。仮想化は Fedora において利用できます。

Kernel-based Virtual Machine ハイパーバイザーは Fedora で提供されています。

仮想化パッケージのインストールに関する情報は、4用用用用用用用用用用用用用用用用を読んでください。

最小システム要件• 6GBの空きディスク容量

• 2GBのRAM

推奨システム要件• 6GB に加えて、ゲストごとにゲストオペレーティングシステムにより推奨される必要ディスク容量。 ほとんどの

オペレーティングシステムには、6GB 以上のディスク容量が推奨されます。

• 各仮想 CPU に対して1つのプロセッサーコアもしくはハイパースレッド、およびハイパーバイザーのために1つ

• 2GB の RAM に加えて、仮想ゲスト用の追加 RAM

KVM オーバーコミット

KVM は仮想ゲストに対して物理リソースをオーバーコミットできます。リソースのオーバーコミットとは、ゲストにより使用される仮想 RAM とプロセッサーコアの合計が、ホストにある物理 RAM とプロセッサーコアを超えることができるということです。KVM で安全にリソースをオーバーコミットすることに関しては、用KVM 用用用用用用用用用用用を参照してください。

KVM の要件KVM ハイパーバイザーは以下を必要とします:

• Intel VT および Intel 64 拡張を持つ Intel プロセッサー、もしくは

• AMD-V および AMD64 拡張を持つ AMD プロセッサー

プロセッサーが仮想化拡張に対応しているかどうかを確認するには、用用用用用用用用用用を参照してください。

ストレージのサポート動作するゲストストレージの方式は以下のとおりです:

• ローカルストレージ上のファイル、

• 物理ディスクのパーティション、

• ローカル接続している物理 LUN、

• LVM パーティション、

• iSCSI, and

• ファイバーチャネルベースの LUN

Page 14: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

第1章 システム要件

4

ファイルベースのゲストストレージ

ファイルベースのゲストイメージは、/var/lib/libvirt/images/ に保存されるべきです。他のディレクトリを使用するならば、SELinux ポリシーにそのディレクトリを追加しなければいけません。詳細は用SELinux用用用用用を参照してください。

Page 15: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

5

KVM 互換性KVM ハイパーバイザーは、Intel-VT または AMD-V 仮想化拡張を持つプロセッサーを必要とします。

このリストは完全ではないことに注意してください。うまく動作したすべてをバグで提出することで、私たちが拡張するのを手助けください。

プロセッサーが仮想化拡張をサポートしているかどうかを確認するため、および、仮想化拡張が無効な場合に、それらを有効にすることに関する情報のために、用用用用用用用用用用を参照してください。

Fedora kvm パッケージは 256 プロセッサーコアに制限されています。

動作するはずのゲストオペレーティングシステム 動作レベルBeOS 動作済み

Red Hat Enterprise Linux 3 x86 準仮想化ドライバーを用いた最適化

Red Hat Enterprise Linux 4 x86 準仮想化ドライバーを用いた最適化

Red Hat Enterprise Linux 4AMD 64 および Intel 64

準仮想化ドライバーを用いた最適化

Red Hat Enterprise Linux 5 x86 準仮想化ドライバーを用いた最適化

Red Hat Enterprise Linux 5AMD 64 および Intel 64

準仮想化ドライバーを用いた最適化

Red Hat Enterprise Linux 6 x86 準仮想化ドライバーを用いた最適化

Red Hat Enterprise Linux 6AMD 64 および Intel 64

準仮想化ドライバーを用いた最適化

Fedora 12 x86 準仮想化ドライバーを用いた最適化

Fedora 12 AMD 64 および Intel64

準仮想化ドライバーを用いた最適化

Windows Server 2003 R2 32-Bit

準仮想化ドライバーを用いた最適化

Windows Server 2003 R2 64-Bit

準仮想化ドライバーを用いた最適化

Windows Server 2003 ServicePack 2 32-Bit

準仮想化ドライバーを用いた最適化

Windows Server 2003 ServicePack 2 64-Bit

準仮想化ドライバーを用いた最適化

Windows XP 32-Bit 準仮想化ドライバーを用いた最適化

Windows Vista 32-Bit 動作するはず

Windows Vista 64-Bit 動作するはず

Windows Server 2008 32-Bit 準仮想化ドライバーを用いた最適化

Windows Server 2008 64-Bit 準仮想化ドライバーを用いた最適化

Windows 7 32-Bit 準仮想化ドライバーを用いた最適化

Windows 7 64-Bit 準仮想化ドライバーを用いた最適化

Open Solaris 10 動作済み

Open Solaris 11 動作済み

Page 16: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

6

Page 17: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

7

仮想化の制限本章は、Fedora における仮想化パッケージの追加の制限を取り扱います。

3.1. 仮想化における一般的な制限

他の制限仮想化に影響のある他の制限と問題すべての一覧は、Fedora 13 用用用用用用用を読んでください。Fedora 13Release Notes は、新機能、基地の問題、および更新または発見された制限を取り扱います。

配備前のテスト重たい I/O アプリケーションを配備する前に、最大の予想負荷負荷と仮想ネットワークのストレスをテストすべきです。I/O 使用量が増加した仮想化により引き起こされるパフォーマンスが低下するため、ストレステストは重要です。

3.2. KVM の制限以下の制限が KVM ハイパーバイザーに適用されます:

Constant TSC ビットConstant Time Stamp Counter のないシステムは、追加の設定が必要です。Constant Time StampCounter を持つかどうかを確認すること、および関連するすべての問題を修正するための設定手順についての詳細は、17用KVM 用用用用用用用用用用用を参照してください。

メモリーオーバーコミットKVM は、メモリーオーバーコミットをサポートし、スワップにゲストのメモリーを保存することができます。頻繁にスワップされると、ゲストの動作が遅くなります。KSM が使われるとき、スワップ容量はオーバーコミット率の容量です。

CPU オーバーコミット物理プロセッサーコアあたり10仮想 CPU より多く持つことは推奨されません。物理プロセッサーコアの数を上回る量のオーバーコミットされた仮想 CPU は、特定の仮想ゲストに問題を引き起こすかもしれません。

CPU のオーバーコミットは、いくつかのリスクがあり、不安定になる可能性があります。CPU のオーバーコミットに関するヒントと推奨は、用KVM 用用用用用用用用用用用を参照してください。

仮想 SCSI デバイスSCSI エミュレーションは、16仮想(エミュレート)SCSI デバイスに制限されます。

仮想 IDE デバイスKVM はゲストごとに最大4つの仮想(エミュレート)IDE デバイスに制限されています。

準仮想化デバイス準仮想化デバイスは(virtioドライバを使用する)は、PCI デバイスです。今のところ、ゲストは最大 32PCIデバイスに制限されています。いくつかの PCI デバイスは、ゲストの実行に重要であり、これらのデバイスは削除できません。デフォルトで、必要なデバイスは以下のようなデバイスが必須です:

• ホストブリッジ、

• ISA ブリッジと USB ブリッジ(USB と ISA のブリッジは同じデバイスです)、

• グラフィックカード(Cirrus か qxl のドライバーを使用)、および

Page 18: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

第3章 仮想化の制限

8

• メモリーバルーンデバイス。

ゲスト用に利用可能な最大32の PCI デバイスの内、4つは削除できません。このことは、ゲストごとに28のPCI スロットのみが追加デバイス用に利用できることを意味します。それぞれの準仮想化ネットワークやブロックデバイスがスロットを1つ使用します。それぞれのゲストは、準仮想化ネットワーク、準仮想化ディスクデバイス、もしくは VT-d を用いた他の PCI デバイスの組み合わせから 28までの追加デバイスを使用できます。

マイグレーションの制限ライブマイグレーションは、同じ製造元からのCPU(つまり、Intel から Intel、または AMD から AMD)とともに利用可能です。

No eXecution (NX) ビットは、ライブマイグレーションのために、両方の CPU に対しても、オンまたはオフに設定されていなければなりません。

ストレージの制限ホストは、fstabファイル、initrd ファイルもしくはカーネルコマンドラインにより使用されるものにおいて、ファイルシステムを識別するためにディスクラベルを使用すべきではありません。非特権ユーザが(とくに仮想ゲスト)パーティション全体または LVM ボリュームへの書き込みアクセスできるならば、ホストシステムは危険にさらされるでしょう。

ゲストは、ディスクやブロックデバイス全体への書き込みアクセス権を与えるべきではありません(たとえば、/dev/sdb)。ブロックデバイスへのアクセス権を持つ仮想ゲストは、システムにある他のブロックデバイスにアクセスできるかもしれず、ホストを危険にさらすために、使われているボリュームラベルを修正するかもしれません。この問題を避けるために、パーティション(たとえば、/dev/sdb1)または LVM ボリュームを使用します。

PCI パススルーの制限PCI パススルー(PCI デバイスをゲストへ接続すること)は、AMD IOMMU または Intel VT-d 技術を持つシステムにおいて動作します。

3.3. アプリケーションの制限特定の種類のアプリケーションに対して仮想化が不適切になるような、仮想化の側面がいくつか存在します。

高い I/O スループット要求を持つアプリケーションは、完全仮想化に対して準仮想化ドライバを使用すべきです。準仮想化ドライバが無いと、特定のアプリケーションは高い I/O 負荷において不安定になるかもしれません。

以下のアプリケーションは、それらの高い I/O 要求の理由から避けるべきです:

• kdump サーバー

• netdump サーバー

You should carefully evaluate databasing applications before running them on a virtualizedguest. Databases generally use network and storage I/O devices intensively. These applicationsmay not be suitable for a fully virtualized environment. Consider para-virtualization or para-virtualized drivers for increased I/O performance. Refer to 12用KVM 用用用用用用用用用 for moreinformation on the para-virtualized drivers for fully virtualized guests.

Other applications and tools which heavily utilize I/O or require real-time performance shouldbe evaluated carefully. Using full virtualization with the para-virtualized drivers (refer to 12用KVM用用用用用用用用用) or para-virtualization results in better performance with I/O intensive applications.Applications still suffer a small performance loss from running in virtualized environments. Theperformance benefits of virtualization through consolidating to newer and faster hardware should

Page 19: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

アプリケーションの制限

9

be evaluated against the potential application performance issues associated with using fullyvirtualized hardware.

Page 20: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

10

Page 21: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

パート II. インストール

仮想化のインストールの話題これらの章は、Fedora を用いてホストをセットアップし、仮想ゲストをインストールすることについて取り扱います。仮想ゲストオペレーティングシステムのインストールを確実に成功させるために、これらの章を注意深く読むことを推奨します。

Page 22: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13
Page 23: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

13

仮想化パッケージのインストールBefore you can use virtualization, the virtualization packages must be installed on your computer.Virtualization packages can be installed either during the installation sequence or afterinstallation using the yum command and the Red Hat Network (RHN).

KVM ハイパーバイザーは、kvm カーネルモジュールを持つデフォルトの Fedora カーネルを使用します。

4.1. 新規 Fedora インストールでの KVM のインストールこのセクションは、新規 Fedora インストールの一部として、仮想化ツールと KVM パッケージをインストールすることについて取り扱います。

インストールのヘルプが必要ですか?

Fedora 13 用用用用用用用用用(http://docs.fedoraproject.orgから入手可能)が、Fedora のインストールに関する詳細を取り扱います。

1. Fedora インストール CD-ROM, DVD または PXE から対話的に Fedora インストールを開始します。

2. 仮想化および他の高度なプラットフォームパッケージへのアクセスを受け取るために、プロンプトされたときに有効なインストール番号を入力しなければいけません。

3. パッケージ選択のステップまで他のステップを完了します。

仮想化パッケージグループを選択して、今すぐカスタマイズするラジオボタンを選択します。

4. KVMパッケージグループを選択します。仮想化パッケージグループを選択解除します。これでインストールのために、KVM ハイパーバイザー、virt-manager、libvirt および virt-viewer を選択することになります。

Page 24: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

第4章 仮想化パッケージのインストール

14

5. パッケージのカスタマイズ(必要に応じて)他の仮想化パッケージが必要な場合は、仮想化グループをカスタマイズします。

閉じるボタンを押して、インストールを続けるために進むボタンを押します。

Page 25: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

既存の Fedora システムへの KVM パッケージのインストール

15

Kickstart ファイルを用いた KVM パッケージのインストールこのセクションは、KVM ハイパーバイザーのパッケージを持つ Fedora をインストールするために、Kickstartファイルを使用する方法について記載しています。Kickstart ファイルは、個々のシステムそれぞれにユーザが手動でインストールすることなく、大規模で、自動化されたインストールを可能にします。このセクションにある手順は、仮想化パッケージを持つ Fedora をインストールするために、Kickstart ファイルを作成し、使用することについて支援します。

使用する Kickstart ファイルの %packages セクションに、以下のパッケージグループを追加します:

%packages@kvm

Fedora 13 用用用用用用用用用(http://docs.fedoraproject.orgから入手可能)に、Kickstart ファイルに関する詳細な情報があります。

4.2. 既存の Fedora システムへの KVM パッケージのインストールこのセクションは、稼働中の Fedora もしくはより新しいシステムに、KVM ハイパーバイザーをインストールするための手順を記載しています。

yum を用いた KVM ハイパーバイザのインストールFedora において仮想化を使用するために、kvm パッケージが必要となります。kvm パッケージは、デフォルトのFedora カーネルに KVM ハイパーバイザを提供する KVM カーネルを含みます。

kvm パッケージをインストールために、以下を実行します:

# yum install kvm

ここで、追加の仮想化管理パッケージをインストールします。

推奨される仮想化パッケージ:python-virtinst

仮想マシンの作成用に virt-install コマンドを提供します。

libvirtlibvirt is a cross platform Application Programmers Interface (API) for interacting withhypervisors and host systems. libvirt manages systems and controls the hypervisor. The libvirtpackage includes the virsh command line tool to manage and control virtualized guests andhypervisors from the command line or a special virtualization shell.

libvirt-pythonlibvirt-python パッケージは、libvirt API により提供されるインターフェースを使用するために、Python プログラミング言語で書かれたアプリケーションを許可するモジュールを含みます。

virt-managervirt-manager, also known as Virtual Machine Manager, provides a graphical tool foradministering virtual machines. It uses libvirt library as the management API.

その他の推奨される仮想化パッケージをインストールします:

# yum install virt-manager libvirt libvirt-python python-virtinst

Page 26: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

16

Page 27: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

17

仮想ゲストのインストールの概要仮想化パッケージをホストシステム上にインストールした後は、ゲストオペレーティングシステムの作成が可能になります。本章は、仮想マシンにゲストオペレーティングシステムをインストールするための手順を説明します。ゲストを作成するには、virt-manager 内の 新規ボタンをクリックするか、もしくはコマンドラインインターフェイスの virt-install を使用します。どちらの方法も本章で説明されています。

Fedora の特定バージョン、他の Linux ディストリビューション、Solaris および Windows に対するインストールの詳細な説明が利用可能です。ゲストオペレーティングシステムに関連する手順を参照してください:

• Red Hat Enterprise Linux 5: 6用Red Hat Enterprise Linux 5 用用用用用用用用用用用用用用用用用用用

• Windows XP: 7用用用用用用用用用用用用用 Windows XP 用用用用用用用

• Windows Server 2003: 8用用用用用用用用用用用用用 Windows Server 2003 用用用用用用用

• Windows Server 2008: 9用用用用用用用用用用用用用 Windows Server 2008 用用用用用用用

5.1. Virtualized guest prerequesites and considerationsどんな仮想ゲストでも作成する前に、さまざまな要因を考慮すべきです。要因は、以下のものを含みます:• パフォーマンス

• I/O の要件と I/O の種類

• ストレージ

• ネットワークとネットワークインフラストラクチャー

パフォーマンス仮想化はパフォーマンスの影響があります。

I/O 要件とアーキテクチャー。

ストレージ。

ネットワークとネットワークインフラストラクチャー。

5.2. virt-install を用いたゲストの作成コマンドラインから仮想ゲストを作成するために、virt-install コマンドを使用できます。virt-install は、対話型、あるいは仮想マシン作成を自動化するためのスクリプトとして使用されます。Kickstart ファイルとともにvirt-install を使用すると、仮想マシンの無人インストールが可能になります。

virt-install ツールは、コマンドラインで渡すことができる、多くのオプションを提供します。それらのオプションの完全な一覧を見るには、次を実行します:

$ virt-install --help

Page 28: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

第5章 仮想ゲストのインストールの概要

18

virt-install の man ページは、コマンドオプションと重要な変数をそれぞれドキュメント化しています。

qemu-img は、ストレージオプションを設定するために、virt-install を使用する前に用いられるかもしれない、関連したコマンドです。

重要なオプションは、ゲストインストールに対してグラフィカルウィンドウを開く、--vnc オプションです。

例5.1 Red Hat Enterprise Linux 3 ゲストの作成のための KVM を用いた virt-install の使用この例では、仮想ネットワークと 5 GB のファイルベースブロックデバイスイメージを使用して、CD-ROM から rhel3support という名前の Red Hat Enterprise Linux 3 ゲストを作成します。この例は KVM ハイパーバイザーを使用します。

# virt-install --accelerate --hvm --connect qemu:///system \ --network network:default \ --name rhel3support --ram=756\ --file=/var/lib/libvirt/images/rhel3support.img \ --file-size=6 --vnc --cdrom=/dev/sr0

例5.2 Fedora 11 ゲストの作成のための virt-install の使用

# virt-install --name fedora11 --ram 512 --file=/var/lib/libvirt/images/fedora11.img \ --file-size=3 --vnc --cdrom=/var/lib/libvirt/images/fedora11.iso

5.3. virt-manager を用いたゲストの作成仮想マシンマネージャーとしても知られる virt-manager は、仮想ゲストの作成と管理のためのグラフィカルツールです。

手順5.1 virt-manager を用いた仮想ゲストの作成1. virt-manager の開始

virt-manager を起動します。アプリケーションメニューのシステムツールサブメニューから仮想マシンマネージャーを起動します。あるいは、root として virt-manager コマンドを実行します。

2. オプション:リモートハイパーバイザのオープンファイル -> 接続の追加を開きます。以下のダイアログボックスが表示されます。ハイパーバイザを選択し、接続ボタンをクリックします:

Page 29: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

virt-manager を用いたゲストの作成

19

3. 新規ゲストの作成virt-manager ウィンドウでは、新しい仮想マシンの作成ができます。新しいゲストを作成するために、新規ボタンをクリックします。これにより、スクリーンショットにあるウィザードが開きます。

Page 30: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

第5章 仮想ゲストのインストールの概要

20

4. 新規ゲストウィザード新規仮想マシンの作成ウィンドウは、仮想マシンを作成するために与えなければいけない情報の概要を提供します:

Page 31: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

virt-manager を用いたゲストの作成

21

使用するインストールの情報を再確認して、進むボタンをクリックします。

5. 仮想マシンの命名以下の文字がゲスト名として許容されます: '_', '.' および '-' 記号。

Page 32: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

第5章 仮想ゲストのインストールの概要

22

続けるために進むを押します。

6. 仮想化方式の選択仮想化方式の選択中ウィンドウが表示されます。

Full virtualization requires a processor with the AMD 64 and the AMD-V extensions or aprocessor with the Intel 64 and Intel VT extensions. If the virtualization extensions are notpresent, KVM will not be avilable.

Page 33: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

virt-manager を用いたゲストの作成

23

仮想化タイプを選択し、進むボタンをクリックします。

7. インストール方法の選択インストール方法ウィンドウが、選択するインストールタイプを尋ねてきます。

ゲストは以下のいずれかの方法を用いてインストールできます:

ローカルメディアインストールこの方法は、CD-ROM または DVD、もしくはインストール CD-ROM や DVD のイメージ(.isoファイル)を使用します。

ネットワークインストールツリーこの方法は、ゲストをインストールするためにミラーされた Fedora インストールツリーを使用します。インストールツリーは以下のネットワークプロトコルのいずれかでアクセス可能でなければいけません。HTTP, FTP もしくは NFS。

ネットワークサービスとファイルは、ホストにおけるネットワークサービスか他のミラーを用いてホストされます。

Page 34: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

第5章 仮想ゲストのインストールの概要

24

ネットワークブートこの方法は、ゲストをインストールするために Preboot eXecution Environment (PXE) を使用します。PXE サーバのセットアップについては Fedora Deployment Guide で取り扱われています。この方法を使用するには、ルーティング可能な IP アドレスを持つゲストまたは共有ネットワークが必要となります。PXE インストールに対して必要となるネットワーク設定に関する情報は、11用用用用用用用用用を参照してください。

OS type と OS variant を設定します。

Choose the installation method and click Forward to procede.

8. インストールメディアの選択このウィンドウは、前の手順で何が選択されたのかに依存します。

a. ISO image or phyiscal media installation前の手順でローカルインストールメディアが選択されると、この画面はインストールメディアと呼ばれます。

Page 35: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

virt-manager を用いたゲストの作成

25

ISO イメージの位置を選択します、もしくはドロップダウンリストから DVD または CD-ROM を選択します。

Click the Forward button to procede.

b. ネットワークインストールツリーからのインストール前の手順で ネットワークインストールツリーが選択されていると、この画面はインストールソースと呼ばれます。

ネットワークインストールは、NFS, FTP または HTTP を用いた、Linux インストールツリーのミラーのアドレスが必要となります。オプションとして、自動インストールのためにキックスタートファイルを指定できます。必要に応じて、カーネルパラメータを指定することもできます。

Page 36: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

第5章 仮想ゲストのインストールの概要

26

Click the Forward button to procede.

c. ネットワークブート(PXE)PXE インストールは追加の手順がありません。

9. ストレージのセットアップストレージウィンドウが表示されます。ディスクパーティション、LUN を選択します、もしくはゲストパーティション用のファイルベースのイメージを作成します。

すべてのイメージファイルは、/var/lib/libvirt/images/ ディレクトリに保存されるべきです。ファイルベースのイメージに対する他のディレクトリは、SELinux により禁止されています。SELinux が enforcingmode で実行されているなら、ゲストのインストールに関する詳細は用SELinux 用用用用用を参照してください。

ゲストのストレージイメージは、インストール、追加パッケージおよびアプリケーションの容量、ならびにゲストのスワップファイルの容量よりも大きくなければいけません。インストールプロセスは、ゲストへ割り当てられた RAM 容量に基づき、ゲストのスワップ容量を選択します。

Page 37: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

virt-manager を用いたゲストの作成

27

アプリケーションや他のデータのためにゲストが追加のスペースを必要とする場合には、追加のスペースを割り当てます。たとえば、ウェブサービスはログファイルのために追加のスペースを必要とします。

選択したストレージタイプにおいてゲストに対して適切な容量を選びます。それから進むボタンをクリックします。

注記

仮想マシンイメージに対してデフォルトのディレクトリ /var/lib/libvirt/images/ を使用することが推奨されます。他の位置(この例にあるような/images/など)を使用する場合、インストールを始める前に、確実に SELinux ポリシーに追加して、再ラベルします。(のちほど、このドキュメントに SELinuxポリシーを修正する方法に関する情報があります。)

Page 38: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

第5章 仮想ゲストのインストールの概要

28

10. ネットワークのセットアップ仮想ネットワークまたは共有物理デバイスを選択します。

仮想ネットワークのオプションは、デフォルトのネットワークデバイスを仮想ゲストと共有する NetworkAddress Translation (NAT) を使用することです。無線ネットワークに対して仮想ネットワークを使用します。

共有物理デバイスのオプションは、仮想ゲストにネットワークデバイスへの完全なアクセスを与える、ネットワークボンディングを利用することです。

続けるために進むを押します。

11. メモリと CPU の割り当てメモリと CPU の割り当てウィンドウが表示されます。仮想 CPU と RAM の割り当てに対する適切な値を選択します。これらの値はホストとゲストのパフォーマンスに影響を与えます。

ゲストは効率的にそして効果的に稼働するために十分な物理メモリ(RAM)を必要とします。 ゲストオペレーティングシステムとアプリケーションの要件に適したメモリの値を選択します。ほとんどのオペレーティングシステムは反応良く機能するのに少なくとも 512MB の RAM を必要とします。ゲストは物理 RAM を使用することを忘れないでください。稼働ゲストが多すぎたり、ホストシステム用に十分なメモリを残さなかったりすると、仮想メモリをかなり消費してしまいます。仮想メモリは比較的遅いため、システムパフォー

Page 39: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

virt-manager を用いたゲストの作成

29

マンスと反応性に悪影響を与えます。すべてのゲストとホストが効率的に稼働できるように十分なメモリを割り当てることを確認してください。

十分な仮想 CPU を仮想ゲストに割り当てます。ゲストがマルチスレッドのアプリケーションを実行している場合は、ゲストが効率的に稼働できるのに必要な数の仮想 CPU を割り当てます。しかし、ホストシステム上で利用できる物理プロセッサ(またはハイパースレッド)以上の仮想 CPU を割り当てないでください。仮想プロセッサを超過して割り当てることは可能ですが、超過割り当てでは、プロセッサのコンテキストスイッチのオーバーヘッドにより、ゲストとホストに深刻な悪影響を与えます。

続けるために進むを押します。

12. ゲストのインストールの確認と開始The Finish Virtual MAchine Creation window presents a summary of all configurationinformation you entered. Review the information presented and use the Back button tomake changes, if necessary. Once you are satisfied click the Finish button and to start theinstallation process.

Page 40: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

第5章 仮想ゲストのインストールの概要

30

VNC ウィンドウが開いて、ゲストオペレーティングシステムのインストールプロセスの開始を示します。

これは、virt-manager を用いてゲストを作成する、一般的なプロセスに結びつきます。5用用用用用用用用用用用用用用用用は、さまざまな一般的なオペレーティングシステムをインストールするためのステップバイステップの説明を含みます。

5.4. PXE を用いたゲストのインストールこのセクションは、PXE を使用したゲストのインストールに必要な手順を取り扱います。PXE のゲストインストールには、ネットワークブリッジとして知られる共有ネットワークデバイスが必要になります。以下の手順はブリッジの作成方法と PXE インストール用のブリッジの有効化に必要な手順を扱っています。

1. 新規ブリッジの作成a. /etc/sysconfig/network-scripts/ ディレクトリ内に新しいネットワークスクリプトファイルを作成し

ます。この例では、ifcfg-installation という名前のファイルを作成し、installation という名前のブリッジを作ります。

# cd /etc/sysconfig/network-scripts/# vim ifcfg-installation

Page 41: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

PXE を用いたゲストのインストール

31

DEVICE=installationTYPE=BridgeBOOTPROTO=dhcpONBOOT=yes

警告

行 TYPE=Bridge は、大文字小文字を区別します。大文字 'B' と小文字 'ridge' でなければいけません。

b. network サービスを再起動することで、新しいブリッジを開始します。ifup installation コマンドは、それぞれのブリッジを開始できますが、より安全にネットワーク全体が正しく再起動することを確認できます。

# service network restart

c. この時点では、まだブリッジにインタフェイスが追加されていません。brctl show コマンドを使用してシステム上のネットワークブリッジの詳細を見ることができます。

# brctl showbridge name bridge id STP enabled interfacesinstallation 8000.000000000000 novirbr0 8000.000000000000 yes

virbr0 ブリッジは、デフォルトのイーサネットデバイスにおいて、NAT (Network AddressTranslation) のために libvirt で使用されるデフォルトのブリッジです。

2. 新規ブリッジへのインタフェイスの追加インタフェイス用の設定ファイルを編集します。前の手順で作成されたブリッジの名前を持つ設定ファイルに BRIDGE パラメータを追加します。

# Intel Corporation Gigabit Network ConnectionDEVICE=eth1BRIDGE=installationBOOTPROTO=dhcpHWADDR=00:13:20:F7:6E:8EONBOOT=yes

設定ファイルの編集の後に、ネットワークを再起動またはリブートします。

# service network restart

brctl show コマンドを使用してインターフェイスが接続されていることを確認します:

# brctl showbridge name bridge id STP enabled interfacesinstallation 8000.001320f76e8e no eth1virbr0 8000.000000000000 yes

Page 42: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

第5章 仮想ゲストのインストールの概要

32

3. セキュリティの設定iptables を設定してすべてのトラフィックがブリッジまで転送されるようにします。

# iptables -I FORWARD -m physdev --physdev-is-bridged -j ACCEPT# service iptables save# service iptables restart

ブリッジ上の iptables の無効化

別の方法として、ブリッジ化したトラフィックが iptables によって処理されるのを妨げます。/etc/sysctl.conf に以下の行を追加します:

net.bridge.bridge-nf-call-ip6tables = 0net.bridge.bridge-nf-call-iptables = 0net.bridge.bridge-nf-call-arptables = 0

設定されたカーネルパラメータを sysctl で再ロードします。

# sysctl -p /etc/sysctl.conf

4. インストール前の libvirt の再起動libvirt デーモンを再起動します。

# service libvirtd reload

ブリッジが設定され、インストールを開始できます。

virt-install を用いた PXE インストールvirt-install に、--network=bridge:installation インストールパラメータを追加します。ここで、installation はブリッジの名前です。PXE インストールには、--pxe パラメータを使用します。

例5.3 virt-install を用いた PXE インストール

# virt-install --accelerate --hvm --connect qemu:///system \ --network=bridge:installation --pxe\ --name EL10 --ram=756 \ --vcpus=4 --os-type=linux --os-variant=rhel5 --file=/var/lib/libvirt/images/EL10.img \

virt-manager を用いた PXE インストール以下の手順は、virt-manager の標準的なインストール手順とは異なる手順です。

1. PXE の選択インストールメソッドとして PXE の選択

Page 43: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

PXE を用いたゲストのインストール

33

2. ブリッジの選択物理デバイスを共有を選択して、前の手順で作成したブリッジを選択します。

Page 44: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

第5章 仮想ゲストのインストールの概要

34

3. インストールの開始インストールの開始準備ができました。

Page 45: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

PXE を用いたゲストのインストール

35

DHCP 要求が送信され、有効な PXE サーバーが見つかると、ゲストのインストールプロセスが始まります。

Page 46: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

36

Page 47: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

37

Red Hat Enterprise Linux 5 の完全仮想化ゲストとしてのインストールこのセクションは、Fedora のホストに完全仮想化の Red Hat Enterprise Linux 5 のインストールについて取り扱います。

手順6.1 virt-manager を使用した完全仮想化の Red Hat Enterprise Linux 5 ゲストの作成1. virt-manager を開きます

virt-manager を開始します。アプリケーション メニューと システムツール サブメニューから 仮想マシンマネージャーのアプリケーションを起動します。別の方法として、root として virt-manager コマンドを実行できます。

2. ハイパーバイザーを選択しますハイパーバイザーを選択します。現在、KVM ハイパーバイザーは qemu という名前であることに注意してください。

まだ実行していないならば、ハイパーバイザーに接続します。ファイルメニューを開き、接続の追加...オプションを選択します。用用用用用用用用用用用用を参照してください。

ハイパーバイザー接続が選択されると、新規ボタンが利用可能になります。新規ボタンをクリックします。

3. 新規仮想マシンウィザードを開始します新規ボタンを押して、仮想マシン作成ウィザードを開始します。

Page 48: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

第6章 Red Hat Enterprise Linux 5 の完全仮想化ゲストとしてのインストール

38

続けるために進むを押します。

4. 仮想マシンの名前をつけます仮想ゲストに対する名前を与えます。以下の句読点と空白文字は、'_', '.' および '-' の文字に対して許可されます。

Page 49: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

39

続けるために進むを押します。

5. 仮想化の方式を選択します仮想ゲストに対する仮想化の方式を選択します。x86_64 (64 bit) と x86 (32 bit) だけが選択できることに注意してください。

Page 50: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

第6章 Red Hat Enterprise Linux 5 の完全仮想化ゲストとしてのインストール

40

続けるために進むをクリックします。

6. インストール方法を選択しますRed Hat Enterprise Linux は、以下の方法の1つを使用してインストールできます:

• ローカルインストールメディア: ISO イメージまたは物理光学メディア

• Red Hat Enterprise Linux のインストールツリーが、HTTP, FTP または NFS を介してネットワークのどこかでホストされている場合は、ネットワークインストールツリーを選択します。

• Red Hat Enterprise Linux インストールメディアのブート用に PXE サーバーを設定している場合は、PXE を使用できます。Red Hat Enterprise Linux インストールを PXE ブートするよう、サーバーを設定する方法はこのガイドでは取り扱いません。しかし、メディアがブートした後、ほとんどのインストール手順は同じです。

スクリーンショットにあるように、OS Type を Linux へセットし、OS Variant を Red Hat EnterpriseLinux 5 へセットします。

Page 51: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

41

続けるために進むを押します。

7. インストールメディアの場所を指定しますISO イメージの位置もしくは CD-ROM または DVD のデバイスを選択します。この例では、Red HatEnterprise Linux installation DVD の ISO ファイルイメージを使用します。

a. 閲覧ボタンをクリックします

b. ISO ファイルの位置を検出して ISO イメージを選択します。開く を クリックして選択を確定します。

c. ファイルが選択され、インストールの準備ができました。

Page 52: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

第6章 Red Hat Enterprise Linux 5 の完全仮想化ゲストとしてのインストール

42

続けるために進むを押します。

イメージファイルと SELinux

ISO イメージファイルとゲストのストレージイメージに対して、/var/lib/libvirt/images/ ディレクトリを使うことが推奨されます。他の場所はどこでも、SELinux に対する追加の設定が必要になるかもしれません、詳細は用SELinux 用用用用用を参照してください。

8. ストレージのセットアップ物理ストレージデバイス(Block device)またはファイルベースのイメージ(File)を割り当てます。ファイルベースのイメージは、/var/lib/libvirt/images/ ディレクトリに保存されなければいけません。仮想ゲストとゲストが必要とするすべてのアプリケーションに対して十分な容量を割り当てます。

Page 53: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

43

続けるために進むを押します。

移行

Live and offline migrations require guests to be installed on shared network storage. Forinformation on setting up shared storage for guests refer to 用用用V用用用用用用用用用用用用.

9. ネットワークの設定仮想ネットワークまたは共有の物理デバイスのどちらかを選択します。

仮想ネットワークオプションは、NAT (Network Address Translation) を使用してデフォルトのネットワークデバイスを仮想ゲストと共有します。ワイヤレスネットワークには仮想ネットワークオプションを使用します。

Page 54: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

第6章 Red Hat Enterprise Linux 5 の完全仮想化ゲストとしてのインストール

44

共有物理デバイスオプションは、仮想ゲストにネットワークデバイスへの完全なアクセスを与えるためにネットワークボンディングを使用します。

続けるために進むを押します。

10. メモリーと CPU の割り当てメモリーと CPU の割り当てウィンドウが表示されます。仮想 CPU と RAM 割り当てに対する適切な値を選択します。これらの値はホストとゲストのパフォーマンスに影響します。

仮想ゲストは、効率的にそして効果的に動作するために十分な物理メモリー(RAM)を必要とします。使用するゲストオペレーティングシステムとアプリケーションの必要性に適合するメモリーの値を選択します。ゲストは物理 RAM を使用することを忘れないで下さい。ホストシステムに対し、過度の数のゲストを実行したり、不十分なメモリーを設定していると、仮想メモリーとスワップをかなり使用することになります。仮想メモリーは確実に低速であり、システムパフォーマンスとレスポンスの低下の原因となります。全てのゲストとホストが効率的に稼働できるように十分なメモリーを割り当てることを確認してください。

十分な仮想 CPU を仮想ゲストに割り当てます。ゲストがマルチスレッドのアプリケーションを実行する場合は、ゲストが効率良く実行するのに必要な仮想化 CPU の数を割り当てます。ホストシステム上で利用できる物理プロセッサ(又はハイパースレッド)の数量以上の仮想 CPU を割り当てないでください。仮想

Page 55: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

45

プロセッサーの超過割り当ては可能ですが、超過割り当ては、プロセッサーのコンテキストがオーバーヘッドを切り替えるため、ゲストとホストのパフォーマンスに重大な悪影響を与えます。

続けるために進むを押します。

11. ゲストのインストールを検証して開始する設定を検証します。

Page 56: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

第6章 Red Hat Enterprise Linux 5 の完全仮想化ゲストとしてのインストール

46

ゲストのインストール手順を開始するために終了を押します。

12. Red Hat Enterprise Linux のインストールRed Hat Enterprise Linux インストール手順を完了します。インストール手順は用用用用用用用用用で取り扱われています、Red Hat Enterprise Linux の用用用用用用用用用のために Red Hat Documentation1 を参照してください。

これで完全仮想化 Red Hat Enterprise Linux 5 ゲストがインストールの準備ができました。

1 http://redhat.com/docs

Page 57: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

47

完全仮想化ゲストとしての Windows XP のインストールWindows XP は完全仮想化ゲストとしてインストールされます。このセクションは、Fedora において完全仮想化ゲストとして Windows XP をインストールする方法を説明しています。

この手順を実行する前に、root アクセス権を持たなければいけないことを確実にします。

1. virt-manager の開始

アプリケーション > システムツール > 仮想マシンマネージャーを開きます。ホストへの接続を開きます(ファイル > 接続の追加をクリックします。新規仮想マシンを作成するために新規ボタンをクリックします。

2. ゲストの命名システム名を入力し、進むボタンをクリックします。

3. 仮想化の方式の選択Choosing a virtualization method ウィンドウが表示されます。

Page 58: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

第7章 完全仮想化ゲストとしての Windows XP のインストール

48

Full virtualization requires a processor with the AMD 64 and the AMD-V extensions or aprocessor with the Intel 64 and Intel VT extensions. If the virtualization extensions are notpresent, KVM will not be avilable.

続けるために進むを押します。

4. インストール方式の選択この画面はインストール方式とオペレーティングシステムの種類を指定できます。

OS Type 一覧から Windows を、OS Variant 一覧から Microsoft Windows XP を選択します。

PXE インストールは本章では取り扱いません。

Page 59: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

49

イメージファイルと SELinux

ISO イメージファイルとゲストストレージファイルに対して、/var/lib/libvirt/images/ ディレクトリを使用することが推奨されます。他の位置はすべて、SELinux に対して追加の設定が必要になるかもしれません。詳細は用SELinux 用用用用用を参照してください。

続けるために進むを押します。

5. インストールイメージの選択インストールイメージまたは CD-ROM を選択します。CD-ROM または DVD インストールのために、Windows のインストールディスクを持つデバイスを選択します。ISO Image Location を選択するならば、Windows のインストール .iso イメージへのパスを入力します。

Page 60: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

第7章 完全仮想化ゲストとしての Windows XP のインストール

50

続けるために進むを押します。

6. ストレージウィンドウが表示されます。ディスクパーティション、LUN を選択するか、ゲストストレージ用のファイルベースのイメージを作成します。

すべてのイメージファイルは、/var/lib/libvirt/images/ ディレクトリに保存すべきです。ファイルベースのイメージに対する他のディレクトリの位置は SELinux により禁止されます。SELinux を enforcing モードで実行しているならば、ゲストのインストールに関する詳細は、用SELinux 用用用用用を参照してください。

ゲストがアプリケーションや他のデータのために追加のスペースを必要とするなら、追加のスペースを割り当てます。たとえば、ウェブサーバはログファイルのために追加のスペースを必要とします。

Page 61: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

51

ストレージ形式を選択するときにゲストに対して適切な容量を選び、進むボタンをクリックします。

注記

仮想マシンイメージに対してデフォルトのディレクトリ、/var/lib/libvirt/images/ を使用することが推奨されます。違うディレクトリ(この例にある /images/ のような)を使用しているならば、インストールを続ける前に、確実に SELinux ポリシーに追加して再ラベルしてください。(このドキュメントののちほど、SELinux ポリシーを変更する方法に関する情報があります。)

7. ネットワークのセットアップ仮想ネットワークもしくは共有物理デバイスを選択します。

仮想ネットワークのオプションは、デフォルトのネットワークデバイスを仮想ゲストと共有するために、Network Address Translation (NAT) を使用します。

Page 62: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

第7章 完全仮想化ゲストとしての Windows XP のインストール

52

共有物理デバイスのオプションは、仮想ゲストにネットワークデバイスへの完全なアクセス権を与えるためにネットワークボンディングを使用します。

続けるために進むを押します。

8. Memory and CPU Allocation ウィンドウが表示されます。仮想 CPU と RAM の割り当てに対して適切な値を選択します。これらの値はホストとゲストのパフォーマンスに影響します。

仮想ゲストは、効率的かつ効果的に実行するために、十分な物理メモリ(RAM)を必要とします。ゲストオペレーティングシステムとアプリケーションの要件に合うメモリ値を選択します。多くのオペレーティングシステムは、反応良く動作するために少なくとも 512MB を必要とするでしょう。覚えておいてください、ゲストは物理 RAM を使用します。多すぎるゲストを実行し、ホストシステムに十分なメモリが残されていないと、仮想メモリとスワップの著しい使用してしまいます。仮想メモリは、低下したシステムパフォーマンスと反応性を引き起こすような、非常に遅いものです。操作を効果的に行うために、ゲストとホストに対して十分なメモリを確実に割り当ててください。

仮想ゲストに対して十分な仮想 CPU を割り当てます。ゲストがマルチスレッドのアプリケーションならば、ゲストが効率よく動作するのに必要となる仮想 CPU の数を割り当てます。ホストシステムにおいて利用可能な物理物理プロセッサ(またはハイパースレッド)より多い仮想 CPU を割り当てないでください。仮想プ

Page 63: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

53

ロセッサを超過割り当てすることは可能です。しかしながら、超過割り当ては、プロセッサのコンテキストスイッチのオーバーヘッドにより、ゲストとホストにおいて、重要で良くない影響があります。

9. インストールを続ける前に、概要画面を見ます。ゲストのインストールを続けるために終了を押します。

Page 64: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

第7章 完全仮想化ゲストとしての Windows XP のインストール

54

10. ハードウェアを選択しなければいけないため、インストール後すぐにコンソールウィンドウが開きます。終了をクリックし、virt-manager の概要ウィンドウへ切り替え、新しく開始した Windows ゲストを選択します。システム名をダブルクリックすると、コンソールウィンドウが開きます。新しい HAL を選択するために、すばやく繰り返し F5 を押します。一度 Windows インストールにおいてダイアログボックスが表示されると、'Generic i486 Platform' タブを選択します。Up と Down 矢印を用いて選択をスクロールします。

Page 65: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

55

11. インストールは、標準的な Windows インストールを続けます。

Page 66: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

第7章 完全仮想化ゲストとしての Windows XP のインストール

56

12. プロンプトが出たときハードディスクのパーティションを作ります。

Page 67: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

57

13. ドライブがフォーマットされた後、Windows はファイルをディスクにコピーし始めます。

Page 68: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

第7章 完全仮想化ゲストとしての Windows XP のインストール

58

14. ファイルはストレージデバイスへコピーされ、Windows が再起動します。

15. Windows ゲストを再起動します:

Page 69: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

59

# virsh start WindowsGuest

ここで WindowsGuest は仮想マシンの名前です。

16. コンソールウィンドウが開いたとき、Windows インストールのセットアップ段階を見ることができます。

17. セットアップ中にインストールが動かなくなったように思われるならば、virsh rebootWindowsGuestName を用いてゲストを再起動します。仮想マシンを再起動するとき、Setup is beingrestarted というメッセージが表示されます:

Page 70: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

第7章 完全仮想化ゲストとしての Windows XP のインストール

60

18. セットアップが完了した後、Windows ブート画面が見えます。

Page 71: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

61

19. これで Windows インストールの標準的なセットアップを続けることができます:

Page 72: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

第7章 完全仮想化ゲストとしての Windows XP のインストール

62

20. セットアッププロセスが完了しました。

Page 73: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

63

Page 74: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

64

Page 75: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

65

完全仮想化ゲストとしての Windows Server 2003 のインストール本章は、virt-install コマンドを用いて完全仮想化の Windows Server 2003 のゲストをインストールすることについて記載しています。virt-install は、virt-manager の代わりに使うことができます。このプロセスは、7用用用用用用用用用用用用用 Windows XP 用用用用用用用で取り扱われている Windows XP のインストールを似ています。

1. Windows Server 2003 をインストールするために virt-install を使用すると、Windows ゲストに対するコンソールとして、virt-viewer ウィンドウをすぐに開きます。以下の例は、virt-install コマンドを用いて Windows Server 2003 のゲストをインストールします。

例8.1 KVM の virt-install

# virt-install --accelerate --hvm --connect qemu:///system \ --name rhel3support \ --network network:default \ --file=/var/lib/libvirt/images/windows2003sp2.img \ --file-size=6 \ --cdrom=/var/lib/libvirt/images/ISOs/WIN/en_windows_server_2003_sp1.iso \ --vnc --ram=1024

2. インストール中にゲストがブートすると、すばやく F5 を押さなければいけません。適切なタイミングでF5 を押さないと、インストールを再開始する必要があるでしょう。F5 を押すことにより、違う HAL または Computer Type を選択できるようになります。Computer Type として Standard PC を選択します。Windows Server 2003 の仮想化ゲストには、Computer Type の変更が必要になります。

3. インストールの残りを完了します。

Page 76: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

第8章 完全仮想化ゲストとしての Windows Server 2003 のインストール

66

Page 77: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

67

4. これで Windows Server 2003 が完全仮想化ゲストとしてインストールされました。

Page 78: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

68

Page 79: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

69

完全仮想化ゲストとしての Windows Server 2008 のインストールこのセクションは、Fedora において完全仮想化ゲストとして Windows Server 2008 をインストールする方法を説明しています。

手順9.1 virt-manager を用いた Windows Server 2008 のインストール1. virt-manager のオープン

virt-manager を開始します。アプリケーション メニュー内の システムツール サブメニューから 仮想マシン マネージャ アプリケーションを起動します。別の方法としては、root として virt-manager コマンドを実行します。

2. ハイパーバイザの選択ハイパーバイザを選択します。今のところ、KVM ハイパーバイザは qemu という名前であることに注意してください。

オプションが選択されると、新規 ボタンが使用可能になります。新規ボタンを押します。

3. 新規仮想マシンウィザードの開始新規ボタンを押して仮想マシンの作成ウィザードを開始します。

Page 80: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

第9章 完全仮想化ゲストとしての Windows Server 2008 のインストール

70

続けるために進むを押します。

4. ゲストの命名次の文字がゲスト名に許可されます: '_', '.' および '-' 文字。

Page 81: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

71

続けるために進むをクリックします。

5. 仮想化方式の選択Choosing a virtualization method ウィンドウが表示されます。

Full virtualization requires a processor with the AMD 64 and the AMD-V extensions or aprocessor with the Intel 64 and Intel VT extensions. If the virtualization extensions are notpresent, KVM will not be avilable.

Page 82: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

第9章 完全仮想化ゲストとしての Windows Server 2008 のインストール

72

続けるために進むをクリックします。

6. インストール方式の選択Windows のすべてのバージョンに対して、ローカルインストールメディア(ISO イメージまたは物理光学メディア)を使用します。

Windows のネットワークインストールのために PXE サーバが設定されている場合は、PXE を使用できます。このガイドは PXE の Windows インストールを説明していません。

以下のスクリーンショットにあるように、OS Type を Windows へ、OS Variant を Microsoft Windows2008 へ設定します。

Page 83: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

73

続けるために進むボタンを押します。

7. インストールメディアの位置の指定ISO イメージの位置、または CD-ROM か DVD のデバイスを選択します。この例では、Windows Server2008 のインストール CD 用の ISO ファイルイメージを使用します。

a. 閲覧ボタンを押します。

b. ISO ファイルの位置を検索し、それを選択します。

Page 84: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

第9章 完全仮想化ゲストとしての Windows Server 2008 のインストール

74

選択を確認するために開くを押します。

c. ファイルが選択され、インストールの準備ができました。

Page 85: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

75

続けるために進むを押します。

イメージファイルと SELinux

ISO イメージファイルとゲストストレージファイルに対して、使用するのを推奨されるディレクトリは、/var/lib/libvirt/images/ ディレクトリです。他の位置はすべて、SELinux に対して追加の設定が必要になるかもしれません。詳細は用SELinux 用用用用用を参照してください。

8. ストレージのセットアップ物理ストレージデバイス(Block device)またはファイルベースのイメージ(File)を割り当てます。ファイルベースのイメージは、/var/lib/libvirt/images/ ディレクトリに保存されなければいけません。仮想ゲストに対して十分な容量とゲストが必要とするあらゆるアプリケーションを割り当てます。

Page 86: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

第9章 完全仮想化ゲストとしての Windows Server 2008 のインストール

76

続けるために進むを押します。

9. ネットワークのセットアップ仮想ネットワークまたは共有物理デバイスのいずれかを選択します。

仮想ネットワークオプションは、NAT (Network Address Translation) を使用して、デフォルトのネットワークデバイスを仮想ゲストと共有します。仮想ネットワークオプションをワイヤレスネットワークに使用してください。

共有物理デバイスのオプションは、仮想ゲストにネットワークデバイスへの完全なアクセス権を与えるために、ネットワークボンディングを使用します。

Page 87: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

77

続けるために進むを押します。

10. メモリーと CPU の割り当てMemory and CPU Allocation ウィンドウが表示されます。仮想 CPU と RAM 割り当てに対して適切な値を選択します。これらの値は、ホストとゲストのパフォーマンスに影響を与えます。

仮想化ゲストは、効率的にそして効果的に稼働するために十分な物理メモリ(RAM)を必要とします。使用するゲストオペレーティングシステムとアプリケーションの必要性に適合するメモリの値を選択します。ゲストは物理 RAM を使用することを忘れないで下さい。過度の数のゲストを稼働したり、ホストシステム用に不十分なメモリを設定していると、仮想メモリとスワップをかなり消費することになります。仮想メモリは確実に低速であり、システムパフォーマンスと反応性の低下の原因となります。 すべてのゲストとホストが効率的に稼働できるように十分なメモリを割り当てることを確認してください。

十分な仮想 CPU を仮想ゲストに割り当てます。ゲストがマルチスレッドのアプリケーションを実行する場合は、ゲストが効率良く実行するのに必要な仮想化 CPU の数を割り当てます。ホストシステム上で利用できる物理プロセッサ(またはハイパースレッド)の数量以上の仮想 CPU を割り当てないでください。仮想プロセッサの超過割り当ては可能ですが、超過割り当ては、プロセッサのコンテキストスイッチのオーバーヘッドのため、ゲストとホストのパフォーマンスに重大な悪影響を与えます。

Page 88: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

第9章 完全仮想化ゲストとしての Windows Server 2008 のインストール

78

続けるために進むを押します。

11. ゲストのインストールを確認して起動します。設定を確認します。

Page 89: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

79

ゲストのインストール手順を開始するために終了を押します。

Page 90: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

第9章 完全仮想化ゲストとしての Windows Server 2008 のインストール

80

12. Windows のインストール

一連のWindows Server 2008インストールを完了します。インストール手順はこのガイドで取り扱われていません、Windowsのインストールに関する詳細はMicrosoftのdocumentation1を参照してください。

1 http://microsoft.com/support

Page 91: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

パート III. 設定

Fedora における仮想化の設定これらの章は、さまざまな高度な仮想化の作業に対する設定手順を取り扱います。これらの作業は、ネットワークおよびストレージの追加、セキュリティ強化、パフォーマンス向上、および完全仮想化ゲストにおける用用用用用用用用の使用を含んでいます。

Page 92: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13
Page 93: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

83

Virtualized storage devicesThis chapter covers installing and configuring storage devices in virtualized guests. The termblock devices refers to various forms of storage devices. All the procedures in this chapter workwith both Xen and KVM hypervisors.

Valid disk targets

The target variable in libvirt configuration files accepts only the following device names:

• /dev/xvd[a to z][1 to 15]

Example: /dev/xvdb13

• /dev/xvd[a to i][a to z][1 to 15]

Example: /dev/xvdbz13

• /dev/sd[a to p][1 to 15]

Example: /dev/sda1

• /dev/hd[a to t][1 to 63]

Example: /dev/hdd3

10.1. 仮想フロッピーディスクコントローラーの作成方法Floppy disk controllers are required for a number of older operating systems, especially forinstalling drivers. Presently, physical floppy disk devices cannot be accessed from virtualizedguests. However, creating and accessing floppy disk images from virtualized floppy drives isshould work. This section covers creating a virtualized floppy device.

An image file of a floppy disk is required. Create floppy disk image files with the dd command.Replace /dev/fd0 with the name of a floppy device and name the disk appropriately.

# dd if=/dev/fd0 of=~/legacydrivers.img

This example uses a guest created with virt-manager running a fully virtualized Fedorainstallation with an image located in /var/lib/libvirt/images/Fedora.img. The Xen hypervisor isused in the example.

1. 実行中のゲストに virsh コマンドを使用してゲストイメージの XML 設定ファイルを作成します。

# virsh dumpxml Fedora > rhel5FV.xml

This saves the configuration settings as an XML file which can be edited to customize theoperations and devices used by the guest. For more information on using the virsh XMLconfiguration files, refer to 31用用用用用 libvirt 用用用用用用用用.

2. ゲスト用フロッピーディスクイメージの作成

# dd if=/dev/zero of=/var/lib/libvirt/images/Fedora-floppy.img bs=512 count=2880

Page 94: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

第10章 Virtualized storage devices

84

3. Add the content below, changing where appropriate, to your guest's configuration XML file.This example is an emulated floppy device using a file-based image.

<disk type='file' device='floppy'> <source file='/var/lib/libvirt/images/Fedora-floppy.img'/> <target dev='fda'/></disk>

4. Force the guest to stop. To shut down the guest gracefully, use the virsh shutdown commandinstead.

# virsh destroy Fedora

5. XML 設定ファイルを使用してゲストを再起動します。

# virsh create Fedora.xml

フロッピーデバイスは、この時点でゲストで利用可能となり、ホストにイメージファイルとして保存されます。

10.2. ゲストへのストレージデバイスの追加This section covers adding storage devices to virtualized guest. Additional storage can only beadded after guests are created. The might work storage devices and protocol include:

• ローカルハードディスクのパーティション

• 論理ボリューム、

• ファイバーチャネルまたは iSCSI (ホストに直接接続されたもの)。

• ホストのファイルシステムに存在するファイルコンテナー

• 仮想マシンにより直接マウントされている NFS ファイルシステム

• ゲストにより直接アクセスされる iSCSI ストレージ

• クラスターファイルシステム (GFS)

Adding file-based storage to a guestファイルベースのストレージやファイルベースのコンテナーは、仮想ゲストに対して仮想ハードディスクとして動作する、ホストのファイルシステムにあるファイルです。ファイルベースのコンテナーを追加するには、以下の手順を実行します:

1. 空のコンテナーファイルを作成するか、既存のファイルコンテナ ( ISO イメージファイルなど) を使用します。

a. dd コマンドを使用して sparse ファイルを作成します。sparse ファイルは、データの完全性とパフォーマンスの問題のため推奨できません。sparse ファイルは、より素早く作成され、テストに使えますが、実動環境では使うべきではありません。

# dd if=/dev/zero of=/var/lib/libvirt/images/FileName.img bs=1M seek=4096 count=0

b. Non-sparse, pre-allocated files are recommended for file-based storage images. Create anon-sparse file, execute:

Page 95: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

ゲストへのストレージデバイスの追加

85

# dd if=/dev/zero of=/var/lib/libvirt/images/FileName.img bs=1M count=4096

どちらのコマンドも仮想ゲスト用に追加のストレージとして使用できる 400MB のファイルを作成します。

2. ゲストの設定をダンプします。この例では、ゲストは Guest1 という名前であり、ファイルはユーザーのホームディレクトリに保存されます。

# virsh dumpxml Guest1 > ~/Guest1.xml

3. Open the configuration file (Guest1.xml in this example) in a text editor. Find the <disk>elements, these elements describe storage devices. The following is an example diskelement:

<disk type='file' device='disk'> <driver name='tap' type='aio'/> <source file='/var/lib/libvirt/images/Guest1.img'/> <target dev='xvda'/></disk>

4. Add the additional storage by duplicating or writing a new <disk> element. Ensure youspecify a device name for the virtual block device attributes. These attributes must be uniquefor each guest configuration file. The following example is a configuration file section whichcontains an additional file-based storage container named FileName.img.

<disk type='file' device='disk'> <driver name='tap' type='aio'/> <source file='/var/lib/libvirt/images/Guest1.img'/> <target dev='xvda'/></disk><disk type='file' device='disk'> <driver name='tap' type='aio'/> <source file='/var/lib/libvirt/images/FileName.img'/> <target dev='hda'/></disk>

5. 更新された設定ファイルからゲストを再起動します。

# virsh create Guest1.xml

6. The following steps are Linux guest specific. Other operating systems handle new storagedevices in different ways. For other systems, refer to that operating system's documentation

ゲストはこの時点で、ファイル FileName.img を /dev/hdb というデバイスとして使用します。このデバイスはゲストからフォーマットする必要があります。ゲストにおいて、 デバイス全体に対して一つの基本パーティションへとを設定します、そしてそのデバイスをフォーマットします。

a. 新規パーティション作成のために n を押します。

# fdisk /dev/hdbCommand (m for help):

b. 基本パーティション用に p を押します。

Page 96: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

第10章 Virtualized storage devices

86

Command action e extended p primary partition (1-4)

c. 利用可能なパーティション番号を1つ選択します。この例では、1 を入力して、最初のパーティションが選択されます。

Partition number (1-4): 1

d. Enter を押してデフォルトの最初のシリンダを入力します。

First cylinder (1-400, default 1):

e. パーティションのサイズを選択します。この例では Enter を押してディスク全体が割り当てられます。

Last cylinder or +size or +sizeM or +sizeK (2-400, default 400):

f. t を押して パーティションのタイプをセットします。

Command (m for help): t

g. Choose the partition you created in the previous steps. In this example, the partitionnumber is 1.

Partition number (1-4): 1

h. linux パーティションとして 83 を入力します。

Hex code (type L to list codes): 83

i. ディスクに変更を書き込み、終了します。

Command (m for help): w Command (m for help): q

j. ext3 ファイルシステムで新規パーティションをフォーマットします。

# mke2fs -j /dev/hdb

7. ゲストでディスクをマウントします。

# mount /dev/hdb1 /myfiles

これでゲストは仮想化されたファイルベースのストレージデバイスを持ちます。

Page 97: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

Configuring persistent storage in Fedora

87

ゲストへハードディスクと他のブロックデバイスの追加System administrators use additional hard drives for to provide more storage space or toseparate system data from user data. This procedure, 用用10.1用用用用用用用用用用用用用用用用用用用用用用, describeshow to add a hard drive on the host to a virtualized guest.

この手順は、全ての物理ブロックデバイスに適用できます。これには、CD-ROM, DVD およびフロッピーディスクが含まれます。

Block device security

The host should not use disk labels to identify file systems in the fstab file, the initrd file orused by the kernel command line. If less privileged users, especially virtualized guests, havewrite access to whole partitions or LVM volumes the host system could be compromised.

Guest should not be given write access to whole disks or block devices (for example, /dev/sdb). Virtualized guests with access to block devices may be able to access other blockdevices on the system or modify volume labels which can be used to compromise the hostsystem. Use partitions (for example, /dev/sdb1) or LVM volumes to prevent this issue.

手順10.1 仮想ゲストへの物理ブロックデバイスの追加1. ハードディスクデバイスをホストへ物理的に取り付けます。ドライブがデフォルトでアクセスできない場合、

ホストを設定します。

2. multipath を使ってデバイスを設定し、必要があればホストで永続化します。

3. Use the virsh attach command. Replace: myguest with your guest's name, /dev/hdb1 withthe device to add, and hdc with the location for the device on the guest. The hdc must bean unused device name. Use the hd* notation for Windows guests as well, the guest willrecognize the device correctly.

--type hdd パラメータを D-ROM や DVD デバイス用のコマンドに追加します。

--type floppyパラメータをフロッピーデバイス用のコマンドに追加します。

# virsh attach-disk myguest /dev/hdb1 hdc --driver tap --mode readonly

4. これで、ゲストは Linux における /dev/hdb という新規ハードディスクデバイス、もしくは Windows における D: ドライブや似たものを持ちます。このデバイスはフォーマットが必要かもしれません。

10.3. Configuring persistent storage in Fedoraこのセクションは、外部もしくはネットワークのストレージを持つシステムのためです。それは、ファイバーチャネルや iSCSI ベースのストレージデバイスです。それらのシステムはホストに対して設定された永続的な名前を持つことが推奨されます。これが、複数の仮想システムに対して一貫したデバイス名とストレージを提供するだけでなく、ライブマイグレーションを助けます。

UUID (Universally Unique Identifiers) は、分散コンピューティング環境においてコンピュータとデバイスを識別するために標準化された方式です。このセクションは iSCSI やファイバーチャネルの LUN を識別するために UUID を用います。UUID は、再起動、切断や装置交換の後でも持続します。UUID はデバイスにおけるラベルに似ています。

Page 98: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

第10章 Virtualized storage devices

88

Systems which are not running multipath must use 用用用用用用用用用. Systems running multipath canuse 用用用用用用用用.

シングルパスの設定この手順は udev を使用して LUN デバイスの永続化を実装します。この手順は multipath を使用していないホストに対してのみ使用してください。

1. /etc/scsi_id.config ファイルを編集します。

• 次の行を追加します。

options=--whitelisted --replace-whitespace

This sets the default options for scsi_id, ensuring returned UUIDs contains no spaces.The IET iSCSI target otherwise returns spaces in UUIDs, which can cause problems.

2. To display the UUID for a given device run the scsi_id --whitelisted --replace-whitespace--device=/dev/sd* command. For example:

# scsi_id --whitelisted --replace-whitespace --device=/dev/sdc1IET_00010001

The output may vary from the example above. The output in this example displays the UUIDof the device /dev/sdc.

3. Verify the UUID output from the scsi_id --whitelisted --replace-whitespace --device=/dev/sd* command is correct and as expected.

4. デバイスの命名ルールを作成します。/etc/udev/rules.d ディレクトリに 20-names.rules というファイルを作成します。このファイルに新規ルールを追加します。全てのルールは同じ形式を使用して同じファイルに追加されます。ルールは以下の形式に従います:

KERNEL=="sd*", SUBSYSTEM=="block", PROGRAM="/sbin/scsi_id --whitelisted --replace-whitespace /dev/$name", RESULT=="UUID", NAME="devicename"

Replace UUID and devicename with the UUID retrieved above, and a name for the device.This is an example for the rule above:

KERNEL=="sd*", SUBSYSTEM=="block", PROGRAM="/sbin/scsi_id --whitelisted --replace-whitespace /dev/$name", RESULT=="1IET_00010001", NAME="rack4row16lun1"

The udev daemon now searches all devices named /dev/sd* for the UUID in the rule. Oncea matching device is connected to the system the device is assigned the name from therule. In the example above, a device with a UUID of 1IET_00010001 will appear as /dev/rack4row16lun1.

5. Copy the changes in /etc/scsi_id.config and /etc/udev/rules.d/20-names.rules to allrelevant hosts.

ここで、設定済みのルールを持つネットワークストレージデバイスは、ファイルが更新されたすべてのホスト上で永続化した名前を持ちます。このことは、共有ストレージを使用してホスト間でゲストをマイグレーションでき、ゲストはそれらの設定ファイルにおいてストレージデバイスにアクセスできることを意味します。

Page 99: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

ゲストへの仮想 CD-ROM や DVD デバイスの追加

89

マルチパスの設定The multipath package is used for systems with more than one physical path from the computerto storage devices. multipath provides fault tolerance, fail-over and enhanced performance fornetwork storage devices attached to Fedora systems.

Implementing LUN persistence in a multipath environment requires defined alias names for yourmultipath devices. Each storage device has a UUID which acts as a key for the aliased names.Identify a device's UUID using the scsi_id command.

# scsi_id --whitelisted --replace-whitespace --device=/dev/sdc

multipath デバイスは /dev/mpath ディレクトリに作成されます。以下の例では、4つのデバイスが /etc/multipath.conf で定義されています:

multipaths { multipath { wwid 3600805f30015987000000000768a0019 alias oramp1 } multipath { wwid 3600805f30015987000000000d643001a alias oramp2 } mulitpath { wwid 3600805f3001598700000000086fc001b alias oramp3 } mulitpath { wwid 3600805f300159870000000000984001c alias oramp4 } }

This configuration will create 4 LUNs named /dev/mpath/oramp1, /dev/mpath/oramp2, /dev/mpath/oramp3 and /dev/mpath/oramp4. Once entered, the mapping of the devices' WWID to their newnames are now persistent after rebooting.

10.4. ゲストへの仮想 CD-ROM や DVD デバイスの追加To attach an ISO file to a guest while the guest is online use virsh with the attach-diskparameter.

# virsh attach-disk [domain-id] [source] [target] --driver file --type cdrom --mode readonly

The source and target parameters are paths for the files and devices, on the host and guestrespectively. The source parameter can be a path to an ISO file or the device from the /devdirectory.

Page 100: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

90

Page 101: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

91

ネットワーク設定このページは、libvirt ベースのアプリケーションによって用いられる、一般的なネットワーク設定について紹介しています。さらなる詳細については libvirt のネットワークアーキテクチャーのドキュメントを参照してください。

一般的な2つの設定として「仮想ネットワーク」と「共有物理デバイス」があります。前者は、すべてのディストリビューションで同一であり、そのまますぐに利用できます。後者は、ディストリビューション固有の手動設定が必要です。

仮想ゲストにおけるネットワークサービスは、デフォルトで外部のホストからアクセスできません。

11.1. libvirt を用いた NAT (Network address translation)ネットワーク接続を共有するための最も一般的な方法の1つは、NAT (Network address translation) 転送(別名、仮想ネットワーク)です。

ホストの設定標準的な libvirt インストールはすべて、そのままで仮想マシンに NAT ベースの接続性を提供します。これはいわゆる「デフォルト仮想ネットワーク」です。

# virsh net-list --allName State Autostart -----------------------------------------default active yes

存在しない場合は、サンプルの XML 設定ファイルを再読み込みしてアクティベートします:

# virsh net-define /usr/share/libvirt/networks/default.xml

このデフォルトのネットワークは /usr/share/libvirt/networks/default.xml で定義されています。

デフォルトネットワークを自動起動としてマークします:

# virsh net-autostart defaultNetwork default marked as autostarted

デフォルトネットワークを起動します:

# virsh net-start defaultNetwork default started

Once the libvirt default network is running, you will see an isolated bridge device. This devicedoes not have any physical interfaces added, since it uses NAT and IP forwarding to connect tooutside world. Do not add new interfaces.

# brctl showbridge name bridge id STP enabled interfacesvirbr0 8000.000000000000 yes

libvirt は、ゲストとのトラフィックを許可する iptables ルールを追加します。このゲストはINPUT、FORWARD、OUTPUT、および POSTROUTING のチェーン内の virbr0 デバイスに接続しています。libvirt はそれから、 ip_forward パラメーターの有効化を試みます。他の一部のアプリケーションが ip_forward を無効にする可能性があるため、最善の選択肢は/etc/sysctl.conf に以下を追加することです。

net.ipv4.ip_forward = 1

Page 102: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

第11章 ネットワーク設定

92

ゲストの設定ホストの設定が完了すると、ゲストはその名前に基づき仮想ネットワークへ接続できます。ゲストを「デフォルト」の仮想ネットワークに接続するために、以下の XML がゲストで用いられます:

<interface type='network'> <source network='default'/></interface>

注記

MAC アドレスの定義はオプションです。省略すると MAC アドレスは自動的に生成されます。MAC アドレスの手動設定は特定の状況で役に立ちます。

<interface type='network'> <source network='default'/> <mac address='00:16:3e:1a:b3:4a'/> </interface>

11.2. libvirt を使用したブリッジネットワークブリッジネットワーク(別名、物理デバイス共有)は、物理デバイスを仮想マシンに専用にさせるために使用します。ブリッジは多くの場合、高度なセットアップや複数のネットワークインターフェイスを持つサーバー上で使用されます。

NetworkManager を無効にするNetworkManager はブリッジをサポートしません。NetworkManager を無効にしてネットワークスクリプト(/etc/sysconfig/network-scripts/ ディレクトリ内に存在)を介したネットワーキングを使用する必要があります。

# chkconfig NetworkManager off# chkconfig network on# service NetworkManager stop# service network start

注記

NetworkManager を無効にする代わりに、"NM_CONTROLLED=no" を例で使用されている ifcfg-* スクリプトに追加します。

Creating network initscriptsCreate or edit the following two network configuration files. This step can be repeated (withdifferent names) for additional network bridges.

/etc/sysconfig/network-scripts ディレクトリに移動します:

# cd /etc/sysconfig/network-scripts

Page 103: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

libvirt を使用したブリッジネットワーク

93

ブリッジに追加するデバイス用のネットワークスクリプトを開きます。この例では、ifcfg-eth0 は、ブリッジの一部としてセットされている 物理ネットワークインターフェイスを定義しています:

DEVICE=eth0# change the hardware address to match the hardware address your NIC usesHWADDR=00:16:76:D6:C9:45ONBOOT=yesBRIDGE=br0

ヒント

設定ファイルの最後に MTU 変数を追加することで、デバイスの Maximum Transfer Unit (MTU) を設定できます。

MTU=9000

ifcfg-br0、またはそれに似た名前のネットワークスクリプトを /etc/sysconfig/network-scripts ディレクトリ内に作成します。 br0 とは、ブリッジの名前です。これはファイル名が DEVICE パラメーターと同じであれば、どんな名前でも結構です。

DEVICE=br0TYPE=BridgeBOOTPROTO=dhcpONBOOT=yesDELAY=0

警告

TYPE=Bridge の行は、大文字小文字を区別します。大文字 'B' と小文字 'ridge' でなければいけません。

設定が終了したら、ネットワークを再開始するか、マシンを再起動します。

# service network restart

iptables を設定して、すべてのトラフィックがブリッジを渡って 転送されるようにします。

# iptables -I FORWARD -m physdev --physdev-is-bridged -j ACCEPT# service iptables save# service iptables restart

Page 104: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

第11章 ネットワーク設定

94

ブリッジにおける iptables の無効化

別の方法としては、iptables ルールを使って、ブリッジされたトラフィックが処理されることを阻止します。/etc/sysctl.conf 内で 以下の行を追記します:

net.bridge.bridge-nf-call-ip6tables = 0net.bridge.bridge-nf-call-iptables = 0net.bridge.bridge-nf-call-arptables = 0

sysctl の使用で設定されたカーネルパラメータを再ロードします。

# sysctl -p /etc/sysctl.conf

Restart the libvirt daemon.

# service libvirtd reload

You should now have a "shared physical device", which guests can be attached and have full LANaccess. Verify your new bridge:

# brctl showbridge name bridge id STP enabled interfacesvirbr0 8000.000000000000 yesbr0 8000.000e0cb30550 no eth0

注記:このブリッジは完全に virbr0 ブリッジから独立しています。 物理デバイスを virbr0 に接続しようと 用用用用用用用用用 virbr0 ブリッジは NAT (Network Address Translation) 接続機能だけのために あります。

Page 105: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

95

KVM 準仮想化ドライバー準仮想化ドライバーは、KVM ホストを稼働している 仮想化した Windows ゲストで使用できます。これらの準仮想化ドライバーは virtio パッケージに収納されており、virtio パッケージはブロック(ストレージ) デバイスとネットワークインターフェイスコントローラーをサポートします。

準仮想化ドライバーは完全仮想化ゲストのパフォーマンスを強化します。 準仮想化ドライバーを使用すると、ゲスト I/O 遅延は減少し、スループットは ベアメタルレベル近くまで向上します。I/O が重いタスクやアプリケーションを実行している 完全仮想化ゲストには、準仮想化ドライバーの使用が推奨されます。

KVM 準仮想化ドライバーは、以下において自動的にロードされ、インストールされます:

• Any 2.6.27 or newer kernel.

• Newer Ubuntu, CentOS, Red Hat Enterprise Linux.

これらのバージョンの Linux はドライバーを検出してインストールするので、追加のインストール手順は必要ありません。

注記

PCI デバイスは仮想システムアーキテクチャによって制限されています。ゲストに対して 32 の利用可能な PCI デバイスの中から2つは取り外し可能ではありません。これは、追加のデバイスとしてゲストあたり30 までのPCIスロットが利用可能ということを意味します。各 PCI デバイスは 8 までのファンクションを持てます;いくつかの PCI デバイスは複数のファンクションを持ち、スロットを1つだけ利用します。準仮想化ネットワーク、準仮想化ディスクデバイス、もしくは VT-d を用いる他の PCI デバイスは、すべてスロットまたはファンクションを使用します。利用可能なデバイスの正確な数は、利用可能なデバイスの数のため、計算することは難しいです。各ゲストは、各デバイスが8までのファンクションを持つ、32までの PCI デバイスを使用できます。

以下の Microsoft Windows のバージョンは KVM の準仮想化ドライバーが動作します:

• Windows XP (32-bit のみ)

• Windows Server 2003 (32-bit および 64-bit バージョン)

• Windows Server 2008 (32-bit および 64-bit バージョン)

• Windows 7 (32-bit および 64-bit バージョン)

12.1. KVM Windows 準仮想化ドライバーのインストールこのセクションでは、KVM Windows 準仮想化ドライバーのインストール プロセスを取り扱います。KVM 準仮想化ドライバーは Windows のインストール中に、 ロードするか 又はゲストのインストール後にインストールすることができます。

以下の方法のどれかによって、ゲストに準仮想化ドライバーをインストールできます:• ゲストへアクセス可能なネットワークにインストールファイルを置く、

• ドライバインストールディスクの .iso ファイルを仮想 CD-ROM ドライブを利用する、もしくは

• ブートしている間にドライバをインストールするために仮想フロッピーディスクを用いる(Windows ゲストに対して)。

Page 106: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

第12章 KVM 準仮想化ドライバー

96

このガイドは、仮想 CD-ROM ドライブとして準仮想化インストールディスクからインストールすることについて記載しています。

1. ドライバーをダウンロードvirtio-win パッケージは、すべての Windows ゲストで機能するために、準仮想化ブロックドライバーとネットワークドライバーを含みます。

Download the virtio-win package with the yum command.

# yum install virtio-win

ドライバは、Microsoft (windowsservercatalog.com1) からも手に入れられます。

virtio-win パッケージは CD-ROM イメージ(virtio-win.iso ファイル)を /usr/share/virtio-win/ ディレクトリ内にインストールします。

2. 準仮想化ドライバーのインストールデバイスを添付や修正して準仮想化ドライバーを使用する前に、 ゲスト上にドライバーをインストールすることが推奨されます。

root ファイルシステムを格納しているブロックデバイス、またはゲストのブートに必要となる他のブロックデバイスには、ドライバーはデバイスが修正される前にインストールされなければなりません。ゲスト上にドライバーがインストールされていなくて、ドライバーが virtio ドライバーに セットされている場合は、ゲストはブートしません。

仮想CD-ROMでのドライバのインストールこの手順は、Windows のインストール後に、仮想 CD-ROM で準仮想化ドライバーをインストールことを取り扱っています。

virt-manager で CD-ROM イメージを追加するには 用用12.1用Windows 用用用用用 virt-manager 用用用用用 CD-ROM 用用用用用 用用用用用 に従い、ドライバーをインストールします。

手順12.1 Windows ゲスト用に virt-manager を使用して CD-ROM イメージを マウント1. virt-manager と仮想ゲストを開きます。

virt-manager を開き、ゲスト名をダブルクリックして、リストから仮想ゲストを選択します。

2. ハードウェアタブを開きます。ハードウェアタブにあるハードウェアの追加ボタンをクリックします。

1 http://www.windowsservercatalog.com/results.aspx?text=Red+Hat&bCatID=1282&avc=10&ava=0&OR=5&=Go&chtext=&cstext=&csttext=&chbtext=

Page 107: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

KVM Windows 準仮想化ドライバーのインストール

97

3. デバイスの種類を選択します。これで新規デバイス追加のウィザードが開きます。ドロップダウンメニューからストレージを選択します。

Page 108: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

第12章 KVM 準仮想化ドライバー

98

進むボタンをクリックして進めます。

4. ISO ファイルを選択します。ファイル(ディスクイメージ)オプションを選択し、準仮想化ドライバーの .iso イメージファイルがあるファイルの場所をセットします。

ドライバーが物理 CD 内に格納されている場合は、通常のディスクパーティション オプションを使用します。

デバイスの種類に IDE cdrom をセットし、進むをクリックして進みます。

Page 109: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

KVM Windows 準仮想化ドライバーのインストール

99

5. ディスク割り当てゲストが開始されると、ディスクが割り当てられ、ゲストで利用可能になります。終了をクリックしてウィザードを閉じるか、間違えたならば戻ります。

Page 110: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

第12章 KVM 準仮想化ドライバー

100

6. 再起動新規デバイスを追加するためにゲストを再起動または開始します。仮想IDEデバイスはゲストによって認識される前に再起動する必要があります。

ドライバを持つ CD-ROM が接続されると、ゲストが開始され、用用12.2用Windows 用用用用用用用用を始めます。

手順12.2 Windows のインストール1. マイコンピュータを開きます。

Windows ゲストにおいて、マイコンピュータを開いて、CD-ROM ドライブを選択します。

Page 111: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

KVM Windows 準仮想化ドライバーのインストール

101

2. 正しいインストールファイルを選択します。ディスクにおいて利用可能なファイルが4個あります。ゲストのアーキテクチャに必要となるドライバーを選択します:

• 準仮想化ブロックデバイスドライバー(32-bit ゲスト用の RHEV-Block.msi または 64-bit ゲスト用のRHEV-Block64.msi)、

• 準仮想化ネットワークデバイスドライバー(32-bit ゲスト用の RHEV-Network.msi または 64-bit ゲスト用の RHEV-Block64.msi)、

• もしくは、ブロックとネットワークのデバイスドライバ両方とも。

インストールファイルをダブルクリックしてドライバをインストールします。

3. ブロックデバイスドライバをインストールします。a. ブロックデバイスドライバのインストールを開始します。

RHEV-Block.msi または RHEV-Block64.msi をダブルクリックします。

Page 112: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

第12章 KVM 準仮想化ドライバー

102

次へを押して進みます。

b. 例外を確認します。Windows はセキュリティ例外を表示するかもしれません。

もし正しければ、はいを押します。

Page 113: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

KVM Windows 準仮想化ドライバーのインストール

103

c. 終わりです。

終了を押してインストールを完了します。

4. ネットワークデバイスドライバのインストールa. ネットワークデバイスドライバのインストールを開始します。

RHEV-Network.msi または RHEV-Network64.msi をダブルクリックします。

Page 114: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

第12章 KVM 準仮想化ドライバー

104

次へを押して進みます。

b. パフォーマンスの設定この画面はネットワークドライバーの高度な TCP セッティングを設定します。TCP タイムスタンプとTCP ウィンドウスケーリングは有効または無効にできます。デフォルトは、ウィンドウスケーリングが有効になる、1です。

TCP ウィンドウスケーリングは IETF RFC 13232 で取り扱われています。RFC は、受信ウィンドウサイズを、デフォルトの最大値の 65,535 バイトよりも大きなサイズを新しい最大値 1GB(1,073,741,824 bytes) まで増加する方法を定義します。TCP ウィンドウスケーリングはネットワークが地理的により近いネットワークの帯域制限で転送することを許可します。より大きな受信ウィンドウは、いくつかのネットワークハードウェアやオペレーティングシステムによって動作すべきではないかもしれません。

TCP タイムスタンプも IETF RFC 13233 により定義されています。TCP タイムスタンプは、パケットに埋め込まれているタイミング情報を埋め込むことによって、Return Travel Time をより良く計算されます。TCP タイプスタンプは、システムがトラフィックレベルの変更を適用したり、忙しいネットワークにおける混雑問題を避けたりするのを助けます。

値 アクション0 TCP タイムスタンプとウィンドウスケーリングを無効にします。

1 TCP ウィンドウスケーリングを有効にします。

2 http://tools.ietf.org/html/rfc13233 http://tools.ietf.org/html/rfc1323

Page 115: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

KVM Windows 準仮想化ドライバーのインストール

105

値 アクション2 TCP タイムスタンプを有効にします。

3 TCP タイムスタンプとウィンドウスケーリングを有効にします。

次へを押して進みます。

c. 例外を確認します。Windows はセキュリティ例外を表示するかもしれません。

Page 116: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

第12章 KVM 準仮想化ドライバー

106

もし正しければ、はいを押します。

d. 終わりです。

終了を押してインストールを完了します。

5. 再起動ゲストを再起動してドライバーのインストールを完了します。

準仮想化ドライバーを用いるようにデバイス設定を変更する(用用用用用用用用用 KVM 用用用用用用用用用用用用用用用)、もしくは準仮想化ドライバーを用いる新規デバイスをインストールする(用用用用用用用用用 KVM 用用用用用用用用用用用用用用用)。

12.2. 仮想フロッピーディスクでのドライバーのインストールこの手続きは Windows のインストール時に準仮想化ドライバーの インストールをします。

• 一度限りのメニューを使用して Windows VM を初めてインストールしたら、 viostor.vfd をフロッピーとして添付します。

a. Windows Server 2003Windows がサードパーティドライバー用に F6 を押すように促したら、それを押して画面上の指示に従います。

b. Windows Server 2008インストーラーがドライバーを催促した時には、 Load Driver をクリックして、 インストーラをドライブA: にポイントし、使用中のゲスト OS と アーキテクチャーに適合するドライバーを選択します。

Page 117: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

既存のデバイスに KVM 準仮想化ドライバーを使用する

107

12.3. 既存のデバイスに KVM 準仮想化ドライバーを使用するゲストに接続されている既存のハードディスクドライブを、仮想 IDE ドライバの代わりに virtio ドライバを使用するように修正します。この例は、libvirt 設定ファイルを編集します。代わりに、virt-manager, virsh attach-disk, virsh attach-interface が準仮想化ドライバーを使用する新規デバイスを追加できます(用用用用用用用用用KVM 用用用用用用用用用用用用用用用)。

1. 仮想化した IDE ドライバーを使用したファイルベースのブロックデバイスを以下に示します。 これは、準仮想化ドライバーを使用しない仮想化ゲストの標準的なエントリです。

<disk type='file' device='disk'> <source file='/var/lib/libvirt/images/disk1.img'/> <target dev='hda' bus='ide'/></disk>

2. bus= エントリを virtio に 変更することにより、準仮想化デバイスを使用するためにエントリを変更します。

<disk type='file' device='disk'> <source file='/var/lib/libvirt/images/disk1.img'/> <target dev='hda' bus='virtio'/></disk>

12.4. 新規デバイス用に KVM 準仮想化ドライバーを使用するこの手続きは、virt-manager で、KVM 準仮想化ドライバーを使用した新規デバイスの作成を示しています。

別の方法として、準仮想化ドライバーを使用するデバイスを添付するために virsh attach-disk か virshattach-interface のコマンドが使用できます。

ドライバーを最初にインストールします

新規のデバイスをインストールする前に、Windows ゲスト上にドライバーが インストールされていることを確認します。ドライバーが利用できない場合は、 デバイスは認識されず機能しません。

1. virt-manager 内のゲスト名をダブルクリックして 仮想化ゲストを開きます。

2. ハードウェア タブを開きます。

3. ハードウェアを追加 をクリックします。

4. 仮想ハードウェアの追加タブで、デバイスのタイプに ストレージ または ネットワーク を選択します。

1. 新規ディスクデバイス

ストレージデバイスか、またはファイルベースイメージを選択します。Virtio Disk を デバイスタイプ として選び、進む をクリックします。

Page 118: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

第12章 KVM 準仮想化ドライバー

108

2. 新規ネットワークデバイス

仮想ネットワーク または 共有物理デバイス を選択します。デバイスタイプ として virtio を選択して、進む をクリックします。

Page 119: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

新規デバイス用に KVM 準仮想化ドライバーを使用する

109

5. 完了 をクリックしてデバイスを保存します。

Page 120: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

第12章 KVM 準仮想化ドライバー

110

6. ゲストを再起動します。デバイスは Windows ゲストが再起動するまで認識されないかも知れません。

Page 121: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

111

PCI パススルー本章は、KVM で PCI パススルーを使用することについて取り扱っています。

KVM ハイパーバイザーは、ホストシステムの PCI デバイスを仮想ゲストへ接続することをサポートしています。PCI パススルーは、ゲストが作業の範囲で PCI デバイスへ排他的アクセスを許可します。PCI パススルーは、PCI デバイスがゲストオペレーティングシステムに物理的に接続されているかのように見えて扱われます。

PCI デバイスは仮想システムアーキテクチャーにより制限されています。ゲストに対して利用可能な PCI デバイス32の中で2つは取り外しできません。つまり、1ゲストあたり追加のデバイスに対して 30 までの PCI スロットが利用可能です。各 PCI デバイスは 8 までの機能を持てます、いくつかの PCI デバイスは複数のファンクションを持ち、スロットを1つだけ使います。準仮想化ネットワーク、準仮想化ディスクデバイスもしくは他の VT-d を用いる PCI デバイスは、すべてスロットまたはファンクションを使用します。利用可能なデバイスの正確な数は、利用可能なデバイスの数により計算されることは難しいです。各ゲストは、8つまでのファンクションを持つ各デバイスを PCI デバイスを32まで利用することができます。

VT-d または AMD IOMMU 拡張は BIOS で有効になっていなければいけません。

手順13.1 Intel システムの PCI パススルーの準備1. Intel VT-d 拡張を有効にします。

Intel VT-d 拡張は、ハードウェアがゲストへ物理デバイスを直接割り当てることをサポートします。この特長の主な利点はデバイスアクセスに対するネイティブとしてのパフォーマンスを向上します。

VT-d 拡張が Fedora で PCI パススルーに対して必要とされます。拡張は BIOS で有効にされなければいけません。いくつかのシステム製造者はデフォルトでこれらの拡張を無効にしています。

これらの拡張はしばしば製造者によって BIOS でさまざまな用語で呼ばれます。システム製造者のドキュメントを参照してください。

2. カーネルでの Intel VT-d の有効化/boot/grub/grub.conf ファイルにおいて kernel 行へ intel_iommu=on パラメーターを追加することによりカーネルで Intel VT-d をアクティブにします。

以下の例は Intel VT-d をアクティブにする修正をされた grub.conf ファイルです。

default=0timeout=5splashimage=(hd0,0)/grub/splash.xpm.gzhiddenmenutitle Fedora Server (2.6.18-190.el5) root (hd0,0) kernel /vmlinuz-2.6.18-190.el5 ro root=/dev/VolGroup00/LogVol00 rhgb quiet intel_iommu=on initrd /initrd-2.6.18-190.el5.img

3. 利用準備変更を有効にするためにシステムを再起動します。これでシステムは PCI パススルーが使えるようになります。

手順13.2 AMD システムの PCI パススルーの準備• AMD IOMMU 拡張の有効化

AMD IOMMU 拡張は Fedora で PCI パススルーに必要とされます。この拡張は BIOS で有効にされなければいけません。いくつかのシステム製造者はデフォルトでこれらの拡張を無効にしています。

AMD システムは IOMMU が BIOS で有効にされる必要があります。システムは IOMMU が有効にされるとPCI パススルーの準備ができます。

Page 122: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

第13章 PCI パススルー

112

13.1. virsh での PCI デバイスの追加これらのステップは、ハードウェア支援された PCI パススルーを用いて KVM ハイパーバイザーにおいて完全仮想化ゲストにデバイスを追加します。

重要

VT-d または AMD IOMMU 拡張は BIOS で有効になっていなければいけません。

この例は、PCI 識別子コード(pci_8086_3a6c)で USB コントローラデバイスを使用します。そして、完全仮想化ゲストは win2k3 と名づけられます。

1. デバイスの識別ゲストへのパススルーとして指定された PCI デバイスを識別します。virsh nodedev-list コマンドはシステムに接続されたすべてのデバイスを表示します。--tree オプションは、PCI デバイス(たとえば、ディスクコントローラーや USB コントローラー)に接続されたデバイスを識別するために有用です。

# virsh nodedev-list --tree

PCI デバイスだけを表示するために、以下のコマンドを実行します:

# virsh nodedev-list | grep pci

各 PCI デバイスは、以下の文字列により識別されます(****は4桁の16進数です):

pci_8086_****

ヒント:PCI デバイスの決定

lspci 出力と lspci -n (名前解決を無効にします)出力を比較することで、デバイスがどのデバイス識別子コードを持つかを導き出す手助けをします。

PCI デバイス番号を記録します、番号は他のステップで必要になります。

2. ドメイン、バスおよび機能に関する情報は、virsh nodedev-dumpxml コマンドの出力から取得できます:

# virsh nodedev-dumpxml pci_8086_3a6c<device> <name>pci_8086_3a6c</name> <parent>computer</parent> <capability type='pci'> <domain>0</domain> <bus>0</bus> <slot>26</slot> <function>7</function> <id='0x3a6c'>82801JD/DO (ICH10 Family) USB2 EHCI Controller #2</product> <vendor id='0x8086'>Intel Corporation</vendor> </capability></device>

Page 123: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

virsh での PCI デバイスの追加

113

3. デバイスをシステムから切断します。接続されたデバイスは使われることができなくなり、まず切断せずにゲストへと接続されると、さまざまなエラーが起こるかもしれません。

# virsh nodedev-dettach pci_8086_3a6c Device pci_8086_3a6c dettached

4. PCI バスのアドレスを得るために、スロットとファンクションの値を(10進値)16 進値へと変換します。値が16 進数であることをコンピューターに知らせるために "0x" を出力の最初に追加します。

たとえば、bus = 0, slot = 26 および function = 7 ならば、以下を実行します:

$ printf %x 00$ printf %x 261a$ printf %x 77

使用する値:

bus='0x00'slot='0x1a'function='0x7'

5. PCI デバイスをゲストに接続するために、virsh edit (またはvirsh attach device)を実行し、デバイスのエントリーを <devices> セクションに追加します。Fedora は今のところホットプラグ対応の PCI デバイスをサポートしてません。

# virsh edit win2k3<hostdev mode='subsystem' type='pci' managed='yes'> <source> <address domain='0x0000' bus='0x00' slot='0x1a' function='0x7'/> </source></hostdev>

6. Once the guest system is configured to use the PCI address, we need to tell the host systemto stop using it. The ehci driver is loaded by default for the USB PCI controller.

$ readlink /sys/bus/pci/devices/0000\:00\:1d.7/driver../../../bus/pci/drivers/ehci_hcd

7. デバイスを切断します:

$ virsh nodedev-dettach pci_8086_3a6c

8. pci_stub の制御下にあることを確認します:

$ readlink /sys/bus/pci/devices/0000\:00\:1d.7/driver../../../bus/pci/drivers/pci-stub

9. ゲストから PCI デバイスを管理できるよう sebool をセットします:

$ setsebool -P virt_manage_sysfs 1

Page 124: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

第13章 PCI パススルー

114

10. ゲストシステムを開始します:

# virsh start win2k3

PCI デバイスは、正常にゲストに接続され、ゲストオペレーティングシステムにアクセス可能となります。

13.2. virt-manager を用いた PCI デバイスの追加PCI デバイスはグラフィカルな virt-manager ツールを用いてゲストへ追加できます。以下の手順は、2ポートUSB コントローラーを仮想ゲストへ追加します。

1. デバイスの識別ゲストへのパススルーとして指定された PCI デバイスを識別します。virsh nodedev-list コマンドはシステムに接続されたすべてのデバイスを表示します。--tree オプションは、PCI デバイス(たとえば、ディスクコントローラーや USB コントローラー)に接続されたデバイスを識別するために有用です。

# virsh nodedev-list --tree

PCI デバイスだけを表示するために、以下のコマンドを実行します:

# virsh nodedev-list | grep pci

各 PCI デバイスは、以下の文字列により識別されます(****は4桁の16進数です):

pci_8086_****

ヒント:PCI デバイスの決定

lspci 出力と lspci -n (名前解決を無効にします)出力を比較することで、デバイスがどのデバイス識別子コードを持つかを導き出す手助けをします。

PCI デバイス番号を記録します、番号は他のステップで必要になります。

2. PCI デバイスの切断システムからデバイスを切断します。

# virsh nodedev-dettach pci_8086_3a6c Device pci_8086_3a6c dettached

3. ゲストの電源オフゲストの電源を切ります。ゲストにおけるホットプラグ対応の PCI デバイスは、現在試験的であり、落ちるかクラッシュさせるかもしれません。

4. ハードウェア設定のオープン仮想マシンを開いて、ハードウェアタブを選択します。ゲストへ新規デバイスを追加するためにハードウェアの追加ボタンをクリックします。

Page 125: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

virt-manager を用いた PCI デバイスの追加

115

5. 新規デバイスの追加ハードウェアの種類一覧から物理ホストデバイスを選択します。物理ホストデバイスは PCI デバイスを表現します。進むをクリックして進みます。

Page 126: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

第13章 PCI パススルー

116

6. PCI デバイスの選択Select an unused PCI device. Note taht selecting PCI devices presently in use on the hostcauses errors. In this example a PCI to USB interface device is used.

Page 127: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

virt-manager を用いた PCI デバイスの追加

117

7. 新規デバイスの確認デバイス設定を確認するために完了ボタンをクリックし、ゲストへデバイスを追加します。

Page 128: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

第13章 PCI パススルー

118

セットアップが完了し、ゲストはいま PCI デバイスを使用できます。

13.3. virt-install で用いる PCI パススルーvirt-install のパラメーターとともに PCI パススルーを使用するために、追加の --host-device パラメーターを使用します。

1. PCI デバイスを識別しますゲストへのパススルーとして指定された PCI デバイスを識別します。virsh nodedev-list コマンドはシステムに接続されたすべてのデバイスを表示します。--tree オプションは、PCI デバイス(たとえば、ディスクコントローラーや USB コントローラー)に接続されたデバイスを識別するために有用です。

# virsh nodedev-list --tree

PCI デバイスだけを表示するために、以下のコマンドを実行します:

# virsh nodedev-list | grep pci

各 PCI デバイスは、以下の文字列により識別されます(****は4桁の16進数です):

pci_8086_****

Page 129: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

virt-install で用いる PCI パススルー

119

ヒント:PCI デバイスの決定

lspci 出力と lspci -n (名前解決を無効にします)出力を比較することで、デバイスがどのデバイス識別子コードを持つかを導き出す手助けをします。

2. デバイスを追加します--host-device パラメータに対する値として、virsh nodedev コマンドから出力される PCI 識別子を使用します。

# virt-install \ -n hostdev-test -r 1024 --vcpus 2 \ --os-variant fedora11 -v --accelerate \ -l http://download.fedoraproject.org/pub/fedora/linux/development/x86_64/os \ -x 'console=ttyS0 vnc' --nonetworks --nographics \ --disk pool=default,size=8 \ --debug --host-device=pci_8086_10bd

3. インストールを完了しますゲストインストールを完了します。PCI デバイスはゲストに接続されるでしょう。

Page 130: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

120

Page 131: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

121

SR-IOV

14.1. はじめにPCI-SIG (PCI Special Interest Group) は、Single Root I/O Virtualization (SR-IOV) 仕様を策定しました。SR-IOV 仕様は、1つのデバイスを複数のゲストへネイティブに共有する、PCI パススルーの一種の標準です。SR-IOV は、仮想ゲストに対して、独立したメモリ空間、割り込み、および DMA ストリームを提供することにより、データ転送と管理においてハイパーバイザの関与を必要としません。

SR-IOV は、Single Root Function(たとえば、1つのイーサネットポート)が、複数の、隔離した、物理的なデバイスとして見えることを可能にします。PCI デバイス、SR-IOV 機能を持つ物理デバイスは、複数のファンクションとして PCI 設定空間に表れるよう設定できます。各デバイスは、完全にベースアドレスレジスタ (BAR) を持つそれ自身の設定空間を持ちます。

SR-IOV は2つの新しい PCI ファンクションを使用します:

• 物理ファンクション(PF: Physical Functions)は、SR-IOV 機能を含む、完全な PCIe デバイスです。物理ファンクションは、通常の PCI デバイスとして、検索され、管理され、設定されます。物理ファンクションは、仮想ファンクションを割り当てることにより、SR-IOV 機能を設定して管理します。

• 仮想ファンクション(VF: Virtual Functions)は、I/O のみを処理する、シンプルな PCIe 機能です。各仮想ファンクションは、物理ファンクションから派生しています。1デバイスあたりの仮想ファンクションの数は、デバイスのハードウェアにより制限されています。1つのイーサネットポート(物理デバイス)は、仮想ゲストへ共有されるために、多くの仮想ファンクションへ対応付けられるかもしれません。

ハイパーバイザーは、1つかそれ以上の仮想ファンクションを仮想ゲストに対応付けられます。仮想ファンクションの設定空間は、ハイパーバイザーにより仮想ゲストへと表される設定空間へ対応付けられます。

各仮想ファンクションは、仮想ファンクションが実ハードウェアを必要とするので、一度だけ対応付けられます。仮想ゲストは、複数の仮想ファンクションを持つことができます。仮想ファンクションは、通常のネットワークカードがオペレーティングシステムへ表れるように、同じ方法でネットワークカードとして表れます。

SR-IOV ドライバーは、カーネルで実装されています。中心的な実装は、PCI サブシステムに含まれますが、物理ファンクション(PF)と仮想ファンクション(VF)両方に対してドライバのサポートがなければいけません。SR-IOV 機能を持つデバイスはPFから VF を割り当てることができます。VF は、リソース(キューおよびレジスタセット)により、物理 PCI デバイスに支持される PCI デバイスとして見えます。

SR-IOV の利点SR-IOV デバイスは、複数の仮想ゲストとともに1つの物理ポートを共有できます。

仮想ファンクションは、ネイティブに近いパフォーマンスを持ち、準仮想化ドライバーやエミュレートされたアクセスよりは良いパフォーマンスを提供します。仮想ファンクションは、データがハードウェアにより管理されて制御されるので、同じ物理サーバーにおける仮想ゲスト間でデータの保護を提供します。

これらの機能は、データセンター内のホストにおいて、仮想ゲストの密度を増大させることができます。

SR-IOV の欠点Live migration is presently experimental. As with PCI passthrough, identical device configurationsare required for live (and offline) migrations. Without identical device configurations, guest'scannot access the passed-through devices after migrating.

Page 132: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

第14章 SR-IOV

122

14.2. SR-IOV の使用このセクションは、追加のネットワークデバイスとして、仮想ファンクションをゲストへ接続することについて取り扱います。

SR-IOV は Intel VT-d のサポートが必要です。

手順14.1 SR-IOV ネットワークデバイスを接続します。1. BIOS とカーネルにおいて Intel VT-d を有効にします。

すでに Intel VT-d が有効で動作しているならば、この手順は飛ばしてください。

もしまだ有効にしていないならば、BIOS で Intel VT-d を有効にします。BIOS とカーネルにおいて IntelVT-d を有効にする手順のヘルプとして、用用13.1用Intel 用用用用用 PCI 用用用用用用用用用を参照してください。

2. サポートを確認しますSR-IOV 機能を持つ PCI デバイスが検出されるかどうかを確認します。この例は、SR-IOV をサポートするIntel 82576 ネットワークインターフェースを表示します。デバイスが検出されたかどうかを確認するために、lspci コマンドを使用します。

# lspci03:00.0 Ethernet controller: Intel Corporation 82576 Gigabit Network Connection (rev 01)03:00.1 Ethernet controller: Intel Corporation 82576 Gigabit Network Connection (rev 01)

他のすべてのデバイスを取り除くために出力が修正されていることに注意してください。

3. SR-IOV カーネルモジュールを起動しますIf the device is should work the driver kernel module should be loaded automatically by thekernel. Optional parameters can be passed to the module using the modprobe command. TheIntel 82576 network interface card uses the igb driver kernel module.

# modprobe igb [<option>=<VAL1>,<VAL2>,]# lsmod |grep igbigb 87592 0dca 6708 1 igb

4. 仮想ファンクションを有効にするigb モジュールの max_vfs パラメーターは 、仮想ファンクションの最大数を割り当てます。max_vfs パラメーターは、ドライバーが(パラメーターの値まで)仮想ファンクションを spawn します。この特定のカードに対して、有効な範囲は0から7です。

変数を変更するため、モジュールを削除します。

# modprobe -r igb

Restart the module with the max_vfs set to 1 or any number of Virtual Functions up to themaximum should work by your device.

# modprobe igb max_vfs=1

5. 新しい仮想ファンクションを確認するlspci コマンドを使用して、Intel 82576 ネットワークデバイスへ接続された新しく追加された仮想ファンクションを表示します。

# lspci | grep 8257603:00.0 Ethernet controller: Intel Corporation 82576 Gigabit Network Connection (rev 01)

Page 133: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

SR-IOV の使用

123

03:00.1 Ethernet controller: Intel Corporation 82576 Gigabit Network Connection (rev 01)03:10.0 Ethernet controller: Intel Corporation 82576 Virtual Function (rev 01)03:10.1 Ethernet controller: Intel Corporation 82576 Virtual Function (rev 01)

lspci コマンドの -n パラメーターを用いて、PCI デバイスの識別を見つけられます。

# lspci -n | grep 03:00.003:00.0 0200: 8086:10c9 (rev 01)# lspci -n | grep 03:10.003:10.0 0200: 8086:10ca (rev 01)

物理ファンクションは 8086:10c9 に、仮想ファンクションは 8086:10ca に一致します。

6. virsh でデバイスを検索しますlibvirt サービスは、デバイスをゲストへ追加するために、デバイスを検出する必要があります。利用可能なホストデバイスを表示するために virsh nodedev-list コマンドを使用します。

# virsh nodedev-list | grep 8086pci_8086_10c9pci_8086_10c9_0pci_8086_10capci_8086_10ca_0[output truncated]

仮想ファンクションと物理ファンクションに対するシリアル番号が一覧にあるでしょう。

7. 高度な詳細を手に入れますpci_8086_10c9 は物理ファンクションの1つです。また、pci_8086_10ca_0 はその物理ファンクションに最初に対応する仮想ファンクションです。双方のデバイスに対する詳細な出力を得るために virshnodedev-dumpxml コマンドを使用します。

# virsh nodedev-dumpxml pci_8086_10ca# virsh nodedev-dumpxml pci_8086_10ca_0<device> <name>pci_8086_10ca_0</name> <parent>pci_8086_3408</parent> <driver> <name>igbvf</name> </driver> <capability type='pci'> <domain>0</domain> <bus>3</bus> <slot>16</slot> <function>1</function> <product id='0x10ca'>82576 Virtual Function</product> <vendor id='0x8086'>Intel Corporation</vendor> </capability></device>

この例は、用用用用 9のゲストへと仮想ファンクション pci_8086_10ca_0 を追加します。仮想ファンクションのbus, slot および function パラメーターは、デバイスを追加するために必要であることに注意してください。

8. 仮想ファンクションを切断しますホストへと接続されたデバイスは、ゲストへと接続できません。Linux は新しいデバイスを自動的にホストへと接続します。仮想ファンクションがゲストにより使えるように、ホストから仮想ファンクションを切断します。

Page 134: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

第14章 SR-IOV

124

# virsh nodedev-dettach pci_8086_10caDevice pci_8086_10ca dettached# virsh nodedev-dettach pci_8086_10ca_0Device pci_8086_10ca_0 dettached

9. ゲストへの仮想ファンクションの追加a. ゲストをシャットダウンします。

b. 設定ファイル用の値を計算するために、virsh nodedev-dumpxml pci_8086_10ca_0 コマンドからの出力を使用します。PCI バスのアドレスを得るために、スロットと関数の値を(10進値から)16進値へと変換します。値が16進値であることをコンピュータに知らせるために、出力の最初に "0x" を付加します。

例のデバイスは以下の値を持ちます:bus = 3, slot = 16 および function = 1。10進値を16進値へ変換するために printf ユーティリティを使用します。

$ printf %x 33$ printf %x 1610$ printf %x 11

この例は設定ファイルにおいて以下の値を使用します:

bus='0x03'slot='0x10'function='0x01'

c. virsh edit コマンドを用いて XML 設定ファイルを開きます。この例は、MyGuest という名前のゲストを編集します。

# virsh edit MyGuest

d. デフォルトのテキストエディタがゲストに対する libvirt 設定ファイルを開くでしょう。XML 設定ファイルの devices セクションに新しいデバイスを追加します。

<hostdev mode='subsystem' type='pci'> <source> <address bus='0x03' slot='0x10' function='0x01'/> </source></hostdev>

e. 設定を保存します。

10. 再起動しますインストールを完了するためにゲストを再起動します。

# virsh start MyGuest

ゲストは新しいネットワークインターフェースカードを正常に開始して検知しなければいけません。この新しいカードは、SR-IOV デバイスの仮想ファンクションです。

Page 135: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

SR-IOV のトラブルシューティング

125

14.3. SR-IOV のトラブルシューティングこのセクションは、SR-IOV に影響するかもしれない、いくつかの問題と問題への解決策を含みます。

ゲストの開始におけるエラー設定された仮想マシンを開始して、以下のようなエラーが報告されます:

# virsh start testerror: Failed to start domain testerror: internal error unable to start guest: char device redirected to/dev/pts/2get_real_device: /sys/bus/pci/devices/0000:03:10.0/config: Permission deniedinit_assigned_device: Error: Couldn't get real device (03:10.0)!Failed to initialize assigned device host=03:10.0

このエラーは、デバイスが他のゲストまたはホスト自身へとすでに割り当てられている、デバイスによりしばしば引き起こされます。

Page 136: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

126

Page 137: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

127

USB デバイスパススルーplaceholder

Page 138: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

128

Page 139: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

129

N_Port ID Virtualization (NPIV)近日公開予定。

Page 140: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

130

Page 141: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

131

KVM ゲストのタイミング管理仮想化はゲストの時間管理に対してさまざまな課題を引き起こします。いくつかの CPU はタイムスタンプカウンタ (TSC:Time Stamp Counter) を持たないため、クロックのソースとしてタイムスタンプカウンターを用いるゲストは、タイミングの問題に苦しむかもしれません。正確な時間管理を持たないゲストは、正確な時間よりも早かったり遅かったり実行され、同期を失うので、いくつかのネットワークアプリケーションや処理において問題を起こすかもしれません。

KVM は、ゲストに準仮想化クロックを提供することで、この問題を回避します。それ以外にも、いくつかのゲストは、これらのオペレーティングシステムの将来バージョンにおいて、タイミングに対する他の x86 クロックのソースを使用するかもしれません。

ゲストは、不正確なクロックとカウンタによっていくつかの問題を持つ可能性があります:

• クロックが、セッションを無効にしてネットワークに影響するような、実際の時刻との同期が失われる可能性があります。

• より遅いクロックを持つゲストはマイグレーションの問題を持つかもしれません。

これらの問題は他の仮想化プラットフォームにおいても存在しており、タイミングは常にテストされるべきです。

NTP

NTP (Network Time Protocol) デーモンは、ホストとゲストにおいて実行している必要があります。ntpdサービスを有効にします:

# service ntpd start

ntpd サービスをデフォルトのスタートアップシーケンスに追加します:

# chkconfig ntpd on

ntpd サービスを使用すると、すべてのケースでクロックのずれの効果を最低限に抑えることができるはずです。

使用している CPU が Constant Time Stamp Counter を持つかどうかを判定constant_tsc フラグが存在する場合、使用中の CPU が一定の Constant Time Stamp Counter を持っています。CPU がconstant_tsc フラグを持つかどうかを判定するには、以下のコマンドを実行します:

$ cat /proc/cpuinfo | grep constant_tsc

なんらかの出力があると、その CPU が constant_tsc ビットを持ちます。何も出力されないならば、以下の指示にしたがってください。

Constant Time Stamp Counter を持たないホストの設定Constant Time Stamp Counter を持たないシステムは追加の設定を必要とします。電源管理機能は正確な時間管理を妨害するため、KVM で時間を正確に維持するためにゲストに対して無効にしなければいけません。

Page 142: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

第17章 KVM ゲストのタイミング管理

132

注記

これらの指示は AMD の revision F の CPU に対するものです。

CPU が constant_tsc ビットを持たないならば、すべての電源管理機能を無効にしてください(BZ用5131381) 。各システムは時間を維持するために用いるいくつかのタイマーを持ちます。TSC はホストにおいて安定的ではありません、それは cpufreq の変更、深い C state もしくはより早い TSC を持つホストへのマイグレーションにより、ときどき引き起こされます。

term Red Hat Enterprise Linux Server (2.6.18-159.el5) root (hd0,0) kernel /vmlinuz-2.6.18-159.el5 ro root=/dev/VolGroup00/LogVol00 rhgb quiet processor.max_cstate=1

/etc/sysconfig/cpuspeed 設定ファイルを編集して cpufreq を無効にし(constant_tsc がないホストにおいてのみ必要になります)、MIN_SPEED 変数とMAX_SPEED 変数を利用可能な最高の周波数へ変更します。有効な制限は /sys/devices/system/cpu/cpu*/cpufreq/scaling_available_frequencies ファイルで見つけることができます。

Red Hat Enterprise Linux ゲストで準仮想化クロックの使用特定の Red Hat Enterprise Linux ゲストには、追加のカーネルパラメーターが必要になります。これらのパラメーターは、ゲストの /boot/grub/grub.conf ファイル内の /kernel 行の末尾にそれらを追加することによりセットできます。

以下の表は、Red Hat Enterprise Linux のバージョンと一定のタイムスタンプカウンターを持たないシステムにおいてゲストで必要となるパラメーターを示しています。

Red Hat Enterprise Linux 追加のゲストカーネルパラメーター5.4 準仮想化クロックを持つAMD64/Intel 64

追加のパラメーターは不要です

5.4 準仮想化クロックを持たないAMD64/Intel 64

divider=10 notsc lpj=n

5.4 準仮想化クロックを持つ x86 追加のパラメーターは不要です

5.4 準仮想化クロックを持たないx86

divider=10 clocksource=acpi_pm lpj=n

5.3 AMD64/Intel 64 divider=10 notsc

5.3 x86 divider=10 clocksource=acpi_pm

4.8 AMD64/Intel 64 notsc divider=10

4.8 x86 clock=pmtmr divider=10

3.9 AMD64/Intel 64 追加のパラメーターは不要です

3.9 x86 追加のパラメーターは不要です

1 https://bugzilla.redhat.com/show_bug.cgi?id=513138

Page 143: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

133

Windows Server 2003 および Windows XP ゲストでの Real-Time Clock の使用Windows は RTC (Real-Time Clock) と TSC (Time Stamp Counter) を両方とも使用します。Windows ゲストには、ゲストのタイミング問題を解決するすべての時刻ソースのため、TSC の代わりに Real-Time Clockが使用されます。

To enable the Real-Time Clock for the PMTIMER clocksource (the PMTIMER usually uses theTSC) add the following line to the Windows boot settings. Windows boot settings are stored inthe boot.ini file. Add the following line to the boot.ini file:

/use pmtimer

Windows のブート設定と pmtimer オプションに関する詳細情報は、Windows XP 用用用 Windows Server2003 用 Boot.ini 用用用用用用用用用用用用用用 用用用用用2を参照してください。

Windows Vista, Windows Server 2008 および Windows 7 ゲストでの Real-Time Clock の使用Windows は RTC (Real-Time Clock) と TSC (Time Stamp Counter) を両方とも使用します。Windows ゲストには、ゲストのタイミング問題を解決するすべての時刻ソースのため、TSC の代わりに Real-Time Clockが使用されます。

boot.ini ファイルは、Windows Vista 以降から使われなくなりました。Windows Vista, Windows Server2008 および Windows 7 は、Windows ブートパラメータを変更するために、Boot Configuration DataEditor (bcdedit.exe) を使用します。

もしゲストが時間管理問題を持っているときのみ、この手順が必要になります。時間管理問題はすべてのホストにおいてゲストに影響をあたえるわけではないかもしれません。

1. Windows ゲストを開きます。

2. スタートメニューのアクセサリを開きます。コマンドプロンプトアプリケーションで右クリックし、管理者として実行を選択します。

3. もし表示されたら、セキュリティ例外を確認します。

4. プラットフォームのクロックを用いるためにブートマネージャーをセットします。これは Windows に PMタイマーをプライマリクロックソースに対して用いるよう指示します。システム UUID(以下の例では{default} )は、デフォルトのブートデバイスと異なっているならば変更されるべきです。

C:\Windows\system32>bcdedit /set {default} USEPLATFORMCLOCK onThe operation completed successfully

この修正により、Windows Vista, Windows Server 2008 および Windows 7 ゲストに対して、時間管理を改善できるはずです。

2 http://support.microsoft.com/kb/833721

Page 144: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

134

Page 145: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

パート IV. 管理

仮想システムの管理These chapters contain information for administering host and virtualized guests using toolsincluded in Fedora.

Page 146: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13
Page 147: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

137

サーバーのベストプラクティス以下のタスクとヒントは、Fedora ホストの信頼性を安全・確実にする手助けになるでしょう。

• SELinux を enforcing モードで実行します。以下のコマンドを実行するとできます。

# setenforce 1

• AutoFS, NFS, FTP, HTTP, NIS, telnetd, sendmail などのような不要なサービスをすべて削除もしくは無効化します。

• サーバー上でプラットフォーム管理に必要となる最低限のユーザーアカウントだけを追加し、 不要なユーザーアカウントは削除します。

• ホストでは不必要なアプリケーションの実行を避けてください。ホスト上でアプリケーションを実行すると、仮想マシンのパフォーマンスに悪影響を与えるかもしません。サーバーの安定性にも影響する可能性があります。サーバーをクラッシュする可能性のあるアプリケーションはいずれもサーバー上のすべての仮想マシンが落ちる原因にもなります。

• 仮想マシンのインストールとイメージには中心となる場所を使います。仮想マシンのイメージは /var/lib/libvirt/images/ の下に保存するべきです。仮想マシンのイメージ用に異なるディレクトリを使用している場合は、そのディレクトリを確実に SELinux ポリシーに追加し、インストールを開始する前にそれを再ラベルします。

• インストールのソース、ツリーおよびイメージは中心となる場所、通常 vsftpd サーバーの中に保存するべきです。

Page 148: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

138

Page 149: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

139

仮想化のためのセキュリティ企業インフラストラクチャーに仮想化技術を配備するとき、ホストが危険にさらされないことを確実にしなければいけません。ホストは、システム、デバイス、メモリおよびネットワークを仮想ゲストと同様に管理する Fedoraシステムです。ホストが安全でなければ、そのシステムにあるすべてのゲストは脆弱です。仮想化を用いたシステムにおいてセキュリティを向上させる方法はいくつかあります。あなたやあなたの組織は、運用仕様を含む用用用用用用を作成し、仮想ゲストとホストにおいて必要とされるサービスだけでなく、これらのサービスに対してどのサービスが必要になるかを指定すべきです。配備計画を展開する間に考慮すべきセキュリティ問題がいくつかあります:

• ホストにおいて必要なサービスのみを実行します。ホストにおいて実行しているプロセスとサービスが少ないほど、セキュリティとパフォーマンスのレベルが高くなります。

• ハイパーバイザーにおいて SELinux を有効にします。SELinux と仮想化を用いることの詳細は、用SELinux用用用用用を参照してください。

• ファイアウォールを使用して、dom0 へのトラフィックを制限します。デフォルト拒否の規則でファイアウォールを設定すると、dom0 への攻撃から保護をする助けになります。また、ネットワークが直面するサービスを制限することも大切です。

• 一般ユーザーには dom0 へのアクセスを禁止します。一般ユーザーに dom0 へのアクセスを許すと、dom0 を危険にさらす恐れがあります。dom0 は特権用であり、非特権アカウントに許可をすることはセキュリティレベルを低下することになります。

19.1. ストレージのセキュリティ問題仮想ゲストの管理者は、特定の状況においてホストがブートするパーティションを変更できます。この管理者を防ぐために、これらの推奨事項に従うべきです:

ホストは、fstab ファイル、initrd ファイルまたは kernel コマンド行により使われるファイルシステムを識別する目的で、ディスクラベルを使用すべきではありません。より権限の少ないユーザー(とくに仮想ゲスト)がパーティション全体や LVM ボリュームへ書き込みアクセスをするならば。

ゲストは、ディスク全体またはブロックデバイス(たとえば、/dev/sdb)への書き込みアクセス権を与えるべきではありません。パーティション(たとえば、/dev/sdb1)または LVM ボリュームを使用します。

19.2. SELinux と仮想化Security Enhanced Linux は、NSA により開発されました。 Linux に対してより強力なセキュリティを提供するために、Linux コミュニティから支援があります。SELinux は、攻撃者の能力を制限し、バッファーオーバーフロー攻撃や権限昇格のような多くの一般的なセキュリティ侵害を防ぐために機能します。これらの利益のため、すべての Fedora システムは SELinux を有効にして enforcing モードで動作すべきです。

SELinux は SELinux が有効になっていて、イメージが正しいディレクトリに無い場合には、 ゲストイメージのロードを妨げます。SELinux はすべてのゲストイメージが /var/lib/libvirt/images 内に存在することを要求します。

enforcing モードの SELinux で LVM ベースのストレージの追加以下のセクションは、論理ボリュームを SELinux が有効になった仮想化ゲストに 追加するサンプルです。これらの案内はハードディスクのパーティション設定にも 役に立ちます。

手順19.1 SELinux が有効になった仮想化ゲスト上で論理ボリュームの作成とマウント1. 論理ボリュームを作成します。このサンプルでは、NewVolumeName という名前の 5ギガバイトの論理ボ

リュームを volumegroup という名前のボリュームグループ上に 作成します。

Page 150: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

第19章 仮想化のためのセキュリティ

140

# lvcreate -n NewVolumeName -L 5G volumegroup

2. NewVolumeName の論理ボリュームを ext3 などの 拡張属性をサポートするファイルシステムでフォーマットします。

# mke2fs -j /dev/volumegroup/NewVolumeName

3. 新規の論理ボリュームをマウントするための新規ディレクトリを作成します。この ディレクトリはユーザーファイルシステムのどこにでも置けます。しかし、それは 重要なシステムディレクトリ(/etc, /var, /sys など)や、ホームディレクトリ(/home または /root)には配置しないように推奨します。 このサンプルでは、/virtstorage というディレクトリを使用します。

# mkdir /virtstorage

4. 論理ボリュームのマウント

# mount /dev/volumegroup/NewVolumeName /virtstorage

5. libvirt イメージフォルダに対して、SELinux の正しいタイプをセットします。

# semanage fcontext -a -t virt_image_t "/virtualization(/.*)?"

targeted ポリシーが使用されている場合(targeted ポリシーがデフォルト)、 このコマンドは /etc/selinux/targeted/contexts/files/file_contexts.local ファイルに1行を追加して、それがこの変更を永続化します。追加される1行は以下のようなものです:

/virtstorage(/.*)? system_u:object_r:virt_image_t:s0

6. マウントポイント(/virtstorage)とその下にあるすべてのファイルのタイプを virt_image_t へと変更するためにコマンドを実行します(restorecon と setfiles コマンドは /etc/selinux/targeted/contexts/files/ にあるファイルを読み込みます)。

# restorecon -R -v /virtualization

Page 151: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

SELinux

141

新しい属性のテスト

ファイルシステムに新しいファイルを(touch コマンドを用いて)作成します。

# touch /virtualization/newfile

以下のコマンドを用いて、ファイルが再ラベルされていることを確認します:

# sudo ls -Z /virtualization-rw-------. root root system_u:object_r:virt_image_t:s0 newfile

出力は、新しいファイルが正しい属性 virt_image_t を持つことを示します。

19.3. SELinuxこのセクションには、仮想化の導入において SELinux を使用するときに考慮すべき 事項が含まれています。システムの変更を導入したり、デバイスを追加する時は、 それに応じて SELinux ポリシーを更新する必要があります。ゲスト用に LVM ボリュームを 設定するには、それぞれの背後にあるブロックデバイスとボリューム グループ用に SELinux コンテキストを修正しなければなりません。

# semanage fcontext -a -t virt_image _t -f -b /dev/sda2# restorecon /dev/sda2

KVM と SELinuxThere are several SELinux booleans which affect KVM. These booleans are listed below for yourconvenience.

KVM SELinux 論理値SELinux 論理値 説明allow_unconfined_qemu_transitionDefault: off. This boolean controls whether KVM guests can be

transistioned to unconfined users.

qemu_full_network Default: on. This boolean controls full network access to KVMguests.

qemu_use_cifs Default: on. This boolean controls KVM's access to CIFS orSamba file systems.

qemu_use_comm Default: off. This boolean controls whether KVM can accessserial or paralell communications ports.

qemu_use_nfs Default: on. This boolean controls KVM's access to NFS filesystems.

qemu_use_usb Default: on. This boolean allows KVM to access USB devices.

19.4. 仮想ファイアウォールの情報Various ports are used for communication between virtualized guests and management utilites.

Page 152: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

第19章 仮想化のためのセキュリティ

142

ゲストのネットワークサービス

仮想ゲストにおけるネットワークサービスはすべて、外部アクセスを許可するために、ゲストにおいて適用できるオープンポートを持たなければいけません。ゲストにおけるネットワークサービスがファイアウォールされていると、アクセスできません。常にゲストのネットワーク設定をまず確認してください。

• ICMP リクエストは受け付けられなければいけません。ICMP パケットはネットワークのテストのために使われます。ICMP パケットがブロックされていると、ゲストにpingできません。

• ポート22は SSH アクセスと初期インストールのために開けなければいけません。

• ポート80または443(RHEV Manager におけるセキュリティ設定に依存します)は、ホストに関する情報をやりとりするために、vdsm-reg サービスにより使用されます。

• ポート5643から6166は、SPICE プロトコルを用いたゲストアクセスのために使われます。

• ポート49152から49216は、KVM でのマイグレーションのために使われます。マイグレーションは、同時に実行されるマイグレーションの数に依存して、この範囲のあるポートを使う可能性があります。

• IPフォワーディング(net.ipv4.ip_forward = 1)を有効にすることも、共有ブリッジとデフォルトのブリッジに対して必要となります。libvirtをインストールすると、この変数は有効になるため、仮想化パッケージをインストールするとき、手動で無効にするまで有効になっていることに注意してください。

Page 153: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

143

KVM ライブマイグレーション本章では、KVM ハイパーバイザーで稼働しているゲストを別の KVM ホストに移行する方法を説明しています。

用用用用用用用用は、仮想ゲストをあるホストから他へ移動するプロセスに対してつけられた名称です。ソフトウェアがハードウェアから完全に分離されるので、マイグレーションは仮想化の重要な機能です。マイグレーションは以下に対して有効です:

• ロードバランシング: あるホストが過大な負荷を持つとき、ゲストは使用度の低いホストへと移動できます。

• ハードウェアフェイルオーバー:ホスト上のハードウェアデバイスが障害を持つと、ゲストが安全な場所に移動して、その間にホストは電源を落として修理ができます。

• エネルギー節約:ゲストが他のホストに再分配されると、ホストシステムは 電源を落とすことによりエネルギーを節約し、使用度が低い時にはコストを低減します。

• 地域的な移行:ゲストは、低遅延を求めて、もしくは重大な状況下で他の地域に移動することができます。

マイグレーションは、動的もしくはオフラインで実行されます。ゲストをマイグレーションするために、ストレージが共有されなければいけません。マイグレーションはゲストのメモリーを宛先ホストへと送信することで動作します。共有ストレージはゲストのデフォルトのファイルシステムに保存されます。ファイルシステムイメージはネットワーク経由で送信元ホストから宛先ホストへと送信されません。

オフライン移行はゲストを休止して、それからそのゲストのメモリイメージを宛先ホストに移動します。ゲストは目的地のホストで復帰して、送信元ホスト上でゲストが使用したメモリーは開放されます。

オフライン移行が必要とする時間はネットワークの帯域幅と遅延度によります。2GB のメモリーを持つゲストでは 1Gbit イーサネットリンクで平均して10秒くらいの時間がかかります。

ライブマイグレーションは送信元のホスト上でゲストを稼働し続け、ゲストを停止することなく、そのメモリの移動を始めます。全ての修正されたメモリーページはその変更部を監視され、そのイメージが送信されている間に目的地へ送信されます。メモリーは変更のあった ページで更新されます。このプロセスはゲスト用に許容された休止時間数が、転送される最後の数ページ用の予想時間と同等になるまで継続します。KVM はその残りの時間を推測し、仮想化ゲストの短い休止時間内に残りのページが転送できると予測できるまで送信元から送信先まで最大量のページを転送する試みを続けます。レジスターが新規のホストにロードされて、ゲストはそれから送信先のホストで復帰します。ゲストがマージできない場合(ゲストが極端な負荷を持つ時に発生)、ゲストは休止して、それから代わりにオフライン移行が始まります。

オフライン移行にかかる時間は、ネットワークのバンド幅とその遅延度によります。ネットワークが多大な負荷を持つ場合、又は帯域幅が小さい場合は、移行には長い時間がかかります。

20.1. ライブマイグレーションの要件ゲストの移行には以下が必要です:

移行の要件• 以下のプロトコルの1つを使用して共有ネットワークストレージにインストールされた仮想化ゲスト:

• ファイバーチャネル

• iSCSI

• NFS

• GFS2

• 同じアップデートを持つ同じバージョンの2つかそれ以上の Fedora システム

• 両方のシステムは適切なポートを開いている必要があります。

Page 154: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

第20章 KVM ライブマイグレーション

144

• 両方のシステムは同一のネットワーク設定を持つ必要があります。全てのブリッジとネットワーク設定は両方のホスト上で全く同じでなければなりません。

• 共有ストレージは送信元と送信先のシステム上で同じ場所にマウントしなければなりません。そしてマウントされたディレクトリ名も同一である必要があります。

ネットワークストレージの継続Configure shared storage and install a guest on the shared storage. For shared storageinstructions, refer to 用用用V用用用用用用用用用用用用.

代わりに 用用用用用用用用用用用用用用用用用用用用用用 NFS用 にある NFS の例を用いてください。

20.2. 共有ストレージサンプル:簡単な移行のための NFSこの例では、NFS を使用して他の KVM ホストと共にゲストイメージを共有しています。 この例は、大規模のインストールには実用的ではありません。これ例は、単に移行の技術を示すためのものであり、小規模の導入用です。この例を数個の仮想化ゲスト以上の環境で移行、又は実行に使用しないでください。

For advanced and more robust shared storage instructions, refer to 用用用V用用用用用用用用用用用用

1. libvirt イメージディレクトリのエクスポートデフォルトのイメージディレクトリを /etc/exports ファイルに 追加します:

/var/lib/libvirt/images *.example.com(rw,no_root_squash,async)

ご自分の環境に適するようにホストパラメーターを変更します。

2. NFS の開始a. NFS パッケージがインストールされていない場合はインストールします:

# yum install nfs

b. iptables で NFS 用のポートを開きます。そして NFS を /etc/hosts.allow ファイルに追加します。

c. NFS サービスの開始:

# service nfs start

3. 共有ストレージをあて先においてマウントしますあて先システムにおいて、 /var/lib/libvirt/images ディレクトリをマウントします:

# mount sourceURL:/var/lib/libvirt/images /var/lib/libvirt/images

位置は送信元とあて先で同じにならなければなりません

ゲスト用にどのディレクトリが選択されても、それはホストとゲスト上で全く同じでなければなりません。これは、全てのタイプの共有ストレージに該当します。ディレクトリが同じでないと、移行は失敗します。

Page 155: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

virsh を使用した KVM ライブマイグレーション

145

20.3. virsh を使用した KVM ライブマイグレーションvirsh コマンドを使用してゲストを別のホストに移行することができます。migrate コマンドは以下の形式のパラメーターを受け付けます:

# virsh migrate --live GuestName DestinationURL

GuestName パラメーターは、移行したいゲストの名前を表すものです。

DestinationURL パラメータは、あて先システムの URL またはホスト名です。あて先システムは同じバージョンの Fedora が実行されており、同じハイパーバイザーを使用しており、動作している libvirt を持たなければいけません。

コマンドが入力されると、あて先システムの root パスワードを催促されます。

例: virsh を使用したライブマイグレーションこの例では、test1.example.com から test2.example.com へ移行をします。ご自分の環境に適したホスト名に変更してください。この例は RHEL4test という仮想マシンを移行します。

この例は、完全に設定された共有ストレージを持ち、すべての必要条件が満たされていることを仮定しています(ここに書かれています:用用用用用)。

1. ゲストが稼働していることを確認します送信元のシステム test1.example.com から RHEL4test が稼働していることを確認します:

[root@test1 ~]# virsh listId Name State---------------------------------- 10 RHEL4 running

2. ゲストを移行します以下のコマンドを実行して、ゲストを目的地、test2.example.com に ライブマイグレーションします。/system を目的地の URL の末尾に追記することで全面的アクセスが 必要であることを libvirt に伝えます。

# virsh migrate --live RHEL4test qemu+ssh://test2.example.com/system

コマンドが入力されると、あて先システムの root パスワードを催促されます。

3. 待ちますこの移行はゲスト上の負荷とそのサイズによりいくらかの時間がかかります。virsh は エラーを報告するだけです。このゲストは完全に移行が終了するまで送信元のホストで稼働し続けます。

4. ゲストが宛先ホストに到着したことを確認します目的地のシステム、test2.example.com から、 RHEL4test が稼働していることを確認します:

[root@test2 ~]# virsh listId Name State---------------------------------- 10 RHEL4 running

ライブマイグレーションはこれで完了しました。

Page 156: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

第20章 KVM ライブマイグレーション

146

その他のネットワーク方式

libvirt は、TLS/SSL、UNIX ソケット、SSH および暗号化されない TCP を含む、さまざまなネットワーク方式をサポートします。他の方式を用いる詳細については、21用用用用用用用用用用用用用を参照してください。

20.4. virt-manager を用いたマイグレーションこのセクションでは、virt-manager を使用した KVM ベースのゲストのマイグレーションを取り扱います。

1. 送信元を送信先のホストを接続します。ファイル メニューで、 接続を追加 をクリックすると、接続を 追加 のウィンドウが出現します。

以下の詳細を入力します:

• ハイパーバイザー: QEMU を選択します。

• 接続: 接続タイプを選択します。

• ホスト名: ホスト名を入力します。

接続 をクリックします。

仮想マシンマネージャのウィンドウが接続してあるホストの一覧を表示します。

Page 157: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

virt-manager を用いたマイグレーション

147

2. ソースとターゲットのホストに同じ NFS を使用するストレージプールを追加します。

編集 メニューで、ホストの詳細 をクリックすると、「ホストの詳細」ウィンドウが表示されます。

ストレージ タブをクリックします。

Page 158: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

第20章 KVM ライブマイグレーション

148

3. Add a new storage pool. In the lower left corner of the window, click the + button. The Add aNew Storage Pool window appears.

以下の詳細を入力します:

• 名前: ストレージプールの名前を入力します。

• タイプ: netfs: Network Exported ディレクトリ を選択します。

Page 159: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

virt-manager を用いたマイグレーション

149

進む をクリックします。

4. 以下の詳細を入力します:

• 形式: ストレージタイプを選択します。これはライブマイグレーション用には NFS または iSCSI でなければいけません。

• ホスト名: ストレージサーバーの IP アドレスか、又は 完全修飾型ドメイン名を入力します。

Page 160: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

第20章 KVM ライブマイグレーション

150

完了 をクリックします。

5. 共有ストレージプール内で新規のボリュームを作成して、新規ボリューム をクリックします。

6. 詳細を入力して、それから ボリュームの作成 をクリックします。

7. 新規のボリュームで仮想マシンを作成します。その後仮想マシンを実行します。

Page 161: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

virt-manager を用いたマイグレーション

151

The Virtual Machine window appears.

Page 162: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

第20章 KVM ライブマイグレーション

152

8. 仮想マシンマネージャのウィンドウで、仮想マシン上で右クリックします。 移行 を選択してから、移行の場所をクリックします。

Page 163: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

virt-manager を用いたマイグレーション

153

9. はい をクリックして移行を継続します。

仮想マシンマネージャは新しい場所での仮想マシンを表示します。

Page 164: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

第20章 KVM ライブマイグレーション

154

VNC 接続がそのタイトルバーにリモートホストのアドレスを表示します。

Page 165: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

virt-manager を用いたマイグレーション

155

Page 166: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

156

Page 167: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

157

仮想ゲストのリモート管理このセクションでは、ssh または TLS と SSL を用いて仮想ゲストをリモートで管理する方法を説明しています。

21.1. SSH を用いたリモート管理ssh パッケージは、リモート仮想サーバーに対して、安全に管理機能を送信できる暗号化したネットワークプロトコルを提供します。ここに説明してある方法は SSH 接続上で安全にトンネル化された libvirt 管理接続を使用して、リモートマシンを管理します。すべての認証は使用中の SSH エージェントによって収集された SSH 公開鍵暗号とパスワードまたはパスフレーズを使用して行われます。さらには、各ゲスト仮想マシンの VNC コンソールは SSH 上でトンネル化されます。

SSH は通常、デフォルトで設定されており、ユーザーにはおそらく既に SSH キーがセットされており、管理サービスや VNC コンソールにアクセスするためのさらなるファイアウォールルールは必要ないでしょう。

以下を含み、リモートで仮想マシンを管理するために SSH を用いる問題に注意してください:• 仮想マシンの管理のために、リモートマシンへ root ログインアクセスする必要があります、

• 初回の接続セットアッププロセスは時間がかかるかもしれません、

• すべてのホストやゲストにおいて、ユーザの鍵を無効にする標準的または自明な方法はありません。そして、

• ssh は多数のリモートマシンにおいてはうまく機能しません。

パスワードなしに設定します、もしくは virt-manager 用の SSH アクセスを管理するパスワードを設定します。以下の指示は、スクラッチから開始しており、 SSH 鍵をセットアップしていない、と仮定しています。SSH 鍵をセットアップして、他のシステムへコピーしているならば、この手順をスキップできます。

ユーザーはリモート管理にとって重要です。

SSH keys are user dependant. Only the user who owns the key may access that key.

virt-manager は、リモートホストへ接続するため、鍵を所有するユーザーとして実行されなければいけません。つまり、リモートシステムが非 root ユーザーで管理されているならば、virt-manager は非特権モードで実行されなければいけません。リモートシステムはローカルの root ユーザーによって管理されていると、SSH 鍵は root により所有され、作成されていなければいけません。

virt-manager とともに非特権ユーザとしてローカルホストを管理できません。

1. オプション:ユーザの変更もし必要ならばユーザを変更します。この例は、他のホストとローカルホストをリモート管理するためにローカルの root ユーザを使用します。

$ su -

2. SSH 鍵ペアの生成virt-manager が使用されているマシンにおいて、公開鍵ペアを生成します。この例は、デフォルトの鍵位置、~/.ssh/ ディレクトリを使用します。

$ ssh-keygen -t rsa

Page 168: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

第21章 仮想ゲストのリモート管理

158

3. リモートホストへの鍵のコピーパスワードなし、またはパスフレーズありのリモートログインは、SSH 鍵が管理されるシステムへと配布されている必要があります。与えられたシステムアドレス(たとえば、[email protected])において rootユーザへ鍵をコピーするために、ssh-copy-id コマンドを使用します。

# ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected] [email protected]'s password: Now try logging into the machine, with "ssh '[email protected]'", and check in: .ssh/authorized_keys to make sure we haven't added extra keys that you weren't expecting

必要に応じて、他のシステムに対して繰り返します。

4. オプション: ssh-agent へのパスフレーズの追加もし必要ならば、SSH 鍵に対するパスフレーズを ssh-agent へ追加します。ローカルホストにおいて、パスワードなしのログインを有効にするために、(もしひとつあれば)パスフレーズを追加するために、以下のコマンドを用います。

# ssh-add ~/.ssh/id_rsa.pub

SSH 鍵はリモートシステムへと追加されます。

libvirt デーモン(libvirtd)libvirt デーモンは、仮想マシンを管理するためのインターフェースを提供します。管理する必要があるすべてのリモートホストにおいて、libvirt デーモンをインストールして実行しなければいけません。

$ ssh root@somehost# chkconfig libvirtd on# service libvirtd start

libvirtd と SSH が設定された後は、仮想マシンをリモートでアクセスして管理できるでしょう。また、この時点で VNC を使用してもゲストへアクセスできるでしょう。

virt-manager を用いたリモートホストへのアクセスリモートホストは、virt-manager GUI ツールで管理できます。SSH 鍵は、パスワードなしのログインのために、virt-manager を実行しているユーザーに属していなければいけません。

1. virt-manager を開始します。

2. ファイル->接続の追加メニューを開きます。

3. ハイパーバイザーの種類、接続、 Connection->Remote tunnel over SSH に対する値を入力し、希望するホスト名を入力し、接続をクリックします。

21.2. TLS と SSL を用いたリモート管理仮想マシンを TLS と SSL を用いて管理することができます。TLS と SSL は、より拡張性を提供しますが、SSHよりも複雑です(用SSH 用用用用用用用用用用用参照)。TLS と SSL は、ウェブブラウザで安全な接続のために用いられる技術と同じものです。libvirt 管理用接続は、入力接続用の TCP ポートを開きます。各ゲストに対する VNCコンソールに加えて、仮想マシンは x509 証明書認証とともに TLS を用いるためにセットアップされるでしょう。

この方式は、リモートマシンで管理されているシェルアカウントを必要としません。しかしながら、管理サービスまたは VNC コンソールにアクセスするために、追加のファイアウォールルールが必要となります。

Page 169: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

トランスポートモード

159

virt-manager 用に TLS/SSL アクセスをセットアップする手順以下の短いガイドは、ユーザーがスクラッチから始めていること、および TLS/SSL 証明書の知識を持っていないことを想定しています。幸運にも証明書管理サーバを所有している場合、おそらく最初のステップは飛ばすことができるでしょう。

libvirt サーバーのセットアップ証明書の作成に関する詳細は、libvirt のウェブサイト http://libvirt.org/remote.html を参照してください。

virt-manager とvirsh のクライアントセットアップクライアントのセットアップは少しここでは不均等です。TLS 上で libvirt 管理 API を有効にするには、CAとクライアント証明書が /etc/pki に配置されなければなりません。詳細に関しては http://libvirt.org/remote.html を参照ください。

virt-manager ユーザーインタフェースにおいて、ホストへ接続するとき、「SSL/TLS」転送機構オプションを使用します。

virsh に対して、URI は以下のような形式を持ちます:

• KVM に対してqemu://hostname.guestname/system

VNC 用に SSL と TLS を有効にするには、CA とクライアント証明書を、$HOME/.pki に入れる必要があります。それは以下の3つのファイルです:

• CA または ca-cert.pem - CA 証明書。

• libvirt-vnc または clientcert.pem - CA によって署名されたクライアント証明書。

• libvirt-vnc または clientkey.pem - クライアントのプライベート鍵。

21.3. トランスポートモードリモートの管理のために、libvirt が以下のようなトランスポートモードをサポートします:

Transport Layer Security (TLS)Transport Layer Security TLS 1.0 (SSL 3.1) で認証されて暗号化された TCP/IP ソケットは、通常パブリックポート番号でリッスンしています。これを使用するには、クライアントとサーバの証明書を生成する必要があります。標準のポートは 16514 です。

UNIX ソケットUnixドメインソケットはローカルマシン上でのみアクセス可能です。ソケットは暗号化されておらず、認証のために UNIX 権限または SELinux を使用します。標準のソケット名は /var/run/libvirt/libvirt-sock と /var/run/libvirt/libvirt-sock-ro (読み込み専用の接続)です。

SSHSecure Shell protocol (SSH) 接続上のトランスポートです。Netcat(nc パッケージ)のインストールを必要とします。libvirt デーモン (libvirtd) がリモートマシン上で実行されている必要があります。ポート22が SSH アクセス用に開いていなければなりません。なんらかの ssh 鍵管理(たとえば、ssh-agent ユーティリティ)を使用する必要があります、さもなければパスワードを要求されます。

extext パラメータは、libvirt の範囲外の手段により、リモートマシンへと接続することができる、あらゆる外部プログラムに対して使われます。このパラメーターは試験的です。

Page 170: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

第21章 仮想ゲストのリモート管理

160

tcp暗号化のない TCP/IP ソケットです。実稼働使用には推奨できません。これは通常無効になっていますが、管理者はテスト目的や、信頼できるネットワーク上で有効にすることができます。デフォルトのポートは 16509 です。

デフォルトのトランスポートです。他に指定がない場合は tls です。

リモート URIUniform Resource Identifier (URI) はリモートホストに接続するために virsh と libvirt により使用されます。URI はまた、virsh コマンド用に --connect パラメーターと一緒にリモートホスト上で単独のコマンドや移行を実行するのに使用されます。

libvirt URI は一般的な形式を取ります(角括弧 "[]" の中身はオプションの関数を示します):

driver[+transport]://[username@][hostname][:port]/[path][?extraparameters]

外部の場所を目標とするためにトランスポートモードまたはホスト名が与えられる必要があります。

リモート管理パラメータのサンプル• SSH 転送と SSH ユーザ名 ccurran を用いて、server7 というリモート KVM ホストへ接続します。

qemu+ssh://ccurran@server7/

• TLS を用いて server7 という名のホストにおけるリモート KVM ハイパーバイザーへ接続します。

qemu://server7/

• TLS を用いてホスト server7 におけるリモート KVM ハイパーバイザーへ接続します。no_verify=1は、libvirt がサーバーの証明書を検証しないよう指示します。

qemu://server7/?no_verify=1

テスト用サンプル• 標準でない UNIX ソケットを使用してローカルの KVM ハイパーバイザーに接続します。この場合 Unix ソ

ケットへの完全なパスは明示的に与えられます。

qemu+unix:///system?socket=/opt/libvirt/run/libvirt/libvirt-sock

• ポート 5000 で IP アドレス 10.1.1.10 を持つ サーバーへの 暗号化のない TCP/IP 接続を 使用してlibvirt デーモンへ接続します。これは、デフォルト設定を持つテストドライバーを 使用します。

test+tcp://10.1.1.10:5000/default

その他の URI パラメーター追加のパラメーターがリモート URI へと追加されます。以下の表、用21.1用用用用用 URI 用用用用用用用は、認識されるパラメーターを扱います。他のパラメータはすべて無視されます。パラメーターは URI エスケープされなければいけないことに注意してください(つまり、疑問符(?)がパラメーターの前に加えられ、 特別な文字は URI 形式へと変換されます)。

Page 171: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

トランスポートモード

161

表21.1 その他の URI パラメーター

名前 トランスポートモード 説明 使用法のサンプル

名前 全てのモード リモートvirConnectOpen 関数に渡される名前です。この名前は通常、リモートURI からトランスポート、ホスト名、 ポート番号、ユーザー名、及び余分なパラメーターを削除したものですが、一部の複雑なケースでは、名前を明示的に与えるのが適切な場合もあります。

name=qemu:///system

コマンド ssh と ext 外部コマンドです。外部のトランスポートにはこれが必須となります。ssh用には デフォルトは sshです。コマンドのためにPATH が検索されます。

command=/opt/openssh/bin/ssh

ソケット unix と ssh UNIX ドメインソケットへのパスです。これはデフォルトを上書きします。 sshトランスポートには、これがリモート netcat コマンドに渡されます(netcat参照)。

socket=/opt/libvirt/run/libvirt/libvirt-sock

netcat ssh netcat コマンドはリモートシステムに接続するのに 使用できます。デフォルトの netcat パラメータは nc コマンドを 使用します。SSH トランスポート用には、libvirt が以下の形式を使用して SSHコマンドを 構築します:

command -p port [-lusername] hostname

netcat -U socket

port、username、及び hostname パラメータはリモート URI の一部として 指定できます。command、netcat、及び socket は他の追加のパラメータ 由来のものです。

netcat=/opt/netcat/bin/nc

no_verify tls もし非ゼロの値がセットされていると、サーバ

no_verify=1

Page 172: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

第21章 仮想ゲストのリモート管理

162

名前 トランスポートモード 説明 使用法のサンプル

の証明書のクライアントチェックを無効にします。クライアントの証明書または IP アドレスのサーバーチェックを無効化するために、libvirtd の設定を変更しなければいけません。

no_tty ssh 非ゼロの値にセットしてある場合、(ssh-agent又は同類の使用で)自動的にリモートマシンにログインできない場合に、ssh がパスワードを要求することを止めます。例えば、 libvirt を使用するグラフィカルプログラム内のターミナルにアクセスを持たない時に これを使用します。

no_tty=1

Page 173: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

163

KSM共有メモリーの概念は最近のオペレーティングシステムでは一般的です。たとえば、プログラムが初めて起動したときに、親プログラムとすべてのメモリを共有します。

KSM is a new Linux feature which uses this concept in reverse. KSM enables the kernel toexamine two or more already running programs and compare their memory. If any memoryregions are exactly identical, the kernel can combine the two regions into one and mark thoseregions for copy on write as above.

This is useful for virtualization with KVM. When a virtualized guest virtual is started, it onlyinherits the memory from the parent qemu-kvm process. Once the guest is running the contentsof the guest operating system image can be shared when guests are running the same operatingsystem or applications. KSM identifies these identical blocks in an anonymous way which doesnot interfere with the guest or impact the secturity. KSM allows KVM to request that theseidentical guest memory regions be shared.

The benefits of KSM are speed and utilization. With KSM, common data is kept in cache or inmain memory. This reduces cache misses for the KVM guests which can improve performace forsome applications and operating systems. Secondly, sharing memory reduces the overall memoryusage of guests which allows for higher densities and greater utilization of resources.

Activating KSMTo be done

KSM を無効にするTo be done

Tuning KSMTo be done

Page 174: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

164

Page 175: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

165

高度な仮想化環境の管理本章は仮想化ゲストとホストのシステムリソースを細かくチューニングし、制御するための高度な管理ツールについてカバーしています。

注記

本章は作成中です。後日このドキュメントを参照してください。

23.1. ゲストのスケジューリングKVM guests function as Linux processes. By default, KVM guests are prioritised and scheduledwith the Linux Completely Fair Scheduler. Tuning the schedule for guest processes may berequired for some environments or to prioritize certain guests.

23.2. 高度なメモリー管理ゲストが使えるメモリーの上限を課すことおよび特定のゲストにおいてオーバーコミットを防ぐこと。

23.3. ゲストのブロック I/O の減速ゲストのブロック I/O スループットを制限する。

23.4. ゲストのネットワーク I/O の減速ゲストのネットワーク活動を制限する。

Page 176: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

166

Page 177: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

167

Xen から KVM へのマイグレーションもはや可能ではありません。

24.1. Xen から KVMこの章は、Fedora Xen ハイパーバイザのゲストから KVM ハイパーバイザを持つ Fedora へのマイグレーションを取り扱います。

24.2. KVM から KVM への古いバージョンこの章は、Fedora KVM ハイパーバイザのゲストから KVM ハイパーバイザを持つ Fedora へのマイグレーションを取り扱います。

Page 178: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

168

Page 179: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

169

さまざまな管理作業本章は、仮想化のパフォーマンス、拡張性および安定性を向上させるために有用なヒントを含んでいます。

25.1. ゲストの自動起動このセクションは、ホストシステムのブート中に仮想ゲストを自動的に起動させる情報について取り扱っています。

この例は、virsh を用いて、ホストがブートしたときに自動的に開始するよう、ゲスト(TestServer)を設定しています。

# virsh autostart TestServerDomain TestServer marked as autostarted

これでゲストがホストとともに自動的に起動します。

ゲストが自動起動するのを止めるため、--disable パラメーターを使用します。

# virsh autostart --disable TestServerDomain TestServer unmarked as autostarted

もはやゲストはホストとともに自動起動することはなくなりました。

25.2. qemu-img の使用qemu-img コマンドラインツールは、KVM で使用されるさまざまなファイルシステムをフォーマットするために用いられます。qemu-img は、仮想ゲストイメージ、追加のストレージデバイスおよびネットワークストレージに対して用いられます。qemu-img のオプションと使用方法は以下に示されます。

新規イメージまたはデバイスのフォーマットおよび作成Create the new disk image filename of size size and format format.

# qemu-img create [-6] [-e] [-b base_image] [-f format] filename [size]

base_image が指定されているならば、イメージは base_image の差分だけを記録します。この場合、容量を指定する必要はありません。base_image は、"commit" モニタコマンドを使用しない限り、変更されません。

既存イメージから他のフォーマットへの変換convert オプションは、認識されたフォーマットを他のイメージフォーマットへ変換するために用いられます。

コマンドフォーマット:

# qemu-img convert [-c] [-e] [-f format] filename [-O output_format] output_filename

ディスクイメージ filename を、output_format フォーマットでディスクイメージ output_filename に変換します。ディスクイメージはオプションとして、-e オプションで暗号化されます、もしくは、-c オプションで圧縮されます。

qcow フォーマットだけが、暗号化と圧縮をサポートしています。圧縮は読み込み専用です。もし圧縮されたセクタを上書きしたいならば、非圧縮データとして上書きされるということを意味します。

Page 180: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

第25章 さまざまな管理作業

170

暗号化は、非常に安全な 128-bit 鍵を持つ AES 形式を用います。最高の保護を得るために長いパスワード(16文字以上)を使用します。

イメージ変換は、qcow や cow のような、拡張できるフォーマットを用いているときに、イメージをより小さくするためにも有用です。空セクタはあて先イメージから検出され、削除されます。

イメージ情報の入手info パラメータはディスクイメージに関する情報を表示します。info オプションに対するフォーマットは以下のとおりです:

# qemu-img info [-f format] filename

ディスクイメージのファイル名に関する情報を表示します。表示された容量と異なる可能性がある、ディスクに割り当てられた容量を知るために用います。仮想マシンのスナップショットはディスクイメージに保存され、それも表示されます。

サポートされるフォーマットイメージのフォーマットは通常自動的に推測されます。以下のフォーマットがサポートされます:

rawRaw ディスクイメージフォーマット(デフォルト)。このフォーマットは、シンプルである優位性を持ち、他のエミュレータすべてへと簡単にエクスポート可能です。もしファイルシステムが hole(たとえば、Linux における ext2 や ext3 もしくは Windows における NTFS で)をサポートしているならば、書き込まれたセクタのみが領域を割り当てます。イメージにより使用されている実容量を知るために、qemu-img info、もしくはUnix/Linux において ls -ls を使用します。

qcow2QEMU イメージフォーマット、もっとも多機能なフォーマット。より小さいイメージを持つために利用されます(もしファイルシステムが hole をサポートしていないならば(たとえば、Windows において)有用です。)、オプションとして AES 暗号化、zlib ベースの圧縮および複数の VM スナップショットがあります。

qcow古い QEMU イメージフォーマット。古いバージョンとの互換性のためだけに含まれます。

cowUser Mode Linux の Copy On Write イメージフォーマット。cow フォーマットは以前のバージョンとの互換性のためだけに含まれます。Windows では動作しません。

vmdkVMware 3 および 4 互換のイメージフォーマット

cloopLinux Compressed Loop イメージ、たとえば Knoppix CD-ROM において、圧縮された CD-ROM イメージを直接再利用するためだけに有用です。

25.3. KVM でのオーバーコミットKVM ハイパーバイザーは CPU オーバーコミットとメモリーオーバーコミットをサポートします。オーバーコミットは、システムにある物理リソースより多い仮想 CPU やメモリーを割り当てます。CPU オーバーコミットとともに用いると、あまり使用されていない仮想サーバーやデスクトップが、より少ないサーバーで実行でき、電力や費用を節約できます。

Page 181: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

KVM でのオーバーコミット

171

メモリオーバーコミットMost operating systems and applications do not use 100% of the available RAM all the time.This behavior can be exploited with KVM to use more memory for virtualized guests than what isphysically available.

With KVM, virtual machines are Linux processes. Guests on the KVM hypervisor do not haveblocks of physical RAM assigned to them instead they function as processes. Each process isallocated memory when it requests more memory. KVM uses this to allocate memory for guestswhen the guest operating system requests more or less memory. The guest only uses slightlymore physical memory than the virtualized operating system appears to use.

When physical memory is nearly completely used or a process is inactive for some time, Linuxmoves the process's memory to swap. Swap is usually a partition on a hard disk drive or solidstate drive which Linux uses to extend virtual memory. Swap is significantly slower than RAM.

As KVM virtual machines are Linux processes, memory used by virtualized guests can be put intoswap if the guest is idle or not in heavy use. Memory can be committed over the total size of theswap and physical RAM. This can cause issues if virtualized guests use their total RAM. Withoutsufficient swap space for the virtual machine processes to be swapped to the pdflush process,the cleanup process, starts. pdflush kills processes to free memory so the system does not crash.pdflush may destroy virtualized guests or other system processes which may cause file systemerrors and may leave virtualized guests unbootable.

警告

十分なスワップが利用できないならば、ゲストオペレーティングシステムは強制的にシャットダウンされるでしょう。これはゲストを動作不能にするかもしれません。利用可能なスワップ以上にメモリーをオーバーコミットしないことでこれを避けます。

The swap partition is used for swapping underused memory to the hard drive to speed upmemory performance. The default size of the swap partition is calculated from amount of RAMand overcommit ratio. It is recommended to make your swap partition larger if you intend toovercommit memory with KVM. A recommended overcommit ratio is 50% (0.5). The formula usedis:

(0.5 * RAM) + (overcommit ratio * RAM) = Recommended swap size

Red Hat Knowledgebase1 に、スワップパーティションの容量を安全かつ効率的な決めることの記事があります。

It is possible to run with an overcommit ratio of ten times the number of virtualized guests overthe amount of physical RAM in the system. This only works with certain application loads (forexample desktop virtualization with under 100% usage). Setting overcommit ratios is not a hardformula, you must test and customize the ratio for your environment.

1 http://kbase.redhat.com/faq/docs/DOC-15252

Page 182: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

第25章 さまざまな管理作業

172

仮想 CPU のオーバーコミットKVM ハイパーバイザーは仮想 CPU のオーバーコミットをサポートします。仮想 CPU は仮想ゲストが許可する負荷制限と同じくらいオーバーコミットできます。100% 近い負荷によりリクエストが廃棄されたり、レスポンス時間が非実用的となる可能性があるので、VCPU をオーバーコミットするときに注意してください。

各仮想ゲストがシングル VCPU を持つとき、仮想 CPU は最も良くオーバーコミットされます。Linux スケジューラーはこの種類の負荷に非常に効果的です。KVM は 5VCPU の比率で 100% 以下の負荷を持つゲストを安全にサポートするでしょう。シングル VCPU の仮想ゲストをオーバーコミットすることは問題ありません。

プロセッサーコアの物理数以上の SMP ゲストをオーバーコミットできません。たとえば、4VCPU を持つゲストは、デュアルコアのプロセッサを持つホストにおいて実行できません。処理コアの物理数を超えて SMP ゲストをオーバーコミットすると、重大な性能劣化を引き起こします。

ゲスト VCPU を物理コア数まで割り当てることは、適切であり、期待したとおりに動作します。たとえば、クアッドコアのホストにおいて 4VCPU を持つ仮想 CPU を実行すること。負荷 100% 以下のゲストはこのセットアップにおいて効果的に機能します。

常にテストファースト

十分にテストされていない稼動環境において、メモリーや CPU をオーバーコミットしないでください。メモリーや処理リソースを 100% 使用するアプリケーションは、オーバーコミット環境において不安定になるかもしれません。デプロイ前にテストしてください。

25.4. 仮想化拡張の確認あなたのシステムがハードウェア仮想化拡張を持つかどうかを決めるために、このセクションを利用します。仮想化拡張(Intel VT や AMD-V)が完全仮想化に必要です。

1. CPU 仮想化拡張が利用可能であるかを確認するために以下のコマンドを実行します:

$ grep -E 'svm|vmx' /proc/cpuinfo

2. 出力の分析

• 以下の出力は、Intel VT 拡張を持つ Intel プロセッサーを意味する、vmx エントリを含みます。

flags : fpu tsc msr pae mce cx8 apic mtrr mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall lm constant_tsc pni monitor ds_cpl vmx est tm2 cx16 xtpr lahf_lm

• 以下の出力は、AMD-V 拡張を持つ AMD プロセッサを意味する、svm エントリを含みます。

flags : fpu tsc msr pae mce cx8 apic mtrr mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt lm 3dnowext 3dnow pni cx16 lahf_lm cmp_legacy svm cr8legacy ts fid vid ttp tm stc

もし何らかの出力が得られると、プロセッサーはハードウェア仮想化拡張を持ちます。しかし、いくつかの状況において、製造者は BIOS で仮想化拡張を無効にしています。

"flags:" 出力内容は、システムにおける各ハイパースレッド、コアまたは CPU ごとに一度、何回も出てくるかもしれません。

Page 183: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

Accessing data from a guest disk image

173

仮想化拡張は BIOS で無効にされているかもしれません。拡張が表示されなかったり、完全仮想化がうまく動作しなかったりするならば、用用32.1用BIOS 用用用用用用用用用用用用用用 を参照してください。

3. KVM ハイパーバイザーのユーザーのためにもし kvm パッケージがインストールされているならば、追加の確認として、kvm モジュールがカーネルにロードされているかを確認します:

# lsmod | grep kvm

もし出力に kvm_intel や kvm_amd が含まれるならば、kvm ハードウェア仮想化モジュールがロードされていて、システムは要件を満たします。sudo

追加の出力

libvirt パッケージがインストールされているならば、virsh コマンドが仮想化システム互換性の完全なリストを出力できます。完全なリストを得るために、virsh capabilies を root として実行します。

25.5. Accessing data from a guest disk imageThere are various methods for accessing the data from guest image files. One common methodis to use the kpartx tool, covered by this section, to mount the guest file system as a loop devicewhich can then be accessed.

The kpartx command creates device maps from partition tables. Each guest storage image has apartition table embedded in the file.

The libguestfs and guestfish packages, avilable from the EPEL2 repository, allow advancedmodification and access to guest file systems. The libguestfs and guestfish packages are notcovered in this section at this time.

警告

Guests must be offline before their files can be read. Editing or reading files of an activeguest is not possible and may cause data loss or damage.

手順25.1 Accessing guest image data1. Install the kpartx package.

# yum install kpartx

2. Use kpartx to list partition device mappings attached to a file-based storage image. Thisexample uses a image file named guest1.img.

2 http://fedoraproject.org/wiki/EPEL

Page 184: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

第25章 さまざまな管理作業

174

# kpartx -l /var/lib/libvirt/images/guest1.imgloop0p1 : 0 409600 /dev/loop0 63loop0p2 : 0 10064717 /dev/loop0 409663

guest1 is a Linux guest. The first partition is the boot partition and the second partition is anEXT3 containing the root partition.

3. Add the partition mappings to the recognized devices in /dev/mapper/.

# kpartx -a /var/lib/libvirt/images/guest1.img

• Test that the partition mapping worked. There should be new devices in the /dev/mapper/ directory

# ls /dev/mapper/loop0p1loop0p2

The mappings for the image are named in the format loopXpY.

4. Mount the loop device which to a directory. If required, create the directory. This exampleuses /mnt/guest1 for mounting the partition.

# mkdir /mnt/guest1# mount /dev/mapper/loop0p1 /mnt/guest1 -o loop,ro

5. The files are now avialable for reading in the /mnt/guest1 directory. Read or copy the files.

6. Unmount the device so the guest image can be reused by the guest. If the device is mountedthe guest cannot access the image and therefore cannot start.

# umount /mnt/tmp

7. Disconnnect the image file from the partition mappings.

# kpartx -d /var/lib/libvirt/images/guest1.img

The guest can now be restarted.

Accessing data from guest LVM volumesMany Linux guests use Logical Volume Management (LVM) volumes. Additional steps arerequired to read data on LVM volumes on virtual storage images.

1. Add the partition mappings for the guest1.img to the recognized devices in the /dev/mapper/ directory.

# kpartx -a /var/lib/libvirt/images/guest1.img

2. In this example the LVM volumes are on a second partition. The volumes require a rescanwith the vgscan command to find the new volume groups.

Page 185: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

KVM プロセッサーアフィニティの設定

175

# vgscanReading all physical volumes . This may take a while...Found volume group "VolGroup00" using metadata type lvm2

3. Activate the volume group on the partition (called VolGroup00 by default) with the vgchange -ay command.

# vgchange -ay VolGroup002 logical volumes in volume group VolGroup00 now active.

4. Use the lvs command to display information about the new volumes. The volume names (theLV column) are required to mount the volumes.

# lvsLV VG Attr Lsize Origin Snap% Move Log Copy%LogVol00 VolGroup00 -wi-a- 5.06GLogVol01 VolGroup00 -wi-a- 800.00M

5. Mount /dev/VolGroup00/LogVol00 in the /mnt/guestboot/ directory.

# mount /dev/VolGroup00/LogVol00 /mnt/guestboot

6. The files are now avialable for reading in the /mnt/guestboot directory. Read or copy the files.

7. Unmount the device so the guest image can be reused by the guest. If the device is mountedthe guest cannot access the image and therefore cannot start.

# umount /mnt/

8. Disconnect the volume group VolGroup00

# vgchange -an VolGroup00

9. Disconnnect the image file from the partition mappings.

# kpartx -d /var/lib/libvirt/images/guest1.img

The guest can now be restarted.

25.6. KVM プロセッサーアフィニティの設定このセクションは、libvirt と KVM ゲストを用いて、プロセッサーと処理コアのアフィニティを設定することを取り扱います。

デフォルトで、libvirt はハイパーバイザーのデフォルトポリシーを用いてゲストをセットアップします。多くのハイパーバイザにとって、ポリシーは利用可能な処理コアや CPU すべてにおいてゲストを実行するようになっています。特に NUMA (Non-Uniform Memory Access) アーキテクチャーを持つシステムに対しては、明確なポリシーがより良いかもしれないときがあります。NUMA システムにおけるゲストは、メモリー配置が常に実行されているノードのローカルにあるよう、処理コアを固定すべきです。

非 NUMA システムにおいて、ホストのソケット、コアおよびハイパースレッディングをまたがった明確な配置のいくかの形式は、より効率的かもしれません。

Page 186: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

第25章 さまざまな管理作業

176

CPU と NUMA 接続形態の識別どのポリシーを適用するかを決める最初のステップは、ホストのメモリと CPU 接続形態を決定することです。virsh nodeinfo コマンドは、ホストに接続されているソケット数、コア数およびハイパースレッド数に関する情報を提供します。

# virsh nodeinfoCPU model: x86_64CPU(s): 8CPU frequency: 1000 MHzCPU socket(s): 2Core(s) per socket: 4Thread(s) per core: 1NUMA cell(s): 1Memory size: 8179176 kB

このシステムは 2 ソケットに 8CPU を持ち、各プロセッサが 4 コアを持ちます。

出力は、システムが NUMA アーキテクチャを持つことを示しています。NUMA は、より複雑であり、正しく解釈されるためによりデータが必要です。CPU 設定において追加の出力データを手に入れられるように virshcapabilities を使用してください。

# virsh capabilities<capabilities> <host> <cpu> <arch>x86_64</arch> </cpu> <migration_features> <live/> <uri_transports> <uri_transport>tcp</uri_transport> </uri_transports> </migration_features> <topology> <cells num='2'> <cell id='0'> <cpus num='4'> <cpu id='0'/> <cpu id='1'/> <cpu id='2'/> <cpu id='3'/> </cpus> </cell> <cell id='1'> <cpus num='4'> <cpu id='4'/> <cpu id='5'/> <cpu id='6'/> <cpu id='7'/> </cpus> </cell> </cells> </topology> <secmodel> <model>selinux</model> <doi>0</doi> </secmodel> </host>

[ Additional XML removed ]

</capabilities>

Page 187: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

KVM プロセッサーアフィニティの設定

177

The output shows two NUMA nodes (also know as NUMA cells), each containing four logicalCPUs (four processing cores). This system has two sockets, therefore we can infer that eachsocket is a separate NUMA node. For a guest with four virtual CPUs, it would be optimal to lockthe guest to physical CPUs 0 to 3, or 4 to 7 to avoid accessing non-local memory, which aresignificantly slower than accessing local memory.

ゲストは8仮想 CPU を必要とするならば、各 NUMA ノードが4物理 CPU しか持たないので、単一の 8CPUゲストを使用するよりはむしろ、4仮想 CPU のゲストの組を実行し、それらの間で作業を分けることで、より良く利用できるでしょう。

どの NUMA ノードがゲストを実行するかの決定ゲストを特定の NUMA ノードに固定することは、そのノードがゲストに対する十分な空きメモリーを持たないならば、利益はありません。libvirt は各ノードにおける空きメモリーの情報を保存します。すべての NUMA ノードにおける空きメモリーを表示するために、virsh freecell コマンドを使用してください。

# virsh freecell0: 2203620 kB1: 3354784 kB

ゲストが 3GB の RAM 割り当てを必要とするならば、ゲストは NUMA ノード(セル)1 で実行されるでしょう。ノード0は、おそらく特定のゲストに対しては十分ではない、2.2GB の空きしかありません。

ゲストの NUMA ノードまたは物理 CPU セットへの固定いったんゲストをどのノードで実行するか決めたら、NUMA 接続形態に関する性能データ(virshcapabilities コマンドの出力)を参照してください。

1. virsh capabilities 出力からの変換

<topology> <cells num='2'> <cell id='0'> <cpus num='4'> <cpu id='0'/> <cpu id='1'/> <cpu id='2'/> <cpu id='3'/> </cpus> </cell> <cell id='1'> <cpus num='4'> <cpu id='4'/> <cpu id='5'/> <cpu id='6'/> <cpu id='7'/> </cpus> </cell> </cells></topology>

2. ノード1 (<cell id='1'>) が物理 CPU 4~7 を持つことを確認してください。

3. ゲストは、cpuset 属性を設定ファイルにすることで、CPU の組を固定できます。

a. ゲストがオフラインの間、virsh edit で設定ファイルを開いてください。

b. ゲストの仮想 CPU カウントが特定される位置を見つけます。vcpus 要素を探します。

Page 188: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

第25章 さまざまな管理作業

178

<vcpus>4</vcpus>

この例におけるゲストは 4CPU を持ちます。

c. Add a cpuset attribute with the CPU numbers for the relevent NUMA cell.

<vcpus cpuset='4-7'>4</vcpus>

4. 設定ファイルを保存し、ゲストを再起動してください。

ゲストは CPU4~7 に固定されました。

virt-install を用いたゲストの CPU の自動固定virt-install セットアップツールは、ゲストが作成されるときに「最も合う」 NUMA ポリシーを自動的に適用するために簡単な方法を提供します。

virt-install への cpuset オプションは、プロセッサーの CPU セットまたはパラメーター auto を使用できます。auto パラメーターは、利用可能な NUMA データを用いて最適な CPU 固定を自動的に決定します。

NUMA システムに対して、新規ゲストを作成するとき、virt-install コマンドに --cpuset=auto を使います。

動作中のゲストにおける CPU アフィニティのチューニング実行中のゲストにおいて CPU アフィニティを変更するとき、ゲストを再起動したほうが望ましい場合があるかもしれません。virsh vcpuinfo と virsh vcpupin コマンドは、実行中にゲストにおいて CPU アフィニティを変更できます。

virsh vcpuinfo コマンドは、各仮想 CPU がどこで動作しているかに関する情報に日付をつけることを保証します。

この例では、guest1 は、KVM ホストで実行している4仮想 CPU を持つゲストです。

# virsh vcpuinfo guest1VCPU: 0CPU: 3State: runningCPU time: 0.5sCPU Affinity: yyyyyyyyVCPU: 1CPU: 1State: runningCPU Affinity: yyyyyyyyVCPU: 2CPU: 1State: runningCPU Affinity: yyyyyyyyVCPU: 3CPU: 2State: runningCPU Affinity: yyyyyyyy

virsh vcpuinfo の出力(CPU Affinity の yyyyyyyy 値)は、現在ゲストがすべての CPU において実行できることを示しています。

仮想 CPU を第2 NUMA ノード(CPU4~7)に固定するために、以下のコマンドを実行します。

Page 189: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

一意な新規 MAC アドレスの生成

179

# virsh vcpupin guest1 0 4# virsh vcpupin guest1 1 5# virsh vcpupin guest1 2 6# virsh vcpupin guest1 3 7

virsh vcpuinfo コマンドはアフィニティにおける変更を確認します。

# virsh vcpuinfo guest1VCPU: 0CPU: 4State: runningCPU time: 32.2sCPU Affinity: ----y---VCPU: 1CPU: 5State: runningCPU time: 16.9sCPU Affinity: -----y--VCPU: 2CPU: 6State: runningCPU time: 11.9sCPU Affinity: ------y-VCPU: 3CPU: 7State: runningCPU time: 14.6sCPU Affinity: -------y

KVM プロセスからの情報も、ゲストがいま第2 NUMA ノードにおいて実行されていることを確認できます。

# grep pid /var/run/libvirt/qemu/guest1.xml<domstatus state='running' pid='4907'># grep Cpus_allowed_list /proc/4907/task/*/status/proc/4907/task/4916/status:Cpus_allowed_list: 4/proc/4907/task/4917/status:Cpus_allowed_list: 5/proc/4907/task/4918/status:Cpus_allowed_list: 6/proc/4907/task/4919/status:Cpus_allowed_list: 7</section>

25.7. 一意な新規 MAC アドレスの生成いくつかの場合において、ゲスト用の新しく一意な MAC 用用用用を生成する必要があるでしょう。執筆時点で、新しい MAC アドレスを生成するために利用可能なコマンドラインツールはありません。以下に示されるスクリプトはゲスト用の新しい MAC アドレスを生成できます。スクリプトを macgen.py としてゲストへ保存します。ここで、そのディレクトリから ./macgen.py を用いてスクリプトを実行でき、それが新しい MAC アドレスを生成するでしょう。サンプル出力が以下のように見えるでしょう:

$ ./macgen.py 00:16:3e:20:b0:11 #!/usr/bin/python# macgen.py script to generate a MAC address for virtualized guests#import random#def randomMAC(): mac = [ 0x00, 0x16, 0x3e, random.randint(0x00, 0x7f), random.randint(0x00, 0xff),

Page 190: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

第25章 さまざまな管理作業

180

random.randint(0x00, 0xff) ] return ':'.join(map(lambda x: "%02x" % x, mac))#print randomMAC()

ゲスト用の新しい MAC を生成する他の方法ゲスト設定ファイルにおいて使用する、新しい MAC アドレスと UUID を生成するために、python-virtinst の組み込みモジュールを使用することもできます:

# echo 'import virtinst.util ; print\ virtinst.util.uuidToString(virtinst.util.randomUUID())' | python# echo 'import virtinst.util ; print virtinst.util.randomMAC()' | python

上のスクリプトは、以下にあるように、スクリプトファイルとしても実装されます。

#!/usr/bin/env python# -*- mode: python; -*-print ""print "New UUID:"import virtinst.util ; print virtinst.util.uuidToString(virtinst.util.randomUUID())print "New MAC:"import virtinst.util ; print virtinst.util.randomMAC()print ""

25.8. Very Secure ftpdvsftpdは、準仮想化ドライバー用のインストールツリー(たとえば、Fedoraリポジトリ)または他のデータへアクセスできるようにします。サーバをインストール中にvsftpdがインストールされていなければ、インストールメディアのServerディレクトリからRPMパッケージを手に入れられ、rpm -ivh vsftpd*.rpmでインストールできます(RPMパッケージはカレントディレクトリになければいけないことに注意してください。)。

1. To configure vsftpd, edit /etc/passwd using vipw and change the ftp user's home directoryto the directory where you are going to keep the installation trees for your para-virtualizedguests. An example entry for the FTP user would look like the following:

ftp:x:14:50:FTP User:/installtree/:/sbin/nologin

2. chkconfig --list vsftpd を用いて vsftpd が有効でないことを確認します:

$ chkconfig --list vsftpdvsftpd 0:off 1:off 2:off 3:off 4:off 5:off 6:off

3. vsftpd がランレベル3、4および5で自動的に開始するよう、chkconfig --levels 345 vsftpd on を実行します。

4. chkconfig --list vsftpd を使用して、vsftpd デーモンがシステム起動中に開始するよう有効化されていることを確認します:

$ chkconfig --list vsftpdvsftpd 0:off 1:off 2:off 3:on 4:on 5:on 6:off

5. service vsftpd start vsftpd を使用して vsftpd サービスを開始します:

$service vsftpd start vsftpd

Page 191: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

Configuring LUN Persistence

181

Starting vsftpd for vsftpd: [ OK ]

25.9. Configuring LUN PersistenceThis section covers how to implement LUN persistence in guests and on the host machine withand without multipath.

Implementing LUN persistence without multipathIf your system is not using multipath, you can use udev to implement LUN persistence. Beforeimplementing LUN persistence in your system, ensure that you acquire the proper UUIDs. Onceyou acquire these, you can configure LUN persistence by editing the scsi_id file that resides inthe /etc directory. Once you have this file open in a text editor, you must comment out this line:

# options=-b

Then replace it with this parameter:

# options=-g

This tells udev to monitor all system SCSI devices for returning UUIDs. To determine the systemUUIDs, use the scsi_id command:

# scsi_id -g -s /block/sdc*3600a0b80001327510000015427b625e*

The long string of characters in the output is the UUID. The UUID does not change when youadd a new device to your system. Acquire the UUID for each device in order to create rules forthe devices. To create new device rules, edit the 20-names.rules file in the /etc/udev/rules.d directory. The device naming rules follow this format:

# KERNEL="sd*", BUS="scsi", PROGRAM="sbin/scsi_id", RESULT="UUID", NAME="devicename"

Replace your existing UUID and devicename with the above UUID retrieved entry. The ruleshould resemble the following:

KERNEL="sd*", BUS="scsi", PROGRAM="sbin/scsi_id", RESULT="3600a0b80001327510000015427b625e", NAME="mydevicename"

This enables all devices that match the /dev/sd* pattern to inspect the given UUID. When it findsa matching device, it creates a device node called /dev/devicename. For this example, thedevice node is /dev/mydevice . Finally, append the /etc/rc.local file with this line:

/sbin/start_udev

Implementing LUN persistence with multipathTo implement LUN persistence in a multipath environment, you must define the alias namesfor the multipath devices. For this example, you must define four device aliases by editing themultipath.conf file that resides in the /etc/ directory:

multipath {

Page 192: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

第25章 さまざまな管理作業

182

wwid 3600a0b80001327510000015427b625e alias oramp1}multipath { wwid 3600a0b80001327510000015427b6 alias oramp2}multipath { wwid 3600a0b80001327510000015427b625e alias oramp3}multipath { wwid 3600a0b80001327510000015427b625e alias oramp4}

This defines 4 LUNs: /dev/mpath/oramp1, /dev/mpath/oramp2, /dev/mpath/oramp3, and dev/mpath/oramp4. The devices will reside in the /dev/mpath directory. These LUN names are persistent afterreboots as it creates aliased names on the wwid for each of the LUNs.

25.10. ゲストに対する SMART ディスクモニタリングの無効化SMART disk monitoring can be disabled as we are running on virtual disks and the physicalstorage is managed by the host.

/sbin/service smartd stop/sbin/chkconfig --del smartd

25.11. VNC サーバーの設定VNC サーバーを設定するために、システム > 設定にあるリモートデスクトップアプリケーションを使用します。

以下の手順で専用の VNC サーバーセッションをセットアップします:

1. vncserver が開始されるといつでも、GNOME セッションが開始するよう ~/.vnc/xstartup ファイルを編集します。初めて vncserver スクリプトを実行するとき、使用したい VNC セッションのパスワードを尋ねられます。

2. サンプル xstartup ファイルは:

#!/bin/sh# Uncomment the following two lines for normal desktop:# unset SESSION_MANAGER# exec /etc/X11/xinit/xinitrc[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources#xsetroot -solid grey#vncconfig -iconic &#xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &#twm &if test -z "$DBUS_SESSION_BUS_ADDRESS" ; then eval `dbus-launch --sh-syntax –exit-with-session` echo "D-BUS per-session daemon address is: \ $DBUS_SESSION_BUS_ADDRESS"fiexec gnome-session

Page 193: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

パート V. 仮想ストレージの話題

仮想用のストレージ管理の紹介This part covers using shared, networked storage with virtualization on Fedora.

The following methods are working for virtualization:

• Fibre Channel

• iSCSI

• NFS

• GFS2

Networked storage is essential for live and offline guest migrations. You cannot migrate guestswithout shared storage.

Page 194: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13
Page 195: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

185

Using shared storage with virtual disk imagesThis chapter covers using various types of shared and network storage devices for virtual disks.

26.1. Using iSCSI for storing virtual disk imagesThis chapter covers using iSCSI-based devices to store virtualized guests.

26.2. Using NFS for storing virtual disk imagesThis chapter covers using NFS to store virtualized guests.

26.3. Using GFS2 for storing virtual disk imagesThis chapter covers using the Red Hat Global File System 2 (GFS2) to store virtualized guests.

26.4. Storage PoolsUsing storage pools in RHEL

26.4.1. Configuring storage devices for poolsHow to set up the device/RHEL for storage pools for iSCSI, GFS and (maybe) Fibre Channel.

26.4.2. Mapping virtualized guests to storage poolslibvirt example for mapping storage pools

Page 196: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

186

Page 197: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

パート VI. 仮想化の参考ガイド

仮想化コマンド、システムツール、アプリケーションおよび追加のシステムリファレンス

These chapters provide detailed descriptions of virtualization commands, system tools, andapplications included in Fedora. These chapters are designed for users requiring information onadvanced functionality and other features.

Page 198: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13
Page 199: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

189

仮想化のツールThe following is a list of tools for virtualization administration, debugging and networking.

システム管理ツール• vmstat

• iostat

• lsof

• qemu-img

高度なデバッグツール• systemTap

• crash

• sysrq

• sysrq t

• sysrq w

• sysrq c

ネットワークbrtcl

•# brctl showbridge name bridge id STP enabled interfacespan0 8000.000000000000 no virbr0 8000.000000000000 yes

•# brctl showmacs virbr0port no mac addr is local? ageing timer

•# brctl showstp virbr0 virbr0 bridge id 8000.000000000000 designated root 8000.000000000000 root port 0 path cost 0 max age 19.99 bridge max age 19.99 hello time 1.99 bridge hello time 1.99 forward delay 0.00 bridge forward delay 0.00 ageing time 299.95 hello timer 1.39 tcn timer 0.00 topology change timer 0.00 gc timer 0.39

• ifconfig

• tcpdump

KVM ツール• ps

• pstree

Page 200: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

第27章 仮想化のツール

190

• top

• kvmtrace

• kvm_stat

Page 201: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

191

Managing guests with virshvirsh is a command line interface tool for managing guests and the hypervisor.

virsh ツールは、libvirt 管理 API を基にしており、xm コマンドとグラフィカルなゲストマネージャー(virt-manager)の代替として機能します。virsh は、特権ユーザー以外は読み込み専用モードで使用できます。virshを使用して、ゲストマシン用のスクリプトを実行できます。

virsh コマンドのクイックリファレンス以下の表は、すべての virsh コマンドラインオプションに対するクイックリファレンスを提供します。

表28.1 ゲストの管理コマンド

コマンド 説明

help 基本的なヘルプ情報を表示します。

list すべてのゲストを一覧表示します。

dumpxml ゲスト用の XML 設定ファイルを出力します。

create XML 設定ファイルからゲストを作成し、新規ゲストを起動します。

start 停止中のゲストを起動します。

destroy ゲストを強制的に停止します。

define ゲスト用の XML 設定ファイルを出力します。

domid ゲストの ID を表示します。

domuuid ゲストの UUID を表示します。

dominfo ゲストの情報を表示します。

domname ゲストの名前を表示します。

domstate ゲストの状態を表示します。

quit 対話式のターミナルを終了します。

reboot ゲストを再起動します。

restore 以前ファイルに保存されているゲストを復元します。

resume 一時停止中のゲストを再開します。

save ゲストの現在の状態をファイルに保存します。

shutdown ゲストを緩やかにシャットダウンします。

suspend ゲストを一時停止します。

undefine ゲストに関連するファイルをすべて削除します。

migrate ゲストを別のホストへ移行します。

virsh コマンドの以下のオプションは、ゲストとハイパーバイザーのリソースを管理します:

表28.2 リソース管理のオプション

コマンド 説明

setmem ゲストに対して割り当てられるメモリーを設定します。

setmaxmem ハイパーバイザーに対するメモリーの上限を設定します。

setvcpus ゲストに割り当てた仮想 CPU の数を変更します。

vcpuinfo ゲストに関する仮想 CPU の情報を表示します。

Page 202: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

第28章 Managing guests with virsh

192

コマンド 説明

vcpupin ゲストの仮想 CPU アフィニティを制御します。

domblkstat 実行中のゲストに対するブロックデバイスの統計を表示します。

domifstat 実行中のゲストに対するネットワークインターフェイスの統計を表示します。

attach-device XML ファイルにおけるデバイスの定義を用いて、デバイスをゲストに接続します。

attach-disk 新しいディスクデバイスをゲストに接続します。

attach-interface 新しいネットワークインターフェイスをゲストに接続します。

detach-device ゲストからデバイスを切断し、attach-device コマンドと同じ種類の XML 記述を提示します。

detach-disk ゲストからディスクデバイスを切断します。

detach-interface ゲストからネットワークインターフェイスを切断します。

These are miscellaneous virsh options:

表28.3 その他のオプション

コマンド 説明

version virsh のバージョンを表示します。

nodeinfo ハイパーバイザーに関する情報を出力します。

ハイパーバイザーへの接続virsh でハイパーバイザーのセッションへ接続します:

# virsh connect {hostname OR URL}

<name> のところにハイパーバイザーのマシン名が入ります。読み込み専用の接続を開始したい場合、上のコマンドに -readonly を追加します。

仮想マシンの XML ダンプ(設定ファイル)の作成virsh を用いてゲストの XML 設定ファイルを出力します:

# virsh dumpxml {guest-id, guestname or uuid}

このコマンドはゲストの XML 設定ファイルを標準出力(stdout)へ出力します。出力をパイプすることでデータをファイルに保存できます。guest.xml というファイルへ出力をパイプする例:

# virsh dumpxml GuestID > guest.xml

このファイル guest.xml はゲストを再作成できます(用用用用用用用用用用用用用を参照してください。)。追加デバイスを設定したり、追加ゲストを配備したりするために、この XML 設定ファイルを編集できます。virsh dumpxml で作成されたファイルを修正することに関する詳細は 用virsh 用用用用 XML 用用用用用用用用用用 を参照してください。

virsh dumpxml 出力の例:

# virsh dumpxml r5b2-mySQL01

Page 203: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

193

<domain type='kvm' id='13'> <name>r5b2-mySQL01</name> <uuid>4a4c59a7ee3fc78196e4288f2862f011</uuid> <bootloader>/usr/bin/pygrub</bootloader> <os> <type>linux</type> <kernel>/var/lib/libvirt/vmlinuz.2dgnU_</kernel> <initrd>/var/lib/libvirt/initrd.UQafMw</initrd> <cmdline>ro root=/dev/VolGroup00/LogVol00 rhgb quiet</cmdline> </os> <memory>512000</memory> <vcpu>1</vcpu> <on_poweroff>destroy</on_poweroff> <on_reboot>restart</on_reboot> <on_crash>restart</on_crash> <devices> <interface type='bridge'> <source bridge='br0'/> <mac address='00:16:3e:49:1d:11'/> <script path='bridge'/> </interface> <graphics type='vnc' port='5900'/> <console tty='/dev/pts/4'/> </devices></domain>

設定ファイルからのゲストの作成ゲストは XML 設定ファイルから作成できます。以前作成したゲストから既存の XML をコピー、または dumpxmlオプションを使用できます(用用用用用用 XML 用用用用用用用用用用用用用用を参照してください。)。XML ファイルから virshでゲストを作成するために:

# virsh create configuration_file.xml

ゲストの設定ファイルの編集dumpxml オプション(用用用用用用 XML 用用用用用用用用用用用用用用参照)を用いる代わりに、ゲストが実行中でもオフライン中でも編集することができます。virsh edit コマンドはこの機能を提供します。たとえば、softwaretestingと名づけられたゲストを編集するために:

# virsh edit softwaretesting

これでテキストエディタが開きます。デフォルトのテキストエディタは $EDITOR シェルパラメータです(デフォルトで vi にセットされています)。

ゲストの休止virsh を用いてゲストを休止します:

# virsh suspend {domain-id, domain-name or domain-uuid}

ゲストが休止状態にあるとき、システム RAM を消費しますが、プロセッサ資源を消費しません。ディスクとネットワークの I/O は、ゲストが休止している間に発生しません。この操作は即時実行され、ゲストはresume(用用用用用用)オプションで再開されます。

ゲストの復帰resume オプションを用いて virsh を使用して休止中のゲストを復帰します:

Page 204: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

第28章 Managing guests with virsh

194

# virsh resume {domain-id, domain-name or domain-uuid}

この操作は直ちに反映され、ゲストパラメータは suspend や resume 操作用に保持されます。

ゲストの保存virsh コマンドを用いてゲストの現在の状態をファイルに保存します:

# virsh save {domain-name, domain-id or domain-uuid} filename

これにより、指定されたゲストを停止し、データをファイルへ保存します。ここで、ゲストにより使用中のメモリ量によりいくらかの時間がかかります。restore(用用用用用用)オプションでゲストの状態を復元できます。保存は休止に似ており、ゲストを停止する代わりにゲストの現在の状態が保存されます。

ゲストの復帰virsh を用いて virsh save コマンド(用用用用用用)とともに以前保存されたゲストを復元します:

# virsh restore filename

これは、すこし時間をかけて、保存されたゲストを再起動します。ゲストの名前と UUID は保持され、新しい IDを割り当てられます。

ゲストのシャットダウンvirsh コマンドを使用してゲストをシャットダウンします:

# virsh shutdown {domain-id, domain-name or domain-uuid}

ゲストの設定ファイルにおいて on_shutdown パラメーターを変更することで、ゲストを再起動するときの動作を制御できます。

ゲストの再起動virsh コマンドを使用してゲストを再起動します:

#virsh reboot {domain-id, domain-name or domain-uuid}

ゲストの設定ファイルにおいて on_reboot 要素を変更することで、ゲストを再起動するときの動作を制御できます。

ゲストの強制停止virsh コマンドを使用してゲストを強制的に停止します:

# virsh destroy {domain-id, domain-name or domain-uuid}

This command does an immediate ungraceful shutdown and stops the specified guest. Usingvirsh destroy can corrupt guest file systems . Use the destroy option only when the guest isunresponsive. For para-virtualized guests, use the shutdown option(用用用用用用用用用用用) instead.

ゲストのドメイン ID の取得ゲストのドメイン ID を取得するには:

Page 205: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

195

# virsh domid {domain-name or domain-uuid}

ゲストのドメイン名の取得ゲストのドメイン名を取得するには:

# virsh domname {domain-id or domain-uuid}

ゲストの UUID の取得ゲストの UUID (Universally Unique Identifier) を取得するには:

# virsh domuuid {domain-id or domain-name}

virsh domuuid 出力の例:

# virsh domuuid r5b2-mySQL014a4c59a7-ee3f-c781-96e4-288f2862f011

ゲスト情報の表示ゲストのドメイン ID、ドメイン名または UUID とともに virsh を用いると、指定されたゲストの情報を表示できます:

# virsh dominfo {domain-id, domain-name or domain-uuid}

virsh dominfo 出力の例を以下に示します:

# virsh dominfo r5b2-mySQL01id: 13name: r5b2-mysql01uuid: 4a4c59a7-ee3f-c781-96e4-288f2862f011os type: linuxstate: blockedcpu(s): 1cpu time: 11.0smax memory: 512000 kbused memory: 512000 kb

ホスト情報の表示ホストに関する情報を表示するには:

# virsh nodeinfo

virsh nodeinfo 出力の例:

# virsh nodeinfoCPU model x86_64CPU (s) 8CPU frequency 2895 MhzCPU socket(s) 2 Core(s) per socket 2Threads per core: 2

Page 206: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

第28章 Managing guests with virsh

196

Numa cell(s) 1Memory size: 1046528 kb

これにより、ノード情報と仮想化プロセスをサポートするマシンを表示します。

ゲストの表示virsh を用いてゲストの一覧とその現在状態を表示するには:

# virsh list

利用可能な他のオプションには以下があります:

活動していないゲスト(定義されていても現在活動していないゲスト)の一覧表示する --inactive オプション 。そして

全てのゲストを一覧表示する --all オプション。 例えば:

# virsh list --all Id Name State---------------------------------- 0 Domain-0 running 1 Domain202 paused 2 Domain010 inactive 3 Domain9600 crashed

virsh list からの出力は6つの状態の1つとして分類されます(以下の一覧)。

• running 状態は CPU 上で現在活動中のゲストを示します。

• blocked として表示してあるゲストは阻止されており、 実行していないか、又は実行不可能です。これは I/O待ちのゲスト(旧来の wait 状態)か、 スリープモードのゲストがその要因です。

• paused 状態は一時停止されたドメインを表示します。管理者が virt-manager において一時停止、xmpause もしくは virsh suspend を使用すると、これが起きます。ゲストが一時停止しているとき、メモリと他の資源を消費します、しかしハイパーバイザーからスケジューリングと CPU 資源が必要ありません。

• shutdown 状態は、ゲストがシャットダウン過程にあることを意味します。ゲストはシャットダウン信号が送られ、その動作が緩やかに停止過程に入るでしょう。これはすべてのオペレーティングシステムに動作しません、いくつかのオペレーティングシステムはこの信号に反応しません。

• dying 状態にあるドメインは、停止過程にあることです。それは、ドメインは完全にシャットダウンしていない、もしくはクラッシュしていない状態です。

• crashed ゲストは、実行中に落として、もはや動作させなくなります。ゲストがクラッシュにおいて再起動しないように設定されていなければ、この状態はできません。

仮想 CPU 情報の表示virsh を使用してゲストから仮想 CPU の情報を表示するには:

# virsh vcpuinfo {domain-id, domain-name or domain-uuid}

virsh vcpuinfo 出力の例:

# virsh vcpuinfo r5b2-mySQL01VCPU: 0

Page 207: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

197

CPU: 0State: blockedCPU time: 0.0sCPU Affinity: yy

仮想 CPU アフィニティの設定物理 CPU とともに仮想 CPU のアフィニティを設定するには:

# virsh vcpupin domain-id vcpu cpulist

domain-id パラメーターはゲストのID番号または名前です。

vcpu パラメーターはゲストへ割り当てられた仮想 CPU の番号を示します。vcpu パラメーターは与えられなければいけません。

cpulist パラメーターは、カンマで区切られた物理 CPU 識別番号の一覧です。cpulist パラメーターは、VCPU が実行できる物理 CPU を決めます。

仮想 CPU カウントの設定virsh を用いてゲストに割り当てられた CPU の数を修正するには:

# virsh setvcpus {domain-name, domain-id or domain-uuid} count

新しい count 値は、ゲストが作成されたときに指定された合計を超えることはできません。

メモリー割り当ての設定virsh を用いてゲストのメモリー割り当てを変更するために:

# virsh setmem {domain-id or domain-name} count

count をキロバイト単位で指定しなければなりません。新しいカウント値は、ゲストを作成するときに指定された量を超えることができません。64MB より小さい値は、多くのゲストオペレーティングシステムで動作しないでしょう。より高いメモリー上限値はアクティブなゲストに作用しません。新しい値がより小さいならば、利用可能なメモリーは縮小され、ゲストはクラッシュするかもしれません。

ゲストブロックデバイス情報の表示virsh domblkstat を使用すると稼働中のゲストの ブロックデバイス統計が表示できます。

# virsh domblkstat GuestName block-device

ゲストネットワークデバイス情報の表示virsh domifstat を使用すると、稼働中のゲストの ネットワークインターフェイス統計が表示できます。

# virsh domifstat GuestName interface-device

virsh を用いたゲストの移行ゲストは virsh を用いて他のホストへ移行できます。ドメインを他のホストへいこうします。ライブマイグレーションのために --live を追加します。migrate コマンドは以下の形式のパラメータを受け付けます。

Page 208: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

第28章 Managing guests with virsh

198

# virsh migrate --live GuestName DestinationURL

--live パラメーターはオプションです。ライブマイグレーションのために --live パラメーターを追加します。

GuestName パラメーターは、移行したいゲストの名前を表しています。

DestinationURL パラメーターはあて先システムの URL またはホスト名です。あて先システムは次を必要とします:

• Fedora 9 or newer,

• 同じハイパーバイザーのバージョン、そして

• libvirt サービスが開始されていなければいけません。

コマンドが入力されると、あて先システムの root パスワードを要求されます。

仮想ネットワークの管理このセクションでは、virsh コマンドを使用した仮想化 ネットワークの管理を説明します。仮想化ネットワークを一覧表示するには:

# virsh net-list

このコマンドは以下のような出力を出します:

# virsh net-listName State Autostart-----------------------------------------default active yes vnet1 active yes vnet2 active yes

特定の仮想ネットワークのためのネットワーク情報を表示するには:

# virsh net-dumpxml NetworkName

これにより、指定された仮想ネットワークに関する情報を XML 形式で表示されます:

# virsh net-dumpxml vnet1<network> <name>vnet1</name> <uuid>98361b46-1581-acb7-1643-85a412626e70</uuid> <forward dev='eth0'/> <bridge name='vnet0' stp='on' forwardDelay='0' /> <ip address='192.168.100.1' netmask='255.255.255.0'> <dhcp> <range start='192.168.100.128' end='192.168.100.254' /> </dhcp> </ip></network>

仮想ネットワークの管理に使用される他の virsh コマンドを以下に示します:

• virsh net-autostart network-name — Autostart a network specified as network-name.

• virsh net-create XMLfile — generates and starts a new network using an existing XML file.

Page 209: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

199

• virsh net-define XMLfile — generates a new network device from an existing XML filewithout starting it.

• virsh net-destroy network-name — destroy a network specified as network-name.

• virsh net-name networkUUID — convert a specified networkUUID to a network name.

• virsh net-uuid network-name — convert a specified network-name to a network UUID.

• virsh net-start nameOfInactiveNetwork — starts an inactive network.

• virsh net-undefine nameOfInactiveNetwork — removes the definition of an inactivenetwork.

Page 210: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

200

Page 211: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

201

Managing guests with the Virtual Machine Manager (virt-manager)This section describes the Virtual Machine Manager (virt-manager) windows, dialog boxes, andvarious GUI controls.

virt-manager provides a graphical view of hypervisors and guest on your system and on remotemachines. You can use virt-manager to define both para-virtualized and fully virtualized guests.virt-manager can perform virtualization management tasks, including:

• メモリの割り当て、

• 仮想 CPU の割り当て、

• 動作パフォーマンスの監視、

• 仮想ゲストの保存と復元、休止と復帰、およびシャットダウンと開始、

• テキストコンソールとグラフィカルコンソールへの接続、および、

• ライブマイグレーションとオフライン移行

29.1. 接続の追加ウィンドウこのウィンドウは初めに表示され、ハイパーバイザーのセッションを選択するために使われます。非特権ユーザーは読み込み専用でセッションを初期化できます。root ユーザーは完全な読み書き状態でセッションを開始できます。一般的な利用のために、KVM の QEMU オプションを選択します。

図29.1 仮想マシンマネージャーの接続ウィンドウ

Page 212: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

第29章 Managing guests with the Virtual Machine Manager (virt-manager)

202

29.2. 仮想マシンマネージャーのメインウィンドウこのメインウィンドウはすべての実行中のゲストとゲストにより使用されているリソースを表示します。ゲストの名前をダブルクリックして仮想ゲストを選択します。

図29.2 仮想マシンマネージャーの主要ウィンドウ

29.3. ゲストの概要のタブ概要タブは、virt-manager から利用可能なゲストのリソース使用量データのグラフと統計を表示します。UUID フィールドは仮想マシン用のグローバルに一意な識別子を表示します。

Page 213: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

仮想マシングラフィカルコンソール

203

図29.3 概要タブ

29.4. 仮想マシングラフィカルコンソールThis window displays a virtual machine's graphical console. Para-virtualized and fully virtualizedguests use different techniques to export their local virtual framebuffers, but both technologiesuse VNC to make them available to the Virtual Machine Manager's console window. If your virtualmachine is set to require authentication, the Virtual Machine Graphical console prompts you fora password before the display appears.

Page 214: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

第29章 Managing guests with the Virtual Machine Manager (virt-manager)

204

図29.4 グラフィカルコンソールウィンドウ

セキュリティと VNC に関する注記

VNC は多くのセキュリティ専門家によって安全ではないと考えられています。しかしながら、いくつかの変更は仮想化に対する VNC の安全な利用を可能にするためになされてきました。ゲストマシンは、ローカルホスト(dom0)のループバックアドレス(127.0.0.1)のみをリッスンします。これにより、ホストにおけるシェル権限を持つユーザのみが、virt-manager と VNC 経由の仮想マシンへとアクセスできます。

リモート管理は、21用用用用用用用用用用用用用 にある指示に従い実行されます。TLS は、ゲストとホストシステムを管理するために、エンタープライズレベルのセキュリティを提供できます。

キーコンビネーション(たとえば、Ctrl+Alt+F11)がゲストマシンへ送られるのを妨げるために、ローカルデスクトップはそれらを割り込む可能性があります。これらのシーケンスを送るために、virt-manager の特殊なキー機能を使用することができます。ある修飾キー(CtrlやAlt)を3回押さなければならず、指定したキーは次の非修飾キーが押されるまで有効であるとして扱われます。キーシーケンス 'Ctrl Ctrl Ctrl Alt+F1' を入力することで、Ctrl-Alt-F11 をゲストへと送ることができます。

SPICE のオープンを試みます。

29.5. virt-manager の開始virt-manager のセッションを開始するには、 アプリケーション メニューを開いて、それから システムツール メニュー、仮想マシンマネージャ (virt-manager) と進んで行きます。

virt-manager のメインウィンドウが表示されます。

Page 215: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

保存したマシンの復元

205

図29.5 virt-manager の開始

代わりに、virt-manager は以下のコマンドで説明されているように ssh を用いてリモートで開始されます:

ssh -X host's address[remotehost]# virt-manager

仮想マシンとホストを管理するために ssh を用いることは、用SSH 用用用用用用用用用用用 においてさらに議論されています。

29.6. 保存したマシンの復元仮想マシンマネージャーを開始した後は、システム上の全ての仮想マシンがメインウィンドウに表示されます。Domain0 はユーザーのホストシステムです。マシンの表示がない場合は、現在、システム上で実行中のマシンがないという意味になります。

以前の保存セッションを復元するには:

Page 216: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

第29章 Managing guests with the Virtual Machine Manager (virt-manager)

206

1. ファイル メニューから 保存したマシンの復元 を選択します。

図29.6 仮想マシンの復元

2. 仮想マシンの復元 のメインウィンドウが出ます。

3. 該当のディレクトリに移動して、保存したセッションファイルを選択します。

4. 開く をクリックします。

保存してある仮想システムが仮想マシンマネージャーの主要ウィンドウに出てきます。

図29.7 復元された仮想マシンマネージャーのセッション

Page 217: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

ゲストの詳細表示

207

29.7. ゲストの詳細表示仮想マシンモニターを使用して、システム上の仮想マシン用の活動データ情報を表示することができます。

仮想システムの詳細を表示するために:

1. 仮想マシンマネージャーの主要ウィンドウで、表示したい仮想マシンを強調表示します。

図29.8 表示する仮想マシンを選択

Page 218: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

第29章 Managing guests with the Virtual Machine Manager (virt-manager)

208

2. 仮想マシンマネージャーの編集メニューから、マシンの詳細を選択します(もしくは、仮想マシンマネージャーのメインウィンドウの下部にある詳細ボタンをクリックします。)。

図29.9 概要ウィンドウの表示

仮想マシンウィンドウにおいて、概要タブをクリックします。

概要タブは、指定された仮想ゲストに対する、CPU とメモリーの使用量を要約します。

図29.10 ゲストの詳細概要を表示

Page 219: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

ゲストの詳細表示

209

3. 仮想マシンウィンドウにおいて、ハードウェアタブをクリックします。

図29.11 ゲストハードウェアの詳細を表示

4. ハードウェア タブで プロセッサ をクリックして、現在のプロセッサー割り当ての表示や変更をします。

図29.12 プロセッサー割り当てのパネル

Page 220: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

第29章 Managing guests with the Virtual Machine Manager (virt-manager)

210

5. ハードウェア タブで、メモリー をクリックして、現在の RAM メモリー割り当ての表示や変更をします。

図29.13 メモリー割り当ての表示

6. ハードウェア タブで ディスク をクリックして現在のハードディスク設定の表示や変更をします。

図29.14 ディスク設定の表示

Page 221: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

ステータスの監視

211

7. ハードウェアタブにおいて、現在のネットワーク設定を表示または変更するために NIC をクリックします。

図29.15 ネットワーク設定の表示

29.8. ステータスの監視状態モニタリング設定は virt-manager の設定ウィンドウで変更されます。

状態モニタリングの設定のために:

1. 編集 メニューから 個人設定 を選択します。

図29.16 ゲストの個人設定の修正

設定ウィンドウが表示されます。

Page 222: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

第29章 Managing guests with the Virtual Machine Manager (virt-manager)

212

2. 統計タブから、秒間回数と統計のポーリングオプションを指定します。

図29.17 ステータス監視の設定

29.9. ゲスト識別子の表示システム上の全ての仮想マシン用のドメイン ID を表示するには:

Page 223: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

ゲストの状態の表示

213

1. 表示 メニューから、ドメイン ID チェックボックスを選択します。

図29.18 ゲスト ID の表示

2. 仮想マシンマネージャは、システム上の全てのドメイン用のドメイン ID を一覧表示します。

図29.19 ドメイン ID の表示

29.10. ゲストの状態の表示

システム上の全ての仮想マシンのステータスを表示するには:

Page 224: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

第29章 Managing guests with the Virtual Machine Manager (virt-manager)

214

1. 表示 メニューから、ステータス チェックボックスを選択します。

図29.20 仮想マシンの状態の選択

2. 仮想マシンマネージャーはシステム上の全ての仮想マシンのステータスを一覧表示します。

図29.21 仮想マシンの状態の表示

29.11. 仮想 CPU の表示システム上の全ての仮想マシン用の仮想 CPU の数量を表示するには:

Page 225: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

CPU 使用量の表示

215

1. 表示 メニューから、仮想 CPU チェックボックスを選択します。

図29.22 仮想 CPU オプションの選択

2. 仮想マシンマネージャは、システム上の全ての仮想マシン用の仮想 CPU を一覧表示します。

図29.23 仮想 CPU の表示

29.12. CPU 使用量の表示システム上の全ての仮想マシン用の CPU 使用量を表示するには:

Page 226: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

第29章 Managing guests with the Virtual Machine Manager (virt-manager)

216

1. 表示 メニューから、CPU 使用量 チェックボックスを選択します。

図29.24 CPU 使用量の選択

2. 仮想マシンマネージャは、システム上の全ての仮想マシン用の CPU 使用率を一覧表示します。

図29.25 CPU 使用量の表示

29.13. メモリー使用量の表示システム上の全ての仮想マシン用のメモリー使用量を表示するには:

Page 227: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

仮想ネットワークの管理

217

1. 表示 メニューから、メモリー使用量 チェックボックスを選択します。

図29.26 メモリー使用量の選択

2. 仮想マシンマネージャーは、システム上の全ての仮想マシン用のメモリー使用量をメガバイトで一覧表示します。

図29.27 メモリー使用量の表示

29.14. 仮想ネットワークの管理システム上の仮想ネットワークを設定するには:

Page 228: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

第29章 Managing guests with the Virtual Machine Manager (virt-manager)

218

1. 編集 メニューから ホストの詳細 を選択します。

図29.28 ホストの詳細の選択

2. これが ホストの詳細(Host Details) メニューを開きます。 仮想ネットワーク タブをクリックします。

図29.29 仮想ネットワークの設定

3. 使用できる仮想ネットワークは全て、メニューの左側ボックスに表示されています。 このボックスから一つの仮想ネットワークを選択して、必要に応じた編集をすることで その設定を変更できます。

Page 229: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

仮想ネットワークの作成

219

29.15. 仮想ネットワークの作成システム上に仮想ネットワークを作成するには:

1. ホストの詳細メニュー(用用用用用用用用用用用用用参照)を開き、追加ボタンをクリックします。

図29.30 仮想ネットワークの設定

そうすると、新規仮想ネットワークの作成(Create a new virtual network) メニューが開きます。進む(Forward) をクリックして 継続します。

Page 230: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

第29章 Managing guests with the Virtual Machine Manager (virt-manager)

220

図29.31 新規仮想ネットワークの作成

Page 231: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

仮想ネットワークの作成

221

2. 使用する仮想ネットワークの名前を入力して、それから 進む をクリックします。

図29.32 仮想ネットワークの命名

Page 232: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

第29章 Managing guests with the Virtual Machine Manager (virt-manager)

222

3. 使用する仮想ネットワークの IPv4 アドレスを入力して、それから 進む を クリックします。

図29.33 IPv4 のアドレススペースの選択

Page 233: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

仮想ネットワークの作成

223

4. IP アドレスの 開始 と 終了 の 範囲を指定して、使用したい仮想ネットワークの DHCP の範囲を定義します。 進む(Forward) をクリックして継続します。

図29.34 DHCP の範囲を選択

Page 234: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

第29章 Managing guests with the Virtual Machine Manager (virt-manager)

224

5. 仮想ネットワークが物理ネットワークに接続する方法を選択します。

図29.35 物理ネットワークへの接続

物理ネットワークへ転送(Forwarding to physical network) を選択 する場合、転送先(Destination)が いずれかの物理 デバイスかに NAT か、物理デバイス eth0 に NAT かを 選びます。

進む をクリックして継続します。

Page 235: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

仮想ネットワークの作成

225

6. これでネットワーク作成の準備ができました。ネットワークの設定を確認して、 完了(Finish) をクリックします。

図29.36 ネットワーク作成への準備終了

Page 236: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

第29章 Managing guests with the Virtual Machine Manager (virt-manager)

226

7. 仮想ネットワークは現在、ホストの詳細(Host Details) の 仮想ネットワーク タブで使用できます。

図29.37 新規の仮想ネットワークが今、使用できます。

Page 237: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

227

libvirt 設定の参考資料本章は、libvirt XML 設定ファイルのさまざまなパラメーターの参考資料です。

表30.1 libvirt 設定ファイル

項目 説明

pae 物理アドレス拡張の設定データを指定します。

apic APIC の設定データを指定します。

memory メモリー容量を MB 単位で指定します。

vcpus 仮想 CPU 数を指定します。

console ドメインのコンソールを設定するポート番号を指定します。

nic 仮想ネットワークインタフェースの数を指定します。

vif ドメインのネットワークアドレスに対して使われるために、ランダムに割り当てられた MAC アドレスとブリッジを表示します。

disk ドメインへ設定するブロックデバイスを一覧化し、物理デバイスを読み込み専用のドメインに設定します。

dhcp DHCP によるネットワークを有効にします。

netmask 設定された IP ネットワークを指定します。

gateway 設定された IP ゲートウェイを指定します。

acpi ACPI の設定データを指定します。

Page 238: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

228

Page 239: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

229

カスタム libvirt スクリプトの作成このセクションでは、libvirt を使用して、操作を簡単にするためのカスタムスクリプトを作成しようとしているプログラマーとシステム管理者に役立ついくつかの情報を提供します。

25用用用用用用用用用用は、libvirt を使用する新しいアプリケーションを書こうとしているプログラマーに対して推奨されています。

31.1. virsh とともに XML 設定ファイルの使用virsh can handle XML configuration files. You may want to use this to your advantage forscripting large deployments with special options. You can add devices defined in an XML file to arunning para-virtualized guest. For example, to add a ISO file as hdc to a running guest create anXML file:

# cat satelliteiso.xml<disk type="file" device="disk"> <driver name="file"/> <source file="/var/lib/libvirt/images/rhn-satellite-5.0.1-11-redhat-linux-as-i386-4-embedded-oracle.iso"/> <target dev="hdc"/> <readonly/></disk>

ゲストへ hdc として "satellite" と呼ばれる ISO を接続するために virsh attach-device を実行します:

# virsh attach-device satellite satelliteiso.xml

Page 240: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

230

Page 241: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

パート VII. トラブルシューティング

トラブルシューティングと問題解決の紹介以下の章は、仮想化を用いて遭遇するかもしれない問題をトラブルシューティングするのを支援するための情報を提供します。

Page 242: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13
Page 243: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

233

トラブルシューティング本章は、Fedora 仮想化において一般的な問題と解決策を取り扱います。

本章は、読者であるあなたに、仮想化技術を用いた問題がどこにあるかを判断するための基礎知識を提供します。トラブルシューティングは、書籍から学ぶことは難しく、実践と経験を必要とします。トラブルシューティングのスキルを開発するために、Fedora における仮想化を経験してテストすることを推奨します。

このドキュメントで答えを得ることができなければ、仮想化コミュニティからオンラインの答えがあるかもしれません。Linux 仮想化のウェブサイトの一覧は、用用用用用用用用用用用 を参照してください。

32.1. デバッグとトラブルシューティングのツールこのセクションは、システム管理アプリケーション、ネットワークユーティリティ、およびデバッグツールの概要を説明します。トラブルシューティングを支援するために、標準的なシステム管理ツールとログを活用できます:

• vmstat

• iostat

• lsof

• systemtap

• crash

• sysrq

• sysrq t

• sysrq w

ネットワークツールは、仮想ネットワークの問題をトラブルシューティングすることを支援できます:

• ifconfig

• tcpdump

tcpdump コマンドは、ネットワークパケットを '盗聴' します。tcpdump は、ネットワークの異常やネットワーク認証の問題を発見するために有用です。wireshark という tcpdump のグラフィカルバージョンがあります。

• brctl

brctl は、仮想化 Linux カーネルにおけるイーサネットブリッジの設定を確認したり設定したりするためのネットワークツールです。

# brctl show bridge-name bridge-id STP enabled interfaces -----------------------------------------------------------------------------virtbr0 8000.feffffff yes eth0

# brctl showmacs virtbr0 port-no mac-addr local? aging timer1 fe:ff:ff:ff:ff: yes 0.002 fe:ff:ff:fe:ff: yes 0.00# brctl showstp virtbr0virtbr0 bridge-id 8000.fefffffffffdesignated-root 8000.fefffffffffroot-port 0 path-cost 0

Page 244: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

第32章 トラブルシューティング

234

max-age 20.00 bridge-max-age 20.00hello-time 2.00 bridge-hello-time 2.00forward-delay 0.00 bridge-forward-delay 0.00aging-time 300.01hello-timer 1.43 tcn-timer 0.00topology-change-timer 0.00 gc-timer 0.02

以下に示されたものは、仮想化をトラブルシューティングするために有用な他のいくつかのコマンドです。

• strace は、システムコールと他のプロセスにより受け取られるイベントをトレースするツールです。

• vncviewer: サーバもしくは仮想マシンにおいて実行中のVNCサーバに接続します。 yum install vnc コマンドを用いて vncviwer をインストールします。

• vncserver: サーバにおいてリモートのデスクトップを起動します。リモートセッション経由で virt-manager のようなグラフィカルユーザインタフェースを実行する能力を提供します。yum install vnc-server コマンドを用いて vncserver をインストールします。

32.2. ログファイルKVM はさまざまなログファイルを使用します。ログファイルはすべて、標準的な ASCII ファイルであり、テキストエディタを用いてアクセス可能です。

• すべてのファイルベースのイメージに対するデフォルトのディレクトリは、/var/lib/libvirt/images です。

• qemu-kvm.[PID].log は、各完全仮想化ゲストに対して、qemu-kvm プロセスにより作成されるログファイルです。このログファイルを使用するとき、与えられた qemu-kvm プロセスの PID を取り出さなければいけません。これは、仮想マシンにおける qemu-kvm プロセスを分離するために、プロセスの引数を確認するための ps コマンドを用いることにより行います。[PID] シンボルを実際の qemu-kvm プロセスの PID で置き換えなければいけないことに注意してください。

仮想マシンマネージャーを用いて何かエラーに遭遇するならば、/.virt-manager ディレクトリにある virt-manager.log ファイルにおいて生成されたデータをレビューできます。仮想マシンマネージャーを起動したとき毎回、既存のログファイルの中身が上書きされることに注意してください。システムエラーの後で仮想マシンマネージャーを再起動する前に、virt-manager.log ファイルを確実にバックアップしてください。

32.3. シリアルコンソールを用いたトラブルシューティングLinux カーネルはシリアルポートに情報を出力できます。これは、ビデオデバイスやモニタのないサーバのカーネルパニックやハードウェア問題をデバッグするために有用です。このセクションのサブセクションは、Fedora仮想化カーネルとそれらの仮想ゲストを実行しているマシンに対してシリアルコンソール出力をセットアップすることを取り扱います。

このセクションは、完全仮想化ゲストに対してシリアルコンソール出力を有効化する方法を取り扱っています。

完全仮想化ゲストのシリアルコンソールは virsh console を用いて表示できます。

完全仮想化ゲストのシリアルコンソールはいくつかの制限があることを認識してください。現在の制限は以下を含みます:

• 出力データは、捨てられるか、ごちゃ混ぜにされるかもしれません。

シリアルポートは、Linux において ttyS0、または Windows において COM1 と呼ばれます。

仮想オペレーティングシステムを、仮想シリアルポートに情報を出力するよう、設定しなければいけません。

完全仮想化の Linux ゲストからドメインへカーネル情報を出力するために、console=tty0console=ttys0,115200 行を挿入することにより /boot/grub/grub.conf ファイルを修正します。

Page 245: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

仮想化ログファイル

235

title Fedora Server (2.6.18-92.el5) root (hd0,0) kernel /vmlinuz-2.6.18-92.el5 ro root=/dev/volgroup00/logvol00 console=tty0 console=ttys0,115200 initrd /initrd-2.6.18-92.el5.img

ゲストを再起動します。

ホストにおいて、以下のコマンドを用いてシリアルコンソールにアクセスします:

# virsh console

仮想テキストコンソールを表示するために virt-manager も使用できます。ゲストコンソールウィンドウにおいて、表示メニューからシリアルコンソールを選択します。

32.4. 仮想化ログファイル• /var/log/libvirt/qemu/GuestName.log

仮想マシンマネージャーを用いて何かエラーに遭遇するならば、/.virt-manager ディレクトリにある virt-manager.log ファイルにおいて生成されたデータをレビューできます。仮想マシンマネージャーを起動したとき毎回、既存のログファイルの中身が上書きされることに注意してください。システムエラーの後で仮想マシンマネージャーを再起動する前に、virt-manager.log ファイルを確実にバックアップしてください。

32.5. ループデバイスのエラーファイルベースのゲストイメージを使用する場合、設定済みのループデバイスの数量を増やさなければいけないかもしれません。デフォルト設定は、8つまでのループデバイスがアクティブになることを許可します。もし8より多いファイルベースのゲスト、またはループデバイスが必要ならば、/etc/modprobe.conf で調整できる、設定済みのループデバイスの数量を増やす必要があります。/etc/modprobe.conf を編集して、以下の行を追加します:

options loop max_loop=64

This example uses 64 but you can specify another number to set the maximum loop value. Youmay also have to implement loop device backed guests on your system. To employ loop devicebacked guests for a para-virtualized guest, use the phy: block device or tap:aio commands. Toemploy loop device backed guests for a full virtualized system, use the phy: device or file: filecommands.

32.6. BIOS における Intel VT と AMD-V の仮想化ハードウェア拡張の有効化このセクションは、ハードウェア仮想化拡張を識別して、無効になっている場合に BIOS でそれらを有効にする方法を説明しています。

Intel VT 拡張は BIOS において無効にできます。特定のラップトップ製造元はそれらの CPU でデフォルトとして Intel VT 拡張を無効にしています。

仮想化拡張は、AMD-V に対して BIOS で無効にできません。

仮想化拡張はときどきBIOSで無効にされています(通常はラップトップ製造者により)。無効にされた仮想化拡張を有効にするための説明は、用BIOS 用用用用 Intel VT 用 AMD-V 用用用用用用用用用用用用用用用用用を参照してください。

Page 246: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

第32章 トラブルシューティング

236

仮想化拡張が BIOS で有効になっていることを確認します。Intel® VT や AMD-V に対する BIOS 設定は、通常チップセットまたはプロセッサ メニューにあります。メニューの名前は、このガイドとは異なるかもしれませんが、仮想化拡張の設定はセキュリティ設定か、他の非標準的なメニュー名にあるでしょう。

手順32.1 BIOS における仮想化拡張の有効化1. コンピュータを再起動して、システムの BIOS メニューを開きます。システムに依存して、delete キー、F1

キー、または Alt および F4 キーを押すことにより、通常は実行できます。

2. デフォルトの復元または最適化されたデフォルトの復元を選択して、保存 & 終了を選択します。

3. マシンの電源を切って電源供給を止めます。

4. BIOS における仮想化拡張の有効化

注記:BIOS ステップ

以下の手順の多くは、マザーボード、プロセッサの種類、チップセットおよび OEM に依存して変わるかもしれません。システムを設定することに関する正しい情報は、システムの付属ドキュメントを参照してください。

a. マシンの電源を入れて、BIOS を開きます(ステップ1のとおり)。

b. Processor サブメニューを開きます。プロセッサ設定メニューは、Chipset、Advanced CPUConfiguration または Northbridge に隠されているかもしれません。

c. プロセッサのブランドに依存して、Intel Virtualization Technology(Intel VTとしても知られます)または AMD-V を有効にします。仮想化拡張は、OEM とシステムの BIOS に依存して、VirtualizationExtensions、Vanderpool もしくは他のさまざまな名前でラベルされているかもしれません。

d. オプションが利用可能ならば、Intel VT-d もしくは AMD IOMMU を有効にします。Intel VT-d とAMD IOMMU は、PCI 用用用用用のために使用されます。

e. 保存 & 終了を選択します。

5. マシンの電源を切って電源供給を止めます。

6. cat /proc/cpuinfo | grep vmx svm を実行します。このコマンドが出力されれば、仮想化拡張は有効になっています。出力がない場合、そのシステムに仮想化拡張が存在しない、または正しい BIOS 設定が有効でないことになります。

32.7. KVM ネットワークのパフォーマンスデフォルトで、KVM 仮想マシンは仮想 Realtek 8139 (rtl8139) NIC (network interface controller) を割り当てられます。

rtl8139 仮想 NIC は、ほとんどの環境で正常に機能します。しかし、このデバイスはいくつかのネットワーク(たとえば、10 Gigabit Ethernet ネットワーク)においてパフォーマンス劣化問題を受ける可能性があります。

A workaround is to switch to a different type of virtualized NIC. For example, Intel PRO/1000(e1000) or virtio (the para-virtualized network driver).

To switch to the e1000 driver:

1. ゲストオペレーティングシステムをシャットダウンします。

Page 247: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

KVM ネットワークのパフォーマンス

237

2. virsh コマンドを用いて、ゲストの設定ファイルを編集します(ここで GUEST はゲストの名前です):

# virsh edit GUEST

virsh edit コマンドは、使用するエディタを決めるために $EDITOR シェル変数を使用します。

3. 設定のネットワークインタフェイスセクションを見つけます。このセクションは、 以下の抜粋に似ています:

<interface type='network'> [output truncated] <model type='rtl8139' /></interface>

4. Change the type attribute of the model element from 'rtl8139' to 'e1000'. This willchange the driver from the rtl8139 driver to the e1000 driver.

<interface type='network'> [output truncated] <model type='e1000' /></interface>

5. 変更を保存して、テキストエディタを終了します。

6. ゲストオペレーティングシステムを再起動します。

Alternatively, you can install new virtualized guests with a different network driver. This may berequired if you are having difficulty installing guests over a network connection. This methodrequires you to have at least one virtual machine already created (possibly installed from CD orDVD) to use as a template.

1. Create an XML template from an existing virtual machine:

# virsh dumpxml GUEST > /tmp/guest.xml

2. XML ファイルをコピーして編集します、また一意なフィールドを更新します: 仮想マシン名、UUID、ディスクイメージ、MAC アドレス、その他あらゆる一意なパラメータ。UUID と MAC アドレスの 行を削除すると、virsh が UUID と MAC アドレスを生成することに注意してください。

# cp /tmp/guest.xml /tmp/new-guest.xml# vi /tmp/new-guest.xml

ネットワークインターフェイスのセクションに model 行を追加します:

<interface type='network'> [output truncated] <model type='e1000' /></interface>

3. 新しい仮想マシンを作成します:

# virsh define /tmp/new-guest.xml# virsh start new-guest

Page 248: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

第32章 トラブルシューティング

238

The network performance should be better with the e1000 or virtio driver. (BZ用5171811)

1 https://bugzilla.redhat.com/show_bug.cgi?id=517181

Page 249: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

239

付録A その他のリソース仮想化と Fedora についてより詳しく学ぶために、以下のリソースを参照してください。

A.1. オンラインリソース

• http://www.libvirt.org/ は、libvirt 仮想化 API の公式ウェブサイトです。

• http://virt-manager.et.redhat.com/は、仮想マシンの管理用のグラフィカルアプリケーションである仮想マシンマネージャー(virt-manager)のプロジェクトのウェブサイトです。

• オープン仮想化センター

http://www.openvirtualization.com1

• Red Hat ドキュメント

http://www.redhat.com/docs/

• 仮想化技術概要

http://virt.kernelnewbies.org2

• Red Hat 発展技術グループ

http://et.redhat.com3

A.2. インストール済みドキュメント

• man virshと/usr/share/doc/libvirt-<version-number> — virsh 仮想マシン管理ユーティリティ用のサブコマンドとオプション、さらには libvirt 仮想化ライブラリ API に関する包括的な情報が含まれています。

• /usr/share/doc/gnome-applet-vm-<version-number> — ローカルで実行している仮想マシンを監視して管理するGNOME グラフィカルパネルアプレット用のドキュメントがあります。

• /usr/share/doc/libvirt-python-<version-number> — libvirt ライブラリ用の Python バインディングについての詳細を提供します。libvirt-python パッケージにより、Python の開発者は libvirt仮想化管理ライブラリを持つインターフェイスのプログラムを作成することができるようになります。

• /usr/share/doc/python-virtinst-<version-number> — virt-install コマンドに関するドキュメントを提供します。このコマンドは仮想マシン内の Fedora と Red Hat Enterprise Linux 関連のディストリビューションのインストール開始を支援するものです。

• /usr/share/doc/virt-manager-<version-number> — 仮想マシンマネージャーに関するドキュメントを提供します。仮想マシンマネージャーは仮想マシン管理用のグラフィカルツールです。

1 http://www.openvirtualization.com/2 http://virt.kernelnewbies.org/3 http://et.redhat.com/

Page 250: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

240

Page 251: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

241

用語集この用語集はこのインストールガイドで使用されている用語を定義することを目的とします。

I/O 入力/出力(input/output)の短縮形です(発音:アイオー)。I/O という用語はデータをコンピュータと周辺機器との間で転送する全てのプログラム、操作、あるいはデバイスを示します。全ての転送は1つのデバイスからの出力であり、別のデバイスへの入力となります。キーボードやマウスなどのデバイスは入力のみのデバイスであり、プリンター などのデバイスは出力のみとなります。書き込み可能な CD-ROM は入力と出力両方のデバイス です。

Kernel SamePage Merging The Kernel SamePage Merging (KSM) module is used by the KVMhypervisor to allow KVM guests to share identical memory pages.The pages shared are usually common libraries or other identical,high-use data. KSM can increase the performance of certainguests by keeping these libraries in cache for various guests aswell as increasing guest density.

Kernel-based VirtualMachine

KVM (Kernel-based Virtual Machine) is a 用用用用用 solution for Linuxon AMD64 and Intel 64 hardware. VM is a Linux kernel modulebuilt for the standard Red Hat Enterprise Linux kernel. KVM canrun multiple, unmodified virtualized guest Windows and Linuxoperating systems. KVM is a hypervisor which uses the libvirtvirtualization tools (virt-manager and virsh).

KVM は Linux カーネルモジュールの集合であり、デバイス、メモリー、およびハイパーバイザーモジュール自身のための API 管理を管理します。仮想化ゲストはこれらのモジュールに制御される Linux のプロセスとスレッドとして実行 されます。

LUN LUN (Logical Unit Number) は論理ユニット(SCSI プロトコルエンティティ)に 割り当てられた番号です。

MAC アドレス MAC (Media Access Control) アドレスはネットワークインターフェイスコントローラの ハードウェアアドレスです。仮想化のコンテキストでは、MACアドレスは、ローカルドメイン上の 各 MAC が一意である状態で仮想ネットワークインターフェイス用に生成されなければなりません。

PCIパススルー KVM ハイパーバイザーは、ホストシステムの PCI デバイスを仮想ゲストへ接続するのをサポートします。PCIパススルーは、ゲストがタスクの範囲のために PCI デバイスへの排他的なアクセスを許可します。PCI パススルーは、PCI デバイスがゲストオペレーティングシステムへと物理的に接続されているかのように見え、動作するのを許可します。

Security Enhanced Linux Security Enhanced Linux の省略名である、SELinux は LSM (LinuxSecurity Modules) を Linux カーネル内で使用して、セキュリティポリシーに必要な各種の最小特権を提供します。

Universally UniqueIdentifier

UUID (Universally Unique Identifier) とは、分散コンピューティング環境においてデバイス、システムおよび特定のソフトウェアオブジェクトに対する標準化された番号づけ方法です。仮想化における UUID のタイプは次のものを含みます: ext2 と ext3 ファイルシステム識別子、RAID デバイス識別子、iSCSI と LUN デバイス識別子、MAC アドレスおよび仮想マシン識別子。

Page 252: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

用語集

242

ゲストシステム ゲスト、仮想マシン、仮想サーバやドメインとしても知られています。

ハイパーバイザー ハイパーバイザーは、複数のオペレーティングシステムが同じハードウェアにおいて実行できるように、オペレーティングシステムからハードウェアを抽象化するソフトウェア層です。ハイパーバイザーは、他の仮想オペレーティングシステムがホストのハードウェアにおいて実行できるようにホストオペレーティングシステムにおいて実行します。

Kernel-based Virtual Machine ハイパーバイザーは Fedora で提供されます。

ハードウェア仮想マシン 用用用用用 を参照してください。

ベアメタル ベアメタルという用語はコンピューターの基本的な物理アーキテクチャーを参照します。ベアメタルでオペレーティングシステムを実行することは、物理的なハードウェアでオペレーティングシステムの未修正バージョンを実行することを参照する別の方法です。ベアメタルで実行するオペレーティングシステムの例は、普通にインストールされたオペレーティングシステムです。

ホスト ホストオペレーティングシステムが仮想ゲストを実行します。

仮想 CPU システムは物理プロセッサのコア数に比較した数多くの仮想 CPU (VCPU)を持ちます。仮想 CPU 数は有限であり、ゲスト仮想マシンに割り当て可能な仮想 CPU の総数を示します。

仮想マシン 仮想マシンは、物理マシンのソフトウェア実装もしくはプログラミング言語(たとえば、Java 実行環境や LISP )のことです。仮想化の関連における仮想マシンは、仮想ハードウェアで稼動しているオペレーティングシステムのことです。

仮想化 仮想化は、ソフトウェア(一般的に一つのシステムにおいて同時かつ他のプログラムから分離されたオペレーティングシステムを実行するための幅広いコンピュータ用語です。既存の仮想化に関する実装の多くは、ハードウェアを仮想化するために、ハイパーバイザ(オペレーティングシステムの上位ソフトウェア層)を用います。ハイパーバイザは、ゲストオペレーティングシステムに仮想ハードウェアを提供することにより、同じ物理システムにおいて複数のオペレーティングシステムが稼動させます。仮想オペレーティングシステムに対して、さまざまな方法があります:• ハードウェア支援された仮想化は、KVM による完全仮想化で用いられて

いる技術です。(定義: 用用用用用)

• 準仮想化は、Linux ゲストを実行するために Xen で用いられている技術です。(定義: 用用用用)

• ソフトウェア仮想化またはエミュレーション。ソフトウェア仮想化は、修正されていないオペレーティングシステムを実行するために、バイナリ変換と他のエミュレーション技術を用います。ソフトウェア仮想化はハードウェア支援された仮想化や準仮想化に比べてかなり遅いです。QEMU やBORCH の形式における、ソフトウェア仮想化は、Fedora で動作しますが、かなり遅いです。

Fedora は、ハードウェアで支援された、KVM ハイパーバイザの完全仮想化をサポートします。

完全仮想化 KVM は、完全な、ハードウェア支援された仮想化を用います。完全仮想化は、基礎となる物理システムの全体的な抽象化を提供するためにプロセッサーのハードウェア機能を用います、またゲストオペレーティングシステムが

Page 253: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

243

実行されている新しい仮想マシンを作成します。ゲストオペレーティングシステムに修正は必要ありません。ゲストオペレーティングシステムやゲストのすべてのアプリケーションは仮想環境に気がつかず、普通に動作します。準仮想化は Linux オペレーティングシステムの修正したバージョンが必要となります。

完全仮想化した 用用用用用を参照してください。

準仮想化 Para-virtualization uses a special kernel, sometimes referred toas the Xen kernel or the kernel-xen package. Para-virtualizedguest kernels are run concurrently on the host while using thehost's libraries and devices. A para-virtualized installation canhave complete access to all devices on the system which can belimited with security settings (SELinux and file controls). Para-virtualization is faster than full virtualization. Para-virtualizationcan effectively be used for load balancing, provisioning, securityand consolidation advantages.

As of Fedora 9 a special kernel will no longer be needed. Oncethis patch is accepted into the main Linux tree all Linux kernelsafter that version will have para-virtualization enabled or available.

準仮想化された 用用用用 を参照してください、

準仮想化ドライバー 準仮想化ドライバーとは、完全仮想化の Linux ゲスト上で 動作するデバイスドライバーです。これらのドライバーは完全仮想化の ゲスト用にネットワークとブロックデバイスのパフォーマンスを大幅に向上します。

物理デバイス 物理デバイスパラメータはゲストが物理ディスクにアクセスするのを許可します。物理デバイスは以下を含みます:

• LVM ボリューム(たとえば、/dev/VolGroup00/LogVol02)、

• ディスクパーティション(たとえば、/dev/sda5)、および

• ブロックデバイス全体(たとえば、/dev/sda)。

物理モードは、ハイパーバイザーが、デバイスの管理において柔軟性をわずかに犠牲にする代わりに、ホストにおいてソフトウェアの余計な層を回避するので、最も良いパフォーマンスを提供します。

移行 マイグレーションは、仮想ゲストをあるホストから他へ移動するプロセスに対して名づけられています。マイグレーションは、オフラインで(ゲストが停止してから移動します)もしくは動的に(ゲストは停止せずに移動します)実行され得ます。KVM 完全仮想化ゲストはマイグレーションされ得ます。

移行は仮想化の基幹機能です。ここではソフトウェアが完全にハードウェアから 分離されています。移行は以下の部分で役に立ちます:

• ロードバランシング:ホストがロード超過になった時点で、ゲストは使用度の低い別のホストへと移動されます。

• ハードウェアフェイルオーバー:ホスト上のハードウェアデバイスが起動に失敗すると、ゲストは移動してホストが安全に停止と修理をできるようになります。

• 節電:低使用の期間にはゲスト群は他のホスト群に分配できるため、主ホストシステムは電力を落として、節電とコスト低減ができます。

Page 254: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

用語集

244

• 地域的な移行:より少ない遅延のためや、重大な事態の場合にはゲストは他の場所に移動できます。

共有のネットワークストレージがゲストイメージの保存に使用されます。共有ストレージ無しでは移行は不可能です。

オフライン移行はゲストを休止して、それからゲストのメモリーのイメージを移動先のホストに移動します。ゲストは移動先ホスト上で再開始されて、移動前の ホスト上でゲストが使用したメモリーは開放されます。

オフライン移行にかかる時間はネットワークのバンド幅と遅延により変化します。 2GB のメモリーを持つゲストは、1 Gbit のイーサネットリンク上で数秒かかるでしょう。

ライブマイグレーションは、ゲストが送信元ホストにおいて稼動し続け、ゲストが止まることなくメモリの移動を開始します。すべての変更されたメモリページは、イメージが送られている間、変更をモニタされ、あて先に送られます。メモリは変更されたページで更新されます。プロセスは、ゲストに対して許可された停止時間の最大量が、最後の数ページが転送されるために予測された時間と同じになるまで続きます。KVM は、残り時間を見積もり、残りページの量が仮想ゲストが停止する非常に短い時間の間に転送できることを予測できるまで、最大量のページファイルを送信元からあて先へと転送するのを試みます。レジスタは新しいホストでロードされ、ゲストはあて先ホストで停止されます。ゲストがマージできないならば(ゲストが過負荷にあるときに起きます)、ゲストは停止され、オフラインマイグレーションが代わりに開始されます。

ライブ移行にかかる時間はネットワークの帯域幅と遅延度と、更にはゲスト上の 活動にも影響されます。ゲストがかなりの量の I/O 又は CPU を使用している場合、 移行にはより時間がかかります。

Page 255: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

245

付録B 改訂履歴改訂 13 Wed Apr 23 2010 Curran Christopher [FAMILY Given]

[email protected]

Fedora アップデートおよび移植

Page 256: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

246

Page 257: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

247

付録C 奥付このマニュアルは DocBook XML v4.3 形式で書かれています。

This book is based on the work of Jan Mark Holzer and Chris Curran.

その他の著作クレジット:

• Don Dutile は準仮想化ドライバーのセクションの技術的な編集に貢献しました。

• Barry Donahue は準仮想化ドライバーのセクションの技術的な編集に貢献しました。

• Rick Ring は仮想マシンマネージャーのセクションの技術的な編集に貢献しました。

• Michael Kearey は virsh および仮想フロッピードライブでの XML 設定ファイル使用に関するセクションの技術的な編集に貢献しました。

• Marco Grigull はソフトウェア互換性とパフォーマンスのセクションの技術的な編集に貢献しました。

• Eugene Teo は virsh セクションでのゲスト管理の技術的な編集に貢献しました。

このマニュアルを作成した発行ツール、Publican は Jeffrey Fearn によって書かれました。

翻訳者技術的な制限のため、このセクションにクレジットされている翻訳者は、Red Hat Enterprise LinuxVirtualization Guide と Fedora Virtualization Guide の以前のバージョンで働いていた人々です。

ガイドの最新版を翻訳した人を見つけるために、https://fedoraproject.org/wiki/Fedora_13_Documentation_Translations_-_Contributors を訪問してください。これらの翻訳者はこのガイドの以降のバージョンでクレジットされるでしょう。

• 簡体中国語

• Leah Wei Liu

• 繁体中国語

• Chester Cheng

• Terry Chuang

• 日本語

• Kiyoto Hashida, KATO Tomoyuki, Hajime Taira

• 韓国語

• Eun-ju Kim

• オランダ語

• Geert Warrink

• フランス語

• Sam Friedmann

• ドイツ語

Page 258: 仮想化ガイド - Fedora における仮想化ガイドの決定版docs.fedoraproject.org/ja-JP/Fedora/13/pdf/Virtualization_Guide/Fedora-13... · 仮想化ガイド Fedora 13

付録C 奥付

248

• Hedda Peters

• ギリシャ語

• Nikos Charonitakis

• イタリア語

• Silvio Pierro

• Francesco Valente

• ブラジル系ポルトガル語

• Glaucia de Freitas

• Leticia de Lima

• スペイン語

• Domingo Becker

• Héctor Daniel Cabrera

• Angela Garcia

• Gladys Guerrero

• ロシア語

• Yuliya Poyarkova