So. Pro 21st, 2024

Ne každý den vytváříte RAID 50 na Ubuntu-server 20.04 LTS, rozhodl jsem se tuto velmi příjemnou zkušenost sdílet dalším z vás.
Zatímco první pole mi běhá na debianu 10, druhé pole jsem si chtěl s novějším kernelem a novějšími balíčky zkusit na ubuntu-server 20.04 LTS.

Můj případ:

8x 2TB HDD
4 disky = RAID5
4 disky = RAID 5
RAID 5 + RAID 5 v RAID0 = RAID 50

Výhody oproti RAID 6

Větší výkon zápisu, větší výkon zápisu i během degradovaného pole.

Nevýhody oproti RAID 6

Mohou vypadnout pouze 2 specifické disky. Pouze 1 v každém RAID 5. Pokud ztratíte 2 disky v jednom RAID 5, tak se raid rozpadne.
Pokud chcete větší redundanci disků, tak rozhodně běžte buď do RAID51 (rozpad jednoho RAID 5 znamená, že máte ještě druhý raid 5), nebo RAID 6 (výpadek kterýchkoliv 2 disků) či RAID 60 (výpadek 2 disků v jednom raidu a výpadek 2 disků ve druhém raid 6), anebo RAID 61 (výpadek jednoho RAID 6 nic neznamená a máte k dispozici ještě druhý raid 6, u kterého mohou vypadnout 2 disky). Já možnost RAID 50 zvolil kvůli lepšímu výkonu a současně jsem nechtěl přijít o tolik kapacity, kterou bych ztratil tím, kdybych šel do RAID 10.

V jiném z mých článků „Jak přidat disk do raid5“ postupujte stejně. Pokud děláte větší disk, tak u možnosti fdisk  -> t <-  místo fd zvolíte 29 enter a máte GPT disk pro raid.

1. RAID 5 (4x hdd)

Pokud se vám jako mě stane, že vám stroj řve, že disky už mají v minulosti příznak raidu v superblocku, tak to můžete promazat:

mdadm --zero-superblock /dev/sde1 /dev/sdg1 /dev/sdi1 /dev/sdh1

No a potom vytvoříme RAID 5 ze 4 disků. Tedy v tomto raidu může vypadnout 1 disk.

mdadm --create --level=5 --raid-devices=4 /dev/md1 /dev/sde1 /dev/sdg1 /dev/sdi1 /dev/sdh1

2. RAID 5 (4x hdd)

Totéž, co v předchozím případě. Prostě jsem na těch discích měl předtím vytvořený RAID6 a napadlo mě, že bych získal víc výkonu, kdybych z toho udělal RAID 50, ale disky mají v superblocku informaci o RAID 6. Tu je nutné odstranit.

mdadm --zero-superblock /dev/sdf1 /dev/sdd1 /dev/sdc1 /dev/sdb1

No a pak vytvoříme druhý raid5 ze 4 disků. Může vypadnout 1 disk. Ve stejné konfiguraci by šel i RAID 60, jen bych měl méně místa a disky by mohly vypadnout 2 v každém raidu, celkem 4 ze všech disků, bylo by patrně rychlejší čtení, ale pomalejší zápis a hlavně méně místa.

mdadm --create --level=5 --raid-devices=4 /dev/md1 /dev/sde1 /dev/sdg1 /dev/sdi1 /dev/sdh1

3. RAID 0 nad 2x RAID 5 = RAID 50

Tento příkaz vytvoří RAID 0 ze 2 zařízení /dev/md1 a /dev/md0, který se bude jmenovat /dev/md2

mdadm –create –level=0 –raid-devices=2 /dev/md2 /dev/md1 /dev/md0

No a potom máte na výběr 2 možnosti.

A. BEZ LVM

Pro začátečníky asi OK. Přijdete o možnost dělat snapshoty. Pokud nevíte, co to je a nepotřebujete to, tak vám to je jedno.

mkfs.ext4 /dev/md2

A pak už stačí jen mountovat, vytvoříme si adresář /data a do něj namountujeme vytvořené RAID 50 pole

mkdir -p /data ; mount /dev/md2  /data
hotovo

Jak zjistím UUID md zařízení.
Po rebootu se mi z /dev/md2 stalo /dev/md125

 

~# mdadm –detail /dev/md125
/dev/md125:
Version : 1.2
Creation Time : Sat Jul 17 19:40:15 2021
Raid Level : raid0
Array Size : 11720024064 (11177.09 GiB 12001.30 GB)
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent

Update Time : Sat Jul 17 19:40:15 2021
State : clean
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0

Layout : -unknown-
Chunk Size : 512K

Consistency Policy : none

Name : nas2:2 (local to host nas2)
UUID : a1322d4c:1b0bdb26:894f421f:2027fa64
Events : 0

Number Major Minor RaidDevice State
0 9 126 0 active sync /dev/md/nas2:1
1 9 127 1 active sync /dev/md/nas2:0

 

Proto je důležité, aby jste do /etc/fstab psali UUID nebo ID zařízení, protože to se obvykle napříč restarty nemění. Zatímco /dev/md2 se může následující restart změnit, tak jako např. v mém případě na /dev/md125.

Což zjistím snadno takto:

# ls -laht /dev/disk/by-id/md-name-nas2\:2
lrwxrwxrwx 1 root root 11 Jul 17 20:46 /dev/disk/by-id/md-name-nas2:2 -> ../../md125

Co bych tedy přidal do /etc/fstab:

/dev/disk/by-id/md-name-nas2:2 /home ext4 defaults 0 0

(nas2 je v mém případě název stroje :0 je první raid5 , :1 je druhý raid5, :2 je RAID0) viz -> Name : nas2:2 (local to host nas2)

 

B. S LVM (Logical Volume Manager)

Vytvoříme si lvm:

pvcreate /dev/md2
Vytvoříme volume group, které pojmenuji raid50 a do volumegroup raid50 vložím zařízení /dev/md2
~# vgcreate raid50 /dev/md2

Volume group "raid50" successfully created

~# vgdisplay
--- Volume group ---
VG Name ubuntu-vg
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 2
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 1
Open LV 1
Max PV 0
Cur PV 1
Act PV 1
VG Size 28.67 GiB
PE Size 4.00 MiB
Total PE 7340
Alloc PE / Size 5120 / 20.00 GiB
Free PE / Size 2220 / 8.67 GiB
VG UUID 81OGcT-gTbW-SjfK-3PoM-pPFF-qf8j-3WbtNK

— Volume group —
VG Name raid50
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 1
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 0
Open LV 0
Max PV 0
Cur PV 1
Act PV 1
VG Size <10.92 TiB
PE Size 4.00 MiB
Total PE 2861333
Alloc PE / Size 0 / 0
Free PE / Size 2861333 / <10.92 TiB
VG UUID czA2sQ-iArw-Y4jB-pcfo-gtgw-2VGo-BA2Vfb

 

Potom by se hodilo vytvořit Logical Volume, které pojmenuji lvhome uvnitř volume group raid50:

# lvcreate -L 8.4T raid50 -n lvhome

Rounding up size to full physical extent 8.40 TiB
WARNING: atari signature detected on /dev/raid50/lvhome at offset 466. Wipe it? [y/n]: y
Wiping atari signature on /dev/raid50/lvhome.
Logical volume „lvhome“ created.

Nevím proč mě to hlásilo, že tam mám atari signature, ale jak jsem to googli, našel jsem to na bugzille. 😉

No a teď už stačí jen naformátovat na ext4 následujícím příkazem za #:

# mkfs.ext4 /dev/mapper/raid50-lvhome

mke2fs 1.45.5 (07-Jan-2020)
Creating filesystem with 2254858240 4k blocks and 281858048 inodes
Filesystem UUID: 8e254a19-f570-4e2f-a0d4-cd9bf8dddcd2
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
102400000, 214990848, 512000000, 550731776, 644972544, 1934917632

Allocating group tables: done
Writing inode tables: done
Creating journal (262144 blocks):
done
Writing superblocks and filesystem accounting information:
done

 

/home adresář při startu OS v /etc/fstab

v mém /etc/fstab jsem přidal řádek:

/dev/disk/by-id/dm-name-raid50-lvhome /home ext4 defaults 0 0

Pokud nevíte název zařízení, tak:

ls -laht /dev/disk/by-id/

a najděte v seznamu zařízení to vaše.

Pokud to chcete vyzkoušet, můžete zkusit:

mount -a

Pokud to neproběhne, mrkněte do syslogu:

tail /var/log/syslog

 

Výsledek

# df -Th /home/
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/raid50-lvhome ext4 8.4T 88M 8.0T 1% /home

Avatar

By mirra

Hardwaru a počítačům se věnuji již od roku 2003. Za tu dobu jsem poskládal stovky počítačů, opravil tisíce počítačů a vyřešil nespočetně problémů, vad a chyb, se kterými se setkávali uživatelé. Od roku 2005 se zabývám servery, zejména těmi herními, v roce 2007 jsem se začal věnovat Valve Source SDK level designu, který šel od roku 2009 k ledu kvůli studiu Informatiky na univerzitě. Podílel jsem se chvíli i na provozu síťové laboratoře MENDELU, dnes spravuji v jedné osobě cca 100 serverů/diskových polí na univerzitě, řeším IT v malých a středních firmách tak, aby firmy ušetřily nemalé částky při zlepšení kvality a soustředím se na snižování nákladů na IT od licencí až po hardware, software, provádím konsolidace a audity platnosti licencí, které firmám šetří rovněž nemalé peníze. Z velkých firem jsem měl příležitost s dalšími kolegy řešit správu 8000 serverů po celé západní Evropě s vysokou mírou automatizace a poznávání nejrůznějších evropských pracovních mentalit. Dále jsem řešil hybridní cloud ve velké firmě, orientované na trhy střední a východní Evropy. Posledních několik let se věnuji Devops pro velké zákazníky v Azure cloudu, spravuji kubernetes (AKS), Gitlab.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *