
Ebben a cikkben különböző RAID tömbök szervezési módjairól beszélünk, és bemutatjuk az egyik első hardveres RAID vezérlőt, amely támogatja az NVMe-t.
A RAID technológia felhasználásának sokfélesége a szerver szegmensben található. Az ügyfél szegmensben általában kizárólag szoftveres RAID0 vagy RAID1 használatos két lemezen.
Ebben a cikkben rövid áttekintést nyújtunk a RAID technológiáról, valamint egy rövid útmutatót adunk három különböző eszköz segítségével történő RAID tömbök létrehozásához, és összehasonlítjuk az egyes módszerek használata esetén a virtuális lemezek teljesítményét.
Mi az a RAID?
adtó egy kimerítő definíciót a RAID technológiáról:
RAID (angol. Redundant Array of Independent Disks — független (önálló) lemezek redundáns tömbje) — egy adatok virtualizálására szolgáló technológia, amely lehetővé teszi több fizikai tárolóeszköz logikai modulba való egyesítését a megbízhatóság és a teljesítmény növelése érdekében.
A lemez tömbök konfigurálása és az alkalmazott technológiák a választott RAID szinttőlfügg. A RAID szintek szabványosítva vannak a specifikációjában. Ez sok RAID szintet ír le, de a legelterjedtebbnek a RAID0, RAID1, RAID5 és RAID6 számítanak.
RAID0, vagy Csíkok, ez egy RAID szint, amely két vagy több fizikai lemezt egy logikai egységgé egyesít. A logikai lemez mérete ekkor megegyezik a tömbbe tartozó fizikai lemezek méretének összegével. Ezen a RAID szinten nincs redundancia, és ha az egyik lemez meghibásodik, akkor az összes adat elveszhet a virtuális lemezen.
Szint RAID1, vagy Tükör, az adatokat azonos másolatokban hozza létre két vagy több lemezen. A virtuális lemez mérete nem haladja meg a fizikai lemezek közül a legkisebb méretet. A RAID1 virtuális lemezen lévő adatok akkor is hozzáférhetők, ha a tömbből legalább egy fizikai lemez működik. A RAID1 használata redundanciát ad, de meglehetősen drága megoldás, mivel két vagy több lemez esetén csak egy lemez kapacitása áll rendelkezésre.
Szint RAID5 megoldja a költségesség problémáját. RAID5 szintű tömb létrehozásához legalább 3 lemez szükséges, amely esetén a tömb ellenáll egy lemez meghibásodásának. A RAID5-ben az adatok blokkokban tárolódnak ellenőrző összeggel. Nincs szigorú felosztás az adathordozók és az ellenőrző összeggel ellátott lemezek között. A RAID5-ös ellenőrző összeg az N-1 blokk XOR műveletének eredménye, amelyet mindegyik lemezről vettek.
Bár a RAID-tömbök növelik a redundanciát és biztosítanak tartalékolást, nem alkalmasak biztonsági másolatok tárolására.
Egy rövid áttekintés után a RAID-tömbök típusairól áttérhetünk a készülékekre és programokra, amelyek lehetővé teszik a lemeztömbök összegyűjtését és használatát.
RAID-vezérlők típusai
Két módja van a RAID-tömbök létrehozásának és használatának: hardveres és szoftveres. Az alábbi megoldásokat fogjuk áttekinteni:
- Linux Software RAID.
- Intel® Virtual RAID On CPU.
- LSI MegaRAID 9460-8i.
Érdemes megjegyezni, hogy az Intel® megoldás egy chipkészleten működik, ezért felmerül a kérdés, hogy ez egy hardveres vagy szoftveres megoldás. Például a VMWare ESXi hypervisor szoftveresnek tekinti a VROC-ot, és hivatalosan nem támogatja.
Linux Software RAID
A szoftveres RAID-tömbök a Linux operációs rendszer családján belül elterjedt megoldásnak számítanak mind a kliens-, mind a szerver szegmensben. Ami a tömb létrehozásához szükséges, az az mdadm eszköz és néhány blokkeszköz. Az egyetlen követelmény, amelyet a Linux Software RAID támaszt a felhasznált lemezekkel szemben, hogy blokkeszköznek kell lenniük, amely elérhető a rendszer számára.
Az eszköz- és szoftverköltségek elmaradása nyilvánvaló előny ennek a megoldásnak. A Linux Software RAID a processzoridő áráért szervezi a lemeztömböket. A támogatott RAID szintjek listáját és a jelenlegi lemeztömbök állapotát az mdstat fájlban találhatjuk, amely a procfs gyökerében található:
root@grindelwald:~# cat /proc/mdstat
Személyiségek: [linear] [multipath] [raid0] [raid1] [raid10]
felhasználatlan eszközök:
A RAID szintek támogatásához a megfelelő kernelmodul csatlakoztatása szükséges, például:
root@grindelwald:~# modprobe raid456
root@grindelwald:~# cat /proc/mdstat
Személyiségek: [linear] [multipath] [raid0] [raid1] [raid10] [raid6] [raid5] [raid4]
felhasználatlan eszközök:Minden művelet a lemeztömbökkel az mdadm parancssori eszközzel történik. A lemeztömb összeszerelése egy parancsban történik:
mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/nvme1n1 /dev/nvme2n1A parancs végrehajtása után a rendszerben megjelenik a /dev/md0 blokkeszköz, amely egy virtuális lemezként szolgál.
Intel® Virtuális RAID A CPU-n
Intel® VROC Standard Hardver Kulcs
Az Intel® Virtuális RAID A CPU-n (VROC) egy szoftveres és hardveres technológia, amely RAID tömbök létrehozására szolgál az Intel® chipkészletek alapján. Ez a technológia főleg az Intel® Xeon® Skálázható processzorokat támogató alaplapokhoz érhető el. Alapértelmezés szerint a VROC nem elérhető. Aktiválásához telepíteni kell a VROC hardveres licenckulcsát.
A VROC standard licenc lehetővé teszi a 0, 1 és 10 RAID szintű lemeztömbök létrehozását. A prémium verzió ezt a listát RAID5 támogatással bővíti.
Az Intel® VROC technológia a modern alaplapokon együttműködik az Intel® Volume Management Device (VMD) szolgáltatással, amely lehetővé teszi az NVMe interfésszel rendelkező meghajtók hot swap-olását.
Intel® VROC standard licenccel A tömbök beállítása a Setup Utility-n keresztül történik a szerver indításakor. A lapfülön Advanced megjelenik az Intel® Virtuális RAID A CPU-n tétel, ahol beállíthatók a lemeztömbök.
RAID1 tömb létrehozása két meghajtón
Az Intel® VROC technológiának vannak „ütőkártyái”. A VROC segítségével létrehozott lemeztömbök kompatibilisek a Linux Software RAID-dal. Ez azt jelenti, hogy a tömbök állapotát a /proc/mdstat fájlban lehet nyomon követni, adminisztrálni pedig az mdadm segítségével. Ezt a „jellemzőt” az Intel hivatalosan támogatja. A RAID1 konfigurálása után a Setup Utility-ben látható a meghajtók szinkronizálása az OS-ben:
root@grindelwald:~# cat /proc/mdstat
Személyiségek: [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10]
md126: aktív raid1 nvme2n1[1] nvme1n1[0]
1855832064 blokkok szuper külső: /md127/0 [2/2] [UU]
[>....................] resync = 1.3% (24207232/1855832064) finish=148.2min speed=205933K/sec
md127: inaktív nvme1n1[1](S) nvme2n1[0](S)
10402 blokkok szuper külső: imsm
használaton kívüli eszközök: <none>Megjegyzendő, hogy az mdadm nem alkalmas VROC tömbök létrehozására (a létrehozott tömbök Linux SW RAID-ként fognak működni), de a lemezek cseréje és a tömbök szétszerelése lehetséges.
LSI MegaRAID 9460-8i
Az LSI MegaRAID 9460-8i vezérlő megjelenése
A RAID vezérlő egy önálló hardveres megoldás. A vezérlő csak a közvetlenül csatlakoztatott meghajtókkal működik. Ez a RAID vezérlő akár 24 NVMe interfésszel rendelkező meghajtót is támogat. Az NVMe támogatás kiemeli ezt a vezérlőt a többi közül.
A hardver vezérlő főmenüje
Az UEFI üzemmód használatakor a vezérlő beállításai az Setup Utility-be integrálódnak. Az VROC-hoz képest a hardveres vezérlő menüje jelentősen bonyolultabbnak tűnik.
RAID1 létrehozása két lemezen
A hardveres vezérlőn lévő lemezkészletek beállításának magyarázata meglehetősen bonyolult téma, amely teljes cikk tárgyát képezheti. Itt most csak a RAID0 és RAID1 alapértelmezett beállításokkal való létrehozására korlátozódunk.
A hardveres vezérlőhöz csatlakoztatott lemezek nem láthatók az operációs rendszer számára. Ehelyett a vezérlő „elrejti” az összes RAID-tömböt SAS-meghajtókként. A vezérlőhöz csatlakoztatott, de a lemezkészletbe nem tartozó meghajtók nem lesznek elérhetők az operációs rendszer számára.
root@grindelwald:~# smartctl -i /dev/sda
smartctl 7.1 2019-12-30 r5022 [x86_64-linux-5.4.0-48-generic] (helyi build)
Copyright (C) 2002-19, Bruce Allen, Christian Franke, www.smartmontools.org
=== AZ INFORMÁCIÓS SZEKCIÓ KEZDETE ===
Gyártó: AVAGO
Termék: MR9460-8i
Változat: 5.14
Megfelelőség: SPC-3
Felhasználói kapacitás: 1,999,844,147,200 byte [1.99 TB]
Logikai blokk mérete: 512 byte
Forgási sebesség: Szilárdtest-meghajtó
Logikai egység azonosító: 0x000000000000000000000000000000
Sorozatszám: 00000000000000000000000000000000
Eszköztípus: lemez
Helyi idő: 2020. október 11. Sun 16:27:59 MSK
SMART támogatás: Nem elérhető - az eszköz nem rendelkezik SMART képességgel.Annak ellenére, hogy SAS-meghajtókként álcázva vannak, az NVMe tömbök PCIe sebességgel működnek. Ez a tulajdonság azonban lehetővé teszi, hogy NVMe-ről indítsunk Legacy módban.
Tesztkörnyezet
A lemezkészletek szervezésének minden módjának megvannak a saját fizikai előnyei és hátrányai. De van-e különbség a teljesítményben a lemezkészletek használata során?
A maximális objektivitás érdekében minden teszt ugyanazon a szerveren fog zajlani. A konfigurációja:
- 2x Intel® Xeon® 6240;
- 12x DDR4-2666 16 GB;
- LSI MegaRAID 9460-8i;
- Intel® VROC Standard Hardware Key;
- 4x Intel® SSD DC P4510 U.2 2TB;
- 1x Samsung 970 EVO Plus M.2 500GB.
A tesztelt eszközök a P4510, amelynek egy fele az alaplaphoz csatlakozik, míg a másik a RAID-vezérlőhöz. Az M.2 meghajtón az Ubuntu 20.04 operációs rendszer található, és a tesztek a fio 3.16 verzió használatával fognak végrehajtódni.
Tesztelés
Elsősorban a lemezkezelés késleltetését fogjuk ellenőrizni. A teszt egy szálon fut, a blokk mérete 4 KB. Minden teszt időtartama 5 perc. A teszt megkezdése előtt a megfelelő blokk eszközhöz a none beállítást adjuk I/O ütemezőként. A fio parancs a következőképpen néz ki:
fio --name=test --blocksize=4k --direct=1 --buffered=0 --ioengine=libaio --iodepth=1 --loops=1000 --runtime=300 --rw= --filename=A fenti fio eredményekből az clat 99,00%-ot vesszük. Az eredmények az alábbi táblázatban találhatók.
Véletlenszerű olvasás, μs
Véletlenszerű írás, μs
Lemez
112
78
Linux SW RAID, RAID0
113
45
VROC, RAID0
112
46
LSI, RAID0
122
63
Linux SW RAID, RAID1
113
48
VROC, RAID1
113
45
LSI, RAID1
128
89
Az adatokhoz való hozzáférési késleltetések mellett szeretnénk látni a virtuális tárolók teljesítményét és összehasonlítani a fizikai lemez teljesítményével. A fio futtatásához szükséges parancs:
fio --name=test --blocksize=4k --direct=1 --buffered=0 --ioengine=libaio --loops=1000 --runtime=300 --iodepth= --rw= --filename=A teljesítmény az I/O műveletek számával mérhető. Az eredmények az alábbi táblázatban találhatók.
Véletlenszerű olvasás 1 szál, IOPS
Véletlenszerű írás 1 szál, IOPS
Véletlenszerű olvasás 128 szál, IOPS
Véletlenszerű írás 128 szál, IOPS
Lemez
11300
40700
453000
105000
Linux SW RAID, RAID0
11200
52000
429000
232000
VROC, RAID0
11200
52300
441000
162000
LSI, RAID0
10900
44200
311000
160000
Linux SW RAID, RAID1
10000
48600
395000
147000
VROC, RAID1
10000
54400
378000
244000
LSI, RAID1
11000
34300
229000
248000
Könnyen észlelhető, hogy a hardveres vezérlő használata késleltetéseket növel és teljesítménycsökkentést okoz a szoftveres megoldásokhoz képest.
Zárás
A hardveres megoldások használata két lemezből álló tömb létrehozására nem tűnik racionálisnak. Ennek ellenére léteznek olyan feladatok, ahol a RAID vezérlők használata indokolt. A NVMe interfészt támogató vezérlők megjelenésével a felhasználók lehetőséget kapnak, hogy gyorsabb SSD-ket használjanak projektjeikben.
Csak a regisztrált felhasználók vehetnek részt a szavazáson. , kérem.
RAID megoldásokat használ?
29,6%Igen, hardveres megoldások 32
50,0%Igen, szoftveres megoldások 54
16,7%Nem 18
3,7%RAID-ra nincs szükség 4
108 felhasználó szavazott. 14 felhasználó tartózkodott.
Forrás: habr.com
