включить редактирование

настройка RAID1 GRUB 2 в Debian 6

Создан:

Есть два идентичных жестких дисков. 

/dev/sda (установлена система) и /dev/sdb
Необходимо создать raid1 массив ( чтобы при выходе одного из винтов система смогла легко загрузиться ). 
Т.е мы создадим raid1 устройство включим в него /dev/sdb – скопируем на него систему, и после удачной перезагрузки с raid1 подключим к нему также и /dev/sda
Приступим :
#apt-get install initramfs-tools mdadm

Не обязательно так как по крайней мере модуль raid1 уже загружен На базе этого списка можно сделать скрипт который загрузит необходимые модули, сохраните этот код в файл modadd и сделайте исполняемым:

#!/bin/bash
modprobe md;
modprobe linear;
modprobe multipath;
modprobe raid0;
modprobe raid1;
modprobe raid5;
modprobe raid6;
modprobe raid10;
#chmod +x modadd
#./modadd

Делаем второй диск sdb идентичный первому, для этого копируем разделы с /dev/sda на /dev/sdb :

#sfdisk -d /dev/sda –force | sfdisk /dev/sdb

--force (опция d это сброс дампа) Проверяем одинаковая ли таблица – командой:

#fdisk -l

Теперь укажем для sdb тип разделов Linux raid autodetect.

#fdisk /dev/sdb 
sectors (command ‘u’).
Command (m for help): t
Partition number (1-5): 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-5): 2
Hex code (type L to list codes): fd
You cannot change a partition into an extended one or vice versa
Delete it first.
Command (m for help): t
Partition number (1-5): 5
Hex code (type L to list codes): fd
Changed system type of partition 5 to fd (Linux raid autodetect)
Command (m for help):w

Все теперь можно проверить не было ли уже попыток сделать raid на устройстве sdb ( и заодно затереть если все таки попытки создать были ).

#mdadm --zero-superblock /dev/sdb1
#mdadm --zero-superblock /dev/sdb5

Приступаем к созданию raid1 :

#mdadm --create --verbose /dev/md0 –level=1 –raid-disks=2 missing /dev/sdb1 
#mdadm --create --verbose /dev/md1 –level=1 –raid-disks=2 missing /dev/sdb5

extended раздел пропускаем. проверяем

#cat /proc/mdstat
[_U] [U_] – означает что raid поврежден, [UU] – что все в порядке.
Создаем файловые системы
#mkfs.ext3 /dev/md0 mkswap /dev/md1

Теперь отредактируем конфигурационные файлы : Оставим default конфиг -

#cp /etc/mdadm/mdadm.conf /etc/mdadm/mdadm.conf.default

И создадим новый – текущий :

mdadm --detail --scan >> mdadm.conf

 --это конфигурация raidA читается при загрузке машины. Приводим fstab и mtab к такому виду : (делаю бэкап fstab и mtab)

#cat /etc/fstab 
proc /proc proc defaults 0 0 # / was on /dev/sda1 during installation #UUID=b9a8f1ba-0648-4054-99a2-f4b116176c31 / ext3 errors=remount-ro 0 1 /dev/md0 / ext3 errors=remount-ro 0 1 # swap was on /dev/sda5 during installation #UUID=16c36fec-88cf-4259-b40a-ae4e6aa0ecfe none swap sw 0 0 /dev/md1 none swap sw 0 0 /dev/scd0 /media/cdrom0 udf,iso9660 user,noauto 0 0 /dev/scd0 /media/floppy0 auto rw,user,noauto 0 0
# cat /etc/mtab
/dev/md0 / ext3 rw,errors=remount-ro 0 0 tmpfs /lib/init/rw tmpfs rw,nosuid,mode=0755 0 0 proc /proc proc rw,noexec,nosuid,nodev 0 0 sysfs /sys sysfs rw,noexec,nosuid,nodev 0 0 udev /dev tmpfs rw,mode=0755 0 0 tmpfs /dev/shm tmpfs rw,nosuid,nodev 0 0 devpts /dev/pts devpts rw,noexec,nosuid,gid=5,mode=620 0 0

вообщем тут на оригинальные UUID меняем наш рэйд /dev/md0 и /dev/md1 (для swap) далее необходимо в /etc/default/grub раскоментировать строку: ”GRUB terminal=console”

#update-grub

далее ОБЯЗАТЕЛЬНО УСТАНАВЛИВАЕМ GRUB на sdb 

grub-install /dev/sdb

и для уверенности я всегда делаю

dpkg-reconfigure grub-pc

пустую строку так и оставляем жму OK далее строка по умолчанию OK далее выбираю sdb и OK все загрузчик установлен теперь обязательно

#update-grub

Дальше доводим ramdisk до актуального состояния:

#update-initramfs -u

ЗАТЕМ делаем строку для старта с md0 чтобы можно было работать с диском sda (а то ж с него загружена система и его не поправишь)

#vim /boot/grub/grub.cfg и там беру заготовку типа 
menuentry 'Debian GNU/Linux, with Linux 2.6.32-5-686' --class debian --class gnu-linux --class gnu --class os {
       insmod part_msdos
       insmod ext2
       set root='(hd0, msdos)'
       search --no-floppy --fs-uuid --set 824fbe77-1b29-474f-9c86-6b3cb9d0f129
       echo    'Loading Linux 2.6.32-5-686 ...'
       linux   /boot/vmlinuz-2.6.32-5-686 root=UUID=824fbe77-1b29-474f-9c86-6b3cb9d0f129 ro  quiet
       echo    'Loading initial ramdisk ...'
       initrd  /boot/initrd.img-2.6.32-5-686
}

делаю бэкап файла /etc/grub.d/40_custom и в него пишем

menuentry 'Debian GNU/Linux, with Linux 2.6.32-5-686' --class debian --class gnu-linux --class gnu --class os {
       insmod raid
       insmod mdraid
       insmod part_msdos
       insmod ext2
       set root='(md/0)'
       search --no-floppy --fs-uuid --set 824fbe77-1b29-474f-9c86-6b3cb9d0f129
       echo    'Loading Linux 2.6.32-5-686 ...'
       linux   /boot/vmlinuz-2.6.32-5-686 root=/dev/md0 ro  quiet
       echo    'Loading initial ramdisk ...'
       initrd  /boot/initrd.img-2.6.32-5-686
}

созаем и монтируем raid

#create /mnt/md0
#create /mnt/md1
#mount /dev/md0 /mnt/md0

Теперь копируем систему на наш raid1:

#cp -dpxR / /mnt/md0

и перезагружаем машину и в старте выбираем последнюю строку и загружаем комп c raid

#cat /proc/mdstat

Самое время приступить к добавлению sda в наш RAID1. Меняем разделы sda на Linux raid autodetect (по аналогии с sdb)

#fdisk /dev/sda

ntgthm ставим grub на sda

#grub-install /dev/sdb
#dpkg-reconfigure grub-pc
#update-grub

Дальше доводим ramdisk до актуального состояния:

#update-initramfs -u

и только теперь (!) можно добавить sda1 в raid 

#mdadm /dev/md0 --add /dev/sda1

и sda5 (swap) 

#mdadm –add /dev/md1 /dev/sda5

#watch cat /proc/mdstat

Приводим конфигурационный файл нашего RAID к актуальному состоянию : комментирую последние строки в mdadm.conf и

#mdadm –examine –scan > /etc/mdadm/mdadm.conf

все

Тестирование. Давайте попробуем сэмулировать сбой жесткого диска. Абсолютно неважно, какой из дисков вы выберите для эксперимента. Я выбрал /dev/sdb 

Для эмуляции сбоя необходимо либо остановить систему и физически удалить второй винчестер (/dev/sdb) из компьютера, либо сэмулировать это на программном уровне. Останавливаем массив:
#mdadm -S /dev/md0
#mdadm -S /dev/md1

помечаем его как fail и удаляем

#mdadm --manage /dev/md0 --fail /dev/sdb1
#mdadm --manage /dev/md1 --fail /dev/sdb5
#mdadm --manage /dev/md0 --remove /dev/sdb1
#mdadm --manage /dev/md1 --remove /dev/sdb5

после отключения винта загрузка с одного из винтов затем выключение подкл снова этого же винта загрузка и этот же самый винт в рейде уже не будет, естественно тока swap подцепиться. Поэтому его просто попишем нулями тот которого не видно в рейде у меня sdb1

#mdadm --zero-superblock /dev/sdb1

все теперь можно добовлять его туда

#mdadm /dev/md0 -a /dev/sdb1

все он синкается

#cat /proc/mdstat или
#mdadm --detail --scan /dev/md0

восстановление GRUB

гружусь с LiveCD Ubuntu той разрядности что и система

#sudo fdisk -l
#sudo mount /dev/sdXY /mnt
#sudo mount --bind /dev/ /mnt/dev (sudo mount -t proc /mnt/proc)
#sudo mount --bind /proc/ /mnt/proc (sudo mount -o bind /dev /mnt/dev)
#sudo chroot /mnt (sudo chroot /mnt /bin/bash)
#grub-install /dev/sdX
#update-grub
#exit
#sudo umount /mnt/dev
#sudo umount /mnt/boot
#sudo umount /mnt
#reboot

Автор: awful Просмотров: 10915


Рейтинг статьи: 22

Общий рейтинг из всех статей автора :
{0 [888]} [ - - - - - - - - - - ]

Общий рейтинг из всех статей на сайте :
{0 [888]} [ - - - - - - - - - - ]

[?]
Комментарии 3

anon

> mount -t proc nano /mnt/proc > nano Штоа?

10
Статистика комментария: Голосов: 3 Пользователей +/-: 1/0 Гостей +/-: 1/1

awful

спс поправил

1
Статистика комментария: Голосов: 1 Пользователей +/-: 0/0 Гостей +/-: 1/0

user

супер! подробный ман. спасибоthanks

6
Статистика комментария: Голосов: 6 Пользователей +/-: 0/0 Гостей +/-: 6/0

Добавить комментарий к статье


Ctrl+Enter

Для активации кнопки, введите символы, которые Вы видите на картинки.

новая

тема

Заметки на тему IT

Монитор поиска
[x]
Новое сообщение

Сообщения в чате

Вы спрашиваете у гостей/у зарегистрированных/ У Вас спрашивают
всем Ctrl+Enter
зарегистрированным Ctrl+Enter
Ctrl+Enter

Краткая инструкция по работе с чатом

  • Вы должны ввести имя, которое будет запомнено и применяться для чата и комментариев на сайте.
  • Выбрать одну из возможностей
    "Вы спрашиваете у гостей/
    у зарегистрированных/
    У Вас спрашивают"
  • Кликните на один из способов и появиться дополнительная информация