2009年10月24日土曜日

usb

 USB デバイスのサポートを有効化します。


■ ドメイン


  • 完全仮想化ドメイン(HVM)


■ 書式

usb=<n>


■ <n>の値の例


  • 0 …… 無効

  • 1 …… 有効


■ 例

usb=1


■ 注意点


  • 本情報はXen 3.4.0時点の内容です


■ 参考






2009年10月23日金曜日

rtc_timeoffset

 ゲストに供給する時刻を、Domain-0 の時刻からのオフセット(単位:秒)で指定
します。


■ ドメイン


  • 準仮想化ドメイン(PV)

  • 完全仮想化ドメイン(HVM)


■ 書式

rtc_timeoffset=<n>


■ <n>の代表的な値


  • 0 …… 協定世界時(UTC)

  • 32400 …… 日本標準時(JST)



■ 例

localtime=0
rtc_timeoffset=32400



■ 注意点


  • localtime=1 が設定されている場合、この値は無視されます。

  • Xen 3.1.3(3.1.x)以降


■ 参考





localtime

 ゲストに供給する時刻情報のタイムゾーンを指定します。システムクロックを協定世界時で運用できるOSであれば0 もしくは1、Windows などのシステムクロックが現地時間である必要があるOSでは1を設定します。


■ ドメイン


  • 準仮想化ドメイン(PV)

  • 完全仮想化ドメイン(HVM)


■ 書式

localtime=<n>


■ <n>の値


  • 0 …… 協定世界時(UTC)

  • 1 …… ローカル時刻



2009年10月22日木曜日

そのマザーボードは本当にVT-d対応か?

(2011/1/16) 一部加筆修正


IA向けの新しい仮想化支援機能としてVT-dと呼ばれる機能があります。

VT-dとは、仮想化されたゲスト環境から物理的なハードウェアを直接認識・アクセスするための機能を提供するものです。VT-dを利用することで、たとえばゲストOSとして動作するOSがSATAやSAS、SCSIなどのコントローラを直接認識させると、ゲストOSは仮想化しない場合と同じ方法でコントローラを制御でき、一般的にパフォーマンスが向上します。

VT-dは、CPUの特権リングの拡張であるVT-xやAMD-Vとはまた別の、CPUとチップセットで実現される機能です。したがって、VT-dの実装はVT-d対応CPUを利用しているか、チップセットおよびBIOSがVT-d対応か否かに依存します。


■ VT-dに対応した製品の判断方法


現状、現在VT-dをサポートするマザーボードは非常に数が限られています。特定モデルの製品がVT-dに対応しているか否かを判断するには、現状Xen WikiVTdHowToページを参照し判断する方法が堅実です。


現状、 Core2 プロセッサに対応した VT-d 対応チップセットは Q35/Q45 に限られています。これらのチップセットはオフィス向けクライアントへの利用を想定したもので流通量が限られています。

Nehalem(Xeon 5500ライン)用チップセット、およびCore i7など向けのX38/X48チップセットはVT-dをサポートしています。ただし、一部マザーボードはBIOSがVT-dに対応していない場合があるようなので、やはり注意が必要です。


■ チップセットがVT-dに対応していない場合でもVT-dオプションがBIOSセットアップに表示されることがあるので注意

一部のマザーボードでは、VT-dに対応しないチップセットを搭載しているにもかかわらず、BIOSセットアップ上にVT-dの選択肢が表示されるモデルがあるので要注意です。

具体例として、 Intel DQ43AP は Q43 チップセットを搭載したモデルですが、 BIOS セットアップ上では VT-d の選択肢を Enabled に設定できてしまいます。

Intel のサイト
で参照できるデータシートによれば、このチップセットには VT-d に関連するレジスタが実装されていません。


インターネット上で「このマザーボードの BIOS は VT-d に対応しているよ!」という情報が記載されていても、実はこのようにチップセットが VT-d をサポートしていないケースがあります。VT-d の検証を目的として機器を選定する場合は、このような罠にかからぬよう、十分に注意してください。


プロセッサが仮想化支援機能を持つか確認するには

Xenの完全仮想化やKVMを利用するためには、プロセッサ(CPU)の仮想化支援機能が必要です。

プロセッサの仮想化支援機能は2006年頃の製品から実装されるようになり、2007年以降に提供されたプロセッサのほとんどに搭載されています。一部の廉価なプロセッサでは実装されていない場合もあります。

x86系プロセッサに搭載されている仮想化支援機能は、プロセッサの種類やベンダにより違いがあります。



  • Intel製プロセッサの場合: VMX, VT-x

  • Intel製IA-64プロセッサの場合: VT-i

  • AMD製プロセッサの場合: SVM, AMD-V (Pacifica)


プロセッサの仮想化支援状況を確認する一番簡単かつ確実な方法は、Linux(ディストリビューションのインストールCDや1CD Linuxなどでもかまいません)で起動し、シェル上で下記のコマンドを実行し、確認することです。


# cat /proc/cpuinfo


■ Intel 製プロセッサの場合

Intel プロセッサの場合、 /proc/cpuinfo の flags 行にフラグ vmx が出力されていれば
VT-x がサポートされています。

[root@quad ~]# cat /proc/cpuinfo
processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 23
model name      : Intel(R) Core(TM)2 Quad CPU    Q8400  @ 2.66GHz
(中略)
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca
                  cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht 
                  tm syscall nx lm constant_tsc pni monitor ds_cpl vmx est
                  tm2 cx16 xtpr lahf_lm
bogomips        : 5332.91
....


■ AMD 製プロセッサの場合

AMD 製プロセッサの場合、 /proc/cpuinfo の flags 行にフラグ svm が出力されていれば
AMD-V がサポートされています。


■ 対応プロセッサを利用しているのにフラグが立っていない場合は....


使用中のプロセッサが仮想化支援機能を持っているにも関わらず、これらのフラグが
表示されない場合、おもに以下の理由が考えられます。


  • BIOS設定上で仮想化機能の無効化されている(有効化されていない)

  • 下位仮想化技術やハイパーバイザによりマスクされている


  • Linuxカーネルがあまりにも古すぎて、仮想化支援機能を検出していない


■ 参考






2009年9月24日木曜日

viridian

 Viridianインターフェイス(Hyper-V)をエミュレートします。 (HVMドメイン)





 Viridianインターフェイス(Hyper-V)が提供するハイパーコールの一部をエミュレートします。Xen 3.4.0の時点では、本機能によりWindows Vista/7やWindows Server 2008において複数の仮想CPUを割り当てた場合にSTOPエラーが発生する現象を抑制できるようです。

■ 書式

viridian=<n>

■ <n>の値


  • 1 …… 有効

  • 0 …… 無効





■ 注意点


  • Viridianインターフェイスに対応したゲストOSが必要です

  • Xen 3.4以降

  • 本情報はXen 3.4.0時点の内容です

■ 参考


2009年9月16日水曜日

CentOS 5.3におけるXenマイグレーション利用時の注意点

Xen徹底入門 第2版で注意書きを入れようと思っていましたが最終的に入らなかったようなので、こちらに書いておきます。


Xen徹底入門 第2版では、マイグレーション機能についてCentOS 5.3 (64bit版)の検証結果に基づき解説しましたが、CentOS 5.3付属のXenパッケージには下記のとおり既知の問題があります。

64bitのハイパーバイザを使って32bitのドメインをマイグレーションを開始すると、ログに下記のメッセージが出力され、失敗する
 INFO (XendDomainInfo:1719) Dev 51712 still active, looping...


念のため、64bitのゲストの場合は問題なくマイグレーションできています。この問題はRed Hat Enterprise Linux 5.3にも存在するようです。根本的な解決策としては、CentOS 5.3標準のパッケージは利用せず、下記の方針でXenのバイナリを入れ替える必要があるようです。


  • 自分でXenをビルドしインストールする

  • CentOSプロジェクト以外からリリースされているパッケージに置き換える

バグの存在は残念ですが、CentOS 5.4以降のバージョンでは解決されることに期待したいと思います。


参考情報:

[Xen-users] live migration fails with device still active

http://lists.xensource.com/archives/html/xen-users/2009-04/msg00586.html