Перенос ALT Linux 5.9.9 на программный RAID
Есть рабочий сервер ALT Linux 5.9.9, с него содержимое диска перенесено на 1 из 2х жестких дисков на новом сервере. Нужно объединить 2 жестких диска на новом сервере в программный RAID 1. Загружаем Live CD ALT (у меня версии 5.0) на новом сервере.
Диск с перенесенными данными:
Пустой жесткий диск:
На 1м диске меняем типы разделов на fd (linux raid), кроме /dev/sda2 — это swap раздел:
Создаем raid массив с первым жестким диском. Устройство /dev/md1 будет содержать раздел /dev/sda1 (там /boot) и, /dev/md3 — /dev/sda3 (там корневая файловая система):
Проверяем:
Если пришлось перезагрузиться, снова подключить raid разделы можно командой:
Монтируем корневую файловую систему:
Редактируем настройки mdadm.conf. Смотрим старые насторйки:
Добавляем наши raid устройства:
Теперь файл выглядит так:
Правим /etc/fstab. Старый выглядит так:
Заменяем UUID=* на /dev/md*, также подключаем 2 swap раздела — /dev/sda2 и /dev/sdb2:
Заходим в старую систему, используя chroot:
Монтируем в ней /boot раздел (т.к. он располагается на /dev/md1):
Теперь нам придется пересобрать ядро для того, чтобы оно включало в себя статически вкомпилированные модули raid и ext3, иначе при загрузке система зависнет при попытке смонтировать корневую файловую систему с устройства /dev/md3:
Устанавливаем подходящее нам ядро и исходники ядра (в моем случае — версии 2.6.37):
Копируем настройки ядра в распакованные исходники ядра /usr/src/kernel/sources/kernel-source-2.6.37:
Теперь удаляем все ненужные ядра, отныне будем использовать только наше самодельное:
Запускаем конфигурацию ядра:
В Device Drivers -> Multiple devices driver support (RAID and LVM) делаем модули raid статическими:
В File systems делаем модули ext2 и ext3 статическими:
Собираем ядро:
Устанавливаем новое ядро:
Правим /etc/grub.d/grub.cfg, кардинально его упростив. После правки не забываем куда-нибудь сохранить новый config, чтобы после неосторожного обновления дистрибутива можно было восстановить:
Смотрим файл /boot/grub/device.map:
ata-MAXTOR_STM3250310AS_6RYJEGZR — воспоминания о жестком диске, который был установлен в старом сервере. Нам необходимо заменить на новый. Список всех дисков можно просмотреть так:
Правим /boot/grub/device.map:
Устанавливаем загрузчик:
Перезагружаемся...
Добавим 2й жесткий диск в raid массив:
Копируем таблицу разделов с 1го диска на 2й:
Смотрим, что получилось:
Активируем swap раздел на 2м диске:
mdadm автоматически подхватывает разделы с типом fd диска /dev/sdb, но нам это не нужно:
Удаляем автоматически добавленные устройства:
Добавляем разделы /dev/sdb1 и /dev/sdb3 в RAID 1:
Проверяем, что процесс пошел и на разделы /dev/sdb делается копия:
Такие дела. Мне не нравится, как происходит установка ядер в ALT Linux. Для пользователя это удобно, а для меня нет, поэтому все ядра я удалил и оставил только одно свое с поддержкой загрузки с программного RAID.
www.linuxconfig.org/Linux_Software_Raid_1_Setup
Диск с перенесенными данными:
/sbin/fdisk -l /dev/sda
Диск /dev/sda: 500.1 ГБ, 500107862016 байт
255 heads, 63 sectors/track, 60801 cylinders
Units = цилиндры of 16065 * 512 = 8225280 bytes
Disk identifier: 0x00000000
Устр-во Загр Начало Конец Блоки Id Система
/dev/sda1 1 64 514048+ 83 Linux
/dev/sda2 65 829 6144862+ 82 Linux своп / Solaris
/dev/sda3 830 60801 481725090 83 Linux
Пустой жесткий диск:
/sbin/fdisk -l /dev/sdb
Диск /dev/sdb: 500.1 ГБ, 500107862016 байт
255 heads, 63 sectors/track, 60801 cylinders
Units = цилиндры of 16065 * 512 = 8225280 bytes
Disk identifier: 0x1783f861
Устр-во Загр Начало Конец Блоки Id Система
На 1м диске меняем типы разделов на fd (linux raid), кроме /dev/sda2 — это swap раздел:
/sbin/sfdisk --change-id /dev/sda 1 fd
/sbin/sfdisk --change-id /dev/sda 3 fd
Создаем raid массив с первым жестким диском. Устройство /dev/md1 будет содержать раздел /dev/sda1 (там /boot) и, /dev/md3 — /dev/sda3 (там корневая файловая система):
/sbin/mdadm --create /dev/md1 --level=1 --raid-disks=2 missing /dev/sda1
/sbin/mdadm --create /dev/md3 --level=1 --raid-disks=2 missing /dev/sda3
Проверяем:
cat /proc/mdstat
Personalities : [raid1]
md1 : active raid1 sda1[1]
513984 blocks [2/1] [_U]
md3 : active raid1 sda3[1]
481724992 blocks [2/1] [_U]
Если пришлось перезагрузиться, снова подключить raid разделы можно командой:
/sbin/mdadm --auto-detect
Монтируем корневую файловую систему:
mkdir /mnt/old && mount /dev/md3 /mnt/old
Редактируем настройки mdadm.conf. Смотрим старые насторйки:
cat /mnt/old/etc/mdadm.conf
#
# /etc/mdadm.conf -- mdadm configuration file
#
# Customized for ALTLinux
# See complete sample on manual page and in documentation directory
#
# This is a minimalistic skeleton but it should work out-of:a+box!
#
MAILADDR root
PROGRAM /sbin/mdadm-syslog-events
DEVICE partitions
Добавляем наши raid устройства:
/sbin/mdadm --detail --scan >> /mnt/old/etc/mdadm.conf
Теперь файл выглядит так:
cat /mnt/old/etc/mdadm.conf
#
# /etc/mdadm.conf -- mdadm configuration file
#
# Customized for ALTLinux
# See complete sample on manual page and in documentation directory
#
# This is a minimalistic skeleton but it should work out-of:a+box!
#
MAILADDR root
PROGRAM /sbin/mdadm-syslog-events
DEVICE partitions
ARRAY /dev/md1 level=raid1 num-devices=2 UUID=510d9c07:30cf085b:5ad24bd1:97278a7d
ARRAY /dev/md3 level=raid1 num-devices=2 UUID=238fb70f:5062c6d3:f3093ac7:66b17487
Правим /etc/fstab. Старый выглядит так:
cat /mnt/old/etc/fstab
proc /proc proc nosuid,noexec,gid=proc 0 0
devpts /dev/pts devpts nosuid,noexec,gid=tty,mode=620 0 0
tmpfs /tmp tmpfs nosuid 0 0
UUID=84f7b84c-5b15-41c5-be7b-f25ee4d9fe44 / ext3 defaults,errors=remount-ro 0 0
UUID=b4d6e146-865c-4c2e-8906-27239a2be101 /boot ext2 nodev,nosuid,noexec,relatime 1 2
UUID=e78e7b68-dc62-4077-b97f-9868ee48e6c1 swap swap defaults 0 0
/dev/sr0 /media/cdrom udf,iso9660 ro,noauto,user,utf8 0 0
Заменяем UUID=* на /dev/md*, также подключаем 2 swap раздела — /dev/sda2 и /dev/sdb2:
proc /proc proc nosuid,noexec,gid=proc 0 0
devpts /dev/pts devpts nosuid,noexec,gid=tty,mode=620 0 0
tmpfs /tmp tmpfs nosuid 0 0
/dev/md3 / ext3 defaults,errors=remount-ro 0 0
/dev/md1 /boot ext2 nodev,nosuid,noexec,relatime 1 2
/dev/sda2 swap swap defaults 0 0
/dev/sdb2 swap swap defaults 0 0
/dev/sr0 /media/cdrom udf,iso9660 ro,noauto,user,utf8 0 0
Заходим в старую систему, используя chroot:
mount -o bind /dev /mnt/old/dev/ && mount -o bind /proc /mnt/old/proc/ && mount -o bind /sys /mnt/old/sys/
/sbin/chroot /mnt/old/
Монтируем в ней /boot раздел (т.к. он располагается на /dev/md1):
mount /dev/md1 /boot/
Теперь нам придется пересобрать ядро для того, чтобы оно включало в себя статически вкомпилированные модули raid и ext3, иначе при загрузке система зависнет при попытке смонтировать корневую файловую систему с устройства /dev/md3:
Устанавливаем подходящее нам ядро и исходники ядра (в моем случае — версии 2.6.37):
apt-get install kernel-image-std-pae kernel-source-2.6.37
Копируем настройки ядра в распакованные исходники ядра /usr/src/kernel/sources/kernel-source-2.6.37:
cp /boot/config-2.6.35-std-pae-alt9 /usr/src/kernel/sources/kernel-source-2.6.37/.config
Теперь удаляем все ненужные ядра, отныне будем использовать только наше самодельное:
apt-get remove kernel-image-std-pae
Запускаем конфигурацию ядра:
make menuconfig
В Device Drivers -> Multiple devices driver support (RAID and LVM) делаем модули raid статическими:
В File systems делаем модули ext2 и ext3 статическими:
Собираем ядро:
make all
make modules_install
Устанавливаем новое ядро:
cp /usr/src/kernel/sources/kernel-source-2.6.37/arch/x86/boot/bzImage /boot/vmlinuz-2.6.37
cp /usr/src/kernel/sources/kernel-source-2.6.37/System.map /boot/System.map-2.6.37
/sbin/mkinitrd /boot/initrd.img-2.6.37 2.6.37
Правим /etc/grub.d/grub.cfg, кардинально его упростив. После правки не забываем куда-нибудь сохранить новый config, чтобы после неосторожного обновления дистрибутива можно было восстановить:
set timeout=5
menuentry "ALT Linux 2.6.37 PAE MDRAID " --class gnu-linux --class gnu --class os {
set root='(md1)'
search --no-floppy --fs-uuid --set b4d6e146-865c-4c2e-8906-27239a2be101
echo 'Loading Linux ...'
linux /vmlinuz-2.6.37 root=/dev/md3 ro panic=30
echo 'Loading initial ramdisk ...'
initrd /initrd.img-2.6.37
}
Смотрим файл /boot/grub/device.map:
cat /boot/grub/device.map
(fd0) /dev/fd0
(hd0) /dev/disk/by-id/ata-MAXTOR_STM3250310AS_6RYJEGZR
ata-MAXTOR_STM3250310AS_6RYJEGZR — воспоминания о жестком диске, который был установлен в старом сервере. Нам необходимо заменить на новый. Список всех дисков можно просмотреть так:
ls /dev/disk/by-id/
Правим /boot/grub/device.map:
(fd0) /dev/fd0
(hd0) /dev/disk/by-id/ata-WDC_WD5003ABYX-01WERA0_WD-WMAYP0095893
Устанавливаем загрузчик:
/usr/sbin/grub-install /dev/md1
Перезагружаемся...
Добавим 2й жесткий диск в raid массив:
Копируем таблицу разделов с 1го диска на 2й:
/sbin/sfdisk -d /dev/sda | /sbin/sfdisk /dev/sdb
Смотрим, что получилось:
/sbin/fdisk -l /dev/sdb
Disk /dev/sdb: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders, всего 976773168 секторов
Units = секторы of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x1783f861
Устр-во Загр Начало Конец Блоки Id Система
/dev/sdb1 63 1028159 514048+ fd Автоопределение Linux raid
/dev/sdb2 1028160 13317884 6144862+ 82 Linux своп / Solaris
/dev/sdb3 13317885 976768064 481725090 fd Автоопределение Linux raid
Активируем swap раздел на 2м диске:
/sbin/mkswap /dev/sdb2
/sbin/swapon /dev/sdb2
mdadm автоматически подхватывает разделы с типом fd диска /dev/sdb, но нам это не нужно:
cat /proc/mdstat
Personalities : [linear] [raid0] [raid1] [raid10] [raid6] [raid5] [raid4] [multipath] [faulty]
md126 : inactive sdb3[0](S)
481724992 blocks
md127 : inactive sdb1[0](S)
513984 blocks
md1 : active raid1 sda1[1]
513984 blocks [2/1] [_U]
md3 : active raid1 sda3[1]
481724992 blocks [2/1] [_U]
Удаляем автоматически добавленные устройства:
/sbin/mdadm -S /dev/md126
/sbin/mdadm -S /dev/md127
Добавляем разделы /dev/sdb1 и /dev/sdb3 в RAID 1:
/sbin/mdadm --add /dev/md1 /dev/sdb1
/sbin/mdadm --add /dev/md3 /dev/sdb3
Проверяем, что процесс пошел и на разделы /dev/sdb делается копия:
cat /proc/mdstat
Personalities : [linear] [raid0] [raid1] [raid10] [raid6] [raid5] [raid4] [multipath] [faulty]
md1 : active raid1 sdb1[0] sda1[1]
513984 blocks [2/2] [UU]
md3 : active raid1 sdb3[2] sda3[1]
481724992 blocks [2/1] [_U]
[>....................] recovery = 0.3% (1560448/481724992) finish=76.9min speed=104029K/sec
unused devices: <none>
Такие дела. Мне не нравится, как происходит установка ядер в ALT Linux. Для пользователя это удобно, а для меня нет, поэтому все ядра я удалил и оставил только одно свое с поддержкой загрузки с программного RAID.
www.linuxconfig.org/Linux_Software_Raid_1_Setup
Комментарии (3)
RSS свернуть / развернутьMarkony
yababay
Sergei_T
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.