See artikkel kasutab näidet, et kirjeldada vajalikke samme defektse draivi vahetamiseks tarkvaralises RAID-is (mdadm
).
OLULINE MÄRKUS: Kõik käsud on lihtsalt näited. Kohandage neid vastavalt vajadusele!
Näite stsenaarium
# cat /proc/mdstat
Personalities : [raid1]
md3 : active raid1 sda4[0] sdb4[1]
1822442815 blocks super 1.2 [2/2] [UU]
md2 : active raid1 sda3[0] sdb3[1]
1073740664 blocks super 1.2 [2/2] [UU]
md1 : active raid1 sda2[0] sdb2[1]
524276 blocks super 1.2 [2/2] [UU]
md0 : active raid1 sda1[0] sdb1[1]
33553336 blocks super 1.2 [2/2] [UU]
unused devices: <none>
Kokku on neli partitsiooni:
- /dev/md0 kui vahemälu
- /dev/md1 kui /boot
- /dev/md2 kui /
- /dev/md3 kui /home
/dev/sdb
on selles näites defektne draiv. Puuduv või defektne draiv on näidatud märgiga [U_]
ja/või [_U]
. Kui RAID-massiiv on terve, kuvatakse [UU]
.
# cat /proc/mdstat
Personalities : [raid1]
md3 : active raid1 sda4[0] sdb4[1](F)
1822442815 blocks super 1.2 [2/1] [U_]
md2 : active raid1 sda3[0] sdb3[1](F)
1073740664 blocks super 1.2 [2/1] [U_]
md1 : active raid1 sda2[0] sdb2[1](F)
524276 blocks super 1.2 [2/1] [U_]
md0 : active raid1 sda1[0] sdb1[1](F)
33553336 blocks super 1.2 [2/1] [U_]
unused devices: <none>
Te saate muuta tarkvaralist RAID-i, kui süsteem töötab. Kui proc/mdstat
näitab, et draiv ebaõnnestub, nagu selles näites, siis saate meie toe tehnikutega kokku leppida draivi vahetamiseks (vaadake allpool).
# cat /proc/mdstat
Personalities : [raid1]
md3 : active raid1 sda4[0]
1822442815 blocks super 1.2 [2/1] [U_]
md2 : active raid1 sda3[0]
1073740664 blocks super 1.2 [2/1] [U_]
md1 : active raid1 sda2[0]
524276 blocks super 1.2 [2/1] [U_]
md0 : active raid1 sda1[0]
33553336 blocks super 1.2 [2/1] [U_]
unused devices: <none>
Defektse draivi eemaldamine
Enne uue draivi lisamist peate kõigepealt eemaldama vana defektse draivi RAID-massiivist. Peate seda tegema iga partitsiooni jaoks eraldi.
# mdadm /dev/md0 -r /dev/sdb1
# mdadm /dev/md1 -r /dev/sdb2
# mdadm /dev/md2 -r /dev/sdb3
# mdadm /dev/md3 -r /dev/sdb4
Järgmine käsk näitab draive, mis on osa massiivist:
# mdadm --detail /dev/md0
Mõnel juhul võib draiv olla osaliselt defektne, näiteks ainult /dev/md0
on olekus [U_]
, samas kui kõik teised seadmed on olekus [UU]
. Sel juhul nurjub käsk
# mdadm /dev/md1 -r /dev/sdb2
kuna /dev/md1
massiiv on korras.
Sel juhul peate käivitama käsu
# mdadm --manage /dev/md1 --fail /dev/sdb2
et viia RAID olekusse [U_]
.
Kohtumise kokkuleppimine toe meeskonnaga defektse draivi vahetamiseks
Defektse draivi vahetamiseks peate ette helistama meie toe meeskonnale. Toemeeskond peab serveri ajutiselt offline’i võtma.
Uue draivi ettevalmistamine
Mõlemal massiivi draivil peab olema täpselt sama partitsioneerimine. Sõltuvalt kasutatavast partitsioonitabeli tüübist (MBR
või GPT
) peate kasutama vastavaid tööriistu partitsioonitabeli kopeerimiseks. GPT partitsioonitabelit kasutatakse tavaliselt draividel, mis on suuremad kui 2TiB (näiteks 3TB HDD-del EX4
ja EX6
).
MBR/GPT varundamine
Enne MBR/GPT kopeerimist uuele draivile peate selle varundama. Nii saate kopeerimise ajal tekkinud probleemide korral algse oleku taastada.
Varundamine MBR-iga
sfdisk --dump /dev/sda > sda_parttable_mbr.bak
sfdisk --dump /dev/sdb > sdb_parttable_mbr.bak
sfdisk --dump /dev/sdX > sdX_parttable_mbr.bak
Taastamine MBR-iga
sfdisk /dev/sda < sda_parttable_mbr.bak
sfdisk /dev/sdb < sdb_parttable_mbr.bak
sfdisk /dev/sdX < sdX_parttable_mbr.bak
Varundamine GPT-iga
sgdisk --backup=sda_parttable_gpt.bak /dev/sda
sgdisk --backup=sdb_parttable_gpt.bak /dev/sdb
sgdisk --backup=sdX_parttable_gpt.bak /dev/sdX
Taastamine GPT-ga
sgdisk --load-backup=sda_parttable_gpt.bak /dev/sda
sgdisk --load-backup=sdb_parttable_gpt.bak /dev/sdb
sgdisk --load-backup=sdX_parttable_gpt.bak /dev/sdX
Kettad GPT-ga
Kettal on mitu dubleeritud koopiat GUID partitsioonitabelist (GPT), seega peate kasutama tööriistu, mis toetavad GPT
-d (näiteks parted
või GPT fdisk
), et tabelit muuta. Saate kasutada sgdisk
-i tööriista GPT fdisk-ist partitsioonitabeli lihtsaks kopeerimiseks uuele kettale. Siin on näide partitsioonitabeli kopeerimisest sda-lt sdb-le:
sgdisk --backup=sda_parttable_gpt.bak /dev/sda
sgdisk --load-backup=sda_parttable_gpt.bak /dev/sdb
Seejärel peate määrama kettale uue suvalise UUID
:
sgdisk -G /dev/sdb
Pärast seda saate draivi massiivi lisada. Viimase sammuna peate paigaldama alglaaduri.
Kettad MBR-iga
Saate lihtsalt kopeerida partitsioonitabeli uuele draivile kasutades sfdisk
-i
# sfdisk -d /dev/sda | sfdisk /dev/sdb
kus /dev/sda
on lähteketas ja /dev/sdb
on sihtketas.
(Valikuline): Kui süsteem ei tuvasta partitsioone, tuleb partitsioonitabel lugeda uuesti tuumast:
# blockdev --rereadpt /dev/sdb
Loomulikult saate luua partitsioonid käsitsi kasutades fdisk
, cfdisk
või muid tööriistu. Partitsioonid peaksid olema tüüpi Linux raid autodetect (ID fd)
.
Uue draivi integreerimine
Kui olete eemaldanud defektse draivi ja paigaldanud uue, peate selle integreerima RAID-massiivi. Peate seda tegema iga partitsiooni jaoks.
# mdadm /dev/md0 -a /dev/sdb1
# mdadm /dev/md1 -a /dev/sdb2
# mdadm /dev/md2 -a /dev/sdb3
# mdadm /dev/md3 -a /dev/sdb4
Uus draiv on nüüd massiivi osa ja seda sünkroniseeritakse. Sõltuvalt partitsioonide suurusest võib see protseduur võtta aega. Sünkroniseerimise olekut saate kontrollida kasutades cat /proc/mdstat
.
# cat /proc/mdstat
Personalities : [raid1]
md3 : active raid1 sdb4[1] sda4[0]
1028096 blocks [2/2] [UU]
[==========>..........] resync = 50.0% (514048/1028096) finish=97.3min speed=65787K/sec
md2 : active raid1 sdb3[1] sda3[0]
208768 blocks [2/2] [UU]
md1 : active raid1 sdb2[1] sda2[0]
2104448 blocks [2/2] [UU]
md0 : active raid1 sdb1[1] sda1[0]
208768 blocks [2/2] [UU]
unused devices: <none>
Alglaadija paigaldamine
Kuna ketase seerianumber muutus, peame GRUB2-ga looma uue seadme kaardi:
grub-mkdevicemap -n
Kui teete seda parandust töötavas süsteemis, siis GRUB2 puhul piisab uue draivi grub-install
-i käitamisest. Näiteks:
grub-install /dev/sdb
Grub1-s (grub-legacy
) võib olenevalt sellest, milline draiv oli defektne, vaja teha rohkem samme.
- Käivitage GRUBi konsool:
grub
- Määrake partitsioon, kus asub
/boot
:root (hd0,1) (/dev/sda2 = (hd0,1))
- Paigaldage alglaadija MBR-i:
setup (hd0)
- Et paigaldada alglaadija ka teisele draivile:
- Map-i teine draiv kui
hd0
:device (hd0) /dev/sdb
- Korrake täpselt samme 2 ja 3 (ärge muutke käskusid!)
- Map-i teine draiv kui
- Väljuge GRUBi konsoolist:
quit
Probing devices to guess BIOS drives. This may take a long time.
GNU GRUB version 0.97 (640K lower / 3072K upper memory)
[ Minimal BASH-like line editing is supported. For the first word, TAB
lists possible command completions. Anywhere else TAB lists the possible
completions of a device/filename.]
grub> device (hd0) /dev/sdb
device (hd0) /dev/sdb
grub> root (hd0,1)
root (hd0,1)
Filesystem type is ext2fs, partition type 0xfd
grub> setup (hd0)
setup (hd0)
Checking if "/boot/grub/stage1" exists... yes
Checking if "/boot/grub/stage2" exists... yes
Checking if "/boot/grub/e2fs_stage1_5" exists... yes
Running "embed /boot/grub/e2fs_stage1_5 (hd0)"... 26 sectors are embedded.
succeeded
Running "install /boot/grub/stage1 (hd0) (hd0)1+26 p (hd0,1)/boot/grub/stage2 /boot/grub/grub.conf"... succeeded
Done.
grub> quit
#
Paigaldatud süsteem teostab ka järgmised ümbersidumised:
mount --bind /dev /mnt/dev
mount --bind /proc /mnt/proc
mount --bind /sys /mnt/sys
Peate seejärel tegema kõik eespool kirjeldatud GRUBi paigaldamise sammud chroot
keskkonnas. Võite turvaliselt ignoreerida hoiatust grub-install couldn't find physical volumes
.