УНИТе

Портал > Документация > Създаване на софтуерен RAID1 масив в CentOS 7 и Scientific Linux 7, в команден ред

Създаване на софтуерен RAID1 масив в CentOS 7 и Scientific Linux 7, в команден ред

Съдържание:

  1. Предварителна информация
  2. Предварителни условия, които трябва да са изпълнени, за да бъде успешно създаден софтуерен RAID1 масив
  3. Процедура по създаване на софтуерен RAID1 масив
  4. Проверка на статуса на синхронизация на софтуерен RAID1 масив
  5. Как точно ядрото намира и асемблира софтуерните RAID1 масиви при зареждане на системата

 

1. Предварителна информация

Процедурата, описана по-долу, показва как да бъдат създадени активни софтуерни RAID1 масиви, чрез команден ред, под CentOS 7 и Scientific Linux 7 (приложимо е за почти всички модерни Linux дистрибуции). Тя касае най-вече случая, при който масива се декларира след като дистрибуцията е инсталирана.

Документът е в помощ на потребителите на HPC услуги, които искат да поддържат свой файлов сървър, на който да съхраняват данни, които са получени в HPC средата или трябва да бъдат монтирани отдалечено там.

Допълнителна информация как точно ядрото намира и асемблира софтуерните RAID1 масиви при зареждане на системата, можете да намерите в "Как точно ядрото намира и асемблира софтуерните RAID1 масиви при зареждане на системата".

 

2. Предварителни условия, които трябва да са изпълнени, за да бъде успешно създаден софтуерен RAID1 масив

Когато създавате софтуерен RAID1 масив, за двата дяла, които ще използвате за масива, трябва да са изпълнени следените условия:

  • дяловете следва да са с еднаква големина (възможно е да са близки по големина, но в този случай големината на масива ще се определи от по-малкия дял);
  • върху дяловете не бива да има активна (в момента на създаване на масива) файлова система, защото това може да попречи на инструментите за създаване на масива да форматират дяловете като RAID дялове;
  • двата дяла трябва да се намират върху различни физчиески носители (дискове).

 

3. Процедура по създаване на софтуерен RAID1 масив

Когато създавате RAID1 масив, трябва да укажете версията на мета данните, които се използват от ядрото, за да поддържат и организират масива. Възможно е да използвате следните две версии:

  • 0.9 - тази версия се използва, ако от масива ще се зарежда операционна система;
  • 1.2 - тази версия се използва, ако от масива няма да бъде зареждана операционна система.

За да създадете RAID1 масив, базиран на дяловете /dev/sdc1 и /dev/sdd1, с използване на версия на мета данните 1.2 и да представите този масив в системата като устройство /dev/md1, изпълнете следния команден ред (като super user):

# mdadm --create /dev/md1 --metadata=1.2 --level 1 --raid-disks 2 /dev/sdc1 /dev/sdd1

При успешно създаване на RAID1 масива, той ще бъде стартиран и ще бъде изведено съобщението:

mdadm: array /dev/md1 started.

Принципно, създаването на софтуерен RAID1 масив с версия на мета данните 0.9, се извършва автоматично от инсталатора на CentOS 7 и Scientific Linux 7, когато дяла, от който се зарежда ядрото на операционната система, се намира върху масива. Такъв масив ще бъде създаден автоматично, ако се следват инструкциите в следните документи:

Минимална инсталация на CentOS 7 в интерактивен режим върху софтуерен RAID1 масив и LVM2

Минимална инсталация на Scientific Linux 7 в интерактивен режим върху софтуерен RAID1 масив и LVM2

Отбележете, че след създаването на софтуерен RAID1 масив, той се активира по подразбиране при зареждане на операционната система. Не е нужно да го описвате във файла /etc/mdadm.conf освен, ако не искате да зададете специални стартови параметри за масива. Отбележете също така, че не е нужно един софтуререн RAID1 масив да има същия номер на устройство (номера е числото, което стои след md в името на устройството) след всяко зареждане. Причината е, че когато декларирате върху този масив файлова система, тя се разпознава не като път до устройството, а като уникален номер на файловата система (UUID).

 

4. Проверка на статуса на синхронизация на софтуерен RAID1 масив

Най-лесният начин, по който да проверите дали RAID1 масива е активен, е като изпълните:

$ cat /proc/mdstat

Резултатът ще изглежда по един от следните два начина (за всеки един от активните RAID1 масиви):

  • масивът е в процес на синхронизация:

    md1 : active raid1 sdc1[1] sdd1[0]
          20428736 blocks super 1.2 [2/2] [UU]
          [=>...................]  resync =  6.2% (1276800/20428736) finish=5.2min speed=60800K/sec
  • масивът е синхронизиран:

    md1 : active raid1 sdc1[1] sdd1[0]
          20428736 blocks super 1.2 [2/2] [UU]

Забележете, че списъка с дяловете, участващи в масива, е изведен след active (на първия ред с информация за всеки от масивите).

Ако желаете да наблюдавате синхронизацията на масива в реално време, може да направите това по следния начин:

$ watch cat /proc/mdstat

ВНИМАНИЕ! Ако на втория ред в информацията за всеки масив, изведена по начина описан по-горе, вместо [UU] виждате [_U] или [U_], то единия от двата дяла, обединени в RAID1 масив, е суспендиран и не учава в масива.
В този случай трябва НЕЗАБАВНО да проверите каква е причината за това и да направите постъпки да реконструирате масива.

 

5. Как точно ядрото намира и асемблира софтуерните RAID1 масиви при зареждане на системата

В Linux, всеки софтуерен RAID1 масив е съставен от два дискови дяла, върху всеки един от които трябва да има изградена файлова система от тип "linux_raid_member" (това е абстрактна файлова система със специално предназначение, използвана само за софтуерни RAID1 масиви). Информация за тези специални файлови системи, декларирани за всеки един софтуерен RAID1 масив в системата, може да се изведе, ако изпълните:

$ blkid

В изведения резултат (ядрото събира тази информация при зареждане на системата), вижте тези редове, в които има UUID_SUB идентификатор:

/dev/sdd1: UUID="4f00106c-ef09-039b-4766-e0802f2b43a7" UUID_SUB="7c5504cd-0bb5-8f45-e4e8-adb13c0eb5bd" LABEL="localhost:boot" TYPE="linux_raid_member" 
/dev/sdd2: UUID="b2f7b62a-7dc3-ffcd-44f6-ee0dc671f56e" UUID_SUB="591c3671-4c1c-11bd-4df7-17a7858c16b4" LABEL="localhost:00" TYPE="linux_raid_member" 
/dev/sdd3: UUID="48d2e5f8-067f-8b17-529a-ba48df474676" UUID_SUB="1da5d5d7-3f61-a064-2b7a-b6ac5dca31e6" LABEL="localhost:pv00" TYPE="linux_raid_member" 
/dev/sda1: UUID="4f00106c-ef09-039b-4766-e0802f2b43a7" UUID_SUB="fc4288a7-e219-d3f0-3981-af29ec899771" LABEL="localhost:boot" TYPE="linux_raid_member" 
/dev/sda2: UUID="b2f7b62a-7dc3-ffcd-44f6-ee0dc671f56e" UUID_SUB="c4f6b249-68f1-fe35-0886-2613fe4d3d6e" LABEL="localhost:00" TYPE="linux_raid_member" 
/dev/sda3: UUID="48d2e5f8-067f-8b17-529a-ba48df474676" UUID_SUB="d5a8ab2c-5cda-93de-128c-daa34abe15e3" LABEL="localhost:pv00" TYPE="linux_raid_member"

и след това ги групирайте по UUID идентификатор. Забележете, че за всяка файлова система от тип "linux_raid_member" има назначен уникален UUID_SUB идентификатор (това е случайно число, генерирано при създаването на файловата система), а двата дяла, които участват в един софтуерен RAID1 масив, имат един и същи UUID идентификатор. Именно това обстоятелство се използва от ядрото, което активира и стартира масива при зареждане на операционната система на база на тези идентификатори.

Например, на база на информацията от blkid, изведена по-горе, може да се предположи, че в системата има три RAID1 масива, с UUID идентификатори:

  • 4f00106c-ef09-039b-4766-e0802f2b43a7
  • b2f7b62a-7dc3-ffcd-44f6-ee0dc671f56e
  • 48d2e5f8-067f-8b17-529a-ba48df474676

Именно поради това използване на идентификаторите, не е задължително да описвате софтуерните RAID1 масиви като структура в /etc/mdadm.conf.

 


Последна актуализация: 25 май 2019

2019 УНИТе, Веселин Колев