Зеркалирование системы на новый диск

Материал из База знаний проекта Russian Fedora

Перейти к: навигация, поиск
Страница находится в работе
Ответственный: не указан
Внимание
Не делаеть, если нет понимания, что делается
Внимание
При всех действиях с файловой системой рекомендуется создать резервную копию данных

Изначально система установлена на диск /dev/sda. Цель: отзеркалировать её на второй пустой диск /dev/sdb.

Таблица разделов и загрузчик

Дублируем таблицу разделов вместе с загрузчиком:

# dd if=/dev/sda of=/dev/sdb count=1

Перечитываем таблицу разделов:

# sfdisk -R /dev/sdb

Раздел /boot

Допустим, что раздел с /boot находится на /dev/sda1 и имеет размер 500M. Для наших целей надо его немного уменьшить. Убедимся, что в конце раздела достаточно пустого места, в противном случае возможно надо было бы переустанавливать загрузчик:

# hexdump -C /dev/sda1 | tail -3
18800fe0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
1f400000

Итого, общий размер в 0x1f400000 байт (= 524288000 = 512000k). Данные заканчиваются на 0x18800fe0 байте (= 411045856). Таким образом, места более чем достаточно. Уменьшаем на раздел на 10M:

# e2fsck -f /dev/sda1
# resize2fs /dev/sda1 490M

Копируем исходный раздел на новый диск:

# dd if=/dev/sda1 of=/dev/sdb1

Создаём из них рейд (необходимо использовать метаданные либо версии 0.90, либо 1.0, так как они пишутся в конец раздела):

# mdadm --create /dev/md0 --level=1 --raid-devices=2 --metadata=0.90 /dev/sda1 /dev/sdb1

Нас спросят:

mdadm: /dev/sda1 appears to contain an ext2fs file system
    size=501760K  mtime=Wed Feb  9 23:21:33 2011
mdadm: /dev/sdb1 appears to contain an ext2fs file system
    size=501760K  mtime=Wed Feb  9 23:21:33 2011
Continue creating array? 

Нажимаем y.

Рейд запускается и начинает проверку. Наблюдать за процессом можно в файлике /proc/mdstat:

# cat /proc/mdstat
Personalities : [raid1] 
md0 : active raid1 sdb1[1] sda1[0]
      511936 blocks [2/2] [UU]
      [==>..................]  resync = 11.4% (58816/511936) finish=0.5min speed=14704K/sec
      
unused devices: <none>
# cat /proc/mdstat
Personalities : [raid1] 
md0 : active raid1 sdb1[1] sda1[0]
      511936 blocks [2/2] [UU]
      
unused devices: <none>

Увеличиваем размер файловой системы до максимально возможного (который на 64k меньше исходного засчёт метаданных):

# resize2fs /dev/md0

Остаётся внести полученный массив в /etc/mdadm.conf:

# mdadm --detail --scan >> /etc/mdadm.conf

Перезагружаемся, проверяем что всё работает :)

Зеркалирование разделов в LVM

# pvcreate /dev/sdb2
  Physical volume "/dev/sdb2" successfully created
# vgextend VolGroup00 /dev/sdb1
  Volume group "VolGroup00" successfully extended
# lvconvert -m1 /dev/VolGroup00/lv_root 
  VolGroup00/lv_root: Converted: 0,2%
...
  VolGroup00/lv_root: Converted: 100,0%

Продолжение следует…