Indledning
Det mdadm
hjælpeprogram kan bruges til at oprette og administrere lagringsarrays ved hjælp af Linux’ software-RAID-funktioner. Administratorer har stor fleksibilitet til at koordinere deres individuelle lagerenheder og oprette logiske lagerenheder, der har større ydeevne eller redundansegenskaber.
I denne vejledning vil vi gennemgå en række forskellige RAID-konfigurationer, der kan oprettes ved hjælp af en Ubuntu 16.04-server.
Forudsætninger
For at kunne gennemføre trinene i denne vejledning skal du have:
- En ikke-root-bruger med
sudo
-privilegier på en Ubuntu 16.04-server: Trinene i denne vejledning vil blive gennemført med ensudo
-bruger. Hvis du vil vide, hvordan du konfigurerer en konto med disse privilegier, skal du følge vores vejledning til første installation af Ubuntu 16.04-serveren. - En grundlæggende forståelse af RAID-terminologi og -koncepter: Selv om denne vejledning vil berøre nogle RAID-terminologier i forbifarten, er en mere komplet forståelse meget nyttig. Hvis du vil vide mere om RAID og få en bedre forståelse af, hvilket RAID-niveau der er det rigtige for dig, skal du læse vores artikel Introduktion til RAID.
- Flere rå lagerenheder til rådighed på din server: Vi vil demonstrere, hvordan du konfigurerer forskellige typer arrays på serveren. Som sådan har du brug for nogle drev til at konfigurere. Hvis du bruger DigitalOcean, kan du bruge Block Storage-volumener til at udfylde denne rolle. Afhængigt af array-typen skal du som minimum bruge mellem to og fire lagerenheder.
Retablering af eksisterende RAID-enheder
Igennem denne vejledning vil vi introducere trinene til at oprette en række forskellige RAID-niveauer. Hvis du ønsker at følge med, vil du sandsynligvis ønske at genbruge dine lagerenheder efter hvert afsnit. Der kan henvises til dette afsnit for at lære, hvordan du hurtigt nulstiller dine komponentlagerenheder, inden du tester et nyt RAID-niveau. Spring dette afsnit over for nu, hvis du endnu ikke har opsat nogen arrays.
Denne proces vil fuldstændig ødelægge arrayet og alle data, der er skrevet til det. Sørg for, at du opererer på det korrekte array, og at du har kopieret alle data, som du skal beholde, før du ødelægger arrayet.
Find de aktive arrays i filen /proc/mdstat
ved at skrive:
- cat /proc/mdstat
OutputPersonalities : md0 : active raid0 sdc sdd 209584128 blocks super 1.2 512k chunks unused devices: <none>
Unmount arrayet fra filsystemet:
- sudo umount /dev/md0
Så skal du stoppe og fjerne arrayet ved at skrive:
- sudo umount /dev/md0
Så skal du stoppe og fjerne arrayet ved at skrive:
- sudo mdadm --stop /dev/md0
- sudo mdadm --remove /dev/md0
Find de enheder, der blev brugt til at opbygge arrayet, med følgende kommando:
Husk, at/dev/sd*
-navnene kan ændres, hver gang du genstarter! Kontroller dem hver gang for at sikre dig, at du opererer på de korrekte enheder.
- lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
OutputNAME SIZE FSTYPE TYPE MOUNTPOINTsda 100G disk sdb 100G disk sdc 100G linux_raid_member disk sdd 100G linux_raid_member disk vda 20G disk ├─vda1 20G ext4 part /└─vda15 1M part
Når du har fundet de enheder, der blev brugt til at oprette et array, skal du nulstille deres superblok for at nulstille dem til normal tilstand:
- sudo mdadm --zero-superblock /dev/sdc
- sudo mdadm --zero-superblock /dev/sdd
Du bør fjerne alle vedvarende referencer til arrayet. Rediger filen /etc/fstab
og kommenter ud eller fjern henvisningen til dit array:
- sudo nano /etc/fstab
. . .# /dev/md0 /mnt/md0 ext4 defaults,nofail,discard 0 0
Kommenter også ud eller fjern arraydefinitionen fra filen /etc/mdadm/mdadm.conf
:
- sudo nano /etc/mdadm/mdadm.conf
. . .# ARRAY /dev/md0 metadata=1.2 name=mdadmwrite:0 UUID=7261fb9c:976d0d97:30bc63ce:85e76e91
Til sidst skal du opdatere initramfs
igen:
- sudo update-initramfs -u
På dette tidspunkt bør du være klar til at genbruge lagerenhederne individuelt eller som komponenter i et andet array.
Skabelse af et RAID 0-array
Raid 0-arrayet fungerer ved at opdele data i bidder og strippe dem på tværs af de tilgængelige diske. Det betyder, at hver disk indeholder en del af dataene, og at der henvises til flere diske, når der hentes oplysninger.
- Krav: Minimum 2 lagerenheder
- Primær fordel: Ydelse
- Det skal du være opmærksom på: Sørg for, at du har funktionelle sikkerhedskopier. En enkelt enhedsfejl vil ødelægge alle data i arrayet.
Identificer komponent-enhederne
For at komme i gang skal du finde identifikatorerne for de rå diske, som du vil bruge:
- lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
OutputNAME SIZE FSTYPE TYPE MOUNTPOINTsda 100G disksdb 100G diskvda 20G disk ├─vda1 20G ext4 part /└─vda15 1M part
Som du kan se ovenfor, har vi to diske uden filsystem, hver på 100 G i størrelse. I dette eksempel har disse enheder fået identifikatorerne /dev/sda
og /dev/sdb
for denne session. Det vil være de rå komponenter, som vi vil bruge til at opbygge arrayet.
Skab arrayet
For at oprette et RAID 0-array med disse komponenter skal du sende dem ind i kommandoen mdadm --create
. Du skal angive det enhedsnavn, du ønsker at oprette (/dev/md0
i vores tilfælde), RAID-niveauet og antallet af enheder:
- sudo mdadm --create --verbose /dev/md0 --level=0 --raid-devices=2 /dev/sda /dev/sdb
Du kan sikre dig, at RAID’et blev oprettet med succes, ved at kontrollere filen /proc/mdstat
:
- cat /proc/mdstat
OutputPersonalities : md0 : active raid0 sdb sda 209584128 blocks super 1.2 512k chunks unused devices: <none>
Som du kan se i den fremhævede linje, er enheden /dev/md0
blevet oprettet i RAID 0-konfigurationen ved hjælp af enhederne /dev/sda
og /dev/sdb
.
Opret og monter filsystemet
Så skal du oprette et filsystem på arrayet:
- sudo mkfs.ext4 -F /dev/md0
Opret et monteringspunkt for at knytte det nye filsystem til det:
- sudo mkdir -p /mnt/md0
Du kan montere filsystemet ved at skrive:
- sudo mount /dev/md0 /mnt/md0
Kontroller, om den nye plads er tilgængelig, ved at skrive:
- df -h -x devtmpfs -x tmpfs
OutputFilesystem Size Used Avail Use% Mounted on/dev/vda1 20G 1.1G 18G 6% //dev/md0 197G 60M 187G 1% /mnt/md0
Det nye filsystem er monteret og tilgængeligt.
Save the Array Layout
For at sikre, at arrayet samles igen automatisk ved opstart, skal vi justere filen /etc/mdadm/mdadm.conf
. Du kan automatisk scanne det aktive array og tilføje filen ved at skrive:
- sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf
Dernæst kan du opdatere initramfs, eller det indledende RAM-filsystem, så arrayet er tilgængeligt under den tidlige opstartsproces:
- sudo update-initramfs -u
Føj de nye mountindstillinger for filsystemet til filen /etc/fstab
for automatisk montering ved opstart:
- echo '/dev/md0 /mnt/md0 ext4 defaults,nofail,discard 0 0' | sudo tee -a /etc/fstab
Din RAID 0-array skulle nu automatisk blive samlet og monteret ved hver opstart.
Skabelse af et RAID 1-array
Raid 1-arraytypen implementeres ved at spejle data på tværs af alle tilgængelige diske. Hver disk i et RAID 1-array får en fuld kopi af dataene, hvilket giver redundans i tilfælde af en enhedsfejl.
- Krav: mindst 2 lagerenheder
- Primær fordel: Redundans
- Ting, du skal huske på: Da der opretholdes to kopier af dataene, vil kun halvdelen af diskpladsen være brugbar
Identificer komponent-enhederne
For at komme i gang skal du finde identifikatorerne for de rå diske, som du vil bruge:
- lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
OutputNAME SIZE FSTYPE TYPE MOUNTPOINTsda 100G disksdb 100G diskvda 20G disk ├─vda1 20G ext4 part /└─vda15 1M part
Som du kan se ovenfor, har vi to diske uden et filsystem, hver på 100 G i størrelse. I dette eksempel har disse enheder fået identifikatorerne /dev/sda
og /dev/sdb
for denne session. Disse vil være de rå komponenter, som vi vil bruge til at opbygge arrayet.
Skab arrayet
For at oprette et RAID 1-array med disse komponenter skal du sende dem ind i kommandoen mdadm --create
. Du skal angive det enhedsnavn, du ønsker at oprette (/dev/md0
i vores tilfælde), RAID-niveauet og antallet af enheder:
- sudo mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/sda /dev/sdb
Hvis de komponent-enheder, du bruger, ikke er partitioner med boot
-flaget aktiveret, vil du sandsynligvis få følgende advarsel. Det er sikkert at skrive y for at fortsætte:
Outputmdadm: Note: this array has metadata at the start and may not be suitable as a boot device. If you plan to store '/boot' on this device please ensure that your boot-loader understands md/v1.x metadata, or use --metadata=0.90mdadm: size set to 104792064KContinue creating array? y
Værktøjet mdadm
vil begynde at spejle drevene. Det kan tage noget tid at gennemføre, men arrayet kan bruges i denne periode. Du kan overvåge spejlingens fremskridt ved at kontrollere /proc/mdstat
-filen:
- cat /proc/mdstat
OutputPersonalities : md0 : active raid1 sdb sda 104792064 blocks super 1.2 resync = 20.2% (21233216/104792064) finish=6.9min speed=199507K/secunused devices: <none>
Som du kan se i den første fremhævede linje, er /dev/md0
-enheden blevet oprettet i RAID 1-konfigurationen ved hjælp af /dev/sda
– og /dev/sdb
-enhederne. Den anden fremhævede linje viser fremskridtet med spejlingen. Du kan fortsætte vejledningen, mens denne proces afsluttes.
Opret og monter filsystemet
Næst skal du oprette et filsystem på arrayet:
- sudo mkfs.ext4 -F /dev/md0
Opret et monteringspunkt for at knytte det nye filsystem til det:
- sudo mkdir -p /mnt/md0
Du kan montere filsystemet ved at skrive:
- sudo mount /dev/md0 /mnt/md0
Kontroller, om den nye plads er tilgængelig, ved at skrive:
- df -h -x devtmpfs -x tmpfs
OutputFilesystem Size Used Avail Use% Mounted on/dev/vda1 20G 1.1G 18G 6% //dev/md0 99G 60M 94G 1% /mnt/md0
Det nye filsystem er monteret og tilgængeligt.
Save the Array Layout
For at sikre, at arrayet samles igen automatisk ved opstart, skal vi justere filen /etc/mdadm/mdadm.conf
. Du kan automatisk scanne det aktive array og tilføje filen ved at skrive:
- sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf
Dernæst kan du opdatere initramfs, eller det indledende RAM-filsystem, så arrayet er tilgængeligt under den tidlige opstartsproces:
- sudo update-initramfs -u
Føj de nye mount-muligheder for filsystemet til /etc/fstab
-filen for automatisk montering ved opstart:
- echo '/dev/md0 /mnt/md0 ext4 defaults,nofail,discard 0 0' | sudo tee -a /etc/fstab
Din RAID 1-array skulle nu automatisk blive samlet og monteret ved hver opstart.
Skabelse af et RAID 5-array
Raid 5-arraytypen implementeres ved at strippe data på tværs af de tilgængelige enheder. En komponent i hver stribe er en beregnet paritetsblok. Hvis en enhed svigter, kan paritetsblokken og de resterende blokke bruges til at beregne de manglende data. Den enhed, der modtager paritetsblokken, roteres, så hver enhed har en afbalanceret mængde paritetsinformation.
- Krav: Minimum 3 lagerenheder
- Primær fordel: Redundans med mere brugbar kapacitet.
- Ting, du skal være opmærksom på: Mens paritetsoplysningerne distribueres, vil en disks kapacitet blive brugt til paritet. RAID 5 kan lide af meget dårlig ydeevne, når den er i en degraderet tilstand.
Identificer komponent-enhederne
For at komme i gang skal du finde identifikatorerne for de rå diske, du skal bruge:
- lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
OutputNAME SIZE FSTYPE TYPE MOUNTPOINTsda 100G disksdb 100G disksdc 100G diskvda 20G disk ├─vda1 20G ext4 part /└─vda15 1M part
Som du kan se ovenfor, har vi tre diske uden et filsystem, hver på 100 G i størrelse. I dette eksempel har disse enheder fået identifikatorerne /dev/sda
, /dev/sdb
og /dev/sdc
for denne session. Disse vil være de rå komponenter, som vi vil bruge til at opbygge arrayet.
Skab arrayet
For at oprette et RAID 5-array med disse komponenter skal du sende dem ind i kommandoen mdadm --create
. Du skal angive det enhedsnavn, du ønsker at oprette (/dev/md0
i vores tilfælde), RAID-niveauet og antallet af enheder:
- sudo mdadm --create --verbose /dev/md0 --level=5 --raid-devices=3 /dev/sda /dev/sdb /dev/sdc
Værktøjet mdadm
vil begynde at konfigurere arrayet (det bruger faktisk genoprettelsesprocessen til at opbygge arrayet af hensyn til ydeevnen). Det kan tage noget tid at gennemføre, men arrayet kan bruges i løbet af denne tid. Du kan overvåge spejlingens fremskridt ved at kontrollere /proc/mdstat
-filen:
- cat /proc/mdstat
OutputPersonalities : md0 : active raid5 sdc sdb sda 209584128 blocks super 1.2 level 5, 512k chunk, algorithm 2 recovery = 15.6% (16362536/104792064) finish=7.3min speed=200808K/secunused devices: <none>
Som du kan se i den første fremhævede linje, er /dev/md0
-enheden blevet oprettet i RAID 5-konfigurationen ved hjælp af /dev/sda
-, /dev/sdb
– og /dev/sdc
-enhederne. Den anden fremhævede linje viser fremskridtet med opbygningen. Du kan fortsætte vejledningen, mens denne proces afsluttes.
Opret og monter filsystemet
Næst skal du oprette et filsystem på arrayet:
- sudo mkfs.ext4 -F /dev/md0
Opret et monteringspunkt for at knytte det nye filsystem til det:
- sudo mkdir -p /mnt/md0
Du kan montere filsystemet ved at skrive:
- sudo mount /dev/md0 /mnt/md0
Kontroller, om den nye plads er tilgængelig, ved at skrive:
- df -h -x devtmpfs -x tmpfs
OutputFilesystem Size Used Avail Use% Mounted on/dev/vda1 20G 1.1G 18G 6% //dev/md0 197G 60M 187G 1% /mnt/md0
Det nye filsystem er monteret og tilgængeligt.
Save the Array Layout
For at sikre, at arrayet samles igen automatisk ved opstart, skal vi justere /etc/mdadm/mdadm.conf
-filen.
Før du justerer konfigurationen, skal du kontrollere igen, at arrayet er færdig med at blive samlet. På grund af den måde, som mdadm
opbygger RAID 5-marrays på, vil antallet af reservedele i arrayet blive rapporteret unøjagtigt, hvis arrayet stadig er ved at blive opbygget:
- cat /proc/mdstat
OutputPersonalities : md0 : active raid5 sdc sdb sda 209584128 blocks super 1.2 level 5, 512k chunk, algorithm 2 unused devices: <none>
Overstående output viser, at genopbygningen er afsluttet. Nu kan vi automatisk scanne det aktive array og tilføje filen ved at skrive:
- sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf
Derpå kan du opdatere initramfs, eller det oprindelige RAM-filsystem, så arrayet er tilgængeligt under den tidlige opstartsproces:
- sudo update-initramfs -u
Føj de nye mount-muligheder for filsystemet til filen /etc/fstab
for automatisk montering ved opstart:
- echo '/dev/md0 /mnt/md0 ext4 defaults,nofail,discard 0 0' | sudo tee -a /etc/fstab
Dit RAID 5 array skulle nu automatisk blive samlet og monteret ved hver opstart.
Skabelse af et RAID 6-array
Raid 6-arraytypen implementeres ved at strippe data på tværs af de tilgængelige enheder. To komponenter i hver stribe er beregnede paritetsblokke. Hvis en eller to enheder svigter, kan paritetsblokkene og de resterende blokke bruges til at beregne de manglende data. De enheder, der modtager paritetsblokkene, roteres, så hver enhed har en afbalanceret mængde paritetsinformation. Dette svarer til et RAID 5-array, men giver mulighed for fejl på to drev.
- Krav: Minimum 4 lagerenheder
- Primær fordel: Dobbelt redundans med større brugbar kapacitet.
- Det skal du være opmærksom på: Mens paritetsoplysningerne distribueres, vil to diskers kapacitet blive brugt til paritet. RAID 6 kan lide under meget dårlig ydelse, når den er i en degraderet tilstand.
Identificer komponent-enhederne
For at komme i gang skal du finde identifikatorerne for de rå diske, som du vil bruge:
- lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
OutputNAME SIZE FSTYPE TYPE MOUNTPOINTsda 100G disksdb 100G disksdc 100G disksdd 100G diskvda 20G disk ├─vda1 20G ext4 part /└─vda15 1M part
Som du kan se ovenfor, har vi fire diske uden filsystem, hver på 100 G i størrelse. I dette eksempel har disse enheder fået identifikatorerne /dev/sda
, /dev/sdb
, /dev/sdc
og /dev/sdd
for denne session. Disse vil være de rå komponenter, som vi vil bruge til at opbygge arrayet.
Skab arrayet
For at oprette et RAID 6-array med disse komponenter skal du sende dem til kommandoen mdadm --create
. Du skal angive det enhedsnavn, du ønsker at oprette (/dev/md0
i vores tilfælde), RAID-niveauet og antallet af enheder:
- sudo mdadm --create --verbose /dev/md0 --level=6 --raid-devices=4 /dev/sda /dev/sdb /dev/sdc /dev/sdd
Værktøjet mdadm
begynder at konfigurere arrayet (det bruger faktisk genoprettelsesprocessen til at opbygge arrayet af hensyn til ydeevnen). Det kan tage noget tid at gennemføre, men arrayet kan bruges i løbet af denne tid. Du kan overvåge spejlingens fremskridt ved at kontrollere /proc/mdstat
-filen:
- cat /proc/mdstat
OutputPersonalities : md0 : active raid6 sdd sdc sdb sda 209584128 blocks super 1.2 level 6, 512k chunk, algorithm 2 resync = 0.6% (668572/104792064) finish=10.3min speed=167143K/secunused devices: <none>
Som du kan se i den første fremhævede linje, er /dev/md0
-enheden blevet oprettet i RAID 6-konfigurationen ved hjælp af /dev/sda
-, /dev/sdb
-, /dev/sdc
– og /dev/sdd
-enhederne. Den anden fremhævede linje viser fremskridtet med opbygningen. Du kan fortsætte vejledningen, mens denne proces afsluttes.
Opret og monter filsystemet
Næst skal du oprette et filsystem på arrayet:
- sudo mkfs.ext4 -F /dev/md0
Opret et monteringspunkt for at knytte det nye filsystem til det:
- sudo mkdir -p /mnt/md0
Du kan montere filsystemet ved at skrive:
- sudo mount /dev/md0 /mnt/md0
Kontroller, om den nye plads er tilgængelig, ved at skrive:
- df -h -x devtmpfs -x tmpfs
OutputFilesystem Size Used Avail Use% Mounted on/dev/vda1 20G 1.1G 18G 6% //dev/md0 197G 60M 187G 1% /mnt/md0
Det nye filsystem er monteret og tilgængeligt.
Save the Array Layout
For at sikre, at arrayet samles automatisk igen ved opstart, skal vi justere filen /etc/mdadm/mdadm.conf
. Vi kan automatisk scanne det aktive array og tilføje filen ved at skrive:
- sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf
Dernæst kan du opdatere initramfs, eller det indledende RAM-filsystem, så arrayet er tilgængeligt under den tidlige opstartsproces:
- sudo update-initramfs -u
Føj de nye mount-muligheder for filsystemet til /etc/fstab
-filen for automatisk montering ved opstart:
- echo '/dev/md0 /mnt/md0 ext4 defaults,nofail,discard 0 0' | sudo tee -a /etc/fstab
Din RAID 6-array skulle nu automatisk blive samlet og monteret ved hver opstart.
Skabelse af et komplekst RAID 10-array
RAID 10-marraytypen implementeres traditionelt ved at oprette et stribet RAID 0-array bestående af sæt RAID 1-marrays. Denne nested array-type giver både redundans og høj ydeevne, men på bekostning af store mængder diskplads. Hjælpeprogrammet mdadm
har sin egen RAID 10-type, der giver den samme type fordele med øget fleksibilitet. Den oprettes ikke ved at neste arrays, men har mange af de samme egenskaber og garantier. Vi vil bruge mdadm
RAID 10 her.
- Krav: Minimum 3 lagerenheder
- Primær fordel: Ydelse og redundans
- Ting du skal være opmærksom på: Omfanget af kapacitetsreduktion for arrayet er defineret af det antal datakopier, du vælger at beholde. Antallet af kopier, der gemmes med
mdadm
style RAID 10, kan konfigureres.
Som standard gemmes to kopier af hver datablok i det, der kaldes det “nærliggende” layout. De mulige layouts, der dikterer, hvordan hver datablok gemmes, er:
- near: Standardopstillingen. Kopier af hver chunk skrives fortløbende ved striping, hvilket betyder, at kopierne af datablokkene skrives rundt om den samme del af flere diske.
- far: Den første og de efterfølgende kopier skrives til forskellige dele lagerenhederne i arrayet. F.eks. kan den første klump blive skrevet nær begyndelsen af en disk, mens den anden klump bliver skrevet halvvejs nede på en anden disk. Dette kan give nogle læseydelsesgevinster for traditionelle spinning diske på bekostning af skriveydelsen.
- offset: Hver stribe kopieres, forskudt med et drev. Det betyder, at kopierne er forskudt fra hinanden, men stadig tæt på hinanden på disken. Dette hjælper med at minimere overdreven søgning under visse arbejdsbelastninger.
Du kan få mere at vide om disse layouts ved at tjekke afsnittet “RAID10” på denne man
side:
- man 4 md
Du kan også finde denne man
side online her.
Identificer komponent-enhederne
For at komme i gang skal du finde identifikatorerne for de rå diske, som du skal bruge:
- lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
OutputNAME SIZE FSTYPE TYPE MOUNTPOINTsda 100G disksdb 100G disksdc 100G disksdd 100G diskvda 20G disk ├─vda1 20G ext4 part /└─vda15 1M part
Som du kan se ovenfor, har vi fire diske uden filsystem, hver på 100 G i størrelse. I dette eksempel har disse enheder fået identifikatorerne /dev/sda
, /dev/sdb
, /dev/sdc
og /dev/sdd
for denne session. Disse vil være de rå komponenter, som vi vil bruge til at opbygge arrayet.
Skab arrayet
For at oprette et RAID 10-array med disse komponenter skal du sende dem til kommandoen mdadm --create
. Du skal angive det enhedsnavn, du ønsker at oprette (/dev/md0
i vores tilfælde), RAID-niveauet og antallet af enheder.
Du kan oprette to kopier ved hjælp af det nærliggende layout ved ikke at angive et layout- og kopinummer:
- sudo mdadm --create --verbose /dev/md0 --level=10 --raid-devices=4 /dev/sda /dev/sdb /dev/sdc /dev/sdd
Hvis du ønsker at bruge et andet layout eller ændre antallet af kopier, skal du bruge --layout=
-indstillingen, som tager et layout- og kopi-id. Layouts er n for near (nær), f for far (fjern) og o for offset (forskydning). Antallet af kopier, der skal gemmes, tilføjes bagefter.
For eksempel for at oprette et array med 3 kopier i offset-layoutet ville kommandoen se således ud:
- sudo mdadm --create --verbose /dev/md0 --level=10 --layout=o3 --raid-devices=4 /dev/sda /dev/sdb /dev/sdc /dev/sdd
Værktøjet mdadm
vil begynde at konfigurere arrayet (det bruger faktisk genoprettelsesprocessen til at opbygge arrayet af hensyn til ydeevnen). Det kan tage noget tid at gennemføre, men arrayet kan bruges i løbet af denne tid. Du kan overvåge spejlingens fremskridt ved at kontrollere /proc/mdstat
-filen:
- cat /proc/mdstat
OutputPersonalities : md0 : active raid10 sdd sdc sdb sda 209584128 blocks super 1.2 512K chunks 2 near-copies resync = 18.1% (37959424/209584128) finish=13.8min speed=206120K/secunused devices: <none>
Som du kan se i den første fremhævede linje, er /dev/md0
-enheden blevet oprettet i RAID 10-konfigurationen ved hjælp af /dev/sda
-, /dev/sdb
-, /dev/sdc
– og /dev/sdd
-enhederne. Det andet fremhævede område viser det layout, der blev brugt til dette eksempel (2 kopier i den nærmeste konfiguration). Det tredje fremhævede område viser fremskridtet med opbygningen. Du kan fortsætte vejledningen, mens denne proces afsluttes.
Opret og monter filsystemet
Næst skal du oprette et filsystem på arrayet:
- sudo mkfs.ext4 -F /dev/md0
Opret et monteringspunkt for at knytte det nye filsystem til det:
- sudo mkdir -p /mnt/md0
Du kan montere filsystemet ved at skrive:
- sudo mount /dev/md0 /mnt/md0
Kontroller, om den nye plads er tilgængelig, ved at skrive:
- df -h -x devtmpfs -x tmpfs
OutputFilesystem Size Used Avail Use% Mounted on/dev/vda1 20G 1.1G 18G 6% //dev/md0 197G 60M 187G 1% /mnt/md0
Det nye filsystem er monteret og tilgængeligt.
Save the Array Layout
For at sikre, at arrayet samles igen automatisk ved opstart, skal vi justere filen /etc/mdadm/mdadm.conf
. Vi kan automatisk scanne det aktive array og tilføje filen ved at skrive:
- sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf
Dernæst kan du opdatere initramfs, eller det indledende RAM-filsystem, så arrayet er tilgængeligt under den tidlige opstartsproces:
- sudo update-initramfs -u
Føj de nye mountindstillinger for filsystemet til /etc/fstab
-filen for automatisk montering ved opstart:
- echo '/dev/md0 /mnt/md0 ext4 defaults,nofail,discard 0 0' | sudo tee -a /etc/fstab
Din RAID 10-array skulle nu automatisk blive samlet og monteret ved hver opstart.
Slutning
I denne vejledning demonstrerede vi, hvordan du opretter forskellige typer arrays ved hjælp af Linux’ mdadm
software-RAID-værktøj mdadm
. RAID-arrays tilbyder nogle overbevisende redundans- og ydelsesforbedringer i forhold til at bruge flere diske individuelt.
Når du har besluttet dig for den type array, der er nødvendig for dit miljø, og oprettet enheden, skal du lære, hvordan du udfører den daglige administration med mdadm
. Vores vejledning om hvordan du administrerer RAID arrays med mdadm
på Ubuntu 16.04 kan hjælpe dig i gang.