Работа с Raid 5

Raid

В данном репозитории вы увидите: Vagrant файл для стенда с виртуальной машиной на базе CentOS, файл Readme с пошаговой инструкцией по выполнению ДЗ, скрипт, который при выполнении в vagrant будет сам собирать raid, добавлять в автозагрузку, ломать его, чинить и создавать на нём партиции.

Для начала установите VirtualBox на локальную машину. Установите сам Vagrant: Переходим на https://www.vagrantup.com/downloads.html выбираем соответствующую версию. В данном случае Debian 64-bit и версия 2.2.6. Копируем ссылку и в консоли выполняем:

curl -O https://releases.hashicorp.com/vagrant/2.2.6/vagrant_2.2.6_x86_64.deb && sudo dpkg -i vagrant_2.2.6_x86_64.deb

После успешного окончания будет установлен Vagrant. Проверить установку можно командой:

vagrant -v

Vagrant

Начальный стенд можно взять отсюда: https://github.com/erlong15/otus-linux В принципе на нем уже можно собрать любой RAID. В моем репозитории присутствует отредактированный Vagrant-файл, с помощью которого можно собрать любой рейд, для каждого дополнительного диска необходимо добавить в Vagrant-файл следующий блок:

    :sata6 => { :dfile => './sata6.vdi', # Путь, по которому будет создан файл диска 
    :size => 250, # Размер диска в мегабайтах 
    :port => 6 # Номер порта на который будет зацеплен диск 
    },

Обязательно увеличив номер порта и изменив имя файла диска, чтобы исключить дублирование. При редактировании скаченного Vagrant файла у меня была ошибка ""rsync" could not be found on your PATH. Make sure that rsync is properly installed on your system and available on the PATH.", которую я исправил пользуясь руководством по ссылке https://qna.habr.com/q/271364, где было необходимо установить плагин vagrant-vbguest:

    vagrant plugin install vagrant-vbguest

и дописать в Vagrant файл

    config.vm.synced_folder ".", "/vagrant", type: "virtualbox"

Далее подразумеваем, что мы добавили в Vagrantfile 5-ый диск.Добавить в Vagrantfile еще дисков Далее нужно определиться какого уровня RAID будем собирать. Для это посмотрим, какие блочные устройства у нас есть и исходя из их кол-во, размера и поставленной задачи определимся. Я это делал командой lsblk

Создание Raid5

При создании реида я пользовался методичкой данной в домашнем задании, а так же хорошим мануалом с пошаговой инструкцией создания RAID-массива по ссылке: https://www.dmosk.ru/miniinstruktions.php?mini=mdadm и так: Занулим на всякий случай суперблоки:

    mdadm --zero-superblock --force /dev/sd{b,c,d,e,f}

И можно создавать рейд следующей командой:

    mdadm --create --verbose /dev/md0 -l 5 -n 5 /dev/sd{b,c,d,e,f}

Мы выбрали RAID 5. Опция "-l" - какого уровния RAID создавать. Опция "-n" указывает на кол-во устройств в RAID.

Проверим что RAID собрался нормально:

    cat /proc/mdstat mdadm -D /dev/md0

Создание конфигурационного файла mdadm.conf

Для того, чтобы быть уверенным что ОС запомнила какой RAID-массив требуется создать и какие компоненты в него входят, создадим файл mdadm.conf Сначала убедимся, что информация верна:

    mdadm --detail --scan --verbose

А затем создадим файл mdadm.conf

    echo "DEVICE partitions" > /etc/mdadm/mdadm.conf

    mdadm --detail --scan --verbose | awk '/ARRAY/ {print}' >> /etc/mdadm/mdadm.conf

Сломать/починить RAID

Сделать это можно, например, искусственно "зафейлив" одно из блочных устройств командой:

    mdadm /dev/md0 --fail /dev/sde

Посмотрим как это отразилось на RAID:

    cat /proc/mdstat mdadm -D /dev/md0

Удалим "сломанный" диск из массива:

    mdadm /dev/md0 --remove /dev/sde

Представим, что мы вставили новый диск в сервер и теперь нам нужно добавить его в RAID. Делается это так:

    mdadm /dev/md0 --add /dev/sde mdadm -D /dev/md0

Создать GPT раздел, пять партиция и смонтировать их на диск

Создаем раздел GPT на RAID:

    parted -s /dev/md0 mklabel gpt

Создаем партиции:

    parted /dev/md0 mkpart primary ext4 0% 20%

    parted /dev/md0 mkpart primary ext4 20% 40%

    parted /dev/md0 mkpart primary ext4 40% 60%

    parted /dev/md0 mkpart primary ext4 60% 80%

    parted /dev/md0 mkpart primary ext4 80% 100%

Далее, можно создать на этих партициях ФС:

    for i in $(seq 1 5); do sudo mkfs.ext4 /dev/md0p$i; done

И смонтировать их по каталогам:

    mkdir -p /raid/part{1,2,3,4,5}

    for i in $(seq 1 5); do mount /dev/md0p$i /raid/part$i; done

Так же в данном репозитории присутствует скрипт, который, при выполнении в vagrant, будет сам собирать raid, добавлять в автозагрузку, ломать его, чинить и создавать на нём партиции. При выполнении данного домашнего задания я пользовался следующими ресурсами: https://www.ibm.com/developerworks/ru/library/l-soft-raid/index.html https://ru.wikibooks.org/wiki/Mdadm#%D0%9F%D0%BE%D0%BB%D1%83%D1%87%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D0%B8_%D0%BE_RAID-%D0%B4%D0%B8%D1%81%D0%BA%D0%B5_%D0%B8_%D0%B5%D0%B3%D0%BE_%D1%80%D0%B0%D0%B7%D0%B4%D0%B5%D0%BB%D0%B0%D1%85 https://gist.github.com/Jekins/2bf2d0638163f1294637 https://qna.habr.com/q/271364 https://habr.com/ru/company/ruvds/blog/325522/ https://losst.ru/napisanie-skriptov-na-bash https://www.ekzorchik.ru/2015/10/control-of-the-state-of-raid-file/

Last updated

Was this helpful?