GNU/Linux >> Znalost Linux >  >> Linux

Vytvořte a migrujte existující fungující systém RedHat / CentOS na RAID 1 / RAID 10

Systém Linux má vestavěnou podporu pro softwarový RAID prostřednictvím zařízení MD alias Linux Software RAID. Většina linuxových distribucí, jako je Red Hat Enterprise Linux (RHEL) a CentOS, umožňuje snadno nastavit pole RAID při instalaci operačního systému. Pokud však již máte plně funkční fungující a běžící systém s více pevnými disky, ale dosud jste běželi na systému s jedním diskem, převod z jednoho disku na RAID zahrnuje mnohem více rizik a možností selhání systému.

RAID poskytuje výhody z hlediska redundance dat a zlepšení výkonu a je doporučeno nastavení pro kritické servery. Například RAID 1 vytváří zrcadlenou sadu, která dokáže tolerovat selhání jednoho disku a zároveň potenciálně urychlit výkon, protože požadavky na čtení může obsluhovat kterýkoli disk v poli. RAID 10 (RAID 1+0) je pruh zrcadlených sad nebo RAID 0 zrcadlených sad RAID 1, který poskytuje lepší propustnost a latenci a zároveň toleruje selhání více disků, pokud žádné zrcadlo neztratí všechny své jednotky.

Tento tutoriál poskytuje podrobný návod, jak ručně vytvořit RAID 1 na dvoudiskovém systému nebo RAID 10 na čtyřech discích v aktuálně spuštěném systému, který již má nainstalovaný CentOS / RedHat. Zavaděč GRUB je také nakonfigurován tak, že systém bude stále schopen zavést systém, pokud některý z pevných disků selže. To je užitečné zejména v případě, že nemáte přístup ke konzoli na dedikovaném serveru předplaceném od webhostingové společnosti, což vám nechtěně brání ve vytváření RAID zařízení během instalace.

První fází migrace aktuálně běžícího systému na RAID bez ztráty dat je zajistit replikaci všech aktuálních dat na degradovaný RAID. V tomto tutoriálu budeme pracovat na systému, který je dodáván se 477 MB /boot oddíl jako /dev/sda1, více než 900 GB / kořenový oddíl jako /dev/sda2, 4 GB odkládacího prostoru v /dev/sda3 a další 4GB /tmp logický oddíl /dev/sda5 hostovaný na rozšířeném oddílu /dev/sda4.

  1. Zkontrolujte a ujistěte se, že aktuálně nejsou spuštěna žádná zařízení RAID. Obsah souboru /etc/mdadm.conf a výsledek cat /proc/mdstat by měl být prázdný a v konfiguračním souboru ani automaticky by neměla být nalezena žádná pole.
    mdadm --examine --scan > /etc/mdadm.conf
    mdadm --assemble --scan 
    cat /proc/mdstat
  2. Jako preventivní opatření vypněte všechna pole, která lze vypnout (tj. aktuálně se nepoužívají):
    mdadm --stop --scan
  3. Změňte tabulku oddílů disků na MBR pomocí následujících příkazů. Tento krok přeskočte, pokud vaše disky nemají tabulku oddílů GTP.
    parted /dev/sdb
    (parted) mktable msdos
    (parted) quit

    Odpovězte A(es) po zobrazení výzvy „varování:Stávající jmenovka disku na /dev/sdb bude zničena a všechna data na tomto disku budou ztracena. Chcete pokračovat?“

    Odeslat aktualizaci do jádra:

    partprobe /dev/sdb

    Opakujte příkaz pro další jednotky, tj. /dev/sdc a /dev/sdd, pokud je to možné.

  4. Rozdělte pevný disk podle svých preferencí.

    V tomto tutoriálu použijeme následující příkaz k vytvoření oddílů, které jsou identické s existujícím diskem, /dev/sda:

    sfdisk -d /dev/sda | sfdisk --force /dev/sdb

    Opakujte příkaz pro další jednotky, tj. /dev/sdc a /dev/sdd, pokud je to možné.

    TipPokud k ručnímu vytváření oddílů používáte „fdisk“, můžete použít výše uvedený příkaz „sfdisk“ k replikaci struktur oddílů na jiné disky, pokud máte více než 1 další pevný disk. Například „sfdisk -d /dev/sdb | sfdisk –force /dev/sdc“ replikuje oddíly /dev/sdb do /dev/sdc.
  5. Změní typ oddílu na Linux RAID autodetect. Chcete-li tak učinit, „fdisk“ konkrétní pevný disk. Například
    fdisk /dev/sdb

    Poté zadejte t příkaz:

    Command (m for help): t
    Partition number (1-5): 1
    Hex code (type L to list codes): fd
    Changed system type of partition 1 to fd (Linux raid autodetect)

    Opakujte postup pro zbytek diskových oddílů na disku. Poté proveďte změnu jako trvalou:

    Command (m for help): w

  6. Odstraňte RAID pro nové disky, pro případ, že byl RAID na „nových“ discích nastaven dříve:
    mdadm --stop --scan
    mdadm --zero-superblock /dev/sdb{1..9}

    A pak odeslat aktualizaci do jádra:

    partprobe /dev/sdb

    Opakujte příkaz pro další jednotky, tj. /dev/sdc a /dev/sdd, pokud je to možné.

  7. Načtěte požadované moduly do jádra:
    modprobe raid0
    modprobe raid1
    modprobe raid10

    Pokud nyní spustíte „cat /proc/mdstat“, měli byste vidět něco podobného jako:

    Osobnosti :[raid0] [raid1] [raid10]
    nepoužívaná zařízení:

    Do jádra byly nahrány moduly související s RAID, ale nejsou nakonfigurovány žádné sady RAID.

  8. Vytvořte zařízení RAID v degradovaném stavu, protože chybí jeden disk, tj. /dev/sda, který je aktuálně nainstalován s OS a používá se ke spuštění. Protože CentOS a RedHat verze 5.0 a 6.0 standardně používají Grub 0.97, je specifikováno „–metadata=0.9“, aby byla použita starší verze superbloku. V opačném případě může Grub odpovědět chybou „typ souborového systému neznámý, typ oddílu 0xfd“ a odmítnout instalaci. Kromě toho mdadm také vydá varování pro zaváděcí pole:toto pole má na začátku metadata a nemusí být vhodné jako zaváděcí zařízení. Pokud plánujete na toto zařízení uložit „/boot“, ujistěte se, že váš zavaděč rozumí metadatům md/v1.x, nebo použijte –metadata=0.90. Parametr není u Grub2 nutný. Následující syntaxe předpokládá, že vytváříme pole RAID10 se 4 disky. Pokud máte pouze 2 disky, změňte nastavení na RAID1 tak, že změníte možnosti na „–level=1“ a odstraníte neexistující diskové oddíly.

    Pro /boot používáme RAID1:

    mdadm --create --verbose /dev/md1 --metadata=0.9 --level=1 --raid-devices=4 missing /dev/sdb1 /dev/sdc1 /dev/sdd1

    Pro / root použijte RAID10 podle plánu:

    mdadm --create --verbose /dev/md2 --metadata=0.9 --level=10 --raid-devices=4 missing /dev/sdb2 /dev/sdc2 /dev/sdd2

    Při dotazu, zda chcete pokračovat ve vytváření pole, odpovězte A(es) . Opakujte proces pro vytvoření polí RAID pro odkládací prostory a další oddíly, pokud jsou k dispozici.

    Pole NoteRAID nelze vytvořit na rozšířeném oddílu, přičemž mdadm odpoví /dev/sdbX není pro toto pole vhodné.
  9. Zkontrolujte výsledek pomocí:
    cat /proc/mdstat

    Výstup by měl být:

    [raid0] [raid1] [raid10]
    md5 :aktivní raid10 sdd5[3] sdc5[2] sdb5[1]
    4189184 bloků 512 000 kusů 2 téměř kopie [4/3] [_UUU]

    md2 :aktivní raid10 sdd2[3] sdc2[2] sdb2[1]
    1939915776 bloků 512 000 kusů 2 téměř kopie [4/3] [_UUU]
    bitmapa:15/15 stránek [60KB], 65536KB kus

    md1 :aktivní raid1 sdd1[3] sdc1[2] sdb1[1]
    511936 bloků [4/3] [_UUU]

    md3 :aktivní raid10 sdd3[3] sdb3[1] sdc3[2]
    8387584 bloků 512 000 kusů 2 téměř kopie [4/3] [_UUU]

    nepoužívaná zařízení:

  10. Vytvořte soubor mdadm.conf z aktuální konfigurace pole RAID:
    mdadm --examine --scan >> /etc/mdadm.conf
  11. Vytvořte souborové systémy na nových zařízeních RAID:
    mkfs.ext4 /dev/md1 # You may want to use mkfs.ext2 for ext2 filesystem for /boot
    mkfs.ext4 /dev/md2 # ext4 filesystem for / root
    mkswap /dev/md3 # Swap space

    Vytvořte souborový systém ext4 pro všechna další nově vytvořená pole RAID.

  12. Nahraďte položky zařízení v /etc/fstab s novými zařízeními RAID. Chcete-li to provést, nejprve spusťte:
    blkid | grep /dev/md

    Vrací výstup s UUID nových softwarových zařízení RAID vypadá takto:

    /dev/md1:UUID=”1234abcd-12ab-12ab-12ab-123456abcdef” TYPE=”ext4″
    /dev/md2:UUID=”2234abcd-12ab-12ab-12ab-123456abcdef” TYPE=”ext4″
    /dev/md3:UUID=”3234abcd-12ab-12ab-12ab-123456abcdef” TYPE=”swap”
    /dev/md5:UUID=”4234abcd-12ab-12ab-12ab-123456abcdef” TYPE=”ext4″

    V /etc/fstab , změňte řádky obsahující různé přípojné body na UUID odpovídajících nových /dev/mdX nových souborových systémů RAID, tj. hodnotu za „UUID=“. Například,

    UUID=2234abcd-12ab-12ab-12ab-123456abcdef /       ext4   defaults              1 1
    UUID=1234abcd-12ab-12ab-12ab-123456abcdef /boot   ext4   defaults              1 2
    UUID=4234abcd-12ab-12ab-12ab-123456abcdef /tmp    ext4   noexec,nosuid,nodev   1 2
    UUID=3234abcd-12ab-12ab-12ab-123456abcdef swap    swap   defaults              0 0

    Ponechte tmpfs, devpts, sysfs, proc a další nedotčené. Samozřejmě, pokud víte, co děláte, nebo máte radikálně odlišné souborové systémy, můžete fstab upravit, jak chcete.

  13. Aktualizujte initrd a znovu sestavte initramfs pomocí nového mdadm.conf:
    mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.old
    dracut --mdadmconf  --add-drivers "raid1 raid10" --filesystems "ext4 ext3 swap tmpfs devpts sysfs proc" --force /boot/initramfs-$(uname -r).img $(uname -r)

    Poznámka:Nahraďte $(uname -r) skutečnou verzí jádra, pokud vám příkazy nefungují, zejména na LiveCD.

  14. V /boot/grub/menu.lst , změňte hodnotu UUID nebo položku štítku pro jádro na UUID / (kořenový adresář) v poli RAID nebo /dev/md2 (změňte podle toho, zda je váš /boot připojen na jiný oddíl). Například:
    title CentOS (2.6.32-504.3.3.el6.x86_64)
            root (hd0,0)
            kernel /vmlinuz-2.6.32-504.3.3.el6.x86_64 ro root=UUID=2234abcd-12ab-12ab-12ab-123456abcdef rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 SYSFONT=latarcyrheb-sun16 crashkernel=auto  KEYBOARDTYPE=pc KEYTABLE=us rhgb quiet
            initrd /initramfs-2.6.32-504.3.3.el6.x86_64.img

    Nebo,

    title CentOS (2.6.32-504.3.3.el6.x86_64)
            root (hd0,0)
            kernel /vmlinuz-2.6.32-504.3.3.el6.x86_64 ro root=/dev/md2 rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 SYSFONT=latarcyrheb-sun16 crashkernel=auto  KEYBOARDTYPE=pc KEYTABLE=us rhgb quiet
            initrd /initramfs-2.6.32-504.3.3.el6.x86_64.img

    Ujistěte se, že NE rn_NO_DM a rn_NO_MD spouštěcí parametry nejsou uvedeny jako možnosti pro jádro. Po dokončení úprav uložte aktualizovaný soubor menu.lst.

  15. Ručně replikujte stávající data na stávajících oddílech do nových oddílů softwarového pole RAID.

    Pro / root (/dev/md2, změňte jej, pokud tomu tak není):

    mkdir /mnt/raid
    mount /dev/md2 /mnt/raid
    cd /mnt/raid
    cp -ax / .
    sync

    Pro /boot:

    rm -rf /mnt/raid/boot
    mkdir /mnt/raid/boot
    mount /dev/md1 /mnt/raid/boot
    cd /mnt/raid/boot
    cp -ax /boot/* .
    sync

    V SELinuxu také spusťte:touch /mnt/raid/.autorelabel pro /boot.

    Pokud máte k dispozici více oddílů, jako je /var, /home atd., opakujte proces pro tyto souborové systémy. Například:

    rm -rf /mnt/raid/home
    mkdir /mnt/raid/home
    mount /dev/md1 /mnt/raid/home
    cd /mnt/raid/home
    cp -ax /home/* .
    sync
    TipExistuje mnoho způsobů, jak kopírovat a duplikovat soubory do nových polí RAID. Například:

    rsync -avxHAXS --delete --progress / /mnt/raid
    tar -C / -clspf - . | tar -xlspvf -
    find / -depth -xdev | cpio -pmd /mnt/raid
  16. Nainstalujte Grub 0.97 na MBR všech disků, takže pokud jeden z disků selže, systém by měl být schopen zavést systém. Aby k tomu došlo, je třeba provést následující krok::
    grub
    grub> root (hd0,0)
    grub> setup (hd0) 
    grub> root (hd1,0)
    grub> setup (hd1)
    grub> root (hd2,0)
    grub> setup (hd2)
    grub> root (hd3,0)
    grub> setup (hd3)
    grub> quit

    Pokud máte pouze 2 pevné disky, vynechejte hd2 a hd3.

  17. Restartujeme server. Zazálohujte vše pro případ, že se server nevrátí, pak zadejte:
    reboot

První část konfigurace softwarové podpory RAID pro Linux na aktuálně spuštěném systému byla dokončena. Pokud se server vrátil, pokračujte podle následujících postupů a znovu přidejte chybějící pevný disk (např. /dev/sda, na kterém je systém původně spuštěn) do polí RAID. Následující průvodce předpokládá, že zbývající disk nebyl přidán do polí RAID je /dev/sda. Změňte, pokud se název vašeho zařízení liší.

  1. Po spuštění serveru zkontrolujte, zda jsou souborové systémy připojeny k polím RAID, tj. /dev/md0, /dev/md1…./dev/md3.
    df -h

    Očekávaný výsledek:

    Filesystem      Size  Used Avail Use% Mounted on
    /dev/md2        1.8T  1.2G  1.7T   1% /
    tmpfs           3.9G     0  3.9G   0% /dev/shm
    /dev/md1        477M   76M  377M  17% /boot
    /dev/md5        3.9G  8.1M  3.7G   1% /tmp 
  2. Změňte tabulku oddílů disku na MBR pomocí následujících příkazů. Tento krok přeskočte, pokud disk nemá tabulku oddílů GTP.
    parted /dev/sda
    (parted) mktable msdos
    (parted) quit

    Odpovězte A(es) po zobrazení výzvy „varování:Stávající jmenovka disku na /dev/sdb bude zničena a všechna data na tomto disku budou ztracena. Chcete pokračovat?“

  3. Smažte všechny existující oddíly na /dev/sda:
    fdisk /dev/sda
    Command (m for help): d
    Partition number (1-5): 1
    
    Command (m for help): d
    Partition number (1-5): 2
    
    Command (m for help): d
    Partition number (1-5): 3
    
    Command (m for help): d
    Partition number (1-5): 4
    
    Command (m for help): d
    Partition number (1-5): 5
    
    Command (m for help): w
    The partition table has been altered!
    
    Calling ioctl() to re-read partition table.
    Syncing disks.
  4. Odeberte veškerý RAID z disku:
    mdadm --zero-superblock /dev/sda{1..9}

    Odeslat aktualizaci do jádra:

    partprobe /dev/sda
  5. Zkopírujte strukturu oddílu z /dev/sdb:
    sfdisk -d /dev/sdb | sfdisk --force /dev/sda
  6. Spustit:
    fdisk -l

    Ujistěte se, že všechny oddíly, které tvoří pole RAID, mají fd Linux RAID automaticky detekuje typy oddílů (hodnota ve sloupci „Id“). Pokud se jedná o Linux typu 83, použijte fdisk, cfdisk nebo parted pro změnu na „fd“. Například:

    Pokud dojde k nějaké změně, pošlete aktualizaci do jádra.

    partprobe /dev/sda
  7. Přidejte oddíly v /dev/sda do příslušných polí RAID, aby byla pole kompletní (4 disky na RAID10 nebo 2 disky na RAID1):
    mdadm --add /dev/md1 /dev/sda1
    mdadm --add /dev/md2 /dev/sda2
    mdadm --add /dev/md3 /dev/sda3

    Opakujte pro další oddíly, pokud je to možné.

  8. Zkontrolujte průběh procesu obnovy RAID pomocí:
    cat /proc/mdstat

    Výstup by měl být:

    [raid0] [raid1] [raid10]
    md5 :aktivní raid10 sdd5[3] sdc5[2] sdb5[1]
    4189184 bloků 512 000 kusů 2 téměř kopie [4/3] [_UUU]

    md2 :aktivní raid10 sdd2[3] sdc2[2] sdb2[1]
    1939915776 bloků 512 000 kusů 2 téměř kopie [4/3] [_UUU]
    [====>………………………………….] zotavení =37,8 % (177777777/388888888) dokončení =60,5 min rychlost =100 000 K/s
    bitmapa:15/15 stránek [60KB], 65536KB kus

    md1 :aktivní raid1 sdd1[3] sdc1[2] sdb1[1]
    511936 bloků [4/3] [_UUU]

    md3 :aktivní raid10 sdd3[3] sdb3[1] sdc3[2]
    8387584 bloků 512 000 kusů 2 téměř kopie [4/3] [_UUU]

    nepoužívaná zařízení:

    Tip Obsah souboru /proc/mdstat můžete průběžně obnovovat pomocí následujícího příkazu, který se obnovuje v intervalu 5 sekund:

    watch -n 5 cat /proc/mdstat
  9. Znovu vytvořte spouštěcí záznam na /dev/sda MBR pomocí grub, abyste zajistili, že systém bude možné spustit z libovolného disku:
    grub
    grub> root (hd0,0)
    grub> setup (hd0) 
    grub> quit
  10. Po obnovení všech polí RAID proveďte restart systému.
    reboot
  11. Blahopřejeme, když byl systém znovu spuštěn a online, nyní používáte softwarový RAID.

Po aktivaci RAID pomocí mdadm je nejdůležitější zajistit, aby systém upozornění e-mailem fungoval. Linuxový softwarový RAID dokáže sám monitorovat jakýkoli možný problém na polích RAID, jako je selhání disku, a může odeslat e-mailové upozornění, když nalezne jakékoli možné chyby.

Chcete-li ověřit, že e-mailové upozornění funguje, zadejte následující příkaz:

mdadm --monitor --test --oneshot /dev/md1

Měli byste obdržet e-mail s obsahem /proc/mdstat. Pokud e-mail neobdržíte, ujistěte se, že váš systém je schopen odeslat e-mail, a zkontrolujte MAILADDR hodnotu v mdadm.conf . Mělo by to znít něco jako:

MAILADDR [email protected]

Linux
  1. Jak migrovat z CentOS 8 na Rocky Linux 8

  2. Vytvořte uživatele sudo v CentOS

  3. Jak migrovat existující pravidla Iptables do Nftables v CentOS/RHEL 8

  1. Jak nakonfigurovat virtualizaci na Redhat Linuxu

  2. RedHat / CentOS :Správa softwarového RAID pomocí mdadm

  3. Linux:nevytvářejte swapovací oddíl?

  1. Jak migrovat Centos 8 na AlmaLinux 8.3

  2. Jak vytvořit soubor Kickstart pro CentOS/Fedora/RedHat (RHEL)

  3. Jak zvýšit Swap v Linuxu / CentOS / Redhat / Ubuntu