Sdílet prostřednictvím


Konfigurace softwarového RAID v Linuxu

Běžným scénářem je použití softwarového pole RAID na virtuálních počítačích s Linuxem v Azure k prezentaci více připojených datových disků jako jednoho zařízení RAID. Obvykle se to dá použít ke zlepšení výkonu a k lepší propustnosti v porovnání s použití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 zvýšení výkonu vstupně-výstupních operací disku. V závislosti na vašich potřebách IO můžete připojit disky, které jsou uložené v našem Standardním úložišti, s až 500 IO/ps na disk nebo v úložišti Premium, s až 5000 IO/ps na disk. Tento článek podrobně neuvádí, 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 Microsoft Azure připojení disku.

Důležité

Nekombinujte disky s různými velikostmi, 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 a Oracle Linux

    sudo yum install mdadm
    
  • SLES a openSUSE

    zypper install mdadm
    

Vytvoření oddílů disku

V tomto příkladu vytvoříme jeden oddíl disku v /dev/sdc. Nový oddíl disku se bude jmenovat /dev/sdc1.

  1. Spusťte fdisk a začněte 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. Dále stisknutím klávesy "p" vytvořte oddíl primary:

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

    Partition number (1-4): 1
    
  5. Vyberte výchozí bod nového oddílu nebo stisknutím klávesy <enter> potvrďte výchozí umístění oddílu 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 10 gigabajtový oddíl. Nebo stiskněte <enter> pro vytvoření jediného oddílu, 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 zapište tabulku oddílů na jednotku 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 ukazuje "páskování" (RAID úroveň 0) pro 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 tyto datové disky byly dříve součástí jiného nefunkčního pole RAID, může být nutné přidat parametr --force do příkazu mdadm:

    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í 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í u SLES 12 povinný.

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

Důležité

Nesprávná úprava souboru /etc/fstab může vést k nebooovatelné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 /etc/fstab by se měl identifikátor UUID použít k odkazování na systém souborů místo názvu zařízení. blkid Pomocí nástroje určete UUID pro nový systém 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
    

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

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

    sudo mount -a
    

    Pokud tento příkaz způsobí chybovou zprávu, zkontrolujte syntaxi v souboru /etc/fstab.

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

    mount
    .................
    /dev/md127 on /data type ext4 (rw)
    
  5. (Volitelné) Parametry nouzového spuštění

    konfigurace fstab

    Mnoho distribucí zahrnuje parametry připojení nobootwait nebo nofail, které lze přidat 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. Podívejte se do dokumentace vaší distribuce pro více informací o těchto parametrech.

    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 parametr jádra "bootdegraded=true" umožnit spuštění systému i v případě, že je raid vnímaný jako poškozený nebo degradovaný, například pokud je datová jednotka neúmyslně odebrána z virtuálního počítače. 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é "/etc/default/grub".

Podpora 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 dají se zahodit. Pokud vytváříte velké soubory a poté odstraníte stránky, může to ušetřit náklady.

Poznámka:

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

Existují dva způsoby povolení podpory TRIM na virtuálním počítači s Linuxem. Jako obvykle se obraťte na vaši distribuci ohledně doporučeného přístupu.

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

    UUID=aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee  /data  ext4  defaults,discard  0  2
    
  • V některých případech může mít možnost discard 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, aby se spouštěl pravidelně:

    Ubuntu

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

    RHEL/CentOS

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