Skip to content

newbradb/raid_linux

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 

Repository files navigation

raid_linux

Homework 2

Vagrangile тут

Скрипт для создания рейда тут

Шаги ниже в README

Добавить в Vagrantfile еще дисков

Начальный Vagrantfile берем из этого репозитория

Добавим еще один диск :

                :sata5 => {
                        :dfile => './sata5.vdi',
                        :size => 250, # Megabytes
                        :port => 5
                }

Запустим виртулальную машину :

 vagrant up

Посмотрим какие блочные устройства у нас есть :

[root@otuslinux vagrant]# lshw -short | grep disk
/0/100/1.1/0.0.0    /dev/sda  disk        42GB VBOX HARDDISK
/0/100/d/0          /dev/sdb  disk        262MB VBOX HARDDISK
/0/100/d/1          /dev/sdc  disk        262MB VBOX HARDDISK
/0/100/d/2          /dev/sdd  disk        262MB VBOX HARDDISK
/0/100/d/3          /dev/sde  disk        262MB VBOX HARDDISK
/0/100/d/0.0.0      /dev/sdf  disk        262MB VBOX HARDDISK

Занулим на всякий случай суперблоки:

[root@otuslinux vagrant]# mdadm --zero-superblock --force /dev/sd{b,c,d,e,f}
mdadm: Unrecognised md component device - /dev/sdb
mdadm: Unrecognised md component device - /dev/sdc
mdadm: Unrecognised md component device - /dev/sdd
mdadm: Unrecognised md component device - /dev/sde
mdadm: Unrecognised md component device - /dev/sdf

Создание Raid

Создадим Raid5 следуещей командой:

[root@otuslinux vagrant]# mdadm --create --verbose /dev/md0 -l 5 -n 5 /dev/sd{b,c,d,e,f}
mdadm: layout defaults to left-symmetric
mdadm: layout defaults to left-symmetric
mdadm: chunk size defaults to 512K
mdadm: size set to 253952K
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.

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

[root@otuslinux vagrant]# cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4] 
md0 : active raid5 sdf[5] sde[3] sdd[2] sdc[1] sdb[0]
      1015808 blocks super 1.2 level 5, 512k chunk, algorithm 2 [5/5] [UUUUU]
      
unused devices: <none>
[root@otuslinux vagrant]# mdadm -D /dev/md0
/dev/md0:
           Version : 1.2
     Creation Time : Thu May  6 18:23:43 2021
        Raid Level : raid5
        Array Size : 1015808 (992.00 MiB 1040.19 MB)
     Used Dev Size : 253952 (248.00 MiB 260.05 MB)
      Raid Devices : 5
     Total Devices : 5
       Persistence : Superblock is persistent

       Update Time : Thu May  6 18:23:50 2021
             State : clean 
    Active Devices : 5
   Working Devices : 5
    Failed Devices : 0
     Spare Devices : 0

            Layout : left-symmetric
        Chunk Size : 512K

Consistency Policy : resync

              Name : otuslinux:0  (local to host otuslinux)
              UUID : 9c80b4c4:2dfa8dc9:a828b81d:2cc801c0
            Events : 18

    Number   Major   Minor   RaidDevice State
       0       8       16        0      active sync   /dev/sdb
       1       8       32        1      active sync   /dev/sdc
       2       8       48        2      active sync   /dev/sdd
       3       8       64        3      active sync   /dev/sde
       5       8       80        4      active sync   /dev/sdf

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

Сначала убедимся, что информация верна:

[root@otuslinux vagrant]# mdadm --detail --scan --verbose
ARRAY /dev/md0 level=raid5 num-devices=5 metadata=1.2 name=otuslinux:0 UUID=9c80b4c4:2dfa8dc9:a828b81d:2cc801c0
   devices=/dev/sdb,/dev/sdc,/dev/sdd,/dev/sde,/dev/sdf
[root@otuslinux vagrant]# 

Создадим mdadm.conf :

[root@otuslinux ~]# echo "DEVICE partitions" > /etc/mdadm/mdadm.conf
[root@otuslinux ~]# mdadm --detail --scan --verbose | awk '/ARRAY/ {print}'
ARRAY /dev/md0 level=raid5 num-devices=5 metadata=1.2 name=otuslinux:0 UUID=9c80b4c4:2dfa8dc9:a828b81d:2cc801c0
[root@otuslinux ~]# mdadm --detail --scan --verbose | awk '/ARRAY/ {print}' >> /etc/mdadm/mdadm.conf

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

Фейлим одно из устройств :

[root@otuslinux ~]#  mdadm /dev/md0 --fail /dev/sde
mdadm: set /dev/sde faulty in /dev/md0

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

[root@otuslinux ~]# cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4] 
md0 : active raid5 sdf[5] sde[3](F) sdd[2] sdc[1] sdb[0]
      1015808 blocks super 1.2 level 5, 512k chunk, algorithm 2 [5/4] [UUU_U]

[root@otuslinux ~]#  mdadm -D /dev/md0 | grep Devices
      Raid Devices : 5
     Total Devices : 5
    Active Devices : 4
   Working Devices : 4
    Failed Devices : 1
     Spare Devices : 0

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

[root@otuslinux ~]# mdadm /dev/md0 --remove /dev/sde
mdadm: hot removed /dev/sde from /dev/md0

"Вставим" новый диск :

[root@otuslinux ~]# mdadm /dev/md0 --add /dev/sde
mdadm: added /dev/sde

Смотрим процесс ребилда :

[root@otuslinux ~]# cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4] 
md0 : active raid5 sde[6] sdf[5] sdd[2] sdc[1] sdb[0]
      1015808 blocks super 1.2 level 5, 512k chunk, algorithm 2 [5/5] [UUUUU]
      
unused devices: <none>

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

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

[root@otuslinux vagrant]# parted -s /dev/md0 mklabel gpt

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

[root@otuslinux vagrant]# parted /dev/md0 mkpart primary ext4 0% 20%
Information: You may need to update /etc/fstab.

[root@otuslinux vagrant]# parted /dev/md0 mkpart primary ext4 20% 40%     
Information: You may need to update /etc/fstab.

[root@otuslinux vagrant]# parted /dev/md0 mkpart primary ext4 40% 60%     
Information: You may need to update /etc/fstab.

[root@otuslinux vagrant]# parted /dev/md0 mkpart primary ext4 60% 80%     
Information: You may need to update /etc/fstab.

[root@otuslinux vagrant]# parted /dev/md0 mkpart primary ext4 80% 100%    
Information: You may need to update /etc/fstab.

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

[root@otuslinux vagrant]# for i in $(seq 1 5); do sudo mkfs.ext4 /dev/md0p$i; done

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

[root@otuslinux vagrant]# mkdir -p /raid/part{1,2,3,4,5}
[root@otuslinux vagrant]# for i in $(seq 1 5); do mount /dev/md0p$i /raid/part$i; done

Пишем баш скрипт для конфигурации рейда

Просто обьединяем команды по созданию рейда и mdadm.conf файла в баш скрипт bash.sh

Добавляем в Vargantfile :

  	  SHELL
          box.vm.provision "shell", path: "raid.sh"

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages