softRAID 1

softRAID 1

Как создать софт рейд массив в ОС Linux? Есть два варианта. Первый — если в установке ОС есть возможность сделать RAID во время разметки дисков (например, Debian). Второй — создание RAID из уже установленной ОС.

Теперь рассмотрим второй вариант.

Устанавливаем ОС на один диск из RAID массива. Я использовал данный метод на Proxmox, поэтому использую deb пакеты.

Если вы будете использовать softRAID на Proxmox, то имейте ввиду, что официально поддержки softRAID нет и вы делаете все на свой страх и риск.

Установим необходимые пакеты:
aptitude update && aptitude install mdadm screen parted

Для Proxmox, то для установки ниже описанных пакетов нужно добавить бесплатный репозиторий командой
echo "deb http://download.proxmox.com/debian wheezy pve pve-no-subscription" >> /etc/apt/sources.list.d/proxmox.list

Проверим используемые диски. Тут можно сделать командой fdisk -l, (выведет подробный список разделов), команду df (выведет список используемого места), команду parted -s /dev/sdХ print в случае использования GPT. Допустим, что у нас есть два диска: sda — диск с системой, sdb — пустой диск.
Если необходимо — затираем данные на SDB: dd if=/dev/zero of=/dev/sdb bs=100M count=1 и делаем перезагрузку.
Копируем логические разделы с диска на диск.
sgdisk -R /dev/sdb /dev/sda

Присвоим новому жесткому диску случайный UUID.
sgdisk -G /dev/sdb
sgdisk --randomize-guids --move-second-header /dev/sdb
Посмотрим результат операций.
parted -s /dev/sda print

Number  Start   End     Size    File system  Name     Flags
 1      1049kB  2097kB  1049kB               primary  bios_grub
 2      2097kB  537MB   535MB   ext3         primary  boot
 3      537MB   500GB   500GB                primary  lvm

parted -s /dev/sdb print

Number Start End Size File system Name Flags
1 1049kB 2097kB 1049kB primary bios_grub
2 2097kB 537MB 535MB primary boot
3 537MB 500GB 500GB primary lvm

Если у вас такой же результат — время сменить флаги скопированных разделов на raid.
parted -s /dev/sdb set 2 "raid" on
parted -s /dev/sdb set 3 "raid" on
Смотрим результат
parted -s /dev/sdb print

Number  Start   End     Size    File system  Name     Flags
 1      1049kB  2097kB  1049kB               primary  bios_grub
 2      2097kB  537MB   535MB                primary  raid
 3      537MB   500GB   500GB                primary  raid

Идем дальше и на всякий случай очищаем суперблоки. Что это?

Каждое устройство в RAID-массиве md может содержать метаданные (не путайте с метаданными файловых систем), иногда называемые суперблоком (superblock). Информация из суперблоков на устройствах, входящих в массив, позволяет драйверу md корректно заново собирать массив после его остановки. Особенностью суперблока является то, что данных хранимые в нём, содержатся в процессорно-независимом формате, то есть вы можете свободно перемещать RAID-массив между различными платформами.

ashep.org

mdadm --zero-superblock /dev/sdb2
mdadm --zero-superblock /dev/sdb3

# mdadm --zero-superblock /dev/sdb2
mdadm: Unrecognised md component device - /dev/sdb2
# mdadm --zero-superblock /dev/sdb3
mdadm: Unrecognised md component device - /dev/sdb3

Данный вывод говорит нам о том, что диск не участвовал в RAID. Можно создавать RAID массив. Внимание, процесс долгий и зависит от размера ваших дисков на 1 ТБ занимает около 3-4 часов.
mdadm --create /dev/md1 --level=1 --raid-disks=2 missing /dev/sdb2
mdadm --create /dev/md2 --level=1 --raid-disks=2 missing /dev/sdb3

В конце должна вывестись вот это строка

mdadm: array /dev/md2 started.

Посмотрим на рехультат создания массивов.
cat /proc/mdstat

Personalities : [raid1]
md2 : active raid1 sdb3[1]
      487731008 blocks super 1.2 [2/1] [_U]

md1 : active raid1 sdb2[1]
      521920 blocks super 1.2 [2/1] [_U]

В выводе видно состояние массивов — [_U]. Это обозначает, что в массиве есть лишь один диск. Так и должно быть, ведь второй (первый) мы в массив еще не включили.
Добавляем информацию о массивах в конфигурационный файл:

cp /etc/mdadm/mdadm.conf /etc/mdadm/mdadm.conf_orig
mdadm --examine --scan >> /etc/mdadm/mdadm.conf

Скопируем раздел boot на соответствующий массив
mkfs.ext3 /dev/md1
mkdir /mnt/md1
mount /dev/md1 /mnt/md1
cp -ax /boot/* /mnt/md1
umount /mnt/md1
rmdir /mnt/md1

Далее нам нужно закоментировать в /etc/fstab строку описывающую монтирование boot-раздела с UUID и пропишем монтирование соответствующего массива:
nano /etc/fstab

# <file system> <mount point> <type> <options> <dump> <pass>
/dev/pve/root / ext3 errors=remount-ro 0 1
/dev/pve/data /var/lib/vz ext3 defaults 0 1
# UUID=d097457f-cac5-4c7f-9caa-5939785c6f36 /boot ext3 defaults 0 1
/dev/pve/swap none swap sw 0 0
proc /proc proc defaults 0 0
/dev/md1 /boot ext3 defaults 0 1

Если вы используете raid на Proxmox, то первое время удалите параметр errors=remount-ro. Если ваш диск повредится или RAID был собран не корректно, то через некоторое время вы потеряете доступ к VM на хосте. После сбора RAID создайте WM на хосте и нагрузите на серьезную операцию (архивирование, например) на пару часов и перезагрузите хост. Если всё хорошо — параметр можно включить.

ОПИСАТЬ ЗДЕСЬ LIVE CD И ОТКЛЮЧЕНИЕ FSTAB

Перезагружаемся и настроим GRUB загрузчик.
Настраиваем GRUB (делаем это абсолютно так же как и в оригинальной статье):
echo 'GRUB_DISABLE_LINUX_UUID=true' >> /etc/default/grub
echo 'GRUB_PRELOAD_MODULES="raid dmraid"' >> /etc/default/grub
echo 'GRUB_TERMINAL=console' >> /etc/default/grub
echo raid1 >> /etc/modules
echo raid1 >> /etc/initramfs-tools/modules

Переустанавливаем GRUB:
grub-install /dev/sda —recheck
grub-install /dev/sdb —recheck
update-grub
update-initramfs -u

Теперь добавим раздел boot с первого (sda) диска в массив. Сначала пометим его флагом «raid», а затем и добавим:

parted -s /dev/sda set 2 "raid" on
mdadm --add /dev/md1 /dev/sda2
mdadm: added /dev/sda2

Если посмотреть теперь состояние массивов:

cat /proc/mdstat

Personalities : [raid1]
md2 : active (auto-read-only) raid1 sdb3[1]
      487731008 blocks super 1.2 [2/1] [_U]

md1 : active raid1 sda2[2] sdb2[1]
      521920 blocks super 1.2 [2/2] [UU]

unused devices: <none>

то мы увидим, что md1 стал «двухдисковым» — [UU]. Теперь нужно перенести основной раздел — LVM.
screen bash
pvcreate /dev/md2
vgextend pve /dev/md2
pvmove /dev/sda3 /dev/md2
vgreduce pve /dev/sda3
pvremove /dev/sda3

Добавляем раздел sda3 в массив:
parted -s /dev/sda set 3 "raid" on
mdadm --add /dev/md2 /dev/sda3
cat /proc/mdstat

Personalities : [raid1]
md2 : active raid1 sda3[2] sdb3[1]
      487731008 blocks super 1.2 [2/1] [_U]
      [>....................]  recovery =  0.3% (1923072/487731008) finish=155.4min speed=52070K/sec

md1 : active raid1 sda2[2] sdb2[1]
      521920 blocks super 1.2 [2/2] [UU]

unused devices: <none>

 

Оригинальные статьи.
http://habrahabr.ru/post/218757/

http://ashep.org/2012/programmnyj-raid-v-linux-metadannye-mdadm-i-sozdanie-massiva/#.VetfeJdN2M8

 

 

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *