Сегодня мы разберем несколько простых способов получения доступа к данным, хранящимся на файловой системе VMFS хранилища (datastore) гипервизора ESXi (это файлы конфигурации, файлы с данными и снапшотами виртуальных машин). Статья, собственно, основана на реальной ситуации, возникшей у одного из клиентов, когда единственный продуктивный сервер с гипервизором VMware ESXi перестал загружаться.
В том случае, если не работает сам хост ESXi, но локальный диск (или диски) сервера остался работоспособными, вы всегда сможете скопировать файлы виртуальных машин (как диски с данными, так и конфигурационные файлы) с него и запустить ВМ на другом сервере (на VMware Workstation или даже Hyper-V). Основная проблема в том, что «классические» операционные системы (Windows и Linux) по умолчанию не видят раздел с файловой системой VMFS, т.к. в них отсутствует драйвер файловой системы VMFS. В этой статье мы рассмотрим, как получить доступ к файлам виртуальных машин на диске с файловой системой VMFS из разных ОС.
В моем случае проблема была в том, что резервное копирование виртуальных машин VMware настроено не было, как и не было времени на диагностику и решение проблем с загрузкой системы. Поэтому было принято решение вручную скопировать файлы критичной виртуальной машины с хранилища VMFS и запустить ее на другом компьютере на срочно поднятом для этих целей гипервизоре ESXi.
Разберем три сценария доступа к данным на файловой системе VMFS:
Монтирование VMFS раздела в Linux (Ubuntu)
В этой секции мы покажем, как смонтировать раздел с файловой системой VMFS на компьютере с установленной ОС Ubuntu (Live CD с Ubuntu в этом сценарии нам не подойдет).
В первую очередь необходимо подключить физический диск с файловой системой VMFS к компьютеру (серверу) с Ubuntu. Чтобы получить доступ к данным на VMFS томе, нам понадобиться установить специальный сторонний пакет vmfs-tools. Данный пакет позволяет получить доступ к файловой системе раздела VMFS из компьютеров под управлением Linux. Доступ к данным на таком разделе возможен в режиме только на чтение (read-only). Второе важное ограничение, разработчики vmfs-tools официально заявляли о поддержки версий файловой системе VMFS вплоть до VMFS 5.0. Возможность подключения раздела с VMFS 6 (vSphere 6.0 и 6.5.) не гарантируется.
Установим пакет следующей командой
apt-get install vmfs-tools
Примечание. В репозитариях Ubuntu пока доступна только версия vmfs-tools 0.2.1, основной ее недостаток – она умеет работать только с файловой системой VMFS v4. Если вам нужно смонтировать датастор с VMFS 5, придется самостоятельно скачать и установить версию vmfs-tools не ниже 0.2.5, например, здесь:
http://ge.archive.ubuntu.com/ubuntu/pool/universe/v/vmfs-tools/vmfs-tools_0.2.5-1_i386.deb
— пакет для 32 битной системы
http://de.archive.ubuntu.com/ubuntu/pool/universe/v/vmfs-tools/vmfs-tools_0.2.5-1_amd64.deb
— пакет для 64 битной системы
Качаем соответствующую версию пакета так:
#wget http://de.archive.ubuntu.com/ubuntu/pool/universe/v/vmfs-tools/vmfs-tools_0.2.5-1_amd64.deb
И устанавливаем его:
#dpkg -i vmfs-tools_0.2.5-1_amd64.deb
Если нужно будет удовлетворить зависимости, воспользуйтесь командой:
#apt-get install vmfs-tools
После установки пакета, нужно создать точку монтирования, в которую будет подключен VMFS раздел:
#mkdir /mnt/vmfs
Следующий шаг – нужно разобраться с разделами на дисках. Гипервизор ESXi при установке помимо, собственно, раздела для файлов виртуальных машин (VMFS) создает множество служебных разделов. Если версия ESXi 4 или ниже, или VMFS хранилище было обновлено с версии VMFS 3 до VMFS 5, а его размер не превышает 2 Тб, выведем список дисков и разделов так:
#fdisk -l
Как вы видите, раздел с файловой системой VMFS — /dev/sda3 (метка VMware VMFS)
Важно. Т.к. в ESXi 5 используется VMFS v5 с таблицей разделов GPT (таблица GUID Partition Table), которая используется вместо MBR, что позволяет создавать хранилища большего размера и пробрасывать RDM диски в режиме физической совместимости размером более 2 TB. Поэтому для просмотра таблицы разделов придется вместо fdisk использовать команду parted.
Итак, выведем информацию о разделах так:
#parted -l
Осталось смонтировать раздел диска с хранилищем VMFS:
#vmfs-fuse /dev/sdb3 /mnt/vmfs
Выведем содержимое смонтированного раздела:
#ls -all /mnt/vmfs
Итак, теперь мы видим все файлы виртуальных машин на VMFS хранилище, которое доступно нам только для чтения, а это значит, что мы можем скопировать каталоги и/или отдельные файлы нужных виртуальных машин на отдельный диск и запустить их на другом гипервизоре ESXi.
Доступ к VMFS разделу из Windows
Для доступа к данным на VMFS разделе из Windows, нам понадобится специальный открытый драйвер Open Source VMFS Driver, написанный на Java. Драйвер требует версию Java не ниже 6 и также позволяет монтировать VMFS-тома в режиме только для чтения.
Скачать Open Source VMFS Driver драйвер можно на странице https://code.google.com/archive/p/vmfs/. На данный момент проект не обновлялся с 2010 года и максимальная версия драйвера, доступная на сайте — VMFS Driver r95, которая поддерживает только VMFS 3 (< ESXi 5).
- Итак, скачайте Open Source VMFS Driver (fvmfs_r95_dist.zip ) и распакуйте его в произвольный каталог (допустим C:\vmfs)
- Проверить работу java-приложения fvmfs.jar можно так:
cd \vmfs
java -jar fvmfs.jar
- Далее нужно определить номер диска с хранилищем VMFS, подключенный к Windows-компьютеру. Номер диска можно узнать с помощью консоли управление дисками или diskpart. (В нашем примере подключенный диск имеет индекс 1 – Disk1. Для драйвера утилиты fvmfs, этот диск будет именоваться так: \\.\PhysicalDrive1)
- Попытаемся получить информацию о диске:
java -jar fvmfs.jar \\.\PhysicalDrive1 info
- Предоставьте общий доступ к данному диску с помощью WebDav:
java -jar fvmfs.jar \\.\PhysicalDrive1 webdav
- Проверьте, что на клиенте запущена служба клиента WebDAV (WebClient) – если она отключена, ее нужно запустить.
- Подключите расшаренный диск:
net use * http://localhost:50080/vmfs
- В системе должен появиться новый диск, с содержимым датастора VMFS, доступный для чтения.
- Не закрывайте окно командной строки пока работаете с файлами на VMFS хранилище
Подключаем VMFS хранилище на новом ESXi хосте
Как вы видите, в обоих рассмотренных выше случаях сторонние драйверы для VMFS под Linux и Windows не позволяют работать с VMFS 6.0. Поэтому самый универсальный способ получить доступ к данным на VMFS разделе диска вышедшего из стоя сервера – подключить его на новом сервере ESXi (который, благо, устанавливается и настраивается менее чем за час). Это самый простой способ. Таким способом вы сможете переподключить как физический жёсткий диск, так и LUN с устройства хранения (через FC или iSCSI).
Новый хост ESXi должен корректно определить подключенный VMFS датастор и вы сможете получить доступ к файлам на нем.
Итак, как подключить существующее VMFS хранилище на новом ESXi хосте без его форматирования.
- Подключитесь к новому серверу ESXi с помощью веб клиента vSphere.
- Подключите диск к новому серверу и выполните Storage rescan.
- Перейдите в раздел Configure -> Datastores и добавьте новое хранилище (Create a new datastore).
- Выберите тиск хранилища Disk или LUN.
- В списке доступных устройств выберите подключенный диск (LUN) с VMFS хранилищем.
- Выберите режим подключения. Обязательно выберите Keep the existing signature.
- Нажмите на кнопку Finish.
- Перейдите в раздел хранилищ хоста. Выберите подключенное хранилище. Его содержимое можно отобразить, нажав на кнопку Datastore browser.
- Теперь вы можете найти нужные vmx файлы, зарегистрировать их на сервере и сразу запустить критичные виртуальные машины.
Небольшое уточнение по поводу Open Source VMFS Driver под Windows. Т.к. последний раз он обновлялся в январе 2010 года, то соответственно поддерживает только VMFS v3
VMware Player отменили? или использование утилитки от 2009 года более предпочтительный вариант?
А если не секрет, давно VMware Player научился напрямую работать с VMFS разделами?
Все это хорошо если один диск, а если VMFS размазана по RAID? (не считая RAID1)?
Тут, конечно, несколько сложнее. Навскидку, я бы попробовал загрузиться с любого Live CD и попробовал бы создать полную копию образа логического диска (собранного на физических дисках в RAID) , той же dd-ой например, на отдельный физический диск .
Потом этот диск можно подключить к рабочей машине и подключить VMFS раздел.
В любом случае, стоит заранее продумать такой план восстановления, а еще лучше настроить нормальное резервное копирование.
А можно «пропущенные» шаги восстановить?
А как vmfs диск-то подключить? (а лучше storage на NAS)
после запуска команды
java -jar fvmfs.jar
выдается, что-то типа
C:\vmfs_r95>java -jar fvmfs.jar
VMFSTools (C) by fluid Operations (v0.9.8.18 r95 / 2010-01-25_15-57-35)
_http://www.fluidops.com
Arguments:
VMFSVolume info
VMFSVolume dir path
VMFSVolume dirall path
VMFSVolume cat path
VMFSVolume fileinfo path
VMFSVolume filecopy path [newname position size]
VMFSVolume filedump path position size
VMFSVolume showheartbeats
VMFSVolume webdav [host port]
VMFSVolume can be any mounted VMFS volume, or a volume reachable by SSH/SFTP.
Multiple VMFS extents can be specified using a comma-separated list.
Examples:
\\sambaserver\luns\bigdisk dir /Linux_VMs
ssh://root:passwd@linuxhost/mnt/vmfslun fileinfo /disks/SwapDisk-flat.vmdk
\\.\PhysicalDrive3,\\.\PhysicalDrive4 filecopy /Windows-Template/W2008.vmdk x:\recover\W2008.vmdk
Весь мануал тут описан… Попробуй получить данные о vmfs диске командой:
java -jar fvmfs.jar \\.\PhysicalDrive1 info
Подскажите, как непосредственно на хосте подключить VMFS для просмотра содержимого. Его надо примонтировать, ака я понимаю. А как?
1. Подключаете диск / LUN с данными.
2. Выполняете rescan.
3. Создаете новое VMFS хранилище. В мастере выбираете диск/lun с данными и подключаете его в режиме Keep the existing signature.
Но могут быть нююансы. Какая версия esxi и vmfs на диске? Они могут быть несовместимы между собой.
Статья хорошая не полная, нет информации как скопировать файлы которые мы пытались увидеть по вашей инструкции из под Linux. Допустим файлы я вижу но как их правильно скопировать я не знаю, может можно как то этот диск визуализировать, чтоб брать их перетягивать или копировать с диска на диск? Заранее спасибо.
Нецелесообразно настолько детально растолковывать простые вещи. Вам нужно скопировать целиком каталог с файлами ВМ (в самом простом случае).
В linux есть команда cp или воспользуйтесь для копирования файлов любым файловым менеджером (тем же mc).