注意)この記事では失敗しています。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 ~]# dmesgsdc で認識したようだ。
[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)
<略>
次にPCI IDを探す。
[root@xs625test ~]# ll /sys/block/sdc0000:00:13.1のようだ。
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
確認してみる。
[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 1pcibackは動いたようだ。
[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)
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/
XCP Ubuntu PCIPassthrough
http://wiki.xen.org/wiki/XCP_Ubuntu_PCIPassthrough
BDF(Bus:Device.Function)
http://wiki.xen.org/wiki/Bus:Device.Function_(BDF)_Notation
0 件のコメント:
コメントを投稿