Konfigurera Software RAID på Linux
Det är ett vanligt scenario att använda programvaru-RAID på virtuella Linux-datorer i Azure för att presentera flera anslutna datadiskar som en enda RAID-enhet. Detta kan vanligtvis användas för att förbättra prestanda och möjliggöra bättre dataflöde jämfört med att bara använda en enda disk.
Ansluta datadiskar
Två eller flera tomma datadiskar behövs för att konfigurera en RAID-enhet. Den främsta orsaken till att skapa en RAID-enhet är att förbättra prestanda för disk-I/O. Baserat på dina I/O-behov kan du välja att ansluta diskar som lagras i vår Standard Storage, med upp till 500 I/ps per disk eller vår Premium-lagring med upp till 5 000 I/ps per disk. Den här artikeln går inte in närmare på hur du etablerar och kopplar datadiskar till en virtuell Linux-dator. Mer information om hur du ansluter en tom datadisk till en virtuell Linux-dator på Azure finns i Artikeln om att bifoga en disk i Microsoft Azure.
Viktigt
Blanda inte diskar av olika storlekar, vilket skulle leda till att raiduppsättningens prestanda begränsas till den långsammaste disken.
Installera verktyget mdadm
Ubuntu
sudo apt-get update sudo apt-get install mdadm
CentOS & Oracle Linux
sudo yum install mdadm
SLES och openSUSE
zypper install mdadm
Skapa diskpartitionerna
I det här exemplet skapar vi en enskild diskpartition på /dev/sdc. Den nya diskpartitionen kallas /dev/sdc1.
Börja
fdisk
skapa partitionersudo 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').
Tryck på "n" i kommandotolken för att skapa en n ew-partition:
Command (m for help): n
Tryck sedan på "p" för att skapa en rimarypartition:
Command action e extended p primary partition (1-4)
Tryck på "1" för att välja partitionsnummer 1:
Partition number (1-4): 1
Välj startpunkten för den nya partitionen eller tryck
<enter>
på för att acceptera standardinställningen att placera partitionen i början av det lediga utrymmet på enheten:First cylinder (1-1305, default 1): Using default value 1
Välj storleken på partitionen, till exempel "+10G" för att skapa en partition på 10 gigabyte. Eller tryck på
<enter>
Skapa en enda partition som sträcker sig över hela enheten:Last cylinder, +cylinders or +size{K,M,G} (1-1305, default 1305): Using default value 1305
Ändra sedan ID och type för partitionen från standard-ID :t '83' (Linux) till ID 'fd' (Automatisk Linux-raid):
Command (m for help): t Selected partition 1 Hex code (type L to list codes): fd
Skriv slutligen partitionstabellen till enheten och avsluta fdisk:
Command (m for help): w The partition table has been altered!
Skapa RAID-matrisen
I följande exempel "stripe" (RAID-nivå 0) finns tre partitioner på tre separata datadiskar (sdc1, sdd1, sde1). När du har kört det här kommandot skapas en ny RAID-enhet med namnet /dev/md127 . Observera också att om dessa datadiskar vi tidigare ingick i en annan nedstyckt RAID-matris kan det vara nödvändigt att lägga till parametern
--force
imdadm
kommandot:sudo mdadm --create /dev/md127 --level 0 --raid-devices 3 \ /dev/sdc1 /dev/sdd1 /dev/sde1
Skapa filsystemet på den nya RAID-enheten
CentOS, Oracle Linux, SLES 12, openSUSE och Ubuntu
sudo mkfs -t ext4 /dev/md127
SLES 11
sudo mkfs -t ext3 /dev/md127
SLES 11 – aktivera boot.md och skapa mdadm.conf
sudo -i chkconfig --add boot.md sudo echo 'DEVICE /dev/sd*[0-9]' >> /etc/mdadm.conf
Anteckning
En omstart kan krävas när du har gjort dessa ändringar på SUSE-system. Det här steget krävs inte på SLES 12.
Lägg till det nya filsystemet i /etc/fstab
Viktigt
Om filen /etc/fstab redigeras felaktigt kan det leda till ett system som inte kan startas. Om du är osäker läser du distributionens dokumentation för att få information om hur du redigerar filen på rätt sätt. Vi rekommenderar också att en säkerhetskopia av /etc/fstab-filen skapas innan du redigerar.
Skapa önskad monteringspunkt för det nya filsystemet, till exempel:
sudo mkdir /data
När du redigerar /etc/fstab ska UUID användas för att referera till filsystemet i stället för enhetsnamnet. Använd verktyget
blkid
för att fastställa UUID för det nya filsystemet:sudo /sbin/blkid ........... /dev/md127: UUID="aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee" TYPE="ext4"
Öppna /etc/fstab i en textredigerare och lägg till en post för det nya filsystemet, till exempel:
UUID=aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee /data ext4 defaults 0 2
Eller på SLES 11:
/dev/disk/by-uuid/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee /data ext3 defaults 0 2
Spara och stäng sedan /etc/fstab.
Testa att posten /etc/fstab är korrekt:
sudo mount -a
Om det här kommandot resulterar i ett felmeddelande kontrollerar du syntaxen i filen /etc/fstab.
Kör
mount
sedan kommandot för att se till att filsystemet är monterat:mount ................. /dev/md127 on /data type ext4 (rw)
(Valfritt) Felsäkra startparametrar
fstab-konfiguration
Många distributioner innehåller antingen de
nobootwait
parametrar ellernofail
monteringsparametrar som kan läggas till i /etc/fstab-filen. Dessa parametrar möjliggör fel vid montering av ett visst filsystem och gör att Linux-systemet kan fortsätta att starta även om det inte går att montera RAID-filsystemet korrekt. Mer information om dessa parametrar finns i dokumentationen för distributionen.Exempel (Ubuntu):
UUID=aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee /data ext4 defaults,nobootwait 0 2
Linux-startparametrar
Utöver parametrarna ovan kan kernelparametern "
bootdegraded=true
" tillåta att systemet startar även om RAID uppfattas som skadat eller degraderat, till exempel om en dataenhet oavsiktligt tas bort från den virtuella datorn. Som standard kan detta också resultera i ett system som inte kan startas.Se distributionens dokumentation om hur du redigerar kernelparametrar korrekt. I många distributioner (CentOS, Oracle Linux, SLES 11) kan dessa parametrar till exempel läggas till manuellt i filen "
/boot/grub/menu.lst
". På Ubuntu kan den här parametern läggas till i variabelnGRUB_CMDLINE_LINUX_DEFAULT
på "/etc/default/grub".
STÖD FÖR TRIM/UNMAP
Vissa Linux-kernels stöder TRIM/UNMAP-åtgärder för att ignorera oanvända block på disken. Dessa åtgärder är främst användbara i standardlagring för att informera Azure om att borttagna sidor inte längre är giltiga och kan ignoreras. Om du tar bort sidor kan du spara kostnader om du skapar stora filer och sedan tar bort dem.
Anteckning
RAID kanske inte utfärdar ignorera-kommandon om segmentstorleken för matrisen är inställd på mindre än standardvärdet (512 KB). Det beror på att avkartans kornighet på värden också är 512 KB. Om du ändrade matrisens segmentstorlek via mdadms --chunk=
parameter kan TRIM/unmap-begäranden ignoreras av kerneln.
Det finns två sätt att aktivera TRIM-stöd på din virtuella Linux-dator. Som vanligt läser du distributionen för den rekommenderade metoden:
Använd monteringsalternativet
discard
i/etc/fstab
, till exempel:UUID=aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee /data ext4 defaults,discard 0 2
I vissa fall kan alternativet
discard
få prestandakonsekvenser. Du kan också körafstrim
kommandot manuellt från kommandoraden eller lägga till det i crontab för att köra regelbundet:Ubuntu
# sudo apt-get install util-linux # sudo fstrim /data
RHEL/CentOS
# sudo yum install util-linux # sudo fstrim /data