Работа с дисками виртуальных машин VMware


Использование виртуальных машин стало привычным в наши дни. Возросшие мощности персональных компьютеров позволяют пользователям не только запускать одновременно множество различных приложений, но и поддерживать на одной физической машине несколько виртуальных машин в целях обучения, запуска программного обеспечения для различных платформ и создания виртуальных персональных сред. Платформы различных провайдеров технологий виртуализации предоставляют множество средств, повышающих эффективность работы с виртуальными машинами. При этом одним из самых больших достоинств виртуальных машин является их инкапсуляция на уровне файлов хостовой системы. Виртуальная машина, однажды установленная на одном из хостов, может быть перенесена на другую платформу, с другим количеством процессоров и другого производителя. Для этого, чаще всего, достаточно лишь скопировать папку с файлами виртуальной машины.

Самыми главными компонентами виртуальной машины являются файлы виртуальных дисков. В данный момент на рынке присутствует множество вендоров как платформ виртуализации, так и средств управления и обслуживания виртуальных машин. Однако не все поставщики систем виртуализации используют свои форматы виртуальных дисков. Например, не так давно появившаяся, но стремительно набирающая популярность платформа Virtual Iron, хотя и использует открытый гипервизор Xen для управления виртуальными машинами, но работает с виртуальными дисками формата VHD (Virtual Hard Drive) компании Microsoft. Компания VMware разработала свой формат виртуальных дисков — VMDK (Virtual Machine Disk), который, однако, может быть преобразован в другой формат утилитами сторонних производителей.

В данный момент возможности продуктов VMware Workstation позволяют осуществить импорт виртуальных машин и их дисков компании Microsoft, а также образов восстановления Symantec LiveState Recovery Files. Кроме того, VMware предлагает пользователям продукт VMware Converter, в возможности которого входит как конвертация виртуальных машин между различными платформами VMware и их версиями (в том числе VMware ESX Server), так и потоковая миграция с других платформ виртуализации. Сторонние производители также предлагают немало средств для V2V (Virtual-to-Virtual) миграции, например, продукт PowerConvert компании PlateSpin.

Общие сведения об использовании виртуальных и физических дисков виртуальными машинами

Одним из замечательных достоинств виртуальных машин является их простая переносимость на другое физическое оборудование путем обычного копирования папки с файлами виртуальной машины. Все настройки виртуальной машины хранятся в файлах с расширением .vmx в текстовом формате, а файлы виртуальных дисков (.vmdk) содержат в себе все необходимые данные виртуальной машины, либо ссылки на другие vmdk-файлы. Если вы используете виртуальную машину в хостовой системе Windows, вы можете скопировать папку с виртуальной машиной на Linux-хост и запустить ее там, на платформах VMware Workstation или VMware Server.

Диск виртуальной машины VMware Workstation и VMware Server ограничен 950-ю гигабайтами, и этого с лихвой хватит практически для любого варианта использования. Поскольку файлы дисков виртуальных машин являются достаточно большими, необходимо учитывать ограничения на максимальный размер файла в файловой системе хостовой ОС.

Основные типы дисков виртуальных машин VMware

С необходимостью выбора типа дисков пользователи сталкиваются сразу после начала создания виртуальной машины на платформе VMware Server или VMware Workstation. Во время работы мастера создания виртуальной машины пользователю предлагается на выбор несколько вариантов организации виртуальных дисков. Чтобы сконфигурировать виртуальный диск, на странице «Virtual Machine Configuration» мастера создания виртуальной машины выберите вариант «Custom». После того, как будет выбрана гостевая система, указан тип сетевого взаимодействия, определено количество виртуальных процессоров и объем памяти, выделенной виртуальной машине, предлагается выбрать тип эмулируемого контроллера дисков.

Выбор SCSI-адаптера для виртуальной машины
Выбор SCSI-адаптера для виртуальной машины

В этом диалоге пользователь может выбрать виртуальный SCSI-контроллер дисков, который будет осуществлять операции ввода-вывода в виртуальной машине. Контроллер IDE дисков ATAPI будет установлен в виртуальной машине в любом случае. Виртуальные SCSI-диски работают несколько быстрее, чем IDE. Однако стоит учитывать, что в то время как IDE-контроллеры работают в любой гостевой системе, SCSI-контроллеры будут работать только в той ОС, для которой доступны драйвера BusLogic или LSI Logic. Для некоторых поддерживаемых гостевых систем такие драйвера предоставляются, однако, например, если вы хотите использовать виртуальный SCSI-контроллер для 32-х битной ОС Windows XP, вам потребуется загрузить драйвер SCSI-адаптера с сайта LSI Logic. Его вы также можете скачать на сайте VMware по адресу: www.vmware.com/download.

По-умолчанию платформой виртуализации будет выбран адаптер, наиболее подходящий выбранной ранее гостевой системе. Для всех гостевых систем, за исключением Windows Vista, Windows Server 2003, Red Hat Enterprise Linux 3 и NetWare рекомендуется адаптер BusLogic. Для гостевой системы Windows Vista доступен только LSI Logic адаптер. Этот тип адаптера обладает более высоким быстродействием, нежели BusLogic, к тому же, он поддерживается платформой виртуализации VMware ESX Server, что следует учитывать, если вы планируете в дальнейшем миграцию виртуальных машин на эту платформу.

Выбор контроллера виртуальных дисков не зависит от того, какие диски используются на хостовой платформе. Файлы виртуальной машины могут находиться на любом носителе, включая флэш-карты или внешние USB-диски.

Далее пользователю предлагается выбрать один из трех вариантов: создать новый виртуальный диск, использовать уже имеющийся (например, от шаблона виртуальной машины — Virtual Appliance) или позволить виртуальной машине напрямую работать с физическим диском компьютера.

Варианты создания диска виртуальной машины
Варианты создания диска виртуальной машины

Самый простой вариант — создать новый виртуальный диск. Если вы хотите использовать уже сконфигурированный жесткий диск от другой виртуальной машины, выберите вторую опцию. После этого укажите путь к файлу с диском и нажмите «Finish». Работа с жестким диском напрямую рекомендуется только продвинутым пользователям, поскольку некоторые варианты использования могут привести к потере данных виртуальной машины. Об использовании физического диска напрямую будет рассказано позднее.

После того, как будет выбрана опция «Create a new virtual disk», пользователю предлагается выбрать тип диска SCSI или IDE.

Выбор типа диска
Выбор типа диска

Если вы не уверены, что у вас есть необходимые SCSI-драйверы, оставьте вариант IDE, выбранный по-умолчанию. Далее вам предлагается выбрать размер виртуального диска:

Настройка емкости виртуального диска
Настройка емкости виртуального диска

В VMware Workstation и VMware Server диск виртуальной машины не может быть более 950 ГБ. Величина, которую вы укажете в поле ввода для Disk Size, означает максимальный размер файла виртуального диска. Уделяйте особое внимание этому параметру, поскольку проблема расширения виртуального диска является одной из наиболее часто возникающих. Если вы планируете использовать растущие по мере наполнения диски (growable) указывайте достаточно большой размер (например, 100 ГБ). В то же время помните, что уменьшить размер виртуального диска значительно сложнее, чем увеличить.

Чекбокс «Allocate All Disk Space Now» позволяет создать preallocated или growable виртуальный диск. Если чекбокс отмечен, будет создан виртуальный диск типа preallocated, это означает, что файл виртуального диска сразу займет указанный размер, который не будет изменяться по мере работы с виртуальной машиной. Если чекбокс не отмечен, будет создан диск, растущий по мере наполнения (growable). Этот тип диска работает несколько медленнее, чем preallocated, поэтому их не рекомендуется использовать, если вы планируете устанавливать приложения, требовательные к производительности дисковых ресурсов (например, сервер баз данных).

Чекбокс «Split disk into 2 GB files» позволяет разделить виртуальный диск на несколько файлов, что, конечно, отрицательно скажется на быстродействии, но является единственным решением для файловых систем, не поддерживающих большие размеры файлов (например, FAT32). Не забывайте отметить его, чтобы не столкнуться с этой проблемой в старых файловых системах в самый неподходящий момент.

После того как вы нажмете «Finish», виртуальная машина с настроенным вами диском будет создана. Однако это еще не все типы виртуальных дисков в VMware Server и VMware Workstation. У виртуальной машины может быть несколько виртуальных дисков различного типа, каждый из которых может использоваться для разных случаев.

Для начала посмотрим свойства только что созданного нами виртуального диска. В меню «VM» выберите «Settings», затем перейдите в категорию «Hard Disk».

Свойства виртуального диска
Свойства виртуального диска

В группе «Capacity» представлена информация о текущем размере виртуального диска, его возможный максимальный размер и объем доступного места на логическом диске компьютера. На панели «Disk Information» указан тип виртуального диска: preallocated одним файлом.

У виртуальной машины в VMware Server или VMware Workstation может быть несколько виртуальных дисков. Чтобы добавить диск нажмите кнопку «Add», выберите в категории «Hardware types» элемент «Hard disk» и нажмите «Next». Далее вы увидите тот же мастер создания диска, что и при создании виртуальной машины. После того, как вы добавите диск, выделите его и нажмите кнопку «Advanced».

Расширенные настройки виртуального диска
Расширенные настройки виртуального диска

В этом окне, поставив галку «Independent», вы можете определить тип диска как независимый. Это означает, что на добавленный вами диск никак не будет влиять создание снимков состояния виртуальной машины («снапшотов»). Параметр «Virtual Device Node» позволяет подключить диск к виртуальному слоту SCSI или IDE-контроллера.

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

Также в окне «Advanced» вы можете выбрать тип независимого диска «Persistent» или «Nonpersistent». Первый тип предполагает поведение виртуального диска как обычного устройства хранения — все изменения диска сохраняются по мере работы с ним. Второй тип дисков используется при тестировании программного обеспечения, когда необходимо создание временных дисков для хранения информации на время работы с виртуальной машиной. После ее выключения содержимое такого типа дисков сбрасывается к начальному состоянию. Временные данные при запущенной виртуальной машине хранятся в файлах с расширением *.REDO_xxx. При выключении машины эти файлы удаляются.

Нужно также отметить, что при запущенной виртуальной машине VMware Server или VMware Workstation создаются lock-файлы для каждого из используемых виртуальных дисков с расширением *.lck во избежание доступа к ним из внешних приложений, использования их другими виртуальными машинами и нарушения целостности данных.

Использование физических дисков напрямую

Как уже было сказано, использование физического диска напрямую из виртуальной машины может повлечь за собой потерю данных, особенно в случае использования двух различных хостовых операционных систем на одном компьютере. Если вы все же хотите использовать жесткий диск напрямую, убедитесь, что на нем имеется достаточно свободного места под нужды виртуальной машины. При создании нового виртуального диска выберите вариант «Use a physical disk».

Выбор целевого физического диска для виртуальной машины
Выбор целевого физического диска для виртуальной машины

Затем в комбобоксе «Device» выберите физический диск и укажите вариант «Use individual partitions» если вы хотите выбрать разделы на этом диске. В этом случае на следующем шаге мастера добавления диска можно выбрать конкретные логические тома, где будут размещаться данные виртуальной машины:

Выбор разделов для размещения данных виртуальной машины
Выбор разделов для размещения данных виртуальной машины

Укажите необходимые разделы и нажмите «Next», после чего укажите имя виртуального диска и нажмите «Finish». Одни из наиболее оправданных вариантов использования физического диска напрямую — случаи, когда требуется создание диска емкостью более 950 ГБ (до двух терабайт), что, однако, пока не актуально для пользователей настольных персональных компьютеров.

Сводная таблица соответствия расширений файлов типам дисков виртуальных машин

В приведенной далее таблице перечислены типы виртуальных дисков и соответствующие им расширения файлов в папке с виртуальной машиной.

Расширение файла дискаОписание
*.vmdkОписание параметров виртуального диска (со ссылкой на файл с данными диска) или виртуальный диск типа growable одним файлом.
*0000000*.vmdkЭтот файл содержит изменения, произошедшие с момента создания снапшота
*s00*.vmdkЭто расширение используется для файлов данных растущих разделённых дисков (growable split disks)
*0000000*-s00*.vmdkЭтот файл содержит изменения, произошедшие с момента создания снапшота X для растущих разделённых дисков (growable split disks)
*f00*.vmdkЭто расширение используется для файлов данных не растущих разделённых дисков (preallocated split disks)
*0000000*-f00*.vmdkЭтот файл содержит изменения, произошедшие с момента создания снапшота X для не растущих разделённых дисков (preallocated split disks)
*flat.vmdkЭто расширение используется для файлов данных монолитных (не растущих) неразделённых дисков (preallocated monolithic disks)
*0000000*-flat.vmdkЭтот файл содержит изменения, произошедшие с момента создания снапшота X для монолитных (не растущих) неразделённых дисков (preallocated monolithic disks)
*.REDO_xxxЭтот файл содержит изменения диска в режиме незавимый-несохраняющийся (independent-nonpersistent disk)
*.lckИспользуется для блокировки файлов дисков виртуальной машины

Дефрагментация виртуальных дисков

Если требуется постоянная готовность виртуальных дисков и их высокое быстродействие, необходимо регулярно проводить их дефрагментацию. При этом данная процедура дисков производится в три этапа:

  • дефрагментация диска в гостевой системе
  • дефрагментация диска средствами VMware Server или VMware Workstation
  • дефрагментация дисков хостовой системы

Для первого и третьего пункта вы можете использовать встроенный дефрагментатор Windows или утилиты сторонних производителей. Для дефрагментации диска средствами VMware зайдите в меню «VM», далее «Settings», выберите диск на вкладке «Hardware» и выберите «Defragment» в VMware Workstation 5.5 и VMware Server 1.0 (в VMware Workstation 6 эта опция доступна по кнопке «Utilities»). Далее будет также показана возможность дефрагментации виртуальных дисков средствами утилиты vmware-vdiskmanager.

Использование утилиты VMware DiskMount

Компания VMware предлагает удобное средство использования виртуальных дисков в хостовой операционной системе как обычных логических томов. Утилита DiskMount позволяет монтировать диски виртуальных машин в хостовую операционную систему для удобной работы с содержимым диска. Диски виртуальных машин могут быть смонтированы только в операционных системах Windows 2000/XP/2003/Vista. Чтобы смонтировать виртуальный диск в хостовую систему, необходимо, чтобы виртуальная машина была выключена (монтировать диск виртуальной машины, находящейся в статусе «suspended», также нельзя) и хотя бы один раздел виртуального диска был отформатирован в файловой системе FAT или NTFS.

Если диск виртуальной машины имеет файлы снимков состояний («снапшотов»), то он может быть смонтирован, однако все изменения, произошедшие в нем, не сохранятся при откате к снапшоту. Утилита VMware DiskMount может быть загружена по адресу: http://www.vmware.com/download/eula/diskmount_ws_v55.html. В VMware Workstation 6 эта утилита с графическим интерфейсом доступна по кнопке «Utilities» на вкладке «Hardware» для виртуального диска. Синтаксис консольной утилиты vmware-mount выглядит следующим образом:

vmware-mount [параметры] [буква диска:] [\\путь\к\виртуальному диску]

Том, указанный в параметре [буква диска:], должен быть свободен в хостовой системе. Параметры утилиты Diskmount содержат:

  • /v:N Монтирует заданный том виртуального диска (по-умолчанию N=1)
  • /p Выводит доступные разделы (тома) на виртуальном диске
  • /d Размонтирование виртуального диска из хостовой системы
  • /f Принудительное размонтирование виртуального диска из хостовой системы в случае технической проблемы
  • /? Выводит информацию о доступных параметрах

Пример использования Diskmount:

vmware-mount h: “C:\My Virtual Machines\w2003std.vmdk”

Использование утилиты vmware-vdiskmanager

Компания VMware вместе с продуктами VMware Server и VMware Workstation поставляет также консольную утилиту для работы с виртуальными дисками vmware-vdiskmanager. Эта утилита является мощным средством преобразования виртуальных дисков, которое органично дополняет утилиту VMware Diskmount. Найти утилиту vdiskmanager можно в папке, куда установлены продукты VMware Server или VMware Workstation.

Применять vmware-vdiskmanager могут не только конечные пользователи, преобразующие виртуальные диски к требуемому формату, но и сторонние разработчики, пишущие различные утилиты для работы с виртуальными машинами. Утилита vdiskmanager используется в соответствии со следующим синтаксисом:

vmware-vdiskmanager.exe <параметры> <путь к диску> | <имя тома>:

Описание параметров утилиты vdiskmanager:

ПараметрДействие
Основные параметры
-cСоздание диска (необходимо указать дополнительные параметры)
-dДефрагментация виртуального диска
-kСжатие виртуального диска (уменьшение объема свободного места)
-n <исходный диск>Переименование диска (в параметре <путь к диску> необходимо указать целевой диск)
-pПодготовка смонтированного диска с указанным параметром <имя тома> к сжатию
-qОтключение логов
-r <исходный диск>Конвертация диска (необходимо указать тип целевого диска)
-x <емкость>Расширение диска до требуемой емкости
Дополнительные опции создания виртуальных дисков и их конвертации
-a <тип адаптера>Используется только с ключом -c.
Указывает тип адаптера (ide, buslogic, lsilogic)
-s <Емкость>Указывает емкость виртуального диска. Емкость может быть определена в секторах, килобайтах, мегабайтах, гигабайтах. Диапазоны допустимых значений:
Адаптер ide : [100.0Mb, 950.0Gb]
Адаптер scsi: [100.0Mb, 950.0Gb]
-t <тип диска>Указывает тип диска (от 0 до 3).
Типы дисков:
0: Растущий по мере наполнения (growable), один файл.
1: Растущий по мере наполнения, разделенный на файлы по 2 ГБ.
2: Монолитный диск (preallocated), один файл.
3: Монолитный диск (preallocated), разделенный на файлы по 2 ГБ.

Примеры использования утилиты vdiskmanager:

  1. vmware-vdiskmanager.exe -c -s 850Mb -a ide -t 0 myIdeDisk.vmdk
    Создание виртуального диска (-c) емкостью 850 МБ (-s 850Mb), с адаптером IDE (-a ide), типом growable одним файлом (-t 0) и именем myIdeDisk.vmdk.
  2. vmware-vdiskmanager.exe -d myDisk.vmdk
    Дефрагментация виртуального диска myDisk.vmdk.
  3. vmware-vdiskmanager.exe -r sourceDisk.vmdk -t 0 destinationDisk.vmdk
    Конвертация диска (-r) с именем sourceDisk.vmdk в тип growable одним файлом (-t 0) с именем destinationDisk.vmdk
  4. vmware-vdiskmanager.exe -x 36Gb myDisk.vmdk
    Расширение диска myDisk.vmdk до емкости 36 ГБ.
  5. vmware-vdiskmanager.exe -n sourceName.vmdk destinationName.vmdk
    Переименование диска с именем sourceName.vmdk в destinationName.vmdk
  6. vmware-vdiskmanager.exe -k myDisk.vmdk
    Сжатие виртуального диска с именем myDisk.vmdk
  7. vmware-vdiskmanager.exe -p m:
    Подготовка диска M хостовой системы к сжатию (виртуальный диск должен быть сначала смонтирован в хостовую систему утилитой VMware Diskmount).

Самым частым вариантом использования утилиты vdiskmanager является расширение виртуальных дисков до требуемого размера. Однако задача расширения виртуального диска является не такой тривиальной, какой кажется на первый взгляд. Если необходимо расширить независимый виртуальный диск, то его расширение сводится к двум операциям: использованию vmware-vdiskmanager для расширения диска и расширению раздела на неразмеченную область в гостевой системе. Однако для дисков, участвующих в создании мгновенных снимках системы («снапшотов»), проблема дополняется и устранением конфликтов между снапшотами.

Рассмотрим пример расширения независимого диска. Чтобы расширить его до 10 ГБ используйте vmware-vdiskmanager следующим образом:

vmware-vdiskmanager.exe -x 10Gb <имя диска>.vmdk

В результате диск будет расширен до емкости в 10 ГБ, однако размер раздела в гостевой ОС останется прежним. Для расширения раздела в гостевой системе Windows необходимо использовать встроенную утилиту diskpart, предназначенную для работы с разделами дисков. Нажмите «Пуск», затем «Выполнить» и введите «diskpart». Откроется окно утилиты, где вам необходимо сначала просмотреть статусы доступных дисков и разделов, вводя команды list disk и list volume:

DISKPART> list disk
  Disk ###  Status      Size     Free     Dyn  Gpt
  --------  ----------  -------  -------  ---  ---
  Disk 0    Online      4095 MB      0 B
  Disk 1    Online        10 GB  6150 MB

DISKPART> list volume
  Volume ###  Ltr  Label        Fs     Type        Size     Status     Info
  ----------  ---  -----------  -----  ----------  -------  ---------  --------
  Volume 0     D   WinLite      CDFS   CD-ROM       506 MB
  Volume 1     C                NTFS   Partition   4087 MB  Healthy    System
  Volume 2     E                NTFS   Partition   4087 MB  Healthy

Выберите расширенный недавно диск (E) и введите команду extend, чтобы расширить раздел на всё доступное место на диске:

DISKPART> select volume=2
Volume 2 is the selected volume.
DISKPART> extend
DiskPart successfully extended the volume.

После этого вы можете убедиться в том, что диск расширен:


DISKPART> list volume
  Volume ###  Ltr  Label        Fs     Type        Size     Status     Info
  ----------  ---  -----------  -----  ----------  -------  ---------  --------
  Volume 0     D   WinLite      CDFS   CD-ROM       506 MB
  Volume 1     C                NTFS   Partition   4087 MB  Healthy    System
* Volume 2     E                NTFS   Partition     10 GB  Healthy

Стоит отметить, что эти действия не применимы к динамическим дискам Windows, поскольку они не могут быть расширены командой extend.

Заключение

В отношении возможностей работы с виртуальными дисками платформы VMware Workstation и VMware Server являются самыми продвинутыми из присутствующих в данный момент на рынке. Множество типов, режимы SCSI и IDE эмуляции и большой набор средств для обслуживания и конвертации виртуальных дисков, позволяют весьма гибко настраивать параметры виртуальных машин и управлять ими. Встроенные возможности импорта виртуальных дисков в формате VHD компании Microsoft позволяют просто осуществить миграцию с платформ Virtual PC и Virtual Server, без применения программного обеспечения других производителей. Консольное приложение vmware-vdiskmanager открывает большие возможности не только для обычных пользователей, но и для разработчиков ПО под платформы виртуализации. Безусловно, компания VMware продолжит совершенствование своих продуктов, в том числе и в отношении виртуальных дисков. Будем надеяться, что планируемая к выходу осенью бесплатная платформа VMware Server 2.0 (которую обещают представить на конференции VMworld 2007 в сентябре), будет обладать еще большим набором возможностей по работе с виртуальными дисками и их обслуживанию.






Дополнительно

Нашли ошибку на сайте? Выделите текст и нажмите Shift+Enter

Код для блога бета

Выделите HTML-код в поле, скопируйте его в буфер и вставьте в свой блог.