Konfigurace softwarového RAID v Linuxu

Běžným scénářem je použití softwarového RAID na virtuálních počítačích s Linuxem v Azure k prezentaci několika připojených datových disků jako jednoho zařízení RAID. Obvykle se to dá použít ke zvýšení výkonu a zvýšení propustnosti v porovnání s používáním jenom jednoho disku.

Připojení datových disků

Ke konfiguraci zařízení RAID jsou potřeba dva nebo více prázdných datových disků. Primárním důvodem pro vytvoření zařízení RAID je zlepšení výkonu vstupně-výstupních operací disku. V závislosti na vašich potřebách vstupně-výstupních operací můžete připojit disky, které jsou uložené ve službě Standard Storage s až 500 vstupně-výstupními operacemi za sekundu na disk, nebo úložiště premium s až 5 000 vstupně-výstupními operacemi za sekundu na disk. Tento článek se podrobně nezabíná o tom, jak zřídit a připojit datové disky k virtuálnímu počítači s Linuxem. Podrobné pokyny k připojení prázdného datového disku k virtuálnímu počítači s Linuxem v Azure najdete v článku Připojení disku v Microsoft Azure.

Důležité

Nekombinujte disky různých velikostí, což by vedlo k omezení výkonu sady raidset na nejpomalejší disk.

Instalace nástroje mdadm

  • Ubuntu

    sudo apt-get update
    sudo apt-get install mdadm
    
  • CentOS & Oracle Linux

    sudo yum install mdadm
    
  • SLES a openSUSE

    zypper install mdadm
    

Vytvoření diskových oddílů

V tomto příkladu vytvoříme jeden diskový oddíl na /dev/sdc. Nový oddíl disku bude mít název /dev/sdc1.

  1. Začněte fdisk vytvářet oddíly.

    sudo 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').
    
  2. Stisknutím klávesy n na příkazovém řádku vytvořte oddíl NEW:

    Command (m for help): n
    
  3. Potom stisknutím klávesy p vytvořte oddíl primary:

    Command action
            e   extended
            p   primary partition (1-4)
    
  4. Stisknutím tlačítka 1 vyberte číslo oddílu 1:

    Partition number (1-4): 1
    
  5. Vyberte výchozí bod nového oddílu nebo stisknutím přijměte <enter> výchozí nastavení a umístěte oddíl na začátek volného místa na jednotce:

    First cylinder (1-1305, default 1):
    Using default value 1
    
  6. Vyberte velikost oddílu, například zadejte +10G a vytvořte oddíl o velikosti 10 gigabajtů. Nebo stiskněte vytvořit <enter> jeden oddíl, který pokrývá celou jednotku:

    Last cylinder, +cylinders or +size{K,M,G} (1-1305, default 1305): 
    Using default value 1305
    
  7. Dále změňte ID a type oddílu z výchozího ID 83 (Linux) na ID "fd" (Linux raid auto):

    Command (m for help): t
    Selected partition 1
    Hex code (type L to list codes): fd
    
  8. Nakonec na jednotku zapište tabulku oddílů a ukončete fdisk:

    Command (m for help): w
    The partition table has been altered!
    

Vytvoření pole RAID

  1. Následující příklad bude "stripe" (RAID úroveň 0) tři oddíly umístěné na třech samostatných datových discích (sdc1, sdd1, sde1). Po spuštění tohoto příkazu se vytvoří nové zařízení RAID s názvem /dev/md127 . Všimněte si také, že pokud jsme tyto datové disky dříve součástí jiného nefunkčního pole RAID, může být nutné přidat --force parametr do mdadm příkazu:

    sudo mdadm --create /dev/md127 --level 0 --raid-devices 3 \
        /dev/sdc1 /dev/sdd1 /dev/sde1
    
  2. Vytvoření systému souborů na novém zařízení RAID

    CentOS, Oracle Linux, SLES 12, openSUSE a Ubuntu

    sudo mkfs -t ext4 /dev/md127
    

    SLES 11

    sudo mkfs -t ext3 /dev/md127
    

    SLES 11 – povolení boot.md a vytvoření souboru mdadm.conf

    sudo -i chkconfig --add boot.md
    sudo echo 'DEVICE /dev/sd*[0-9]' >> /etc/mdadm.conf
    

    Poznámka

    Po provedení těchto změn v systémech SUSE může být vyžadováno restartování. Tento krok není ve službě SLES 12 povinný.

Přidání nového systému souborů do souboru /etc/fstab

Důležité

Nesprávná úprava souboru /etc/fstab může vést k neschválitelnému systému. Pokud si nejste jistí, podívejte se do dokumentace k distribuci, kde najdete informace o tom, jak soubor správně upravit. Před úpravami se také doporučuje vytvořit zálohu souboru /etc/fstab.

  1. Vytvořte požadovaný přípojný bod pro nový systém souborů, například:

    sudo mkdir /data
    
  2. Při úpravách souboru /etc/fstab by se k odkazování na systém souborů místo názvu zařízení mělo použít UUID . Pomocí nástroje blkid určete UUID nového systému souborů:

    sudo /sbin/blkid
    ...........
    /dev/md127: UUID="aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee" TYPE="ext4"
    
  3. Otevřete soubor /etc/fstab v textovém editoru a přidejte položku pro nový systém souborů, například:

    UUID=aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee  /data  ext4  defaults  0  2
    

    Nebo na SLES 11:

    /dev/disk/by-uuid/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee  /data  ext3  defaults  0  2
    

    Pak soubor /etc/fstab uložte a zavřete.

  4. Otestujte správnost položky /etc/fstab:

    sudo mount -a
    

    Pokud výsledkem tohoto příkazu bude chybová zpráva, zkontrolujte syntaxi v souboru /etc/fstab.

    Dále spusťte příkaz a mount ujistěte se, že je systém souborů připojený:

    mount
    .................
    /dev/md127 on /data type ext4 (rw)
    
  5. (Volitelné) Parametry spouštění bez selhání

    konfigurace fstab

    Mnoho distribucí zahrnuje parametry nobootwaitnofail nebo připojení, které mohou být přidány do souboru /etc/fstab. Tyto parametry umožňují selhání při připojování konkrétního systému souborů a umožňují systému Linux pokračovat ve spouštění, i když není schopen správně připojit systém souborů RAID. Další informace o těchto parametrech najdete v dokumentaci k vaší distribuci.

    Příklad (Ubuntu):

    UUID=aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee  /data  ext4  defaults,nobootwait  0  2
    

    Parametry spuštění Linuxu

    Kromě výše uvedených parametrů může parametrbootdegraded=true jádra "" umožnit spuštění systému i v případě, že je pole RAID vnímáno jako poškozené nebo degradované, například pokud je z virtuálního počítače neúmyslně odebrána datová jednotka. Ve výchozím nastavení to může vést také k nespouštětelnému systému.

    Informace o správné úpravě parametrů jádra najdete v dokumentaci k vaší distribuci. Například v mnoha distribucích (CentOS, Oracle Linux, SLES 11) mohou být tyto parametry přidány ručně do souboru "/boot/grub/menu.lst". Na Ubuntu lze tento parametr přidat do GRUB_CMDLINE_LINUX_DEFAULT proměnné na "/etc/default/grub".

Podpora funkce TRIM/UNMAP

Některá linuxová jádra podporují operace TRIM/UNMAP, které zahodí nepoužívané bloky na disku. Tyto operace jsou primárně užitečné v úložišti úrovně Standard, aby informovaly Azure, že odstraněné stránky už nejsou platné a je možné je zahodit. Zahození stránek může ušetřit náklady, pokud vytvoříte velké soubory a pak je odstraníte.

Poznámka

Raid nemusí vydávat příkazy pro zahození, pokud je velikost bloků dat pro pole nastavená na menší než výchozí (512 kB). Důvodem je to, že členitost nemapování na hostiteli je také 512 kB. Pokud jste upravili velikost bloku dat pole pomocí parametru mdadm --chunk= , může jádro ignorovat požadavky TRIM/unmap.

Na virtuálním počítači s Linuxem můžete podporu TRIM povolit dvěma způsoby. Jako obvykle se poraďte s doporučeným postupem ve své distribuci:

  • discard Použijte možnost připojení v /etc/fstabnástroji , například:

    UUID=aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee  /data  ext4  defaults,discard  0  2
    
  • V některých případech discard může mít tato možnost vliv na výkon. Případně můžete příkaz spustit fstrim ručně z příkazového řádku nebo ho přidat do crontab a spouštět ho pravidelně:

    Ubuntu

    # sudo apt-get install util-linux
    # sudo fstrim /data
    

    RHEL/CentOS

    # sudo yum install util-linux
    # sudo fstrim /data