Introductie
MDADM is een moderne tool die de meeste Linux-distributies tegenwoordig gebruiken om software-RAID-arrays te beheren; in het verleden was RAIDtools de tool die we hiervoor gebruikten. Deze samenvatting toont de meest voorkomende toepassingen van MDADM om software RAID-arrays te beheren; het gaat ervan uit dat je een goed begrip hebt van software RAID en Linux in het algemeen, en het zal alleen het gebruik van de opdrachtregel van MDADM uitleggen De onderstaande voorbeelden gebruiken RAID1, maar ze kunnen worden aangepast voor elk RAID-niveau dat de Linux-kerneldriver ondersteunt.
Vereisten
- een actieve server
- Huidige software RAID-array
BELANGRIJKE MEDEDELING: Voordat je begint met RAID-beheer, moet je ervoor zorgen dat je een back-up van je hele server hebt voor het geval er iets misgaat. Snel.com is niet verantwoordelijk voor verlies of schade aan je server tijdens het uitvoeren van deze procedures.
Uitleg gebruik MDADM om software RAID te beheren
1. Een nieuwe RAID-array maken
Create (mdadm --create
) wordt gebruikt om een nieuwe array aan te maken:
mdadm --create --verbose /dev/md0 --level=1 /dev/sda1 /dev/sdb2
of met behulp van de compacte notatie:
mdadm -Cv /dev/md0 -l1 -n2 /dev/sd[ab]1
2. Configureer MDADM
/etc/mdadm.conf or /etc/mdadm/mdadm.conf (op Debian) is het hoofdconfiguratiebestand voor MDADM. Nadat we onze RAID-arrays hebben gemaakt, voegen we ze toe aan dit bestand met behulp van:
mdadm --detail --scan >> /etc/mdadm.conf
of op Debian
mdadm --detail --scan >> /etc/mdadm/mdadm.conf
3. Verwijder een schijf uit een array.
We kunnen een schijf niet rechtstreeks uit de array verwijderen, tenzij deze defect is. (als de schijf defect is, bevindt deze zich normaal gesproken al in de status failed en is deze stap niet nodig):
mdadm --fail /dev/md0 /dev/sda1
Nu kunnen we deze verwijderen:
mdadm --remove /dev/md0 /dev/sda1
Dit kan in één stap met behulp van:
mdadm /dev/md0 --fail /dev/sda1 --remove /dev/sda1
4. Een schijf toevoegen aan een bestaande array
We kunnen een nieuwe schijf aan een array toevoegen (waarschijnlijk een defecte schijf vervangen):
mdadm --add /dev/md0 /dev/sdb1
5. De status van de RAID-arrays verifiëren
We kunnen de status van de arrays op het systeem controleren met:
cat /proc/mdstat
of
mdadm --detail /dev/md0
De uitvoer van deze opdracht ziet er als volgt uit:
cat /proc/mdstat Personalities : [raid1] md0 : active raid1 sdb1[1] sda1[0] 104320 blocks [2/2] [UU]md1 : active raid1 sdb3[1] sda3[0] 19542976 blocks [2/2] [UU]md2 : active raid1 sdb4[1] sda4[0] 223504192 blocks [2/2] [UU]
hier kunnen we zien dat beide schijven worden gebruikt en goed werken – U. Een defecte schijf zal worden weergegeven als F, terwijl een gedegradeerde array de tweede schijf zal missen –
Opmerking: het bewaken van de status van een RAID-reconstructiebewerking met watch kan nuttig zijn:
watch cat /proc/mdstat
6. Een RAID-array stoppen en verwijderen
Als we een raid-array volledig willen verwijderen, moeten we deze eerst stoppen en deze vervolgens verwijderen:
mdadm --stop /dev/md0 mdadm --remove /dev/md0
en tot slot kunnen we zelfs het superblok van de afzonderlijke schijven verwijderen:
mdadm --zero-superblock /dev/sda
Ten slotte kan het bij het gebruik van RAID1-arrays, waar we identieke partities op beide schijven maken, handig zijn om de partities van sda naar sdb te kopiëren:
sfdisk -d /dev/sda | sfdisk /dev/sdb
(hiermee wordt de partitietabel van sda gedumpt, waarbij de bestaande partities op sdb volledig worden verwijderd, dus zorg ervoor dat dit is wat je wilt, voordat je dit commando uitvoert, want je krijgt geen waarschuwing).
7. Herstellen van een kapotte RAID-array
- Installeer GRUB op de resterende harde schijf
Voordat de defecte harde schijf wordt verwijderd, is het absoluut noodzakelijk om te controleren of GRUB op de resterende schijf is geïnstalleerd. In het geval van een niet-hot-swap vervanging van de harde schijf, moet het systeem opnieuw worden opgestart. Als GRUB niet aanwezig is op de resterende schijf, zal je systeem niet opstarten.
Laten we dus grub installeren op de MBR van de resterende harde schijf.
Voer de Grub-opdrachtregel in:
# grub
Zoek eerst de grub-installatiebestanden:
grub> find /grub/stage1
Op een RAID 1 met twee aanwezige schijven kun je het volgende verwachten:
(hd0,0) (hd1,0)
Installeer grub op de MBR van de resterende harde schijf als dit nog niet is gedaan:
grub> device (hd0) /dev/sdx (or /dev/hdb for IDE drives)
grub> root (hd0,0)
grub> setup (hd0)
grub>quit
Dit zou ervoor moeten zorgen dat je systeem correct opstart nadat je harde schijf is vervangen. Het wordt ten zeerste aanbevolen om deze stappen te volgen tijdens de eerste installatie van je server. Op die manier ben je goed voorbereid als er zich problemen voordoen.
- Maak de partitiestructuur van de defecte schijf opnieuw aan
Om de gespiegelde schijven weer goed te laten werken, moeten we fdisk uitvoeren om te zien welke partities zich op de werkende schijf bevinden:
# fdisk -l /dev/sda Command (m for help): p Disk /dev/hda: 255 heads, 63 sectors, 14946 cylinders Units = cylinders of 16065 * 512 bytes Device Boot Start End Blocks Id System /dev/hda1 * 1 13 104391 fd Linux raid autodetect /dev/hda2 14 14913 119684250 fd Linux raid autodetect /dev/hda3 14914 14946 265072+ fd Linux raid autodetect
We kunnen de partitietabel kopiëren van de werkende schijf naar de nieuwe schijf: Het kan nodig zijn om het token –force
toe te voegen.
Als sda is vervangen:
sfdisk -d /dev/sdb | sfdisk /dev/sda
Als sda is vervangen:
sfdisk -d /dev/sda | sfdisk /dev/sdb
- Rebuild de partitietabel
Nu de partities op de nieuw geïnstalleerde harde schijf zijn geconfigureerd, kunnen we beginnen met het rebuilding van de partities van deze RAID-array. Houd er rekening mee dat het synchroniseren van je harde schijf lang kan duren.
mdadm /dev/md1 --manage --add /dev/sda1
mdadm /dev/md2 --manage --add /dev/sda2
De voortgang van de rebuild kan worden bekeken door het volgende in te voeren:
# cat /proc/mdstat Personalities : [raid1] read_ahead 1024 sectors md0 : active raid1 hdb1[0] hda1[1] 102208 blocks [2/2] [UU] md2 : active raid1 hda3[1] 262016 blocks [2/1] [_U] md1 : active raid1 hdb2[2] hda2[1] 119684160 blocks [2/1] [_U] [>....................] recovery = 0.2% (250108/119684160) finish=198.8min speed=10004K/sec unused devices:
De md0, een kleine array, is al helemaal opnieuw opgebouwd (UU), terwijl md1 nog maar net is begonnen. Nadat het is voltooid, wordt het volgende weergegeven:
# mdadm -D /dev/md1 /dev/md1: Version : 00.90.00 Creation Time : Thu Aug 21 12:21:21 2003 Raid Level : raid1 Array Size : 119684160 (114.13 GiB 122.55 GB) Device Size : 119684160 (114.13 GiB 122.55 GB) Raid Devices : 2 Total Devices : 2 Preferred Minor : 1 Persistence : Superblock is persistent Update Time : Fri Oct 15 13:19:11 2004 State : dirty, no-errors Active Devices : 2 Working Devices : 2 Failed Devices : 0 Spare Devices : 0 Number Major Minor RaidDevice State 0 3 66 0 active sync /dev/hdb2 1 3 2 1 active sync /dev/hda2 UUID : ede70f08:0fdf752d:b408d85a:ada8922b
8. Swap-partitie opnieuw maken
Zorg er ten slotte voor dat de swap-partitie aan de array wordt toegevoegd:
Zie huidige swap-partitie:
cat /proc/swaps
Filename Type Size Used Priority
/dev/sdb3 partition 522104 43984 -1
Maak de swap-partitie opnieuw door de onderstaande opdrachten uit te voeren. Zorg ervoor dat je partitie SDA3 wijzigt in de juiste partitie zoals gevonden bij het gebruik van de opdracht cat /proc/swaps:
mkswap /dev/sda3 swapon -a
Er zijn talloze toepassingen voor MDADM, specifiek voor elk type RAID-niveau. Het is aan te raden om de man-pagina (man MDADM) of de help (MDADM-help) te gebruiken als je meer uitleg over het gebruik ervan nodig hebt. Hopelijk zullen deze voorbeelden je op weg helpen met hoe MDADM werkt.
Conclusie
In dit artikel hebben we een beknopte uitleg gegeven voor MDADM en het gebruik er van op de Linux-server in het geval dat je een softwaredisks RAID-array hebt. De meest voorkomende problemen wanneer een server niet kan worden gestart, zijn te wijten aan schrijffouten.
Geef een reactie