Текст:
Простая задача скопировать ВМ с ESX на USB носитель превратилась в двухдневный детектив. Задача собственно осложнялась большим объемом данных и удаленным расположением ESX. Просто подключить USB к рабочей станции и скопировать данные по сети используя vsphere клиент не удалось из-за малой пропускной способности канала. В ESX был вставлен USB накопитель, который в дальнейшем планировалось передать в нужное местоположение.
В результате было выяснено, что подключить USB накопитель к ESX в качестве datastore не получается. Была найдена статья с многообещающим названием World's first ESXi datastore on external USB storage в которой описано как раз то, что нужно. Но тестового ESX под рукой не оказалось, а проверять на рабочем не решился. Если кто пробовал - обязательно отпишитесь.
Решил пойти стандартным путем: подключить USB к ВМ и затем через vsphere клиент скопировать на него все что нужно.
В дальнейшем, описание действий приводится для интерфейса vsphere клиент.
1. в свойствах ВМ добавляем устройство USB controller, выбираем тип EHCI+UHCI для USB2.0 или xHCI для USB 3.0, жмем OK для применения изменений
2. в свойствах ВМ добавляем устройство USB Device
3. в гостевой ОС видим новое USB устройство и делаем с ним все, что необходимо
На шаге 2 все пошло не по плану, пункт USB Device (unavailable) - недоступен. Перезагрузка ESX ситуацию не изменила.
Второй стандартный путь - проброс (passthrough) USB контроллера в ВМ.
1. определяем USB контроллер к которому подключен накопитель, в моем случае имеется два контроллера с идентификаторами 00:1a.0 и 00:1d.0
1.1 подключаемся к ESX по SSH
1.2 выполняем команду lsusb -v | grep -e Bus -e iSerial
Bus 002 Device 003: ID 0424:2660 Standard Microsystems Corp.
iSerial 0
Bus 001 Device 003: ID 0480:a00c Toshiba America Info. Systems, Inc.
iSerial 3 20150429055413
(Bus Powered)
(Bus Powered)
Bus 002 Device 002: ID 8087:8002 Intel Corp.
iSerial 0
Bus 001 Device 002: ID 8087:800a Intel Corp.
iSerial 0
Bus 005 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
iSerial 1 0000:00:14.0
Bus 004 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
iSerial 1 0000:00:14.0
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
iSerial 1 0000:01:00.4
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
iSerial 1 0000:00:1d.0
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
iSerial 1 0000:00:1a.0
в выводе команды находим строку относящуюся к USB накопителю, в примере это
Bus 001 Device 003: ID 0480:a00c Toshiba America Info. Systems, Inc.
следовательно устройство находится на Bus01. Далее ищем root hub на данной шине, это
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
по iSerial находим идентификатор контроллера 00:1a.0
2. выбираем ESX и вкладку Configuration, блок Hardware - Advanced Settings, пункт Edit... (Configure Passthrough...), в окне Mark device for passtrough выбираем контроллер 00:1a.0
2.1 жмем OK и перезагружаем ESX
3. в свойствах ВМ добавляем устройство PCI Device, в списке доступных устройств появится наш USB контроллер
4. в гостевой ОС, через vsphere клиент, выполняем необходимые операции с диском
! Если у вас ESX загружается с USB который подключен к тому же USB контроллеру, что и подключаемый накопитель, вы не сможете вывести этот контроллер из режима passtrough.
USB контроллер переведеный в режим passtrough не доступен для ядра ESX. Когда вы снимаете галочку в интерфейсе, ESX сохраняет настройки в esx.conf. Так как ESX полностью загружен в память, то и измененный esx.conf расположен также в памяти. При перезагрузке ESX пытается сохранить esx.conf на устройство USB с которого он загружался, но не может получить к нему доступ (так как оно находится в режиме passtrough). Таким образом изменения не применяются.
Единственный способ отключить passtrough для USB контроллера, в данном случае, - переустановка ESX !
Итак 3 способа подключения USB накопителя к ESX:
- создание виртуального USB контроллера в ВМ и подключение USB устройства через этот контроллер
- проброс физического USB контроллера в ВМ как устройства PCI
- создание datastore на USB накопителе (не протестировано)
Добавить комментарий.