Назад | Перейти на главную страницу

Xen найти идентификатор VBD для физических дисков

Я запускаю 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>