Я запускаю xen domU с помощью xm create config.cfg
. В файле конфигурации находится ряд физических блочных устройств (LV), которые добавляются к гостю и могут быть доступны при загрузке. Однако в будущем мне понадобится возможность горячего отключения одного из этих дисков с помощью команды xm block-detach. Эта команда, однако, требует, чтобы идентификатор vbd устройства был отключен, и я не могу найти способ найти идентификатор устройства для определенного диска, «подключенного» при запуске. Любая помощь высоко ценится!
В конце концов, сделал это, используя тот факт, что в черном списке устройства перечислены устройства в том порядке, в котором они были добавлены в гостевые. Пока сохраняется этот порядок, можно очистить идентификатор vbd из этого списка, а затем отсоединить его от domU позже.
Я не знаю ни одного "хорошего" способа соотнести вывод xm block-list <dom>
к физическим устройствам в dom0. Возможно, лучшее, что вы можете сделать, это проанализировать DevController
записи из xend.log
, которые подробно описывают имена внешнего и внутреннего интерфейса VBD в момент создания. Это, конечно, не надежно, и его следует использовать с осторожностью.
Начать с
#> xm block-list playground
Vdev BE handle state evt-ch ring-ref BE-path
51713 0 0 4 8 8 /local/domain/0/backend/vbd/10/51713
51714 0 0 4 9 9 /local/domain/0/backend/vbd/10/51714
51729 0 0 4 10 10 /local/domain/0/backend/vbd/10/51729
51730 0 0 4 11 11 /local/domain/0/backend/vbd/10/51730
Затем используйте xenstore-ls
(или xsls
). Вы получите что-то вроде этого:
...
51729 = ""
domain = "playground"
frontend = "/local/domain/10/device/vbd/51729"
uuid = "da5b1321-249e-c7a6-6ba8-5f5a01fe3b85"
dev = "xvdb1"
state = "4"
params = "/dev/sde1"
mode = "w"
online = "1"
frontend-id = "10"
type = "phy"
physical-device = "fd:11"
hotplug-status = "connected"
feature-barrier = "1"
sectors = "2097152"
info = "0"
sector-size = "512"
...
В приведенном выше случае вы можете видеть, что виртуальное блочное устройство /local/domain/10/device/vbd/51729
сопоставляется с физическим устройством /dev/sde1
Можешь попробовать: xm block-list --long <dom>