Šajā rakstā aprakstīsim nepieciešamos soļus, lai aizstātu bojātu cieto disku programmatūras RAID 1 masīvā dažādās operētājsistēmās, piemēram, Linux (CentOS, Debian, Ubuntu).
Problēmas identificēšana
Sākumam apskatīsim problēmu. Jums ir fiziskais serveris ar CentOS 7, kurā ir instalēti 2 HDD diski pa 2 TB katrs: /dev/sda un /dev/sdb. Šie diski ir konfigurēti programmatūras RAID 1. Pieņemsim, ka disks sdb ir izgājis bojā. Kad pārbaudāt disku masīvā, redzēsiet sekojošo:
# cat /proc/mdstat
Mums ir trīs masīvi:
# /dev/md125 – /boot
# /dev/md126 – swap
# /dev/md127 – /
Šajā gadījumā varat redzēt, ka diski tiešām ir konfigurēti RAID 1. Kad masīvs ir vesels, to parāda kā [UU]. Ņemot vērā, ka diski ir spoguļoti, katrs nodaļa tiek apvienota ar savu pretinieku un nosaukta atbilstoši. Piemēram, md125 sastāv no sda2 un sdb2. Šajā gadījumā md125 ir /boot. Plašāku informāciju par disku izkārtojumu varat iegūt, izmantojot sekojošo komandu:
# lsblk
Ja vēlaties saņemt detalizētu informāciju par masīvu un tā saturu, izmantojiet šo komandu:
# mdadm –detail /dev/md125
Bojāta diska noņemšana
Lai instalētu jaunu disku RAID 1 masīvā, vispirms jānoņem bojātais disks. Šis process jāveic katram nodaļai.
# mdadm /dev/md125 -r /dev/sdb2
# mdadm /dev/md126 -r /dev/sdb1
# mdadm /dev/md127 -r /dev/sdb3
Dažos gadījumos cietais disks var būt daļēji bojāts. Piemēram, statuss ir [U_] priekš /dev/md127 masīva, bet citiem masīviem ir statuss [UU]. Šajā gadījumā jums jānorāda tikai viena komanda:
# mdadm /dev/md127 -r /dev/sdb3
Kā rezultātā citās nodaļās tiks parādīts /dev/sdb1 un /dev/sdb2, kas ir neskarts. Pēc mēģinājuma noņemt nodaļu no masīva, tiks parādīta kļūda.
Lai izlabotu un noņemtu tos, jums būs jāizpilda šādas komandas:
# mdadm –manage /dev/md125 –fail /dev/sdb2
# mdadm –manage /dev/md126 –fail /dev/sdb1
Tas mainīs to statusu uz [U_]. Turpiniet procedūru tāpat, kā arī ar md127 masīvu.
Lai pārliecinātos, ka disks ir pilnīgi noņemts, pārbaudiet disku un nodaļas, kas iekļautas masīvā, izmantojot šādas komandas:
# mdadm –detail /dev/md125
# mdadm –detail /dev/md126
# mdadm –detail /dev/md127
# cat /proc/mdstat
Tagad disks ir gatavs aizstāšanai. Lai aizstātu disku, jums būs jāiesniedz pieprasījums caur mūsu biļešu sistēmu un jāsaskaņo darbu laiks ar tehnisko speciālistu.
P.S. Serveris būs izslēgts uz neilgu laiku!
Jaunā diska sagatavošana
Nosakiet nodaļu tabulu (GPT, MBR) un kopējiet to uz jauno disku.
Jaunajam diskam, būdams masīvā, jābūt identiskai nodaļu izkārtojumam. Atkarībā no izmantotās nodaļu tabulu veida (GPT/MBR), jāizmanto attiecīgās rīku programmas nodaļu tabulu kopēšanai.
GPT – sgdisk
MBR – sfdisk
Tā kā mums ir 2 TB HDD diski, mēs izmantosim sgdisk rīku. Jūs varat arī redzēt, ko mēs kopēsim uz otrā diska. Izmantojiet šo komandu:
# gdisk -l /dev/sda
Šo rīku var lejupielādēt, izmantojot operētājsistēmas atsauces. Atkarībā no operētājsistēmas, jānorāda pareizais pakotņu pārvaldnieks.
CentOS: yum install sgdisk/sfdisk
Debian/Ubuntu: apt install sgdisk/sfdisk
Izveidojiet un atjaunojiet MBR/GPT rezerves kopiju
Pirms nodaļu tabulas kopēšanas uz jauno disku ieteicams veikt rezerves kopiju. Ja rodas problēmas, varat atjaunot oriģinālo nodaļu tabulu.
MBR gadījumam
Izveidot:
# sfsdisk –dump /dev/sdx > sdх_parttable_mbr.bak
Atjaunot:
# sfdisk /dev/sdb < sdх_parttable_mbr.bak
GPT gadījumam
Izveidot:
# sgdisk –backup=sdх_parttable_gpt.bak /dev/sda
Atjaunot:
# sgdisk –load-backup=sdх_parttable_gpt.bak /dev/sdb
sda – disks, no kura tiek veikta kopija.
sdb – disks, uz kuru tiek ielādēta tabulas kopija.
Jauna diska pievienošana masīvam pēc aizstāšanas
Vispirms ievietojiet nodaļu tabulu no pirmā diska uz jauno, izmantojot augstāk minēto komandu. Kad bojātais disks ir noņemts no masīva, jauno var pievienot. To ir jādara katrā nodaļai.
# mdadm /dev/md125 -a /dev/sdb2
# mdadm /dev/md126 -a /dev/sdb1
# mdadm /dev/md127 -a /dev/sdb3
Tagad jaunais disks ir daļa no masīva. Jūs varat uzraudzīt disku sinhronizāciju, ievadot šādu komandu:
# cat /proc/mdstat
Tad restartējiet serveri, un jūs redzēsiet, ka visas nodaļas ir pareizi piemontētas:
# lsblk