GNU/Linux >> Znalost Linux >  >> Linux

Implementace Mdadm Raid s Gpt Partitioning?

Moje současná myšlenka je vytvořit jedno softwarové pole, třídy RAID-6, se 4 členskými disky, pomocí mdadm .

Konkrétně by disky byly 1 TB HDD na SATA v malém serveru Dell T20.

Operační systém je GNU/Linux Debian 8.6 (později upgradovaný:Jessie ⟶ Stretch ⟶ Buster)

V mém případě by to znamenalo 2 TB místa na disku s paritou 2 TB.

Také bych to chtěl mít s tabulkou oddílů GPT, aby to fungovalo, nejsem si jistý, jak konkrétně postupovat, pokud bych to raději udělal čistě přes terminál.

Protože jsem nikdy nevytvářel pole RAID, mohl byste mi poradit, jak bych měl postupovat?

Poznámky:

  • Toto pole bude sloužit pouze pro jediná data. Není na něm boot ani OS.

  • Rozhodl jsem se pro RAID-6 kvůli účelu tohoto pole. Dvě selhání disku musí být pole schopno přežít. Vzhledem k tomu, že jsem hardwarově omezen na 4 disky, neexistuje žádná alternativa k RAID-6, o které vím. (Jakkoli se zpomalení RAID-6 může zdát ošklivé, v tomto poli na tom nezáleží.)

Přijatá odpověď:

V této odpovědi ať je jasné, že všechna data budou zničena na všech členech pole (discích), proto je nejprve zálohujte!

Otevřete terminál a staňte se root (su ); pokud máte sudo povoleno, můžete také provést například sudo -i; viz man sudo pro všechny možnosti):

sudo -i

Nejprve bychom měli vymazat disky, pokud tam předtím byla nějaká data a souborové systémy. Předpokládejme, že máme 4 členy:sdi , sdj , sdk , sdl . Pro účely vizuální zpětné vazby tohoto procesu pv (Prohlížeč potrubí ) byl použit zde:

pv < /dev/zero > /dev/sdi
pv < /dev/zero > /dev/sdj
pv < /dev/zero > /dev/sdk
pv < /dev/zero > /dev/sdl

Alternativně, abyste jen zkontrolovali, zda po vás nic nezůstalo, můžete nahlédnout pomocí GParted na všechny disky, a pokud existuje nějaký oddíl s jakýmkoli souborovým systémem nebo bez něj, může stačit jeho vymazání, i když já sám preferuji výše uvedené vynulování všech zúčastněné jednotky, nezapomeňte před tím odpojit všechny oddíly, lze to provést podobně jako tyto jednoduché:

umount /dev/sdi?; wipefs --all --force /dev/sdi?; wipefs --all --force /dev/sdi
umount /dev/sdj?; wipefs --all --force /dev/sdj?; wipefs --all --force /dev/sdj
umount /dev/sdk?; wipefs --all --force /dev/sdk?; wipefs --all --force /dev/sdk
umount /dev/sdl?; wipefs --all --force /dev/sdl?; wipefs --all --force /dev/sdl

Poté inicializujeme všechny disky pomocí tabulky oddílů GUID (GPT) a potřebujeme rozdělit všechny disky, ale nedělejte to s GParted, protože by to vytvořilo souborový systém v procesu, což nechceme, použijte gdisk místo toho:

gdisk /dev/sdi
gdisk /dev/sdj
gdisk /dev/sdk
gdisk /dev/sdl

Ve všech případech použijte následující:

o Zadejte pro novou prázdnou tabulku oddílů GUID (GPT)
y Zadejte pro potvrzení vašeho rozhodnutí
n Zadejte pro nový oddíl
Enter pro výchozí nastavení prvního oddílu
Enter pro výchozí nastavení prvního sektoru
Enter pro výchozí nastavení posledního sektoru
fd00 Zadejte pro Linux typ RAID
w Zadejte zapsat změny
y Zadejte potvrdit své rozhodnutí

Související:Univerzální procesor jako logický analyzátor lepší / horší než implementace vyhrazeného FPGA?

Nyní můžete prozkoumat disky:

mdadm --examine /dev/sdi /dev/sdj /dev/sdk /dev/sdl

Mělo by tam být:

(type ee)

Pokud ano, prozkoumáme nyní oddíly:

mdadm --examine /dev/sdi1 /dev/sdj1 /dev/sdk1 /dev/sdl1

Mělo by tam být:

No md superblock detected

Pokud ano, můžeme vytvořit pole RAID6:

mdadm --create /dev/md0 --level=6 --raid-devices=4 /dev/sdi1 /dev/sdj1 /dev/sdk1 /dev/sdl1

Měli bychom počkat, až bude pole plně vytvořeno, tento proces můžeme snadno watch :

watch cat /proc/mdstat

Po vytvoření pole bychom se měli podívat na jeho detail:

mdadm --detail /dev/md0

Mělo by tam být:

          State : clean
 Active Devices : 4
Working Devices : 4
 Failed Devices : 0
  Spare Devices : 0

Nyní vytvoříme souborový systém na poli, pokud použijete ext4 , níže skryté Příkazu je lepší se vyhnout kvůli ext4lazyinit by v případě velkého pole zabralo značné množství času, odtud název „lazyinit “, proto vám doporučuji vyhnout se tomuto:

mkfs.ext4 /dev/md0

Místo toho byste měli vynutit úplnou okamžitou inicializaci (s 0 % vyhrazenou pro root protože se jedná o datové pole):

mkfs.ext4 -m 0 -E lazy_itable_init=0,lazy_journal_init=0 /dev/md0

Zadáním těchto voleb budou inody a žurnál inicializovány okamžitě během vytváření, což je užitečné pro větší pole.

Pokud jste zvolili zkratku a vytvořili jste ext4 souborový systém pomocí „příkazu lepšímu se vyhnout“, všimněte si, že ext4lazyinit inicializace všech inodů bude trvat znatelně dlouho, můžete to sledovat, dokud to nebude hotové, např. pomocí iotop nebo nmon .

Ať už se rozhodnete provést inicializaci souborového systému, měli byste jej připojit po dokončení inicializace.

Nyní vytvoříme nějaký adresář pro toto pole RAID6:

mkdir -p /mnt/raid6

A jednoduše jej připevněte:

mount /dev/md0 /mnt/raid6

Protože jsme v podstatě hotovi, můžeme znovu použít GParted k rychlé kontrole, zda ukazuje linux-raid souborový systém spolu s raid příznak na všech jednotkách.

Pokud ano, správně jsme vytvořili pole RAID6 s oddíly GPT a nyní do něj můžeme kopírovat soubory.

Podívejte se, jaké UUID je md souborový systém má:

blkid /dev/md0

Zkopírujte UUID do schránky.

Nyní musíme upravit fstab , s vaším oblíbeným textovým editorem jsem použil nano , ačkoli sudoedit by bylo lepší použít:

nano /etc/fstab

A přidejte do něj položku:

UUID=<the UUID you have in the clipboard>    /mnt/raid6    ext4    defaults    0 0

Sám nedoporučuji používat defaults sadu příznaků, chtěl jsem pouze, aby řádek nebyl příliš složitý.

Zde jsou uvedeny příznaky připojení, které používám na datovém RAID zálohovaném UPS (místo defaults ):
nofail,nosuid,nodev,noexec,nouser,noatime,auto,async,rw,data=journal,errors=remount-ro

Po uložení změn můžete zkontrolovat, zda je to správné:

mount -av | grep raid6

Mělo by tam být:

already mounted

Pokud ano, uložíme konfiguraci pole; v případě, že nemáte žádné md zařízení dosud vytvořené, můžete jednoduše:

mdadm --detail --scan >> /etc/mdadm/mdadm.conf

V případě, že již existují pole, stačí spustit předchozí příkaz bez přesměrování do konfiguračního souboru:

mdadm --detail --scan

a přidejte nové pole do konfiguračního souboru ručně.

Související:Čas zahájení procesu s časovým pásmem?

Nakonec nezapomeňte aktualizovat initramfs , protože jinak se vaše nové pole automaticky sestaví pouze pro čtení, pravděpodobně jako /dev/md127 nebo podobně:

update-initramfs -u -k all

Zkontrolujte, zda jste udělali vše podle plánu, a pokud ano, můžete restartovat:

reboot

Linux
  1. Výměna vadného disku RAID 6 za mdadm

  2. Jak Tonstall Ubuntu 14.04 s Raid 1 pomocí Desktop Installer?

  3. Bash pole s příklady

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

  2. Výměna vadného zrcadlového disku v softwarovém poli RAID (mdadm)

  3. mdadm:příkaz nenalezen

  1. Zvyšuje RAID1 výkon s Linuxem mdadm?

  2. Nelze zastavit nájezdové zařízení

  3. Přidejte linux md raid write journal do a existujícího pole