Использованы матариалы: http://users.piuha.net/martti/comp/ubuntu/en/raid.html

обсуждаем на форуме: http://www.ubuntu.liski.su/index.php?topic=71.0

Зачем это нужно: Выдержка из Википедии:

RAID 1 (Mirroring — «зеркало»). Он имеет защиту от выхода из строя половины имеющихся аппаратных средств (в общем случае — одного из двух жёстких дисков), обеспечивает приемлемую скорость записи и выигрыш по скорости чтения за счёт распараллеливания запросов. Недостаток заключается в том, что приходится выплачивать стоимость двух жёстких дисков, получая полезный объем одного жёсткого диска.

Изначально предполагается, что жёсткий диск — вещь надёжная. Соответственно, вероятность выхода из строя сразу двух дисков равна (по формуле) произведению вероятностей, то есть ниже на порядки! К сожалению, реальная жизнь — не теория. Два винчестера берутся из одной партии и работают в одинаковых условиях, а при выходе из строя одного из дисков нагрузка на оставшийся увеличивается, поэтому на практике при выходе из строя одного из дисков следует срочно принимать меры — вновь восстанавливать избыточность. Для этого с любым уровнем RAID (кроме нулевого) рекомендуют использовать диски горячего резерва HotSpare. Достоинство такого подхода — поддержание постоянной надёжности. Недостаток — ещё большие издержки (то есть стоимость трёх винчестеров для хранения объёма одного диска).

1. Установка

Итак, устанавливаем в компьютер, который будет нашим сервером, два SATA или два IDE жестких диска, чтобы использовать их как RAID1 массив (т.е. 2 hdd в зеркале). Далее берем дистрибутив Ubuntu "Alternate install CD" или его серверный вариант, и начинаем установку Ubuntu 6.06.

Я сразу начну с того момента, когда установщик предлагает разметку жестких дисков.

Выбираем пункт меню: изменить таблицу разделов вручную.

Предполагается, что жесткие диски sda и sdb (hda и hdb - в случае IDE), еще не имеют разделов, или мы тут же сразу стираем на них все, что там ранее было установлено.

ubuntu1.png
Рис. 1 - Два пустых диска- sda и sdb.

P.S. Рисунки на английском, диски SATA и виртуальные, но это лучше, чем ни каких рисунков.

Далее создаем как показано на рисунках ниже- на каждом диске по 3 раздела, т. е. для каждого будующего тома по одному разделу на каждом диске.

Примечание: необходимо, как минимум 2: один для корневого тома (точка монтирования / и другой для тома подкачки swap. В нашем примере добавлен еще третий том с точкой монтирования- /home.

В настройка каждого раздел должено быть выбрано первичный и использовать как "физический том для RAID" (0xFD). (!!!!!)

Кроме того быть первый раздел должен быть еще и загрузочным.

ubuntu1a.png
Рис. 2 - Установка использовать как и флага загрузки (bootable flag)


Создаем новые разделы,по размерам и принципу применения.
ubuntu2.png
Рис. 3. На изображение 3 видны, два диска с разделами приготовленными для RAID-1 томов (На каждом по три раздела).

Нажимаем на верхнюю надпись-конфигурирование программного  RAID.

И в новом окне, поочереди, создаем три (3) MD (multidisk) устройства, и конфигурируем их как RAID-1,

по 2 раздела в каждом устройстве. (т. е. соглашаемся по умолчанию), без запасных девайсов (то же по умолчанию).

ubuntu3.png
Рис. 4 - создаем новый MD devices

ubuntu4.png
Рис. 5 - Присваиваем тип: RAID-1

Рис. 6. На риснуке выше 2 раздела в раиде.

Рис. 7. Выше видим и соглашаемся: Нет запасных устройств.

Далее нажимаем продолжение и устанавливаем-* ( звездочки), пробелом, напротив парных разделов,

Таким образом создаем и настраиваем Multidiski- MD устройства.

Формула их настройки выглядит так:

md0=sda1+sdb1, md1=sda2+sdb2 и md2=sda3+sdb3

или для IDE

md0=hda1+hdb1, md1=hda2+hdb2 и md2=hda3+hdb3.


ubuntu5.png
Рис. 8 - Выбираем MD компоненты. Затем  также. и для оставшихся разделов.

В конце, для подготовленных MD устройств, выбираем соответствующие файловые системы и точки монтирования.

Нажимаем на пункт меню: Настройка разделов закончена.

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

загрузку с отказавшего массива?  В целях обеспечения беспрерывной работы следует ответить утвердительно,

но следует помнить, что это потенциальная угроза сохранности данных и необходимо обеспечить регулярный контроль за состоянием массива.

ubuntu6.png
Рис. 9 - видны выбраные файловые системы и точки монтирования. Корневой /. свап и home/

Рис. 10.Записываем все изменения на диск. И заканчиваем установку дистрибутива в обычном порядке:

После окончания установки дистрибутива, обязательно установите Grub на второй диск, чтобы имееть возможность грузиться с этого диска в будущем, если сломается первый!

root@serv1:/home/victor# sudo grub-install /dev/sda  root@serv1:/home/victor# sudo grub grub> device (hd1) /dev/sdb grub> root (hd1,0) grub> setup (hd1) grub> quit   

Добавляем загрузку со второго (second) HD в grub

Редактируем файл menu.list

nano -w  /boot/grub/menu.lst

### To boot if sda fails ### title           Ubuntu 8.04.1, kernel 2.6.24-19-generic /dev/sda fail root            (hd1,0) kernel          /boot/vmlinuz-2.6.24-19-generic root=/dev/md0 ro quiet splash initrd          /boot/initrd.img-2.6.24-19-generic ### End mod ###

2. Проверка правильности настройки и работы RAID-1 массива.

Для проверки правильности настроики необходимо выполнить следующие команды:

root@serv1:/home/victor# grep /dev/md /etc/fstab /dev/md0 / ext3 defaults,errors=remount-ro 0 1 /dev/md2 /home ext3 defaults 0 2 /dev/md1 none swap sw 0 0  root@serv1:/home/victor# df -h / /home Filesystem Size Used Avail Use% Mounted on /dev/md0 9.2G 2.1G 6.7G 24% / /dev/md2 11G 129M 9.5G 2% /home 

и

root@serv1:/home/victor# cat /proc/mdstat Personalities : [raid1] md2 : active raid1 sda3[0] sdb3[1]  10707200 blocks [2/1] [UU]  md1 : active raid1 sda2[0] sdb2[1]  489856 blocks [2/2] [UU]  md0 : active raid1 sda1[0] sdb1[1]  9767424 blocks [2/2] [UU]  root@serv1:/home/victor# sudo mdadm --query --detail /dev/md0 /dev/md0: Version : 00.90.03 Creation Time : Wed Nov 12 00:57:28 2006 Raid Level : raid1 Array Size : 9767424 (9.31 GiB 10.00 GB) Device Size : 9767424 (9.31 GiB 10.00 GB) Raid Devices : 2 Total Devices : 2 Preferred Minor : 0 Persistence : Superblock is persistent Update Time : Wed Nov 12 04:38:19 2006 State : clean Active Devices : 2 Working Devices : 2 Failed Devices : 0 Spare Devices : 0 UUID : 754cd310:4f102bc3:b590c767:672a9c4e Events : 0.11700 Number Major Minor RaidDevice State 0 8 1 0 active sync /dev/sda1 1 8 17 1 active sync /dev/sdb1 

3. Восстановление RAID-1, при выходе из строя одного из дисков.

При выходе из строя одного из дисков (я отсоединил диск sda), мы при проверке увидим следующие записи:

root@serv1:/home/victor# cat /proc/mdstat

Personalities : [raid1] md2 : active raid1 sda3[0] 10707200 blocks [2/1] [U_] md1 : active raid1 sda2[0] 489856 blocks [2/1] [U_] md0 : active raid1 sda1[0] 9767424 blocks [2/1] [U_] unused devices:   root@serv1:/home/victor# sudo mdadm --query --detail /dev/md0 /dev/md0: Version : 00.90.03 Creation Time : Wed Nov 12 00:57:28 2006 Raid Level : raid1 Array Size : 9767424 (9.31 GiB 10.00 GB) Device Size : 9767424 (9.31 GiB 10.00 GB) Raid Devices : 2 Total Devices : 1 Preferred Minor : 0 Persistence : Superblock is persistent Update Time : Wed Nov 12 04:45:52 2006 State : active, degraded Active Devices : 1 Working Devices : 1 Failed Devices : 0 Spare Devices : 0 UUID : 754cd310:4f102bc3:b590c767:672a9c4e Events : 0.11812 Number Major Minor RaidDevice State 0 8 1 0 active sync /dev/sda1 1 0 0 - removed 

Присоединяем новый диск. С помощью утилиты fdisk, создаем на нем соответствующие разделы: sdb1, sdb2 и sdb3 разделы.

sfdisk -d /dev/hda | sfdisk /dev/hdb

Маркируем их с помощью команды fdisk t, как fd.

Вы должны увидеть примерно вот такую картину:root@serv1:/home/victor# fdiskКоманда (m для справки): p

Диск /dev/sdb: 80.0 ГБ, 80026361856 байт 255 головок, 63 секторов/дорожку, 9729 цилиндров Единицы = цилиндры по 16065 * 512 = 8225280 байт  Устр-во Загр     Начало       Конец       Блоки   Id  Система /dev/sdb1   *           1        4863    39062016   fd  Автоопределение Linux raid /dev/sdb2            4864        9118    34178287+  fd  Автоопределение Linux raid /dev/sdb3            9119        9240      979965   fd  Автоопределение Linux raid  Команда (m для справки):

Затем выполняем следующиие команды: root@serv1:/home/victor# sudo mdadm --add /dev/md0 /dev/sdb1

mdadm: hot added /dev/sdb1  root@serv1:/home/victor# sudo mdadm --add /dev/md1 /dev/sdb2 mdadm: hot added /dev/sdb2  root@serv1:/home/victor# sudo mdadm --add /dev/md2 /dev/sdb3 mdadm: hot added /dev/sdb3  

Проверяем:root@serv1:/home/victor# cat /proc/mdstat

Personalities : [raid1] md2 : active raid1 sdb3[2] sda3[0] 10707200 blocks [2/1] [U_] resync=DELAYED md1 : active raid1 sda2[0] sdb2[1] 489856 blocks [2/2] [UU] md0 : active raid1 sdb1[2] sda1[0] 9767424 blocks [2/1] [U_] [>....................] recovery = 2.2% (215168/9767424) finish=16.2min speed=9780K/sec unused devices:   

После синхронизации дисков вывод команд проверки, должен быть таким, как до замены диска. 

В версии Ubuntu 7.10 необходимо обратить внимание на ошибку, которая обсуждалась здесь:

https://bugs.launchpad.net/ubuntu/+bug/120375

https://bugs.launchpad.net/ubuntu/+bug/157648

 

Все!!!

ОБСУДИТЬ НА ФОРУМЕ: http://www.ubuntu.liski.su/index.php?topic=71.0

Для версии 8.04 для исправления известного бага, можно предложить решение от: http://kuparinen.org/martti/comp/ubuntu/en/raid.html

Внимание: Известный баг  serious bug  о невозможности произвести загрузку при одном диске. Исправить можно с помощью   patch .

cd /tmp wget http://www.iki.fi/kuparine/comp/ubuntu/en/local.diff cd /usr/share/initramfs-tools/scripts sudo patch -p0 < /tmp/local.diff sudo update-initramfs -k all -u 

Пожалуйста помните, что патч надо применять всякий раз при обновлении ядра!!!!

В версии 8.04.3 и выше баг устранен!!!!