Подключение USB диска/флешки к хосту VMWare ESXi

Несколько раз возникала задача прямого подключения внешнего USB диска/флешки к хосту VMWare ESXi. Как правило это нужно чтобы скопировать образ виртуальной машины для передачи в удаленный филиал (если WAN канал между офисами слабый или сильно загружен), бэкапа файлов ВМ на внешнее USB устройство, копирования на хост ESXi ISO файла или образа (когда нельзя сильно нагружаться сеть). В этой статье мы рассмотрим, как подключить к хосту ESXi USB диск или флешку в качестве VMFS хранилища или для прямого копирования файлов с FAT32/NTFS раздела.

Подключение внешнего USB накопителя как VMFS хранилища в VMWare ESXi

Предположим, вы хотите подключить USB диск к хосту ESXi и создать на нем VMFS хранилище для удобного копирования/переноса файлов и образов виртуальных машин.

Официально VMWare не поддерживает работу внешних USB устройств в качестве VMFS хранилища. Однако это работает и может использоваться. Кроме того, ESXi не поддерживает USB устройства размером более 2 Тб.

Начиная с VMWare ESXi 6.5 несколько изменилась концепция подключения USB устройств к хосту. Если ранее использовались несколько драйверов (xhci, ehci-hcd, usb-uhci, usb-storage), то теперь вместо них используется один USB драйвер vmkusb.

  1. Подключитесь к консоли ESXi по SSH;
  2. Остановите службу USB arbitrator. Эта служба используется для проброса USB устройства (в том числе дисков) в виртуальную машину на ESXi хосте (USB Passthrough): # /etc/init.d/usbarbitrator stop
    Если вы хотите чтобы USB arbitrator не стартовал после перезагрузки хоста, выполните команду: # chkconfig usbarbitrator off
  3. Подключите пустой USB накопитель к хосту ESXi;
  4. Вы можете идентифицировать имя USB диска по логу /var/log/vmkernel.log или через /dev/disks: # ls /dev/disks/
    USB диск будет называться mpx.vmhbaX или naa.X.
    остановить службу usbarbitrator в vmware esxi для подключения usb диска
  5. Создайте на USB диске GPT разметку: # partedUtil mklabel /dev/disks/naa.5000000000000001 gpt
  6. Теперь нужно вручную создать раздел на диске. Для этого нужно указать начальный и конечный сектор на диске. Выведите информацию по секторам диска: # partedUtil getptbl /dev/disks/naa.5000000000000001 partedUtil getptbl - получиь информацию о gpt диске в esxi
  7. Начальный сектор всегда 2048, размер конечного сектора вычисляется по результатам команды getptbl. В моем примере расчет нужно выполнить так: 121597 * 255 * 63 -1 = 1953455804
    Если на диске уже есть раздел, его можно удалить; # partedUtil delete /dev/disks/naa.5000000000000001 1
  8. Создайте VMFS раздел (GUID такого раздела всегда AA31E02A400F11DB9590000C2911D1B8): # partedUtil setptbl /dev/disks/naa.5000000000000001 gpt "1 2048 1953455804 AA31E02A400F11DB9590000C2911D1B8 0"
  9. Теперь можно отформатировать этот раздел в файловой системе VMFS6: # vmkfstools -C vmfs6 -S USB-HDD-DSDatastore /dev/disks/naa.5000000000000001:1
  10. Откройте графический веб клиент VMWare и перейдите в раздел Storages. В списке доступных датостор появится ваш USB диск.

подключение внешнего usb диска к серверу esxi

Прямое копирование данных между ESXi и USB диском с NTFS/FAT32

Если вы не хотите менять файловую систему USB накопителя на VMFS, вы можете из консоли ESXi получить доступ к файлам на файловой системе NTFS или FAT32 и скопировать нужные файлы.

Перед подключением USB диска к ESXi хосту не забудьте выключить службу USB arbitrator.

Для доступа к FAT32 разделам с ESXi можно использовать утилиту mcopy, а для доступа к NTFS разделу на USB – ntfscat. Также нативно поддерживается файловая система ext3. Основные ограничения:

  • FAT32 и Ext3 разделы доступны на чтение и запись;
  • NTFS диски доступны только на чтение (т.е. вы можете скопировать файлы с USB накопителя с NTFS на ESXi хост, но не наоборот).

Чтобы скопировать файл с USB устройства с FAT32 на ESXi, используйте:

# /bin/mcopy -i "/dev/disks/naa.5000000000000001:2" ::/some.iso /vmfs/volumes/46b2f3eb-ced454321-1234-111122223333/iso/some.iso

где /some.iso – путь к файлу на USB диске. Второй путь показывает куда поместить файл на хосте ESXi (например, сразу в VMFS datastor).

Для обратного копирования с ESXi на USB просто поменяйте местами пути в команде.

Основная проблема FAT32 – не поддерживаются файлы более 4 Гб. Поэтому довольно сложно скопировать vmdk файлы виртуальных машин. Как правило перед копированием исходный файл можно разбить на части (например, по 3 Гб):

# split -b 3221225472 /vmfs/volumes/xx/vm1/vm1.vmdk

Теперь можно скопировать все куски на USB накопитель, а на целевом хосте ESXi собрать их:

# cat vm1* > vm1.vmdk

Для копирования файла с USB диска с NTFS на ESXi хост используется команда:

# /bin/ntfscat -f /dev/disks/naa.5000000000000001:2" some.iso > /vmfs/volumes/46b2f3eb-ced454321-1234-111122223333/iso/some.iso

Копирование можно выполнять только в одну сторону, NTFS не доступна для записи через ntfscat.


Предыдущая статья Следующая статья


Комментариев: 11 Оставить комментарий

Оставить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Я не робот( Обязательно отметьте)