У меня есть сервер Xen 4.1 с Debian Wheezy 7.4 Dom0 (hmpyxen01). У него есть карта SATA PCI, через которую я передаю Ubuntu Precise 12.04 DomU (hmvmtmp01), установленную через ксен-инструменты который в данном случае является просто оберткой для debootstrap так что DomU очень минимальный (такие инструменты, как lshw и lspci должны быть установлены вручную после загрузки DomU).
Сама пересылка, похоже, работает, поскольку контроллер хранилища использует модуль pciback в Dom0:
root@hmpyxen01:~# lspci -k
...snip...
00:1f.2 SATA controller: Intel Corporation 82801JI (ICH10 Family) SATA AHCI Controller
Subsystem: ASUSTeK Computer Inc. P5Q Deluxe Motherboard
Kernel driver in use: pciback
...snip...
и появляется в DomU:
root@hmvmtmp01:~# lspci -k
00:00.2 SATA controller: Intel Corporation 82801JI (ICH10 Family) SATA AHCI Controller
Subsystem: ASUSTeK Computer Inc. P5Q Deluxe Motherboard
Kernel driver in use: ahci
root@hmvmtmp01:~# lshw -class storage
*-storage
description: SATA controller
product: 82801JI (ICH10 Family) SATA AHCI Controller
vendor: Intel Corporation
physical id: 0.2
bus info: pci@0000:00:00.2
version: 00
width: 32 bits
clock: 66MHz
capabilities: storage msi pm ahci_1.0 bus_master cap_list
configuration: driver=ahci latency=0
resources: irq:29 ioport:9c00(size=8) ioport:9880(size=4) ioport:9800(size=8) ioport:9480(size=4) ioport:9400(size=32) memory:f9cfc000-f9cfc7ff
К сожалению, кажется, что ни один из подключенных дисков не загружается в DomU, только корневые / подкачиваемые диски Xen, настроенные гипервизором.
root@hmvmtmp01:~# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda2 202:2 0 10G 0 disk /
xvda1 202:1 0 1G 0 disk [SWAP]
root@hmvmtmp01:~# lshw -class disk
root@hmvmtmp01:~#
Похоже, что dmesg находит контроллер и диски, но что-то не работает:
root@hmvmtmp01:~# dmesg
...snip...
[ 4.192202] pcifront pci-0: Installing PCI frontend
[ 4.192263] pcifront pci-0: Creating PCI Frontend Bus 0000:00
[ 4.192636] pci 0000:00:00.2: [8086:3a22] type 0 class 0x000106
[ 4.192810] pci 0000:00:00.2: reg 10: [io 0x9c00-0x9c07]
[ 4.192886] pci 0000:00:00.2: reg 14: [io 0x9880-0x9883]
[ 4.192959] pci 0000:00:00.2: reg 18: [io 0x9800-0x9807]
[ 4.193033] pci 0000:00:00.2: reg 1c: [io 0x9480-0x9483]
[ 4.193132] pci 0000:00:00.2: reg 20: [io 0x9400-0x941f]
[ 4.193198] pci 0000:00:00.2: reg 24: [mem 0xf9cfc000-0xf9cfc7ff]
[ 4.193718] pcifront pci-0: New device on 0000:00:00.02 found.
[ 4.195283] pcifront pci-0: claiming resource 0000:00:00.2/0
[ 4.195286] pcifront pci-0: claiming resource 0000:00:00.2/1
[ 4.195287] pcifront pci-0: claiming resource 0000:00:00.2/2
[ 4.195289] pcifront pci-0: claiming resource 0000:00:00.2/3
[ 4.195290] pcifront pci-0: claiming resource 0000:00:00.2/4
[ 4.195292] pcifront pci-0: claiming resource 0000:00:00.2/5
[ 4.195325] ahci 0000:00:00.2: version 3.0
[ 4.195352] ahci 0000:00:00.2: enabling device (0000 -> 0003)
[ 4.195421] ahci 0000:00:00.2: Xen PCI mapped GSI20 to IRQ28
[ 4.195650] ahci: SSS flag set, parallel bus scan disabled
[ 4.195702] ahci 0000:00:00.2: AHCI 0001.0200 32 slots 6 ports 3 Gbps 0x3f impl SATA mode
[ 4.195705] ahci 0000:00:00.2: flags: 64bit ncq sntf stag pm led clo pmp pio slum part ccc ems sxs
[ 4.195752] ahci 0000:00:00.2: setting latency timer to 64
[ 4.235098] scsi0 : ahci
[ 4.236153] scsi1 : ahci
[ 4.238341] scsi2 : ahci
[ 4.241175] scsi3 : ahci
[ 4.242971] scsi4 : ahci
[ 4.245287] scsi5 : ahci
[ 4.245331] ata1: SATA max UDMA/133 abar m2048@0xf9cfc000 port 0xf9cfc100 irq 29
[ 4.245333] ata2: SATA max UDMA/133 abar m2048@0xf9cfc000 port 0xf9cfc180 irq 29
[ 4.245336] ata3: SATA max UDMA/133 abar m2048@0xf9cfc000 port 0xf9cfc200 irq 29
[ 4.245338] ata4: SATA max UDMA/133 abar m2048@0xf9cfc000 port 0xf9cfc280 irq 29
[ 4.245340] ata5: SATA max UDMA/133 abar m2048@0xf9cfc000 port 0xf9cfc300 irq 29
[ 4.245342] ata6: SATA max UDMA/133 abar m2048@0xf9cfc000 port 0xf9cfc380 irq 29
[ 6.427298] init: failsafe main process (429) killed by TERM signal
[ 6.460121] init: rc-sysinit main process (550) killed by TERM signal
[ 14.244071] ata1: softreset failed (1st FIS failed)
[ 14.480058] eth0: no IPv6 routers present
[ 24.244072] ata1: softreset failed (1st FIS failed)
[ 59.244072] ata1: softreset failed (1st FIS failed)
[ 59.244087] ata1: limiting SATA link speed to 1.5 Gbps
[ 64.244070] ata1: softreset failed (1st FIS failed)
[ 64.244082] ata1: reset failed, giving up
[ 74.244070] ata2: softreset failed (1st FIS failed)
[ 84.244071] ata2: softreset failed (1st FIS failed)
[ 119.244072] ata2: softreset failed (1st FIS failed)
[ 119.244084] ata2: limiting SATA link speed to 1.5 Gbps
[ 124.244071] ata2: softreset failed (1st FIS failed)
[ 124.244083] ata2: reset failed, giving up
[ 124.372116] init: udevtrigger post-stop process (335) terminated with status 1
[ 124.390542] init: udev-fallback-graphics main process (674) terminated with status 1
[ 124.407645] init: plymouth-splash main process (682) terminated with status 1
[ 134.244071] ata3: softreset failed (1st FIS failed)
[ 144.244071] ata3: softreset failed (1st FIS failed)
[ 179.244070] ata3: softreset failed (1st FIS failed)
[ 179.244083] ata3: limiting SATA link speed to 1.5 Gbps
[ 184.244071] ata3: softreset failed (1st FIS failed)
[ 184.244083] ata3: reset failed, giving up
[ 194.244071] ata4: softreset failed (1st FIS failed)
[ 204.244071] ata4: softreset failed (1st FIS failed)
[ 239.244071] ata4: softreset failed (1st FIS failed)
[ 239.244083] ata4: limiting SATA link speed to 1.5 Gbps
[ 244.244070] ata4: softreset failed (1st FIS failed)
[ 244.244082] ata4: reset failed, giving up
[ 244.564074] ata5: SATA link down (SStatus 0 SControl 300)
[ 244.884073] ata6: SATA link down (SStatus 0 SControl 300)
Как я упоминал ранее, у меня есть ощущение, что это как-то связано с методом установки ксен-инструменты и DomU может упускать что-то простое, но я не знаю что ...
Любая помощь очень ценится.
РЕДАКТИРОВАТЬ: добавлена информация RE hotswap
Поэтому я перезапустил машину DomU без подключенных дисков и вставил их в уже работающую систему. Вот форма вывода, которая:
[ 305.424655] ata3: exception Emask 0x10 SAct 0x0 SErr 0x4040000 action 0xe frozen
[ 305.424671] ata3: irq_stat 0x00000040, connection status changed
[ 305.424681] ata3: SError: { CommWake DevExch }
[ 305.424688] ata3: hard resetting link
[ 308.353316] ata4: exception Emask 0x10 SAct 0x0 SErr 0x4040000 action 0xe frozen
[ 308.353328] ata4: irq_stat 0x00000040, connection status changed
[ 308.353337] ata4: SError: { CommWake DevExch }
[ 308.353346] ata4: hard resetting link
[ 310.651627] ata1: exception Emask 0x10 SAct 0x0 SErr 0x4040000 action 0xe frozen
[ 310.651639] ata1: irq_stat 0x00000040, connection status changed
[ 310.651648] ata1: SError: { CommWake DevExch }
[ 310.651661] ata1: hard resetting link
[ 313.120770] ata2: exception Emask 0x10 SAct 0x0 SErr 0x4040000 action 0xe frozen
[ 313.120783] ata2: irq_stat 0x00000040, connection status changed
[ 313.120791] ata2: SError: { CommWake DevExch }
[ 313.120804] ata2: hard resetting link
[ 315.428073] ata3: softreset failed (1st FIS failed)
[ 315.428083] ata3: hard resetting link
[ 318.356070] ata4: softreset failed (1st FIS failed)
[ 318.356080] ata4: hard resetting link
Все диски определенно работают, поскольку без включения xen-passthrough все диски доступны и читаются из Dom0.
Ух ты, 3 дня выдергивания волос ...
Я не знаю, связано ли это с тем, что набор микросхем моей материнской платы не поддерживает VT-d (только VT-x), но в DomU я должен добавить простой iommu=soft
к параметрам загрузки ядра в /boot/grub/menu.lst
и это все решило !!
В конце концов, всегда простые вещи.