|
|
|
|
|
|
|
|
|
|
xen-japanese
[Xen-japanese] PCIパススルーを行うための手順
現在のXenではPCIデバイスのPCIパススルーが行えるようになっています。
(IOMMU(I/O Memory Management Unit)内蔵のチップセットが搭載されている
マシンを使用することが条件)
PCIパススルーとはゲスト・ドメインが直接PCIデバイスを操作することです。
エミュレーション方式に代えて、PCIパススルーを使用することで、仮想化されて
いないOSからPCIデバイスを操作するのとほとんど代わりない性能を得ることが
できます。
現在、様々なPCIデバイスをPCIパススルーによって操作できます。
しかし、PCIパススルーで動かないPCIデバイスも存在していると考えています。
ですので、問題が発生した方がいましたらご報告をお願いします。
なるべくご対応させていただきたいと思います。
以下にPCIパススルーを行うための手順を示します。
[PCIパススルーを行うためのXen Unstable版の構築手順]
1.Xen Unstableをネットワーク経由で取得。
# hg clone http://xenbits.xensource.com/xen-unstable.hg
# cd xen-unstable.hg
2.pcibackドライバをビルトインする。
# make linux-2.6-xen-config CONFIGMODE=menuconfig
----------設定----------
Xen --->
<*> PCI-device backend driver
----------設定----------
3.Xenをビルドする。
# make
4.Xenをインストールする。
# make install
5.modules.depの作成
# depmod -F /boot/System.map-2.6.18.8-xen 2.6.18.8-xen
6.イニシャルRAMディスクの作成
# mkinitrd -f /boot/initrd-2.6.18.8-xen.img 2.6.18.8-xen
7.ゲスト・ドメインに割り当てるPCIデバイスのBDF(Bus No. Device No.
Function No.)を確認する。
(今回はIDEカードとNICを割り当てることとして話を進める。)
# lspci
00:19.0 Ethernet controller: Intel Corporation 82566DM-2
Gigabit Network Connection (rev 02)
...
01:01.0 Mass storage controller: Integrated Technology Express, Inc.
IT/ITE8212 Dual channel ATA RAID controller (rev 13)
...
8.ブート・ローダの"reassigndev"パラメータでゲスト・ドメインに割り当てる
PCIデバイスのリソースの再割当を行う。
また、"pciback.hide"パラメータでゲスト・ドメインに割り当てるPCIデバイス
をpcibackドライバでバインドする。
# vi /boot/grub/grub.conf
----------編集----------
title Xen-3.4-Unstable (2.6.18.8-xen)
root (hd0,0)
kernel /boot/xen-3.4-unstable.gz iommu
module /boot/vmlinuz-2.6.18.8-xen ro root=LABEL=/
reassigndev=0000:00:19.0,0000:01:01.0
pciback.hide=(0000:00:19.0)(0000:01:01.0)
module /boot/initrd-2.6.18.8-xen.img
----------編集----------
9.Xen Unstable版を起動する。
# reboot
[割当手順]
1.ゲスト・ドメインに割り当てるPCIデバイスのBDFをゲストの設定ファイルに
記載する。
# vi /etc/xen/GUEST.hvm
pci = [ '00:19.0','01:01.0' ]
2.ゲスト・ドメインを起動する。
# xm create /etc/xen/GUEST.hvm
3.割り当てたPCIデバイスをゲスト・ドメインから使用できるかを確認する。
(ゲスト・ドメインとしてLinuxを使用したときの確認方法)
# lspci
00:10.0 Ethernet controller: Intel Corporation 82566DM-2
Gigabit Network Connection (rev 02)
...
01:09.0 Mass storage controller: Integrated Technology Express, Inc.
IT/ITE8212 Dual channel ATA RAID controller (rev 13)
...
[補足]
BDFを使用したPCIデバイスの指定方法ではブート時に番号が変更されてしまう
恐れがあります。
しかし、デバイス・パスと呼ばれるパラメータを用いてPCIデバイスを指定する
と、そのデバイス・パスは変更されることなく、永続的なパラメータとして
ゲスト・ドメインに割り当てるPCIデバイスを指定することができます。
デバイス・パスの書式は以下のようになっています。
<hid>[:<uid>]-<dev>.<func>[-<dev>.<func>[...]]
例) PNP0A03:100-1c.1-00.0
このデバイス・パスを用いて、ゲスト・ドメインに割り当てる予定のPCIデバイス
を指定する"guestdev"というブート・パラメータをdom0 Linuxに追加するパッチ
がXen Unstableに投稿されています。(現在、未採用)
例) reassign_resources guestdev=PNP0A03:100-1c.1-00.0,PNP0A03:100-1d.7
(参照)http://lists.xensource.com/archives/html/xen-devel/2008-12/msg01093.html
BDFからデバイス・パスに変換することができるスクリプト(device_path.py)も
投稿されています。
(参照)http://lists.xensource.com/archives/html/xen-devel/2008-12/msg01116.html
このスクリプトは以下のように使用できます。
# chmod 755 device_path.py
# device_path.py 07:00.0
PNP0A03:100-1c.1-00.0
ご質問等ありましたらお気軽にどうぞ。
それでは、よろしくお願いします。
--
NECシステムテクノロジー 島田雄二
_______________________________________________
Xen-japanese mailing list
Xen-japanese@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/mailman/listinfo/xen-japanese
|
<Prev in Thread] |
Current Thread |
[Next in Thread>
|
- [Xen-japanese] PCIパススルーを行うための手順,
Yuji Shimada <=
|
|
|
|
|