Введение
Наш любимый ESX(i) использует файловую систему VMFS, для размещения на ней виртуальных машин.
Все хорошо, кроме одного - для нее не существует обслуживающих утилит. Никаких undelete, unformat и т.п. Мораль - не делать бекапы еще более опасно, чем обычно.
Вот один из примеров проблемы и шаманства с решением - Пропал VMFS раздел - что делать?
Но проблемы бывают разные. Не очень давно по почте ко мне обращались со схожими вопросами сразу несколько человек: ESX выключился (некорректно, обычно по пропаже питания), после включения VMFS на месте, а вот файлы виртуальных машин заблокированы. Притом заблокированы так, что не то что включить - скопировать(!) не дают.
Перебрав все известные мне способы попиннать по колесам, я развел руками и посоветовал обратиться в поддержку.
В одном случае обратились - и проблема быстро была решена, путем внесения правок в структуру файловой системы.
(кстати, для тех кто не имеет привычки обращаться в поддержку - у VMware первая линия стала русскоязычной, а продукты VMware без поддержки не продаются - так что обращаемся резко, решительно в случае странных проблем.)
А во втором случае поддержки не было, и нужда заставила найти выход :-)
По результатам изысканий и успешного выколупования данных со мной поделились ранее мне незнакомой утилитой vmfs-tools из состава лайв сд. Эта утилита позволяет подмонтировать раздел VMFS к другой операционной системе.
Запустив ESX сервер с этого live cd данные с VMFS тома удалось вытянуть.
Монтирование VMFS из под Linux
Разумеется, мне стало интересно, и я поигрался с этой утилитой.
На локальном диске тестового ESX располагается очень нужная мне виртуальная машина (рис.1).
Скачал ISO этого live cd, загрузил с него свой тестовый ESX, и вот что увидел (рис.2):
Так как видеть только командную строку лично мне достаточно грустно - я порадовался :-)
Итак, моя задача - получить доступ к разделу VMFS. Посмотрим информацию по разделам соответствующей утилитой - она единственная в местном трее (рис. 3)
Следующий шаг - подмонтировать этот раздел.Создадим каталог - точку монтирования, у меня это будет каталог vmfs в корне (рис. 4).
Я не большой любитель командной строки, поэтому воспользовался Midnight Commander.
Но к командной строке обратиться все таки придется - откроем терминал и воспользуемся командой "vmfs":
Здесь выполнена данная команда, первым параметром на вход ей передан путь к диску с VMFS (здесь это локальный диск сервера), вторым - точка монтирования (ранее мною созданная папка vmfs в корне диска).
И - вуаля (рис.5).
Сравните правую часть рис.5 с рис.1.
Монтирование осуществляется в read-only режиме - для вытаскивания данных более чем достаточно.
Недолгое гугление нашло мне еще одну ссылку по использованию этой утилиты - из под Ubuntu - Using linux vmfs-tools package to access virtual machines. Там немного другие названия и использование - то ли разные версии с описываемым live cd, то ли что.
Однако на этом мои опыты не закончились.
Монтирование VMFS из под Windows, в том числе
Я вспомнил, что ранее встречал упоминание о каком-то java-драйвере под vmfs. Года три назад я даже пробовал его в деле - но не заработало. Решил попробовать еще раз.
Я нашел его тут - Open Source VMFS Driver.
Эта штука позволяет получить доступ к разделу VMFS с сервера Windows/Linux/Mac OS, где достаточно установленной Java.
Вооружившись Microsoft iSCSI Initiator, я подключился со своего ноутбука к iSCSI LUN с VMFS. Таким образом, в Дистпетчере Дисков я увидел еще один диск (рис.6).
Следующий шаг - загрузить непосредственно драйвер (и поставить Java если ее еще нет).
После этих действий проверяем работоспособность утилиты получением хелпа по ней:
Таким образом, надо выполнить команду
передав ей первым параметром путь к диску с vmfs, а вторым - действие.
Я путь ей буду передавать как путь к диску Windows.
Для начала - получим информацию о разделе:
Вот когда это у меня получилось - я обрадовался. Вау, работает! :-)
Затем получим список содержимого:
Все так и есть - если заглянуть из интерфейса vSphere, увидим все то же самое (рис. 7).
Следующий шаг - получение доступа к данным. Не вопрос:
Здесь не совсем монтирование раздела - здесь команда выгрузки конкретного файла.
Получаем наши vmdk(рис.8)
Насчет "бекап удался" я слегка соврал - на середине процесса копирование оборвалось - но я не стал разбираться пока, разовая это проблема или нет.
Напоследок расшарим подмонтированный VMFS:
К сожалению, подключить к Windows как сетевой диск мне не удалось, хотя в хелпе написано что можно; а вот браузером зашлось нормально(рис.9,10).
В общем, за сегодня я значительно прокачал свои навыки неклассических доступов к разделам VMFS.
Мне будет интересно ознакомиться с вашим опытом, буде таковой воспоследствует.
Наш любимый ESX(i) использует файловую систему VMFS, для размещения на ней виртуальных машин.
Все хорошо, кроме одного - для нее не существует обслуживающих утилит. Никаких undelete, unformat и т.п. Мораль - не делать бекапы еще более опасно, чем обычно.
Вот один из примеров проблемы и шаманства с решением - Пропал VMFS раздел - что делать?
Но проблемы бывают разные. Не очень давно по почте ко мне обращались со схожими вопросами сразу несколько человек: ESX выключился (некорректно, обычно по пропаже питания), после включения VMFS на месте, а вот файлы виртуальных машин заблокированы. Притом заблокированы так, что не то что включить - скопировать(!) не дают.
Перебрав все известные мне способы попиннать по колесам, я развел руками и посоветовал обратиться в поддержку.
В одном случае обратились - и проблема быстро была решена, путем внесения правок в структуру файловой системы.
(кстати, для тех кто не имеет привычки обращаться в поддержку - у VMware первая линия стала русскоязычной, а продукты VMware без поддержки не продаются - так что обращаемся резко, решительно в случае странных проблем.)
А во втором случае поддержки не было, и нужда заставила найти выход :-)
По результатам изысканий и успешного выколупования данных со мной поделились ранее мне незнакомой утилитой vmfs-tools из состава лайв сд. Эта утилита позволяет подмонтировать раздел VMFS к другой операционной системе.
Запустив ESX сервер с этого live cd данные с VMFS тома удалось вытянуть.
Монтирование VMFS из под Linux
Разумеется, мне стало интересно, и я поигрался с этой утилитой.
На локальном диске тестового ESX располагается очень нужная мне виртуальная машина (рис.1).
Рис.1. ВМ на локальном диске ESX |
Скачал ISO этого live cd, загрузил с него свой тестовый ESX, и вот что увидел (рис.2):
Рис.2. Свежезагрузившийся Live CD |
Итак, моя задача - получить доступ к разделу VMFS. Посмотрим информацию по разделам соответствующей утилитой - она единственная в местном трее (рис. 3)
Рис.3. Просмотр информации об имеющихся разделах |
Следующий шаг - подмонтировать этот раздел.Создадим каталог - точку монтирования, у меня это будет каталог vmfs в корне (рис. 4).
Рис.4. Раздел vmfs создан (слева), и пуст(справа) |
Но к командной строке обратиться все таки придется - откроем терминал и воспользуемся командой "vmfs":
root@PartedMagic:~# vmfs /dev/sda5 /vmfs |
Здесь выполнена данная команда, первым параметром на вход ей передан путь к диску с VMFS (здесь это локальный диск сервера), вторым - точка монтирования (ранее мною созданная папка vmfs в корне диска).
И - вуаля (рис.5).
Рис.5. Данные с тома VMFS доступны из под Linux |
Монтирование осуществляется в read-only режиме - для вытаскивания данных более чем достаточно.
Недолгое гугление нашло мне еще одну ссылку по использованию этой утилиты - из под Ubuntu - Using linux vmfs-tools package to access virtual machines. Там немного другие названия и использование - то ли разные версии с описываемым live cd, то ли что.
Однако на этом мои опыты не закончились.
Монтирование VMFS из под Windows, в том числе
Я вспомнил, что ранее встречал упоминание о каком-то java-драйвере под vmfs. Года три назад я даже пробовал его в деле - но не заработало. Решил попробовать еще раз.
Я нашел его тут - Open Source VMFS Driver.
Эта штука позволяет получить доступ к разделу VMFS с сервера Windows/Linux/Mac OS, где достаточно установленной Java.
Вооружившись Microsoft iSCSI Initiator, я подключился со своего ноутбука к iSCSI LUN с VMFS. Таким образом, в Дистпетчере Дисков я увидел еще один диск (рис.6).
Рис.6. Диск с VMFS, подмонтированный к Windows XP |
Следующий шаг - загрузить непосредственно драйвер (и поставить Java если ее еще нет).
После этих действий проверяем работоспособность утилиты получением хелпа по ней:
C:\Program Files\Java\jre6\bin>;java -jar D:\vmfs_r95\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 C:\Program Files\Java\jre6\bin>; |
Таким образом, надо выполнить команду
java -jar D:\vmfs_r95\fvmfs.jar |
Я путь ей буду передавать как путь к диску Windows.
Для начала - получим информацию о разделе:
C:\Program Files\Java\jre6\bin>java -jar D:\vmfs_r95\fvmfs.jar \\.\PhysicalDrive1 info VMFSTools (C) by fluid Operations (v0.9.8.18 r95 / 2010-01-25_15-57-35) http://www.fluidops.com VMFS label = iSCSI_LUN_1_main VMFS creation date = Fri Jul 24 23:08:51 MSD 2009 VMFS capacity = 14.50 GB VMFS UUID = 4ba75d25-3be4b8df-c372-000c29e78205 VMFS block size = 1.00 MB VMFS version = 3.33 VMFS # of FD/PB/SB = 30720 / 14600 / 3968 VMFS volume type = VMFS volume UUID = 4ba75d25-28b9a16d-2f81-000c29e78205 VMFS volume size = 14.50 GB VMFS volume ver = 4 C:\Program Files\Java\jre6\bin> |
Вот когда это у меня получилось - я обрадовался. Вау, работает! :-)
Затем получим список содержимого:
C:\Program Files\Java\jre6\bin>java -jar D:\vmfs_r95\fvmfs.jar \\.\PhysicalDrive1 dir / VMFSTools (C) by fluid Operations (v0.9.8.18 r95 / 2010-01-25_15-57-35) http://www.fluidops.com 10/20/10 05:19:19 (dir) /.dvsData 07/24/09 23:08:51 163а840 /.fbb.sf 07/24/09 23:08:51 63а143а936 /.fdc.sf 07/24/09 23:08:51 60а817а408 /.pbc.sf 07/24/09 23:08:52 260а374а528 /.sbc.sf 07/24/09 23:08:52 4а194а304 /.vh.sf 02/02/11 19:27:13 (dir) /File_Server_Win2008_1 10/01/10 13:18:34 (dir) /main_win2003_template C:\Program Files\Java\jre6\bin> |
Все так и есть - если заглянуть из интерфейса vSphere, увидим все то же самое (рис. 7).
Рис.7. Просмотр содержимого раздела VMFS средствами vSphere |
Следующий шаг - получение доступа к данным. Не вопрос:
C:\Program Files\Java\jre6\bin>java -jar D:\vmfs_r95\fvmfs.jar \\.\PhysicalDrive1 filecopy /File_Server_Win2008_1/File_Server_Win2008.vmdk VMFSTools (C) by fluid Operations (v0.9.8.18 r95 / 2010-01-25_15-57-35) http://www.fluidops.com Size = 626.00 Bytes Copied 626 bytes in 0s throughput was 39 KB/s C:\Program Files\Java\jre6\bin>java -jar D:\vmfs_r95\fvmfs.jar \\.\PhysicalDrive1 filecopy /File_Server_Win2008_1/File_Server_Win2008-flat.vmdk VMFSTools (C) by fluid Operations (v0.9.8.18 r95 / 2010-01-25_15-57-35) http://www.fluidops.com Size = 10.00 GB Copying file -- bytes left=10663493632 throughput=29393 KB/s ETA=362s ... тут типа прогресс бар, но я сделал монтаж ...
C:\Program Files\Java\jre6\bin> |
Здесь не совсем монтирование раздела - здесь команда выгрузки конкретного файла.
Получаем наши vmdk(рис.8)
Рис.8. Бекап удался |
Напоследок расшарим подмонтированный VMFS:
C:\Program Files\Java\jre6\bin>java -jar D:\vmfs_r95\fvmfs.jar \\.\PhysicalDrive1 webdav VMFSTools (C) by fluid Operations (v0.9.8.18 r95 / 2010-01-25_15-57-35) http://www.fluidops.com *** Serving WebDAV/HTTP at http://localhost:50080/vmfs log4j:WARN No appenders could be found for logger (org.mortbay.log). log4j:WARN Please initialize the log4j system properly. |
К сожалению, подключить к Windows как сетевой диск мне не удалось, хотя в хелпе написано что можно; а вот браузером зашлось нормально(рис.9,10).
Рис.9. Просмотр содержимого vmfs раздела через браузер, корень раздела |
Рис.10. Просмотр содержимого vmfs раздела через браузер, каталог ВМ |
Мне будет интересно ознакомиться с вашим опытом, буде таковой воспоследствует.
Респект Вам - будем пробовать траблшутить...
ОтветитьУдалитьИнтересно будет попробовать на "ушатанном" разделе VMFS - насколько реально снять с него данные этими тулзами. Ну и заодно посмотреть - насколько применимы эти инструменты в случае внешней хранилки а-ля ОпенФайлер/ФриНАС (понятно, что тяжёлый сторадж энтерпрайзного класса с такого "ливчика" не загрузишь).
* * *
Буквально днями зацепил где-то инфу про что-то подобное от sanbarrow с их проектом МОА. Но до праздника толком глянуть не успел (только вкладки пооткрывал соответствующие на работе). Не доводилось ли Вам пересекаться с помянутым проектом?
С уважением,
Umlyaut.
с MOA немножко игрался в ноябре 2008 :)
ОтветитьУдалитьhttp://www.vm4.ru/2008/11/moa-cold-clone-boot-cd.html
Угу, помню сию заметку. Только тогда оно Вас, вроде, интересовало как конвертер... :)
ОтветитьУдалитьС уважением,
Umlyaut.
P.S. Постеснялся в первом комменте заметить, но теперь всё же скажу - не "дабы (сиречь - "чтобы") таковой воспоследует", а "буде таковой воспоследует".
"Понимание - функция терминологии!"(с)моё...
очень познавательно, но хотелось бы надеяться, что пользовать не доведется:) дерево->тук-тук-тук
ОтветитьУдалитьБыл недавно опыт как раз с этим java-драйвером под виндой + MS iScsi Initiator.
ОтветитьУдалитьОчень выручило, вытащили виртуальные машины. Правда долго лопатило, но очень помогло.
поигрался с MOA - в варианте WinPE не увидел ничего связанного с vmfs.
ОтветитьУдалитьmichigan>поигрался с MOA - в варианте WinPE не увидел ничего связанного с vmfs.
ОтветитьУдалитьЯ, собственно, плясал отсюда:
http://communities.vmware.com/thread/160381?start=15&tstart=180
Мне показалось, что там используется именно vmfs-tools
С уважением,
Umlyaut.
там как раз java драйвер, насколько я могу судить.
ОтветитьУдалитьМиша, а "стандартный" vcb-mount для этих целей не подойдет под Windows?
ОтветитьУдалитьПод Linux есть более-менее стандратные средства доступа
http://markelov.blogspot.com/2010/01/esx-libguestfs.html
bond_jimme
да, с vcb очень похож функционал. про VCB mount я даже написать хотел, но потом поленился.
ОтветитьУдалитьпро второе я читал - и даже откомментировал там :) - но с моим знанием линуксов тамошняя инструкция не возбудила попробовать.
vcb больше похож на java-драйвер - но тут могут быть нюансы что он работает через API, а двум описанным вариантам достаточно просто видеть диск. для recovery это существенная разница.
ОтветитьУдалитьну и первая штука - готовый live cd, опять же если припрет им проще воспользоваться.
А этим не пробовали?
ОтветитьУдалитьhttp://kb.vmware.com/selfservice/microsites/search.do?cmd=displayKC&docType=kc&externalId=1030778&sliceId=1&docTypeID=DT_KB_1_1&dialogID=160527061&stateId=0%200%20160525391
отличная идея!!
ОтветитьУдалитькогда то помнил от такой возможности, но забыл :(
причем шанс, получить консинстентные данные думаю выше, чем у самописных аналогов :)
ОтветитьУдалитьили ниже - в случае проблем именно на VMFS через нормально работающий ESX доступ к данным был невозможен - это то с какими проблемами ко мне обратились буквально неделю назад.
ОтветитьУдалитьа vmfs-tools данные вытащил.
и это возможно.
ОтветитьУдалитьчем больше методов будем знать тем лучше!
был случай восстановления ФС удаленной разделом VMFS. Метод описанный вами не помог:
ОтветитьУдалитьhttp://www.vm4.ru/2010/02/vmfs-recovery-vmfs.html
а что помогло?
ОтветитьУдалитьоказалось, при создание VMFS раздела, гипервизор меняет индификатор ФС, и не меняет MBR если он был создан. Оказалось раздел выделеныый под ESX до этого использовался в Windows системе и был отформатирован в NTFS. И смещение нужно было задавать не 128 а 63. А вот как определили что до этого там был NTFS это другая история :)
ОтветитьУдалить