SDLab

SDLab
SDLab.org::Adminな脳み

2014年4月15日火曜日

XenServer6.2.5 ) PCI PassthroughでVMにUSBメモリをつける

PCI Passthroughで、USBメモリをVMにつけてみるテスト。

注意)この記事では失敗しています。DomUのKernelの問題。Kernel3系のVMをImportするのが面倒だったなんていえない・・・


Dom0 がpcibackをサポートしていることを確認

[root@xs625test ~]# ls /sys/bus/pci/drivers/

DomU がpcifrontをサポートしていることを確認

DomU は Kernel 2.6.37以上が必要
[root@Cent64-132 ~]# uname -a
Linux Cent64-132 2.6.32-431.el6.x86_64 #1 SMP Fri Nov 22 03:15:09 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
あれ、だめだね。
ダメもとで続けてみる。(っていうか、pcifrontなけりゃ動かないんだけどね)

Dom0 にUSBメモリを刺す。


一応状態確認
[root@xs625test ~]# xl list
Name                                        ID   Mem VCPUs      State   Time(s)
Domain-0                                     0   752     4     r-----      48.0
[root@xs625test ~]# xl pci-list Domain-0
[root@xs625test ~]# 
なにもついてない。

dmesgでPCI IDを確認

lspciで確認するよりも、こっちの方が早い。
[root@xs625test ~]# dmesg
[368519.359878] scsi7 : usb-storage 7-4:1.0
[368521.093017] scsi 7:0:0:0: Direct-Access     Sony     Storage Media    0100 PQ: 0 ANSI: 0 CCS
<略>
[368521.095702] sd 7:0:0:0: Attached scsi generic sg2 type 0
[368521.098056] sd 7:0:0:0: [sdc] 7831552 512-byte logical blocks: (4.00 GB/3.73 GiB)
<略>
sdc で認識したようだ。

次にPCI IDを探す。
[root@xs625test ~]# ll /sys/block/sdc
lrwxrwxrwx 1 root root 0 Apr 14 16:27 /sys/block/sdc -> ../devices/pci0000:00/0000:00:13.1/usb7/7-4/7-4:1.0/host7/target7:0:0/7:0:0:0/block/sdc
0000:00:13.1のようだ。

確認してみる。
[root@xs625test ~]# lspci | grep 00:13.1
00:13.1 USB controller: Advanced Micro Devices [AMD] nee ATI SB7x0 USB OHCI1 Controller

VMへの設定

なお、PCI PassthroughはVMのOther-Configに記述するので、「VMを停止」する必要がある。(VMの再起動が必要ってこと)

USBメモリをつける対象のVMをShutdownする。

次にOther-Configに追加する。
一応今の状態を確認
[root@xs625test ~]# xe vm-param-get param-name=other-config uuid=85de31d0-e717-ef01-1f9a-8daf703af2e5
vgpu_pci: ; import_task: OpaqueRef:69498860-467e-7ee9-3482-2dec76d2dcdc; mac_seed: 84bae631-dee2-fac1-452e-f234736ed489; linux_template: true; base_template_name: CentOS 6 (64-bit); rhel6: true; install-repository: cdrom; install-methods: cdrom,nfs,http,ftp

追加
[root@xs625test ~]# xe vm-param-set other-config:pci=0/0000:00:13.1 uuid=85de31d0-e717-ef01-1f9a-8daf703af2e5

確認
[root@xs625test ~]# xe vm-param-get param-name=other-config uuid=85de31d0-e717-ef01-1f9a-8daf703af2e5
pci: 0/0000:00:13.1; vgpu_pci: ; import_task: OpaqueRef:69498860-467e-7ee9-3482-2dec76d2dcdc; mac_seed: 84bae631-dee2-fac1-452e-f234736ed489; linux_template: true; base_template_name: CentOS 6 (64-bit); rhel6: true; install-repository: cdrom; install-methods: cdrom,nfs,http,ftp

VMを起動してみる。


Dom0 のDmesgになんか出た
[370536.251894] ohci_hcd 0000:00:13.1: remove, state 1
[370536.251911] usb usb4: USB disconnect, device number 1
[370536.251917] usb 4-1: USB disconnect, device number 3
[370536.254912] ohci_hcd 0000:00:13.1: USB bus 4 deregistered
[370536.256458] pciback 0000:00:13.1: seizing device
[370536.256749] xen: registering gsi 18 triggering 0 polarity 1
[370536.256760] Already setup the GSI :18
[370536.273286] xen-pciback: vpci: 0000:00:13.1: assign to virtual slot 0
[370536.993527] xen-blkback:ring-ref 8, event-channel 13, protocol 3 (x86_64-abi)
pcibackは動いたようだ。
xlコマンドでみてみる
[root@xs625test ~]# xl pci-list Domain-0
Vdev Device
00.0 0000:00:13.1


Dom0 的には上手くいったぽい。
Dom0からUSBメモリは見えなくなった。
でもDomUでは、やっぱりKernelのVersion問題で、見えなかった。
pcifrontが無いしね。

そのうち、SuseかRHEL7で試してみる。

さて、取り外し。

対象のVMを停止。
そして、設定を抜く。
[root@xs625test ~]# xe vm-param-remove param-name=other-config param-key=pci uuid=85de31d0-e717-ef01-1f9a-8daf703af2e5
確認
[root@xs625test ~]# xe vm-param-get param-name=other-config uuid=85de31d0-e717-ef01-1f9a-8daf703af2e5
vgpu_pci: ; import_task: OpaqueRef:69498860-467e-7ee9-3482-2dec76d2dcdc; mac_seed: 84bae631-dee2-fac1-452e-f234736ed489; linux_template: true; base_template_name: CentOS 6 (64-bit); rhel6: true; install-repository: cdrom; install-methods: cdrom,nfs,http,ftp
消えた。
xlでも確認。
[root@xs625test ~]# xl pci-list Domain-0
Vdev Device
00.0 0000:00:13.1

?あれ、消えない・・・
期待していた結果はこんな感じ


[root@xs625test ~]# xl pci-list RHEL7
Vdev Device
00.0 0000:00:13.2


xl pci-detach してもErrorになるし・・・

この辺も含めて改めてリベンジしよう。




参考にしたBLOG
PCI Passthru on XenServer and Xen Cloud Platform
http://nicksegers.com/xcp-pci-passthru/

0 件のコメント:

コメントを投稿