Antud artiklis kirjeldame, milliseid samme on vaja teha, kui vahetate välja rikutud kõvaketta tarkvaralise RAID 1 massiivi, kasutades näiteks erinevaid operatsioonisüsteeme, nagu Linux: (CentOS, Debian, Ubuntu).
Sisukord
- Probleemi tuvastamine
- Kahjustatud kõvaketta eemaldamine
- Uue kõvaketta ettevalmistamine
- Kõvaketta lisamine massiivi pärast asendamist
Probleemi tuvastamine
Alustuseks mõistame probleemi. On olemas füüsiline server, millele on paigaldatud CentOS 7, millel on 2 kõvaketast, kumbki 2 TB: /dev/sda, /dev/sdb. Need kettad on kokku pandud softwar RAID1. Oletame, et sdb ketas on rikutud. Kui te vaatate massiivis olevat ketast, siis näete järgmist pilti:
# cat /proc/mdstat
Teil on 3 masssivi
# /dev/md125 - /boot
# /dev/md126 - swap
# /dev/md127 - /
Antud juhul võime täheldada, et kettad on tõepoolest kokku pandud RAID1-ks. Kui massiiv on korras, siis on see näidatud [UU]. Kuna kettad on peegeldatud, on iga jaotis ühendatud ja saanud erineva nime. Näiteks: md125 koosneb sda2,sdb2. Md125 on antud juhul /boot. Lisateavet ketaste partitsioneerimise kohta saate käsuga:
# lsblk
Kui soovite teada täpsemat teavet massiivi ja selle sisu kohta, kasutage käsku:
# mdadm --detail /dev/md125
Kahjustatud kõvaketta eemaldamine
Uue ketta paigaldamiseks RAID 1 massiivi peate kõigepealt eemaldama rikutud ketta. See protseduur viiakse läbi iga jaotise puhul.
# mdadm /dev/md125 -r /dev/sdb2
# mdadm /dev/md126 -r /dev/sdb1
# mdadm /dev/md127 -r /dev/sdb3
Mõnel juhul võib kõvaketas olla osaliselt kahjustatud. Näide: massiivi /dev/md127 olek [U_] ja teiste massiivide olek [UU]. Sellisel juhul tuleb määrata ainult üks käsk:
# mdadm /dev/md127 -r /dev/sdb3
Sellest tulenevalt kuvatakse teised partitsioonid /dev/sdb1 ja /dev/sdb2 on OK. Pärast katset eemaldada partitsiooni massiivi, kuvatakse viga.
Nende parandamiseks ja eemaldamiseks peate täitma järgmisi käske:
# mdadm --manage /dev/md125 --fail /dev/sdb2
# mdadm --manage /dev/md126 --fail /dev/sdb1
See muudab nende staatuse [U_]. Seejärel tehke sama protseduur nagu massiivi md127 puhul.
Vaatame massiivis olevaid kettaid ja partitsioone, et veenduda, et ketas on täielikult eemaldatud:
# mdadm --detail /dev/md125
# mdadm --detail /dev/md126
# mdadm --detail /dev/md127
# cat /proc/mdstat
Kõvaketas on nüüd asendamiseks valmis. Kõvaketa väljavahetamiseks peate esitama taotluse meie ticket süsteemi kaudu ja leppima kokku aja tehnikuga.
П.С. Сервер будет остановлен на некоторое время!
Uue kõvaketta ettevalmistamine
Määrake jaotustabel (GPT, MBR) ja viige see uuele kõvakettale.
Massiivis olev uus ketas peab olema täpselt sama jaotisega. Sõltuvalt kasutatavatest jaotustabelite tüüpidest (GPT/MBR) tuleb kasutada vastavaid jaotustabelite kopeerimise abivahendeid.
GPT - sgdisk
MBR - sfdisk
Kuna meil on 2TB HDD kettad, kasutame sgdisk utiliiti. Näete ka täpselt, mida me kavatseme kopeerida, teisele kettale. Kasutage käsku:
# gdisk -l /dev/sda
Utiliidi saab alla laadida operatsioonisüsteemi repositooriumi kaudu. Sõltuvalt operatsioonisüsteemist tuleb kasutada sobivat paketihaldurit
CentOS: yum install sgdisk/sfdisk
Debian/Ubuntu: apt install sgdisk/sfdisk
MBR/GPT varukoopia loomine ja taastamine
Enne jaotistabeli kopeerimist uuele kettale on soovitatav luua varukoopia. Probleemide ilmnemisel saate algse jaotisitabeli taastada.
MBR puhul
Luua:
# sfdisk --dump /dev/sdx > sdх_parttable_mbr.bak
Taastada:
# sfdisk /dev/sdb > sdх_parttable_mbr.bak
GPT puhul
Luua:
# sgdisk --backup=sdх_parttable_gpt.bak /dev/sda
Taastada:
# sgdisk --load-backup=sdx_parttable_gpt.bak /dev/sdb
sda - ketas, millest tehakse koopia
sdb — ketas, millele laaditakse jaotistabeli koopia.
Ketas, millest tehakse koopia
Sisestage kopeeritud jaotistabel esimeselt kettalt uude, kasutades ülaltoodud käsku. Niipea kui vigane ketas on massiivist eemaldatud, võib lisada uue. Seda tuleb teha iga jaotise jaoks eraldi.
# mdadm /dev/md125 -a /dev/sdb2
# mdadm /dev/md126 -a /dev/sdb1
# mdadm /dev/md127 -a /dev/sdb3
Nüüd on uus ketas massiivi osa. Kettaste sünkroniseerimist saate näha, sisestades käsu:
# cat /proc/mdstat
Seejärel taaskäivitame serveri ja näeme, et kõik jaotised on õigesti ühendatud.
# lsblk