Вот моя ситуация:
- Два выделенных сервера в одном центре обработки данных с гигабитным Ethernet между ними.
- Оба выделенных сервера загрузились в среду аварийного восстановления на основе Debian Squeeze с добавлением дополнительных инструментов и утилит. Также достаточно места для tmp (32 ГБ ОЗУ на обоих компьютерах) для загрузки программного обеспечения, установки пакетов и / или компиляции по мере необходимости.
- Оба выделенных сервера имеют приблизительно 3 ТБ доступного пространства.
- «Исходный» сервер имеет 4 диска по 1,5 ТБ в аппаратном RAID-10 с 4-портовым контроллером Adaptec.
- Сервер назначения имеет 2 диска по 3 ТБ в аппаратном RAID-1 с контроллером портов Adaptec 2 - того же поколения, что и у других, но с другим количеством портов.
- Количество используемых блоков
/dev/sda
отличается менее чем на 10 МБ, но массив целевого сервера по некоторым причинам на несколько мегабайт меньше. - Оба RAID-массива настроены на использование всей дисковой поверхности всех составляющих дисков для создания одного единого тома RAID.
- Операционная система загружается в режиме MBR; загрузка UEFI не используется.
Что я хочу сделать:
- Скопируйте на уровне блоков весь образ ОС (он состоит только из загрузчика GRUB2 в таблице разделов GPT, разделов / boot и / partition) с «исходного» сервера на «целевой» сервер.
- Если возможно , копирование должно происходить «вживую»: это означает, что у меня недостаточно места для хранения правильного файла образа диска на стороне назначения, если я не распаковываю образ диска на жесткий диск в качестве копии происходит . Гигабитное Ethernet-соединение между серверами достаточно надежно, и мне это удобно, и я, конечно, буду работать
fsck
на обоих концах (исходный и целевой), чтобы убедиться, что файловая система в порядке до и после передачи. - По возможности не передавайте блоки по сети, которые не используются составляющими файловыми системами в каждом разделе (все разделы отформатированы как ext4). Это связано с тем, что более 50% «исходного» диска занимает свободное место в
/
разделе. - Отрегулируйте размер
/
раздела таким образом, чтобы при копировании он был изменен в соответствии с чуть меньшим размером целевого диска. - После успешного копирования подключите каждый том и исправьте ссылки на статические IP-адреса, чтобы отразить IP-адреса нового сервера. (Может сделать это прекрасно без какой-либо дополнительной помощи)
Мои вопросы:
- Должен ли я сначала рассчитать разницу (в байтах) между размерами
/dev/sda
на каждом сервере, а затем использовать,e2resize
чтобы неразрушающим образом уменьшить размер/
раздела на стороне источника, чтобы он вписался в пространство на стороне назначения? - Должен ли я работать
dd
на необработанном блочном устройстве,/dev/sda
от источника до места назначения (болееssh
), или я должен создать эквивалентную разметку разделов в месте назначения и запускатьdd
на каждом разделе ? Обратите внимание, что обработка раздела за раз оставляет мне проблему с загрузчиком, но если я не делаю это раздел за раз, тоdd
необходимо знать, чтобы прекратить передачу данных, как только он записал столько байтов, сколько может вместить место назначения (который, мы надеемся, «закроет» самый конец/
раздела в последнем блоке, что логически «справа» от всех других разделов в разметке разделов источника).
Несколько разное специфика:
- Основной операционной системой на исходном компьютере является Ubuntu Server 12.04 с несколькими гостями OpenVZ
- Поскольку оба блока загружаются для восстановления, прямой доступ к диску возможен, не ожидая каких-либо изменений в базовых данных под управлением операционной системы.