Ja JP/FedoraXenQuickstartFC6

内容:

Xen について
Xen はオープンソースの仮想マシンシステムです. Xen に関する情報は http://wiki.xensource.com/xenwiki/ もしくは Fedora  Xen  のページから得る事ができます.

Fedora 3.0.x Xen 系を追っています. Xen 3.0.0 は 2005年 12月にリリースされました. Xen 2.0.x リリース以前のゲストとは互換性がありません.

クイックスタート
Fedora Core 6 での Xen とゲストのセットアップは Fedora Core 5 の時に比べて大きな変更と改善が加えられました. 以下のガイドは Xen のセットアップ方法と、コマンドラインもしくは、GUIインターフェースを使用したゲストの作成と管理方法を説明します.

システム必要構成

 * Fedora のデフォルトのブートローダーである GRUB を使用している必要があります[[FootNote(Xen hypervisor を起動させてから、 Linux カーネルを起動させる必要がある為に必要になります このような起動方法を行う為に Multi  カーネル起動用のエントリが    ファイルに作成されているはずです.    カーネルはデフォルトの起動オプションとしては設定されていません.

GRUB で  をデフォルトで起動させるには   を編集して、デフォルトを xen カーネルに設定してください:[[FootNote(将来の kernel-xen パッケージもデフォルトで起動するように変更するには   を編集してください)]

以下が Xen ハイパーバイザーで起動するように設定した  の例です:

default=1 timeout=5 splashimage=(hd0,0)/grub/splash.xpm.gz hiddenmenu title Fedora Core (2.6.18-1.2784.fc6) root (hd0,0) kernel /boot/vmlinuz-2.6.18-1.2784.fc6 ro root=LABEL=/1 rhgb quiet initrd /boot/initrd-2.6.18-1.2784.fc6.img

title Fedora Core (2.6.18-1.2784.fc6xen) root (hd0,0) kernel /boot/xen.gz-2.6.18-1.2784.fc6 module /boot/vmlinuz-2.6.18-1.2784.fc6xen root=LABEL=/1 module /boot/initrd-2.6.18-1.2784.fc6xen.img

Xen の有効化
システムが Xen カーネルで起動したら、カーネルと Xen が起動している事を確認してください:

2.6.17-1.2600.fc6xen

Name                             ID Mem(MiB) VCPUs State  Time(s) Domain-0                          0      610     1 r- 12492.1

上記の結果は xen カーネルがロードされていて、 Domain-0 (ホストオペレーティングシステム) が起動している事を表示しています.

Fedora ゲストシステムの作成
Fedora Core 6 では anaconda を利用した Fedora Core 6 Xen ゲストのインストールがサポートされています. インストールは  プログラムを利用したコマンドライン、もしくは GUI プログラム   から始める事ができます.

を使用した Fedora ゲストシステムの作成
プログラムを起動して、対話的なインストールプロセスを開始させます:

新しいゲストOS に関する以下の質問が聞かれます. これらの情報はコマンドラインオプションとして渡してしまう事も可能です. 詳細に関してはコマンドに  オプションをつけて起動させてください. kickstart オプションを渡すには  を利用します.


 * 1) What is the name of your virtual machine? (仮想マシンの名前は何ですか？)  これはゲストOSを識別する為のラベルです.  このラベルは たくさんの   コマンドに利用され、   や、Gnome パネルの Xen アプレットにも表示されます.  さらに ゲストの設定情報を保存している   ファイルの名前にも使用されます.
 * 2) How much RAM should be allocated (in megabytes)? (どれだけのRAMを割り当てますか)  ゲストインスタンスに割り当てる RAM の容量をメガバイト単位で指定します. (例 256).  256 メガバイト以下でのインストールは推奨されませんので、注意してください.
 * 3) What would you like to use as the disk (path)? (ディスクとして何を使用したいですか(パス))  ゲスト用のディスクイメージとして使用されるファイルの名前と、そのファイルへのローカルパス (例 /home/joe/xenbox1).   これは完全なディスクとして、ゲストにエキスポートされます.
 * 4) How large would you like the disk to be (in gigabytes)? (ディスクはどれぐらいの容量にしますか(ギガバイト単位で) ゲスト用の仮想ディスクの大きさ(上の質問で指定したファイルが存在しない時にのみ表示されます).   デフォルトのインストールを行う場合、4.0 ギガバイト程度が適当でしょう.
 * 5) Would you like to enable graphics support (yes or no): Should the graphical installer be used?（グラフィックサポートを有効にしますか（yes もしくは no): グラフィカルインストーラーを使いますか
 * 6) What is the install location? (インストールロケーションは何ですか）  これは anaconda が使うフォーマットのインストールツリーへのパスです.   NFS、FTP、HTTP ロケーションの全てがサポートされています.   例:

そして、インストールが始まります. もしグラフィックが有効であれば、VNC のウィンドウが開き、グラフィカルインストーラーが表示されます. もしグラフィックを有効にしていなければ、通常のテキストインストーラーが表示されます. 通常のインストールと同じように進めてください.

を使用して、 Fedora ゲストシステムを作成
root として、以下のコマンドを入力して、GUI VIrtual Machine Manager を起動させてください.


 * 1) "Local Xen Host" を選択し、"Open Connection" ダイアログウィンドウで  "Connect" をクリックしてください.
 * 2)   ウィンドウの下にある "New" をクリックして、File-->New を選択してください.
 * 3)   コマンドラインユーティリティで行うのと同じ質問がウィザード形式で表示されます. (上記セクションの説明を参照してください).  ウィザードは、グラフィカルインストールが選択されると仮定するので、グラフィカルインストールに関する質問は行われません.
 * 4) ウィザードの最後のページに "Finish" ボタンがあります.  クリックするとゲスト OS  の作成が始まります.  少しすると、 VNC ウィンドウが表示されます.  通常のインストールと同じように進めてください.

インストール後
ゲストオペレーティングシステムのインストールが完了すると、GUI  プログラム、もしくは   コマンドラインで管理する事ができます.

で仮想マシンをグラフィカルに管理する
GUI Virtual Machine Manager を以下のコマンドで起動させてください:

もし、root でなければ、 root パスワードを聞くためのプロンプトが現れます. もしユーザーインターフェースを監視の為に読み込み専用で使いたい場合は、  (非管理者権限)を選択できます.


 * "Local Xen Host" を選択して、"Open Connection" ダイアログウィンドウで、 "Connect" をクリックしてください.
 * メインウィンドウに仮想マシンのリストが表示されます. "Domain 0"; と表示されるマシンがホストコンピューターになります.
 * もしマシンがリストになければ、恐らく起動していないでしょう. マシンを起動させるには、"File-->Restore a saved machine..." を選択して、ゲストディスクとして使用しているファイルを選択してください.
 * ディスプレイには各マシンのステータス、CPU とメモリ使用量が表示されます. 他の統計は "View" メニューから選択する事ができます.
 * マシンの名前をダブルクリックすると、仮想コンソールが開きます.
 * 仮想コンソールの、 "View-->Details" からマシンのプロパティにアクセスでき、ハードウェアの設定を変更する事ができます.
 * シリアルコンソールにアクセスするには "View-->Serial Console" を選択してください. (もし、グラフィカルコンソールに問題がある場合)

に関する詳細は プロジェクトのウェブサイト を参照してください.

ツールのバグはBugZilla の 'virt-manager' コンポーネントに報告してください.

を利用して、仮想マシンをコマンドラインから管理
ユーティリティを利用して、仮想マシンをコマンドラインから管理する事ができます. ユーティリティは libvirt マネージメントAPI を利用して作成されており、今までの Xen  ツールに対して、いくつかの利点が存在します:


 * virsh は Xen のアップデートに渡って、シンタックスや、セマンティックスを保持できる安定的なコマンド郡があります.
 * virsh は非管理者権限のユーザーが読み込み専用オペレーションに利用する事もできます. (例 ドメインのリストの表示、情報の取得、その他)
 * libvirt はハイパーバイザーの違いにとらわれない為、virsh は将来的に、Xen以外にも QEMU や VMWare を管理する事ができるようになります.

XML vm 設定から、新しい仮想マシンをスタートさせるには:

現在起動している、仮想マシンのリストを表示させるには:

ゲストを安全にシャットダウンするには:

マシンのスナップショットを選択したファイルに保存するには:

以前保存したスナップショットからリストアするには:

仮想マシンに関する設定を XML にエキスポートするには:

で使える全てのコマンドのリストを表示させるには、以下の入力してください:

もしくはマニュアルページを参照してください

ツールに関するバグは BugZilla の 'libvirt' コンポーネントに報告してください.

で仮想マシンをコマンドラインから管理
コマンドに加えて、Xen 用の ユーティリティを使用して、仮想マシンをコマンドラインから管理する事ができます. 仮想マシンのを起動させて、シリアルコンソールをアタッチさせるには以下のコマンドを使用してください:

現在起動している、仮想マシンのリストを表示させるには:

ゲストをシャットダウンするには、以下のコマンドを使用してください:

マシンのスナップショットを選択したファイルに保存するには:

以前保存したスナップショットからリストアするには:

起動してい全てのマシンの  のような統計を表示させるには以下のコマンドを入力してください:

で使える全てのコマンドを表示させるには以下のコマンドを入力してください:

ツールに関するバグは BugZilla の 'xen' コンポーネントに報告してください.

ログファイル
Xen に関する問題をデバッグするのを助けてくれる2つのログファイルがホストシステムに存在します. ファイルには ' で報告されるのと同じ情報が記録されています. 残念ながら、これらのログメッセージは通常短く、あまり役に立つ情報は含まれていません. 以下は NetBSD/xen のカーネルを使用したドメインを起動させようとした時のアウトプットです.

[2005-06-27 02:23:02 xend] ERROR (SrvBase:163) op=create: Error creating domain:(0, 'Error') Traceback (most recent call last): File "/usr/lib/python2.4/site-packages/xen/xend/server/SrvBase.py", line 107, in _perform val = op_method(op, req) File "/usr/lib/python2.4/site-packages/xen/xend/server/SrvDomainDir.py", line 71, in op_create raise XendError("Error creating domain: " + str(ex)) XendError: Error creating domain: (0, 'Error')

二つ目のファイルである  には通常、さらに詳細な情報が記録されています. NetBSD/xen カーネルを起動させようとすると、以下のアウトプットがログに記録されます:

ERROR: Will only load images built for Xen v3.0 ERROR: Actually saw: 'GUEST_OS=netbsd,GUEST_VER=2.0,XEN_VER=2.0,LOADER=generic,BSD_SYMTAB' ERROR: Error constructing guest OS

エラーを報告する際には、 と   の両方のアウトプットを提出してください.

もし、fully-virtualized （完全仮想化）ドメインをを起動させた場合には、有用な情報を含んだ /var/log/xen/qemu-dm*.log が作成されます.

さらに、ハイパーバイザーのログは以下のコマンドで見る事ができます.

xm dmesg

ホストシリアルコンソールアクセス
さらに難しい問題には、シリアルコンソールが役に立ちます. もし、 Xen カーネルそのものが死んで、ハイパーバイザーがエラーを吐いた場合には、ローカルホストに完全にエラーを記録する方法がありません. シリアルコンソールは、エラーをリモートホストで、キャプチャーさせる事ができます.

Xen ホストにシリアルコンソールアウトプットと、リモートホストでキャプチャできるように設定する必要があります. コンソールアウトプットをセットアップするには、/etc/grub.conf に適切なオプションを設定する必要があります. 例えば:

title Fedora Core (2.6.17-1.2600.fc6xen) root (hd0,2) kernel /xen.gz-2.6.17-1.2600.fc6 com1=38400,8n1 sync_console module /vmlinuz-2.6.17-1.2600.fc6xen ro root=LABEL=/ rhgb quiet console=ttyS0 console=tty pnpacpi=off module /initrd-2.6.17-1.2600.fc6xen.img

com1 の 38400-bps シリアルコンソールには (ie. Linux の /dev/ttyS0) 非同期ハイパーバイザーアウトプットを、止まらせてしまう問題は "sync_console"で解決する事ができます. またシリアルコンソールでのインプットを止めてしまう問題は "pnpacpi=off" で解決する事ができます. "console=ttyS0 console=tty" は、カーネルエラーが通常の VGA コンソールとシリアルコンソールの両方にログされるという意味です. ここまでが完了したら、ttywatch ( fedora-extras から提供されています) をインストール、セットアップして、スタンダードなnull-modemケーブルを使用して、リモートホストの情報をキャプチャーする事ができます. 例えば、リモートで以下のように行うと

ログのアウトプットを /dev/ttyS0 から /var/log/ttywatch/myhost.log ファイルに記録します.

擬似仮想ゲストシリアルコンソールアクセス
擬似仮想ゲスト OS は自動的にシリアルコンソールが設定され、 Domain-0 OS につなぎこまれます. そして、以下のコマンドでアクセスする事が可能です.

もしくは、グラフィカルな  プログラムがシリアルコンソールを表示する事ができます. ゲストの 'console' もしくは 'details' ウィンドウを表示させ、メニューバーの 'View -> Serial console' を選択してください.

完全仮想ゲストシリアルコンソールアクセス
完全仮想ゲスト OS はシリアルコンソールが自動的に設定されます. しかしゲストカーネルはシリアルコンソールを新規の状態で使えるように設定していません. Linux 完全仮想ゲストでゲストコンソールを使えるようにするには、 /etc/grub.conf を編集して、ゲストのエントリに 'console=ttyS0 console=tty0' を追加してください. 上記の設定で、全てのカーネルメッセージがシリアルコンソールと、通常のグラフィカルコンソールに送信されます. このシリアルコンソールは擬似仮想ゲストと同じようにアクセスする事ができます:

もしくは、グラフィカルな  プログラムがシリアルコンソールを表示する事ができます. ゲストの 'console' もしくは 'details' ウィンドウを表示させ、メニューバーの 'View -> Serial console' を選択してください.

ゲストディスクイメージのデータへのアクセス
ゲストディスクイメージへのアクセスを補助する2つのツールが存在します: lomount と kpartx です. ゲストと起動している時には、ホスト(dom0)からディスクへのアクセスを行わないでください. ゲストとホスト(dom0)から同時にアクセスするとファイルシステムを破壊してしまう恐れがあります!


 * lomount

lomount はディスクイメージが小さく LVM ボリュームでない時にのみ使用可能です. 従ってもっと複雑なケースには kpartx (device-mapper-multipath RPM から提供されています) を使用してください:


 * kpartx

add map guest1p1 : 0 208782 linear /dev/xen/guest1 63 add map guest1p2 : 0 16563015 linear /dev/xen/guest1 208845

このコマンドはブロックデバイスにのみ使用でき、通常のファイルにインストールされたイメージには使用できません. ファイルイメージを扱うには、まずイメージファイル用のループバックデバイスを作成する必要があります:

/dev/loop0 add map loop0p1 : 0 208782 linear /dev/loop0 63 add map loop0p2 : 0 12370050 linear /dev/loop0 208845

このケースでは通常の Fedora インストールとしてフォーマットされたイメージを追加しています. 従って /boot と その他を含んだ LVM ボリュームの2つのパーティションが存在します. これらパーティションは /dev/mapper 配下でアクセスする事ができます:

brw-rw 1 root disk 253, 6 Jun  6 10:32 xen-guest1 brw-rw 1 root disk 253, 14 Jun 6 11:13 guest1p1 brw-rw 1 root disk 253, 15 Jun 6 11:13 guest1p2

二つ目のパーティションに存在する LVM ボリュームにアクセスするには LVM ボリュームを "vgscan" で再スキャンして、"vgchange -ay" でパーティション(デフォルトでは"VolGroup00")をアクティベートする必要があります:

全ての物理ボリュームを読み込みます. これには少し時間がかかります. . . . "VolGroup00" ボリュームグループをメタデータタイプ lvm2 を使用して見つけました. ボリュームグループ "VolGroup00" の2つのロジカルボリュームがアクティブになりました. LV       VG         Attr   LSize   Origin Snap%  Move Log Copy% LogVol00 VolGroup00 -wi-a-   5.06G LogVol01 VolGroup00 -wi-a- 800.00M ...

二つ目の理由としては、ゲストを再度立ち上げた時に、LVMがゲストと ホスト(dom0) の両方で同時に有効なってしまった場合、ボリュームグループもしくは、ファイルシステムが破壊される恐れがあります.

Frequently Asked Questions

 * Q: xend サービスを開始させようとしているのですが、何もおこりません.   を手動で行うと、以下のエラーが表示されます:

ERROR: Could not obtain handle on privileged command interface (2 = No such file or directory) Traceback (most recent call last): File "/usr/sbin/xend", line 33, in ? from xen.xend.server import SrvDaemon File "/usr/lib/python2.4/site-packages/xen/xend/server/SrvDaemon.py", line 21, in ? import relocate File "/usr/lib/python2.4/site-packages/xen/xend/server/relocate.py", line 26, in ? from xen.xend import XendDomain File "/usr/lib/python2.4/site-packages/xen/xend/XendDomain.py", line 33, in ? import XendDomainInfo File "/usr/lib/python2.4/site-packages/xen/xend/XendDomainInfo.py", line 37, in ? import image File "/usr/lib/python2.4/site-packages/xen/xend/image.py", line 30, in ? xc = xen.lowlevel.xc.xc RuntimeError: (2, 'No such file or directory')

A: xenハイパーバイザーカーネルではないカーネルで起動しています. 自分でもテストを行っている時にやってしまいました :)

起動時に xen ハイパーバイザーカーネルを選択するか、grub.conf ファイルを編集して、xen ハイパーバイザーカーネルで起動するように設定してください.


 * Q. ゲストを作成している時に "Invalid argument" が表示されます.

A. このメッセージは通常ハイパーバイザーに対応していないカーネルイメージで起動させようとしている時に表示されます. これは FC5 (PAE無効) カーネルを FC6 (これはPAE のみ可能)で起動させようとしたり、Xenが有効でない通常のカーネルで起動させようとすると表示されます.


 * Q. yum update を行って、新しいカーネルをインストールすると、 grub.conf の設定が、Xenが有効でないカーネルでデフォルトに起動する設定に変わってしまいます.

A. デフォルトカーネル RPM は /etc/sysconfig/kernel で変更する事ができます. もし、 'kernel-xen' と設定すると Xen が有効になったカーネルがいつも grub.conf のデフォルトオプションになります.

助けのえかた
もし、上記のトラブルシュートセクションでもあなたの問題が解決できない場合、 Red Hat Bugzilla のFC6 の Xen を検索してみてください. Xenカーネルに関するバグは product は "Fedora Core"で、 component は "kernel" で検索し、ツールに関するバグは "xen" で検索してみてください. バグリポートの中には他の Xen テスターからの役に立つアドバイスや、問題の回避方法の説明があります.

Xen に関する一般的な問題や、役に立つ情報は Xen プロジェクトのドキュメント や、メーリングリストアーカイブ を参照してください.

最後に、Fedora Xen サポートの問題に関しての議論は Fedora Xen メーリングリスト で行われています.