Переезд в облако

1401

Старое или новое

Создать виртуальную машину легко, особенно в таком удобном облаке самообслуживания как 1cloud. Его панель управления позволяет сделать это за пару щелчков.

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

Собственно, этот путь — начать работу с чистого листа — наиболее правильный. Но если программного обеспечения требуется много, на его установку может уйти немало времени.

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

На первый взгляд эта задача может показаться нереальной или сложной. Но если посмотреть в корень…

Что есть виртуальная машина?

Минимально, это — всего лишь два обычных файла. В одном хранится описание «аппаратной» части машины, её «железной» конфигурации. А второй является диском этой машины, предназначенным, в первую очередь, для размещения операционной системы.

Который из них главнее, сказать трудно.

В инфраструктурном плане, конечно, важнее конфигурационный файл. Но в нём нет ничего уникального. Его легко воспроизвести, если оригинал был утрачен.

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

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

Как обычный «железный» диск можно отключить от одного компьютера и подключить к другому, так и виртуальный можно перенести с одного компьютера на другой.

При попытке запустить операционную систему или некоторые коммерческие продукты с перенесённого диска на другом компьютере могут возникнуть трудности, связанные с лицензионной привязкой, но они преодолимы.

Возникает идея: нельзя ли преобразовать «железный» диск в файл-образ, а затем подключить его к виртуальной машине. — Короткий ответ: да, можно. Но возникнут нюансы, о которых будет сказано далее.

Кого-то может заинтересовать обратный перенос: из виртуального состояния в железное, но в своей практике совершивших такой переход мы пока не встречали. — Слишком хорошо в облаке! :-)

А вот перенос диска с одной виртуальной машины на другую — задача нередкая.

Преобразование

Оно заключается в том, чтобы всё содержимое диска переместить в соответствующий файл-образ.

При решении задачи получения этого файла можно столкнуться с разными состояниями диска:

  1. отключен от компьютера;
  2. находится в компьютере и не является системным;
  3. находится в компьютере и является системным;
  4. находится в компьютере, который нельзя выключить, и является системным.

Первый случай можно посчитать вторым, потому для получения образа всё равно потребуется подключить дисковое устройство к какому-нибудь компьютеру.

Второй — является наиболее типовым и относительно простым.

В третьем — принципиально важно, можно компьютер выключать и перезагружать, в том числе, с другого системного носителя (компакт-диск или флэш-диск).

В последнем случае нужно подковать коня на скаку.

И во всех случаях потребуются специальные утилиты.

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

Форматы

Вопрос в том, в каком формате записывать образ.

Как мы уже сказали, образ диска — это его посекторная и даже побайтная копия. В общем случае, она будет информационно избыточной. Хотя бы потому что в неё будут записаны пустые, не занятые файлами, области.

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

ФорматПлатформа виртуализацииРазработчикПримечание
.vhdWindows Virtual PCMicrosoftVirtual Hard Disk
.vhdxMicrosoft Hyper-V
.vmdkVMware vSphere / ESXVMwareVirtual Machine Disk
.vdiOracle VM VirtualBoxOracleVirtualBox Disk Image
.qedQEMUСвободный и открытый продуктQEMU (Quick Emulator), QEMU Disk, QEMU copy-on-write
.qcow
.qcow2

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

При обсуждении образов дисков для виртуальных машин иногда упоминают ISO-образы. Следует понимать, что они относятся не к обычным компьютерным дискам, а к компакт-дискам (CD, DVD). Хотя на компакт-диск можно записать любые файлы, чаще всего их используют для распространения дистрибутивов программных продуктов.

Между прочим, посмотреть содержимое образов дисков можно с помощью некоторых программ-архиваторов: WinRAR (ISO), 7-Zip (ISO, VDI, VHD, VMDK), PowerArchiver (ISO, VHD), …

У виртуальных дисков могут быть дополнительные опции, среди которых наиболее существенными являются две: «фиксированный» или «динамический».

Фиксированный виртуальный диск — это файл размером, полностью соответствующим номинальному размеру диска. Никакого механизма сжатия данных в нём не предусмотрено. Зато он самый простой, быстрый и максимально совместимый.

Динамический — устроен так, что в нём хранятся только значимые данные. Например, сведения о секторах или страницах, в которых ничего не записано, в динамическом диске не содержатся. В результате, файл динамического диска получается меньшего размера, чем файл фиксированного виртуального.

Файловая система виртуального диска может быть произвольной, так же как у аппаратного.

В контексте виртуальных дисков упоминают форматы OVF и OVA. Но они были разработаны не для образов дисков, а для хранения данных виртуальной машины в целом. OVF (Open Virtualization Format) — это не файл, а стандарт для комплекта файлов, соответствующих одному или нескольким экземплярам виртуальных машин.

Пример OVF-пакета:

  • package.ovf
  • package.mf
  • resources.xml
  • vmdisk1.vmdk
  • vmdisk2.vmdk
  • resource.iso,

где package.ovf — описание пакета, его метаданные; package.mf — вложенный OVF-пакет; resources.xml — описание ресурсов виртуальной машины, её «аппаратной части»; vmdisk1.vmdk и vmdisk2.vmdk — файлы с виртуальными дисками; resource.iso — образ компакт-диска, который должен быть подключен к виртуальной машине.

Со спецификацией OVF можно ознакомиться здесь.

А вот OVA (Open Virtual Appliance) файлом является. Это — TAR-архив OVF-комплекта.

OVF (Open Virtualization Format) — стандарт, разработанный Distributed Management Task Force, Inc. — организацией, созданной в 1992 году для разработки стандартов в области компьютерных и сетевых технологий, в том числе, виртуализации.

Утилиты

Средства для создания виртуальных дисков появились даже в настольных версиях Windows.


Управление компьютером


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

Нам же интересно получение виртуальной копии уже наполненного и используемого диска. Для выполнения этой операции имеется ряд инструментов.

Disk2vhd

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

Образ диска можно записать даже на сам клонируемый диск. Конечно, если на нём достаточно свободного места.

Дистрибутив Disk2vhd находится здесь.

VMware vCenter Converter

Мощный бесплатный инструмент, разработанный компанией VMware, для клонирования физических и виртуальных серверов. Он также позволяет сделать копию диска работающего компьютера, причём не только с операционной системой Windows, но и с Linux.

Дистрибутив vCenter Converter находится здесь.

Clonezilla

Свободно распространяемая программа для получения образов дисков, их клонирования и восстановления из резервных копий.

Имеется в двух версиях: для отдельной машины и для сервера. В первом случае утилиту можно установить либо непосредственно на диск, образ которого требуется изготовить; либо съёмное на устройство, с которого возможна загрузка операционной системы (CD, DVD, флэш).

Образ может быть зашифрован.

Дистрибутив Clonezilla находится здесь.

qemu-img

В состав большинства Unix/Linux-систем входит утилита dd, которая создаёт побайтный образ диска (.bin). Этот образ не может быть напрямую использован в качестве виртуального диска, но его можно преобразовать в диск.

Для конвертации образа в виртуальный диск можно использовать, например, утилиту qemu-img, входящую в состав системы эмуляции qemu.

Таким способом можно получить виртуальные диски следующих форматов: qed, qcow, qcow2, vhd, vhdx, vmdk, vdi.

Утилиты для изготовления побайтного образа диска есть и для Windows-машин. Например: Disk Editor, HDD Raw Copy Tool, Acronis True Image.

Заключение

Перемещение серверов в облако не должно сдерживаться опасениями того, что придётся устанавливать заново всё используемое программное обеспечение. Имеются средства и методы миграции «железных» серверов в виртуальную облачную среду.



P. S. Ещё немного интересных статей: