Иногда в виртуальной инфраструктуре VMware vSphere возникает необходимость скопировать большой объем данных с хоста VMware ESXi. Например, нужно что-то загрузить на изолированный от общей сети хост или забрать виртуальные машины на флешке для переезда на другую инфраструктуру. Через USB сделать это гораздо быстрее, чем ждать пока все это пройдет по небыстрой сети предприятия. Вильям Лам сделал на этот счет полезную инструкцию.
Скопировать файлы с и на ESXi можно как на USB-накопитель в формате FAT32, так и в формате NTFS. Но сначала надо остановить службу USB Arbitrator Service, которая отвечает за проброс USB-устройств в виртуальные машины (passthrough). Делается это следующей командой:
/etc/init.d/usbarbitrator stop
Теперь можно воткнуть флешку, убедиться, что она примонтировалась (она должна появиться в списке хранилищ по адресу /vmfs/volumes/) и выполнить следующую команду для копирования файла с USB-устройства в формате FAT32 на хост ESXi:
Обратите внимание, что адрес к USB-устройству надо указывать через /dev/disks/. /MyFile - это путь к файлу на флешке, а/tmp/MyFile - путь к размещению файла на ESXi.
Ну а вот так можно скопировать файл в обратную сторону - с хоста ESXi на USB-накопитель (просто меняем пути местами, путь с двумя двоеточиями - относится к флешке):
Минус тут в том, что для FAT32 размер файла на USB-устройстве может быть не более 4 ГБ, поэтому для перемещения виртуальной машины ее диск придется разбить на кусочки. Для этого в Linux и Mac OS существует следующая команда (размер кусочка указывается в байтах, в данном случае - 1 ГБ):
split -b 1073741824 [FILE-TO-BE-SPLIT]
После того, как файлы будут перемещены, их можно склеить следующей командой, указав имена кусочков через *:
cat [SPLITTED-FILES]* > [ORIGINAL-FILE-NAME]
Для файловой системы NTFS можно воспользоваться утилитой ntfscat для копирования файлов. Если вы хотите скопировать файл с USB-устройства на хост ESXi нужно выполнить следующую команду: