В систему уже существует диск /dev/sda разбитый на разделы
1 2 3 |
# /dev/sda1 – boot # /dev/sda2 -/ # /dev/sda3 – swap |
Добавляем новый диск /dev/sdb для создания RAID1-массива
1.Копирование таблицы разделов с /dev/sda на /dev/sdb
1 |
# sfdisk -d /dev/sda | sfdisk --force /dev/sdb |
2.Подгрузка необходимыx модулей ядра
1 |
# modprobe linear |
1 |
# modprobe raid0 |
1 |
# modprobe raid1 |
Проверка состояния RAID-массива
1 |
# cat /proc/mdstat |
Проверка,что оба диска имеют одинаковую таблицу
1 |
# fdisk -l |
3.Изменение типа разделов на втором жестком диске /dev/sdb на Linux raid autodetect
1 |
# fdisk /dev/sdb |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
Command (m for help): t Partition number (1-4): 1 Hex code (type L to list codes): fd Changed system type of partition 1 to fd (Linux raid autodetect) Command (m for help): t Partition number (1-4): 2 Hex code (type L to list codes): fd Changed system type of partition 2 to fd (Linux raid autodetect) Command (m for help): t Partition number (1-4): 3 Hex code (type L to list codes): fd Changed system type of partition 3 to fd (Linux raid autodetect) Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks. |
Проверка дисков
1 |
# fdisk -l |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
Disk /dev/sda: 12.9 GB, 12884901888 bytes 255 heads, 63 sectors/track, 1566 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00090cc9 Device Boot Start End Blocks Id System /dev/sda1 * 1 13 102400 83 Linux Partition 1 does not end on cylinder boundary. /dev/sda2 13 1502 11955200 83 Linux /dev/sda3 1502 1567 524288 82 Linux swap / Solaris Disk /dev/sdb: 12.9 GB, 12884901888 bytes 255 heads, 63 sectors/track, 1566 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00000000 Device Boot Start End Blocks Id System /dev/sdb1 * 1 13 102400 fd Linux raid autodetect Partition 1 does not end on cylinder boundary. /dev/sdb2 13 1502 11955200 fd Linux raid autodetect /dev/sdb3 1502 1567 524288 fd Linux raid autodetect |
4.Обнуление всех разделов нового диска.
Чтобы быть уверенным, что на /dev/sdb не осталось никаких следов от возможных предыдущих установок RAID-массивов, выполните следующие команды:
1 |
# mdadm --zero-superblock /dev/sdb1 |
mdadm: Unrecognised md component device — /dev/sdb1
1 |
# mdadm --zero-superblock /dev/sdb2 |
mdadm: Unrecognised md component device — /dev/sdb2
1 |
# mdadm --zero-superblock /dev/sdb3 |
mdadm: Unrecognised md component device — /dev/sdb3
Если никаких остатков предыдущих установок RAID не обнаружится, то каждая из приведенных выше команд mdadm выдаст ошибку (не надо беспокоиться) примерно следующего вида:
1 |
mdadm: Unrecognised md component device - /dev/sdb1 |
В противном случае никакого вывода не будет.
5.Создание RAID-массива
1 |
# mdadm --create /dev/md0 --metadata=0.90 --level=1 --raid-disks=2 missing /dev/sdb1 |
1 |
mdadm: array /dev/md0 started |
1 |
# mdadm --create /dev/md1 --metadata=0.90 --level=1 --raid-disks=2 missing /dev/sdb2 |
1 |
mdadm: array /dev/md1 started. |
1 |
# mdadm --create /dev/md2 --metadata=0.90 --level=1 --raid-disks=2 missing /dev/sdb3 |
1 |
mdadm: array /dev/md2 started. |
Проверка состояния нашего массива должна показать, что у нас есть три поврежденных RAID-массива ([_U] или [U_] означает, что массив поврежден, а [UU] означает, что все в порядке):
1 |
# cat /proc/mdstat |
1 2 3 4 5 6 7 8 9 10 11 |
Personalities : [linear] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] md2 : active raid1 sdb3[1] 524224 blocks [2/1] [_U] md1 : active raid1 sdb2[1] 11955136 blocks [2/1] [_U] md0 : active raid1 sdb1[1] 102336 blocks [2/1] [_U] unused devices: <none> |
6.Создание конфигурационного файл mdadm /etc/mdadm.conf
1 |
# mdadm --detail --scan |
1 2 3 |
ARRAY /dev/md0 metadata=0.90 UUID=4b6c1933:11d33dcd:2f1f2371:22ae5c7d ARRAY /dev/md1 metadata=0.90 UUID=222b8037:fb703bb4:2f1f2371:22ae5c7d ARRAY /dev/md2 metadata=0.90 UUID=a4325f51:44f16059:2f1f2371:22ae5c7d |
1 |
# mdadm --detail --scan > /etc/mdadm.conf |
Используем dracut чтобы перестроить наш initramfs с новым mdadm.conf
1 |
# mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.old |
1 |
# dracut --mdadmconf --force /boot/initramfs-$(uname -r).img $(uname -r) |
7.Создание файловые системы на созданных RAID-устройствах
1 |
# mkfs.ext4 /dev/md0 # /boot |
1 |
# mkfs.ext4 /dev/md1 #/ |
1 |
# mkswap /dev/md2 # swap |
8.Копирование информации с существующих(и все еще запущенных) разделов на созданные RAID-разделы.
/boot-раздел
1 |
# mkdir /raid |
1 |
# mount /dev/md0 /raid/ |
1 |
# cd /boot/ |
1 |
# find . -depth | cpio -pmd /raid/ |
1 |
# sync |
1 |
# umount /raid/ |
/-раздел
1 |
# mount /dev/md1 /raid/ |
1 |
# cd / |
1 |
# find . -depth -xdev | grep -v '^\./tmp/' | cpio -pmd /raid/ |
9. Настройка /etc/fstab
1 |
# blkid |
1 2 3 4 5 6 7 8 9 |
/dev/sda1: UUID="8400f90c-9d9b-4025-910e-65e8db3028e2" TYPE="ext4" /dev/sda2: UUID="daf5c69d-5634-4e2a-b67e-a111a206de5e" TYPE="ext4" /dev/sda3: UUID="6e5913d5-32f2-4ac0-a542-21aa1b114c04" TYPE="swap" /dev/sdb1: UUID="4b6c1933-11d3-3dcd-2f1f-237122ae5c7d" TYPE="linux_raid_member" /dev/sdb2: UUID="222b8037-fb70-3bb4-2f1f-237122ae5c7d" TYPE="linux_raid_member" /dev/sdb3: UUID="a4325f51-44f1-6059-2f1f-237122ae5c7d" TYPE="linux_raid_member" /dev/md0: UUID="ce8a49d9-136b-4446-9391-a93a95bdbf3d" TYPE="ext4" /dev/md1: UUID="c8ce8560-9a61-45cf-a74c-4345673ad428" TYPE="ext4" /dev/md2: UUID="e1919aaf-7855-4cfd-a10f-b6651bf72ab4" TYPE="swap" |
1 |
# nano /raid/etc/fstab |
1 2 3 4 5 6 7 |
UUID="c8ce8560-9a61-45cf-a74c-4345673ad428" / ext4 defaults 1 1 UUID="ce8a49d9-136b-4446-9391-a93a95bdbf3d" /boot ext4 defaults 1 2 UUID="e1919aaf-7855-4cfd-a10f-b6651bf72ab4" swap swap defaults 0 0 tmpfs /dev/shm tmpfs defaults 0 0 devpts /dev/pts devpts gid=5,mode=620 0 0 sysfs /sys sysfs defaults 0 0 proc /proc proc defaults 0 0 |
1 |
# cp /etc/fstab /etc/fstab~ |
1 |
# cp /boot/grub/menu.lst /boot/grub/menu.lst~ |
1 |
# cp /raid/etc/fstab /etc/fstab |
1 |
cp: overwrite `/etc/fstab'? y |
1 |
# umount /raid/ |
10.Настройка /boot/grub/menu.lst
1 |
# mount /dev/md0 /raid/ |
1 |
# nano /raid/grub/menu.lst |
1 2 3 4 |
title CentOS (2.6.32-358.23.2.el6.i686) root (hd0,0) kernel /vmlinuz-2.6.32-358.23.2.el6.i686 ro root=/dev/md1 rd_NO_LUKS LANG=en_US.UTF-8 initrd /initramfs-2.6.32-358.23.2.el6.i686.img |
1 |
# cp /raid/grub/menu.lst /boot/grub/menu.lst |
cp: overwrite `/boot/grub/menu.lst’? y
1 |
# umount /raid |
11.Перезагрузка системы
1 |
# shutdown -r now |
1 |
# df -h |
1 2 3 4 |
Filesystem Size Used Avail Use% Mounted on /dev/md1 12G 2.6G 8.2G 24% / tmpfs 250M 0 250M 0% /dev/shm /dev/md0 97M 96M 0 100% /boot |
12.Изменение типа разделов на /dev/sda на Linux raid autodetect
1 |
# fdisk /dev/sda |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
WARNING: DOS-compatible mode is deprecated. It's strongly recommended to switch off the mode (command 'c') and change display units to sectors (command 'u'). Command (m for help): t Partition number (1-4): 1 Hex code (type L to list codes): fd Changed system type of partition 1 to fd (Linux raid autodetect) Command (m for help): t Partition number (1-4): 2 Hex code (type L to list codes): fd Changed system type of partition 2 to fd (Linux raid autodetect) Command (m for help): t Partition number (1-4): 3 Hex code (type L to list codes): fd Changed system type of partition 3 to fd (Linux raid autodetect) Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks. |
Перечитать таблицу разделов
1 |
# partprobe |
13.Добавление /dev/sda1, /dev/sda2 и /dev/sda3 в RAID-массив
1 |
# mdadm --manage --add /dev/md0 /dev/sda1 |
1 |
mdadm: added /dev/sda1 |
1 |
# mdadm --manage --add /dev/md1 /dev/sda2 |
1 |
mdadm: added /dev/sda2 |
1 |
# mdadm --manage --add /dev/md2 /dev/sda3 |
1 |
mdadm: added /dev/sda3 |
14.Проверка состояния RAID-массива(процесса синхронизации)
И проверяем состояние массива. Убеждаемся, что идет процесс синхронизации
1 |
# watch -d -n1 cat /proc/mdstat |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
Personalities : [raid1] md1 : active raid1 sda2[2] sdb2[1] 11955136 blocks [2/1] [_U] [>....................] recovery = 0.8% (97792/11955136) finish=58.5min speed=3372K/sec md0 : active raid1 sda1[0] sdb1[1] 102336 blocks [2/2] [UU] md2 : active raid1 sda3[2] sdb3[1] 524224 blocks [2/1] [_U] resync=DELAYED unused devices: <none> |
15. Создание загрузочной записи на втором диске
Запускаем grub
1 |
# grub |
1 |
grub> |
Установим корневое устройство на второй диск
1 |
grub> root (hd1,0) |
1 |
grub> setup (hd1) |
Повторим для первого диска
1 |
grub> root (hd0,0) |
1 |
grub> setup (hd0) |
1 |
grub> quit |
Перегружаемся
1 |
# shutdown -r now |
Тестирование
Проверка состояние RAID-массива
1 |
# cat /proc/mdstat |
Помечаем раздел /dev/sdb1 как сбойный
1 |
# mdadm --manage /dev/md0 --fail /dev/sdb1 |
Удаляем раздел /dev/sdb1 из RAID-массива /dev/md0
1 |
# mdadm --manage /dev/md0 --remove /dev/sdb1 |
Проверка состояние RAID-массива
1 |
# cat /proc/mdstat |
Удаляем с /dev/sdb1 предыдущие установки RAID
1 |
# mdadm --zero-superblock /dev/sdb1 |
Добавляем раздел /dev/sdb1 из RAID-массива /dev/md0
1 |
# mdadm --manage --add /dev/md0 /dev/sdb1 |
Проверка состояние RAID-массива(процесс синхронизации)
1 |
# watch -d -n1 cat /proc/mdstat |
Настройка загрузчика на новом винчестере.
1 |
# grub |
1 |
grub>root (hd0,0) |
1 |
grub>setup (hd0) |
1 |
grub>root (hd1,0) |
1 |
grub>setup (hd1) |
1 |
grub> quit |
Источник:
http://www.howtoforge.com/how-to-create-a-raid1-setup-on-an-existing-centos-redhat-6.0-system
http://rus-linux.net/lib.php?name=MyLDP/hard/raid1/raid.html
http://xgu.ru/wiki/%D0%9F%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%BD%D1%8B%D0%B9_RAID_%D0%B2_Linux
http://www.linuxdevcenter.com/pub/a/linux/2002/12/05/RAID.html