Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Het is een veelvoorkomend scenario voor het gebruik van software-RAID op virtuele Linux-machines in Azure om meerdere gekoppelde gegevensschijven als één RAID-apparaat weer te geven. Dit kan doorgaans worden gebruikt om de prestaties te verbeteren en een verbeterde doorvoer mogelijk te maken in vergelijking met het gebruik van slechts één schijf.
Gegevensschijven koppelen
Er zijn twee of meer lege gegevensschijven nodig om een RAID-apparaat te configureren. De belangrijkste reden voor het maken van een RAID-apparaat is het verbeteren van de prestaties van uw schijf-IO. Op basis van uw I/O-behoeften kunt u ervoor kiezen schijven te koppelen die zijn opgeslagen in onze Standard Storage, met maximaal 500 IO/ps per schijf of onze Premium-opslag met maximaal 5000 IO/ps per schijf. In dit artikel wordt niet beschreven hoe u gegevensschijven inricht en koppelt aan een virtuele Linux-machine. Zie het artikel Een schijf koppelen op Microsoft Azure voor gedetailleerde instructies over het koppelen van een lege gegevensschijf aan een virtuele Linux-machine in Azure.
Belangrijk
Meng schijven van verschillende grootten niet, dit zou ertoe leiden dat de prestaties van de raidset worden beperkt tot die van de traagste schijf.
Het hulpprogramma mdadm installeren
Ubuntu
sudo apt-get update sudo apt-get install mdadmCentOS & Oracle Linux
sudo yum install mdadmSLES en openSUSE
zypper install mdadm
De schijfpartities maken
In dit voorbeeld maken we één schijfpartitie op /dev/sdc. De nieuwe schijfpartitie wordt /dev/sdc1 genoemd.
Beginnen
fdiskmet het maken van partitiessudo fdisk /dev/sdc Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel Building a new DOS disklabel with disk identifier 0xa34cb70c. Changes will remain in memory only, until you decide to write them. After that, of course, the previous content won't be recoverable. WARNING: DOS-compatible mode is deprecated. It's strongly recommended to switch off the mode (command 'c') and change display units to sectors (command 'u').Druk op 'n' bij de prompt om een new-partitie te maken:
Command (m for help): nDruk vervolgens op 'p' om een primary-partitie te maken:
Command action e extended p primary partition (1-4)Druk op 1 om partitienummer 1 te selecteren:
Partition number (1-4): 1Selecteer het beginpunt van de nieuwe partitie of druk op
<enter>om de standaardwaarde te accepteren en de partitie aan het begin van de vrije ruimte op het station te plaatsen.First cylinder (1-1305, default 1): Using default value 1Selecteer de grootte van de partitie, bijvoorbeeld typ '+10G' om een partitie van 10 gigabyte te maken. Of druk op
<enter>om een enkele partitie te maken die het hele station omvat:Last cylinder, +cylinders or +size{K,M,G} (1-1305, default 1305): Using default value 1305Wijzig vervolgens de id en type van de partitie van de standaard-id '83' (Linux) in id 'fd' (Linux raid auto):
Command (m for help): t Selected partition 1 Hex code (type L to list codes): fdSchrijf ten slotte de partitietabel naar het station en sluit fdisk af:
Command (m for help): w The partition table has been altered!
De RAID-matrix maken
Het volgende voorbeeld zal "striping" (RAID-niveau 0) toepassen op drie partities die zich bevinden op drie afzonderlijke gegevensschijven (sdc1, sdd1, sde1). Nadat u deze opdracht hebt uitgevoerd, wordt een nieuw RAID-apparaat met de naam /dev/md127 gemaakt. Houd er ook rekening mee dat als deze gegevensschijven eerder deel uitmaakten van een andere niet-functionerende RAID-array, het mogelijk is dat het nodig is om de
--forceparameter toe te voegen aan demdadmopdracht.sudo mdadm --create /dev/md127 --level 0 --raid-devices 3 \ /dev/sdc1 /dev/sdd1 /dev/sde1Het bestandssysteem maken op het nieuwe RAID-apparaat
CentOS, Oracle Linux, SLES 12, openSUSE en Ubuntu
sudo mkfs -t ext4 /dev/md127SLES 11
sudo mkfs -t ext3 /dev/md127SLES 11 : boot.md inschakelen en mdadm.conf maken
sudo -i chkconfig --add boot.md sudo echo 'DEVICE /dev/sd*[0-9]' >> /etc/mdadm.confOpmerking
Mogelijk is opnieuw opstarten vereist nadat u deze wijzigingen hebt aangebracht op SUSE-systemen. Deze stap is niet vereist voor SLES 12.
Het nieuwe bestandssysteem toevoegen aan /etc/fstab
Belangrijk
Als u het /etc/fstab-bestand onjuist bewerkt, kan dit leiden tot een niet-opstartbaar systeem. Als u niet zeker weet wat u moet doen, raadpleegt u de documentatie van de distributie over het bewerken van dit bestand. U wordt ook aangeraden een back-up van het bestand /etc/fstab te maken voordat u het bewerkt.
Maak het gewenste koppelpunt voor uw nieuwe bestandssysteem, bijvoorbeeld:
sudo mkdir /dataBij het bewerken van /etc/fstab moet de UUID worden gebruikt om te verwijzen naar het bestandssysteem in plaats van de apparaatnaam. Gebruik het
blkidhulpprogramma om de UUID voor het nieuwe bestandssysteem te bepalen:sudo /sbin/blkid ........... /dev/md127: UUID="aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee" TYPE="ext4"Open /etc/fstab in een teksteditor en voeg een vermelding toe voor het nieuwe bestandssysteem, bijvoorbeeld:
UUID=aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee /data ext4 defaults 0 2Ofwel op SLES 11:
/dev/disk/by-uuid/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee /data ext3 defaults 0 2Sla vervolgens /etc/fstab op en sluit deze.
Test of de /etc/fstab-vermelding juist is:
sudo mount -aAls deze opdracht resulteert in een foutbericht, controleert u de syntaxis in het bestand /etc/fstab.
Voer vervolgens de
mountopdracht uit om te controleren of het bestandssysteem is gekoppeld:mount ................. /dev/md127 on /data type ext4 (rw)(Optioneel) Noodveilig-opstartinstellingen
fstab-configuratie
Veel distributies bevatten de
nobootwaitofnofailkoppelparameters die kunnen worden toegevoegd aan het /etc/fstab-bestand. Met deze parameters kunnen fouten optreden bij het koppelen van een bepaald bestandssysteem en kan het Linux-systeem blijven opstarten, zelfs als het RAID-bestandssysteem niet goed kan worden gekoppeld. Raadpleeg de documentatie van uw distributie voor meer informatie over deze parameters.Voorbeeld (Ubuntu):
UUID=aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee /data ext4 defaults,nobootwait 0 2Linux-opstartparameters
Naast de bovenstaande parameters kan de kernelparameter '
bootdegraded=true' het systeem laten opstarten, zelfs als de RAID als beschadigd of gedegradeerd wordt beschouwd, bijvoorbeeld als een gegevensstation per ongeluk van de virtuele machine wordt verwijderd. Dit kan standaard ook resulteren in een niet-opstartbaar systeem.Raadpleeg de documentatie van uw distributie over het correct bewerken van kernelparameters. In veel distributies (CentOS, Oracle Linux, SLES 11) kunnen deze parameters bijvoorbeeld handmatig worden toegevoegd aan het '
/boot/grub/menu.lst'-bestand. Op Ubuntu kan deze parameter worden toegevoegd aan deGRUB_CMDLINE_LINUX_DEFAULTvariabele op '/etc/default/grub'.
TRIM/UNMAP-ondersteuning
Sommige Linux-kernels ondersteunen TRIM/UNMAP-bewerkingen om ongebruikte blokken op de schijf te verwijderen. Deze bewerkingen zijn voornamelijk handig in standaardopslag om Azure te informeren dat verwijderde pagina's niet meer geldig zijn en kunnen worden verwijderd. Het verwijderen van pagina's kan kosten besparen als u grote bestanden maakt en deze vervolgens verwijdert.
Opmerking
RAID geeft mogelijk geen verwijderingsopdrachten uit als de segmentgrootte voor de matrix is ingesteld op minder dan de standaardwaarde (512 KB). Dit komt doordat de unmap-granulariteit op de host ook 512 KB is. Als u de segmentgrootte van de matrix hebt gewijzigd via de parameter van --chunk= mdadm, kunnen TRIM/unmap-aanvragen worden genegeerd door de kernel.
Er zijn twee manieren om TRIM-ondersteuning in te schakelen op uw Linux-VM. Zoals gebruikelijk raadpleegt u uw distributie voor de aanbevolen aanpak:
Gebruik de koppelingsoptie
discardin/etc/fstab, bijvoorbeeld:UUID=aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee /data ext4 defaults,discard 0 2In sommige gevallen kan de optie gevolgen hebben voor de
discardprestaties. U kunt defstrimopdracht ook handmatig uitvoeren vanaf de opdrachtregel of deze toevoegen aan uw crontab om regelmatig uit te voeren:Ubuntu
# sudo apt-get install util-linux # sudo fstrim /dataRHEL/CentOS
# sudo yum install util-linux # sudo fstrim /data