Перенос системы с одиночного жёсткого диска на программный RAID1 "зеркало"
Все операции проводятся без прекращения функционирования сервера, но лучше выбрать время наименьшей нагрузки на сервер. На любом этапе можно остановиться, а позже либо продолжить перенос системы либо вернуть всё в исходное состояние.
Данная инструкция (с небольшими изменениями) применима для любой Linux-системы.
1. подготовительная часть
hda - диск, на который уже установлена система:
$ fdisk -lu /dev/hda Disk /dev/hda: 5768 MB, 5768216576 bytes 16 heads, 63 sectors/track, 11176 cylinders, total 11266048 sectors Units = sectors of 1 * 512 = 512 bytes Device Boot Start End Blocks Id System /dev/hda1 1 80639 40319+ 83 Linux /dev/hda2 80640 11265407 5592384 8e Linux LVM
sda - новый диск, который имеет примерно такой же объём, что и старый. С помощью команды cfdisk /dev/sda создаём два первичных раздела: первый (для загрузки системы) размером около 40 Мб, второй занимает всё оставшееся место. Тип файловых систем: для первого раздела - 83 (Linux), для второго - 8e (Linux LVM):
$ fdisk -lu /dev/sda Disk /dev/sda: 5690 MB, 5690621952 bytes 255 heads, 63 sectors/track, 691 cylinders, total 11114496 sectors Units = sectors of 1 * 512 = 512 bytes Device Boot Start End Blocks Id System /dev/sda1 63 80324 40131 83 Linux /dev/sda2 80325 11100914 5510295 8e Linux LVM
2. собственно сам перенос системы
Создаём массив RAID1, состоящий только из одного нового диска:
$ mdadm --create /dev/md/bsl --name=bsl --metadata=1.1 \ --bitmap=internal --chunk=256 --auto=md --symlink=no \ --run --level=raid1 --raid-devices=2 /dev/sda2 missing mdadm: array /dev/md/bsl started.
Создаём физический раздел LVM поверх "зеркала":
$ pvcreate -y -ff /dev/md/bsl Physical volume "/dev/md/bsl" successfully created
... и добавляем его в существующую группу массивов LVM:
$ vgextend vg_bsl /dev/md/bsl Volume group "vg_bsl" successfully extended
Переносим систему с раздела hda2 на "зеркало":
$ pvmove -i 20 /dev/hda2 /dev/hda2: Moved: 1.3% /dev/hda2: Moved: 3.1% ... ... /dev/hda2: Moved: 100.0%
Выводим раздел диска hda из состава LVM:
$ vgreduce vg_bsl /dev/hda2 Removed "/dev/hda2" from volume group "vg_bsl"
Уничтожаем информацию об LVM со старого диска:
$ pvremove /dev/hda2 Labels on physical volume "/dev/hda2" successfully wiped
Добавляем раздел старого диска к "зеркалу":
$ mdadm /dev/md/bsl --add /dev/hda2 mdadm: added /dev/hda2
Контролируем процесс синхронизации "зеркала":
$ watch cat /proc/mdstat
Every 2.0s: cat /proc/mdstat Sat Aug 29 00:33:53 2009
Personalities : [raid1]
md127 : active raid1 hda2[2] sda2[0]
5510287 blocks super 1.1 [2/1] [U_]
[====>................] recovery = 20.3% (1119552/5510287)
finish=2.7min speed=27087K/sec
bitmap: 10/11 pages [40KB], 256KB chunk
unused devices: <none>
3. финал
Для осуществления запуска системы с нового диска sda проделываем ряд операций:
- создаём на загрузочном разделе нового диска /dev/sda1 файловую систему ext2 с меткой
BSL_boot - копируем содержимое загрузочного раздела /dev/hda1 старого диска в загрузочный раздел /dev/sda1 нового
- устанавливаем загрузчик на новый диск sda
Пробуем загрузить систему как со старого так и с нового дисков.
--
2010-06-14