Переход на виртуальную среду Linux при помощи Clonezilla

Переход на виртуальную среду Linux при помощи Clonezilla

Как преобразовать физический сервер в виртуальный при помощи утилиты с открытым исходным кодом Clonezilla Live
Благодаря двум идеям, движущим сегодня эволюцию центров обработки данных – экономии средств и снижению потребления электроэнергии, - виртуализация серверов стала популярной темой в сфере ИТ, и многие разработчики программ и оборудования предлагают собственные решения в этой области. У виртуализации много преимуществ: она позволяет легко переносить виртуальную машину с одного сервера на другой и позволяет создать клонированные образы, например, для разработки и тестирования программ.
Процесс консолидации серверов при помощи виртуализации зависит от начальной позиции:
  • Если вы создаете систему с нуля, вы, вероятно, будете внедрять виртуализацию с самого начала.
  • Если у вас уже имеется физическая система, вы, вероятно, захотите перенести ее из физической среды в виртуальную.
В этой статье мы поговорим о втором варианте - миграции из физической среды в виртуальную (physical-to-virtual migration, P2V). Существует несколько методов, ручных и автоматических, для упрощения процесса миграции P2V. Я расскажу об этих методах и покажу, как преобразовать физический сервер в виртуальную машину при помощи программы клонирования Clonezilla Live.
При помощи Clonezilla Live вначале создается системный образ физического сервера, а затем при помощи загрузочного CD этот образ разворачивается на жесткий диск виртуальной машины. Это делается просто и быстро и может пригодиться разработчикам ПО, системным администраторам и инженерам службы поддержки, которые хотят работать с копией системы, не изменяя оригинал (а также избежать возможных проблем с оборудованием).
Примечание: существует широкий спектр оборудования и программного обеспечения физических и виртуальных систем, поэтому методы, описанные в этой статье, следует рассматривать как общее руководство. Вам, возможно, придется делать некоторые вещи иначе, чтобы приспособить их к своему процессу миграции.

Введение в Clonezilla Live

Clonezilla представляет собой программу клонирования с открытым исходным кодом (лицензия GPL), подобную Norton Ghost, которую можно использовать для клонирования отдельных разделов или диска целиком. Существует две редакции продукта: Clonezilla SE (server edition) и Clonezilla Live. Clonezilla SE предназначен для резервного копирования и восстановления множества серверов в сети. Clonezilla Live представляет собой облегченную версию для клонирования отдельных компьютеров.
Версия Clonezilla Live сочетает в себе Debian Live и Clonezilla, она обладает следующими функциями и преимуществами:
  • Клонируются только использующиеся блоки жесткого диска.
  • Поддерживается множество файловых систем и LVM, в том числе ext2, ext3, xfs, jfs и LVM2 в GNU/Linux, FAT, NTFS в Microsoft Windows и HFS+ в Mac OS.
  • В отличие от Clonezilla SE не требуется сервер удаленной бездисковой загрузки Linux (Diskless Remote Boot in Linux, DRBL).
  • Поддерживается загрузка с CD/DVD, USB-дисков и флэш-накопителей, а также по сети с использованием PXE.
  • Имеется возможность настройки процесса загрузки и восстановления.
Для клонирования разделов или дисков Clonezilla Live использует известные утилиты Partition Image, ntfsclone, partclone и dd. Для неподдерживаемых файловых систем Clonezilla выполняет копирование всех блоков подряд (используемых и неиспользуемых) c помощью dd.

Средства виртуализации и миграции системы

При миграции физического сервера на виртуальную машину можно столкнуться с такими же ограничениями, как и при переносе системы с одного физического сервера на другой. Например, невозможно перенести 64-разрядную систему на 32-разрядное оборудование. Кроме того, при развертывании образа Windows на виртуальной машине с большой вероятностью возникнут проблемы с библиотекой аппаратно-зависимого уровня (Hardware Abstract Layer, HAL).
Для переноса системы из физической среды в виртуальную создано множество коммерческих и бесплатных программ (PlateSpin PowerConvert, VMware Convert, Microsoft® Virtual Server Migration Tookit и средства клонирования). Эти средства миграции помогают разрешить потенциальные проблемы с различиями в оборудовании физического сервера и виртуальной машины. Одной из их функций является предоставление необходимых драйверов для ядра операционной системы и правильная загрузка этих драйверов во время запуска системы. Разумеется, многие из этих средств P2V содержат больше возможностей, чем необходимо для миграции одного компьютера.
VMware Server представляет собой бесплатную закрытую платформу, поддерживающую различные гостевые операционные системы (Windows, Linux, Solaris и т.д.) на хостах Linux и Windows. Как полное решение виртуализации, мониторы виртуальных машин (virtual machine monitors, VMM), работающие на гипервизоре, предоставляют виртуальным машинам все доступные типы аппаратных ресурсов, в том числе виртуальную BIOS, виртуальное ОЗУ, виртуальный контроллер SCSI, виртуальный сетевой адаптер и т.д. Поскольку гостевые операционные системы полностью отделены от физического оборудования, их можно запускать без изменений.
Теперь давайте рассмотрим миграцию P2V при помощи Clonezilla Live для клонирования образа ОС Windows на виртуальную машину под управлением VMware Server.

Шаг 1. Клонирование системного раздела

Советы по Clonezilla

Для успешной миграции запомните эти советы и, следуя этапам, описанным в статье, возвращайтесь к ним как к подсказкам.
  1. Убедитесь, что в хранилище образов достаточно свободного места для сохранения данных в разделе.
  2. Можно разделить образы на несколько частей, чтобы обойти ограничение на максимальный размер файла.
  3. Clonezilla не поддерживает восстановление образа на раздел или диск меньшего размера, чем исходный.
  4. Если Clonezilla Live не поддерживает диски SCSI данной версии VMware, используйте при создании виртуальной машины диски IDE.
  5. Для восстановления образа в оболочке Clonezilla Live вам необходимо войти в систему в качестве суперпользователя root.
  6. Для восстановления клонированного образа раздела целевой виртуальный диск должен отображаться в Clonezilla как отформатированный.
  7. Для успешного переноса ОС Windows® вам понадобятся знания о HAL и средства, подобные sysprep.
Вначале загрузите физический сервер с Clonezilla Live CD.
Clonezilla поддерживает несколько вариантов загрузки. Например, можно выбрать вариант To RAM (в ОЗУ), чтобы загрузить Debian Live вместе с Clonezilla в оперативную память и освободить привод CD-ROM для других целей. Выберите вариант по умолчанию и перейдите к настройкам языка и клавиатуры. Оставьте значение по умолчанию.
Затем выберите, будете ли вы использовать мастер резервного копирования и восстановления с графическим интерфейсом или оболочку Debian для расширенного управления операциями. Выберите параметр Start_Clonezilla (Запустить Clonezilla), даже если вы опытный пользователь. Работа с оболочкой будет рассмотрена в разделе Восстановление образа на виртуальную машину.
Теперь появятся два параметра, определяющие тип клонирования:
  • device-device (устройство-устройство) для прямого клонирования устройств.
  • device-image (устройство-образ) для клонирования в образ.
Поскольку мы преобразуем физический компьютер в виртуальную машину, наиболее подходящим вариантом будет device-image.
Затем укажите каталог, куда будет записан образ или из которого он будет восстановлен, как показано на рисунке 1. Параметры ssh-server, samba-server и nfs-server используются при подключении по сети, когда свободное место или образ архива на локальном диске недоступны. В нашем случае мы будем клонировать системный раздел и сохранять его на другой раздел того же жесткого диска. Если вы выберете local_dev (локальное устройство), вы получите возможность указать в качестве хранилища образов USB-устройство.
Рисунок 1. Выбор хранилища образов
Рисунок 1. Выбор хранилища образовВ зависимости от того, какие диски подключены - внутренние или внешние (USB), - понадобится указать каталог, который будет связан с хранилищем образов /home/partimag. Образ представляет собой подкаталог в /home/partimag с информацией об образе и файлами данных. В этом примере системный раздел /dev/sda1 будет сохранен как образ в /dev/sda5. Соответственно sda5 выбран для монтирования в каталог /home/partimag/, как показано на рисунке 2.
Рисунок 2. Раздел хранения образа
Рисунок 2. Раздел хранения образаНа рисунке 2 показаны сведения о дополнительных командах монтирования устройства хранения образа, расположение текущей файловой системы и отчет о свободном месте в /home/partimag. Убедитесь в том, что в хранилище образов достаточно свободного места для сохранения данных с системного раздела.
Можно указать домашний каталог для образа Clonezilla на устройстве хранения образа, как показано на рисунке 3.
Рисунок 3. Режим Clonezilla
Рисунок 3. Режим ClonezillaПосле этого укажите режим использования Clonezilla Live. Можно выбрать сохранение или восстановление диска целиком или отдельных разделов на нем. Для резервного копирования раздела выберите третий пункт saveparts (сохранить раздел).
После выбора режима необходимо указать имя образа (Sys01-2009-02-23-img) и исходное устройство (/dev/sda1) для резервного копирования. На следующих нескольких рисунках показаны дополнительные параметры создания образа. Поскольку Clonezilla поддерживает различные типы файловых систем и интегрирована с такими средствами клонирования разделов, как ntfsclone, partclone, partimage, набор используемых средств определяется текущей файловой системой. Оставьте значения по умолчанию, если вы не знакомы с клонируемой файловой системой. Значение по умолчанию -q (ntfsclone > partimage > dd) наилучшим образом подходит для резервного копирования NTFS-раздела.
На рисунке 4 показаны другие параметры, предназначенные для оптимизации клонирования.
Рисунок 4. Дополнительные расширенные параметры клонирования Clonezilla
Рисунок 4. Дополнительные расширенные параметры клонирования Clonezilla При создании образа Windows-системы параметр -rm-win-swap-hib экономит время резервного копирования и восстановления, исключая копирование файлов подкачки и спящего режима. Также рекомендуются параметры -gm или -gs , если необходимо переместить сохраненный образ в другое место и проверить целостность образа перед восстановлением.
Кроме того, в Clonezilla Live можно указать метод сжатия в зависимости от требований к эффективности и скорости. Некоторые файловые системы не поддерживают файлы размером более 2 ГБ, поэтому имеется возможность указать максимальный размер файла, разделив образ на части.
Наконец, при помощи параметра -p можно назначить команду, которая будет выполнена после завершения процесса клонирования.
Когда настройки сделаны, следует проверить их и подтвердить свой выбор. Процессы резервного копирования и восстановления используют утилиту ocs-sr. После завершения настройки при помощи GUI-мастера Clonezilla отображается команда ocs-sr с параметрами, которые потребовались бы, чтобы добиться такого же результата при помощи командной строки. Мастер также создает временный файл с этой командой, который сохраняется в каталоге /tmp.
Устраивайтесь поудобнее и ждите, пока резервное копирование закончится. После завершения процесса и загрузки сервера перенесите каталог образа с физического сервера в место, использующееся в качестве источника восстановления для виртуальной машины.

Шаг 2. Подготовка виртуальной машины

Теперь мы создадим виртуальную машину под управлением VMware Server для миграции системы. Убедитесь, что среда хоста соответствует требованиям и ограничениям VMware Server и гостевой операционной системы. Поскольку виртуальная машина будет использовать тот же процессор, что и хост, основным требованием является совместимость используемых типов процессора для среды хоста и клонируемого физического сервера.
Во-первых, запустим New Virtual Machine Wizard (мастер создания новой виртуальной машины) VMware. Укажите версию операционной системы, использующуюся на клонируемом физическом сервере. Затем необходимо создать виртуальный диск равного или большего размера, чем в исходной системе, потому что Clonezilla не поддерживает восстановление образа на раздел или диск меньшего размера, чем исходный. Однако возможно восстановление на диск большего размера в соответствии с разбиением исходного диска.
Рисунок 5. Настройка размера диска виртуальной машины
Рисунок 5. Настройка размера диска виртуальной машиныПримечание: ядро Clonezilla Live может не поддерживать диски SCSI предыдущих версий VMware Server. В этом случае при создании виртуальной машины используйте диски IDE.
Во-вторых, укажите виртуальному устройству CD-ROM использовать образ ISO Clonezilla Live, как показано на рисунке 6.
Рисунок 6. Использование образа ISO Clonezilla Live в виртуальной машине
Рисунок 6. Использование образа ISO Clonezilla Live в виртуальной машинеВ-третьих, поместите файлы образа системы, полученные в предыдущем разделе, на второй диск хост-сервера, раздел 0, диска 1. Поскольку VMware Server поддерживает прямой доступ к дискам SCSI хоста, добавьте в виртуальной машине в качестве второго диска подключенный напрямую раздел 0 диска 1. Во время восстановления это устройство будет смонтировано в каталог /home/partimag.
Рисунок 7. Подключение раздела с образом системы
Рисунок 7. Подключение раздела с образом системыТеперь, когда вы создали компактную виртуальную машину, настало время загрузить ее с образа Clonezilla Live.

Шаг 3. Восстановление образа на виртуальную машину

После того как виртуальная машина загрузится с образа Clonezilla Live, появится уже знакомый GUI-мастер восстановления и резервного копирования, показанный на рисунке 8. пока вы не выберете режим. В этом примере мы используем для восстановления вручную непосредственно оболочку Clonezilla Live на основе Debian.
Рисунок 8. Оболочка Clonezilla Live
Рисунок 8. Оболочка Clonezilla LiveДля восстановления образа при помощи оболочки Clonezilla Live вы должны войти в систему в качестве суперпользователя root, как показано в листинге 1; это дает полный доступ к Clonezilla.
Листинг 1. Входим в систему от имени root
user@debian:~$ sudo su -
debian:~#
Теперь вам необходимо указать целевой диск для восстановления и диск, на котором находится образ. В листинге 2 показана информация о двух локальных дисках.
Листинг 2. Просмотр информации о дисках
debian:~# fdisk -l
Disk /dev/sda: 42.9 GB, 42949672960 bytes
255 heads, 63 sectors/track, 5221 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x00000000

Disk /dev/sda doesn't contain a valid partition table

Disk /dev/sdb: 160.0 GB, 160039272960 bytes
255 heads, 63 sectors/track, 19457 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0xa0bea0be

Device Boot         Start       End      Blocks       Id    System
/dev/sdb1            1            19457   156288321   7      HPFS/NTFS
/dev/sda - это виртуальный диск, который мы создали как целевой для восстановления, он не форматирован. /dev/sdb - это физический диск 1 на хост-сервере, который напрямую подключен к виртуальной машине как устройство SCSI, на нем находится образ клонированной системы.
Для восстановления образа раздела целевой диск должен отображаться в Clonezilla как форматированный. Для записи метки на виртуальный диск можно использовать команду fdisk. Соответствующие команды показаны в листинге 3.
Листинг 3. Форматирование целевого диска
# fdisk /dev/sda
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0xee2955bc.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.

The number of cylinders for this disk is set to 5221.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
   (e.g., DOS FDISK, OS/2 FDISK)
Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

Command (m for help):
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-5221, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-5221, default 5221): 
Using default value 5221

Command (m for help):
Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
[ 866.679048] sd 0:0:0:0: [sda] 83886080 512-byte hardware sectors (42950 MB)
[ 866.682658] sd 0:0:0:0: [sda] Write Protect is off
[ 866.683795] sd 0:0:0:0: [sda] Cache data unavailable
[ 866.683822] sd 0:0:0:0: [sda] Assuming drive cache: write through
[ 866.686443]  sda: sda1
[ 866.695530] sd 0:0:0:0: [sda] 83886080 512-byte hardware sectors (42950 MB)
[ 866.698278] sd 0:0:0:0: [sda] Write Protect is off
[ 866.699422] sd 0:0:0:0: [sda] Cache data unavailable
[ 866.699495] sd 0:0:0:0: [sda] Assuming drive cache: write through
[ 868.702058]  sda: sda1 
Syncing disks.
Можно использовать значения по умолчанию из листинга 3. В данный момент тип раздела не имеет значения, потому что во время восстановления Clonezilla создаст его заново.
Как и во время процедуры резервного копирования, необходимо смонтировать устройство с возможностью записи в каталог /home/partimag, в котором Clonezilla будет искать каталог с образом для восстановления. Чтобы подготовить восстановление из образа в разделе /dev/sdb1 на новый раздел /dev/sda1, вначале смонтируйте /dev/sdb1 в каталог /home/partimag с правами на запись. Обратите внимание, что в данном случае /dev/sdb1 является файловой системой NTFS на хост-сервере, которая может быть открыта, поэтому для успешного монтирования может понадобиться параметр force. См. листинг 4.
Листинг 4. Монтирование устройства с образом в каталог /home/partimag
debian:~# mount -t ntfs-3g /dev/sdb1 /home/partimag -o force
debian:~# ls /home/partimag
Sys01-2009-02-23-img
Когда /home/partimag и целевой раздел готовы, укажите лучший способ восстановления образа для вашей среды. Как и при резервном копировании, Clonezilla предоставляет множество дополнительных гибких параметров для восстановления образа. На рисунке 9 показаны параметры восстановления и их значения.
Рисунок 9. Расширенные дополнительные параметры восстановления Clonezilla
Рисунок 9. Расширенные дополнительные параметры восстановления ClonezillaПри восстановлении системного образа Windows на целевой диск необходимо записать загрузочный сектор. Для этого используйте параметры -j0 (использовать dd для создания таблицы разделов) и -t1 (клиент восстанавливает предварительно созданную MBR из syslinux). Параметр hnX PC (X равен 0 или 1) гарантирует создание уникального имени Windows-компьютера. Если необходимо изменить текущие расположение целевого раздела, можно использовать параметр -k1 или другие параметры настройки разделов для создания другой таблицы разделов.
В листинге 5 приведена команда восстановления образа Sys01-2009-02-23-img из каталога /home/partimag (/dev/sdb1) на целевое устройство /dev/sda1.
Листинг 5. Использование командной строки для восстановления образа
debian:~# /opt/drbl/sbin/ocs-sr -e1 auto -c -t1 -r -j3 -cm -j0 -p reboot restoreparts
             "Sys01-2009-02-23-img" "sda1"
На рисунке 10 показаны итоговая информация и процесс выполнения команды. Теперь на виртуальной машине создан клон системы.
Рисунок 10. Итоговая информация и процесс восстановления Clonezilla
Рисунок 10. Итоговая информация и процесс восстановления ClonezillaПосле завершения восстановления можно запустить систему на виртуальной машине. Для увеличения производительности установите на виртуальную машину VMware Tools.

Заключение

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

Комментарии

Популярные сообщения из этого блога

Права на папки и файлы (unix/chmod)

Автоматическое монтирование дисков и разделов в Linux или что такое fstab? Проблема Debian

Как подключить сетевой диск Windows в Linux