AMD NVMe RAID (RAIDXpert2) a md v jádře. Chodí to spolu?

Dobrý den,

nemáte někdo zkušenost s AMD NVMe RAIDem a modulem md v jádře?

Co si pamatuji, tak AMD mělo možnost NVMe RAIDu už od prvních Threadripperů, teď je to dostupné i na malých Epyc 4004. Nastavení probíhá buď přes EFI, nebo ve Windows v aplikaci RAIDXpert.
Já bohužel zatím neměl příležitost tuhle věc někde ozkoušet, buď to byly velké Epycy, nebo už nastavené systémy s Threadrippery, kde nebyl požívaný žádný RAID.

Jedná se mi o redundantní systémové disky, tzn. v podstatě jen RAID-1. Na novějších Xeonech se dá koupit malý dongle, který se zapojí do headeru na desce a odemkne Intel VROC. Chová se to pak tak, že se vytvoří mirror z dvou NVME disků v BIOSu/EFI. Pro zavádění systému se to pak tváří jako jedno zařízení. Jakmile se zavede jádro s podporou md, tak si vydetekuje, že má zařízení s RAID oddíly a externími metadaty typu imsm (Intel Matrix Storage Manager). Dál s tím md normálně pracuje jako by to byl standardní mirror přes celé dva disky (mínus ta metadata), dá se to monitorovat a spravovat přes mdadm atd.
Má to oproti čistému md praktické výhody v tom, že se nemusí řešit ruční synchronizace EFI oddílů po aktualizaci boot loaderu a samozřejmě to daleko líp řeší stavy, kdy odejde jedno zařízení, co je pořád přítomno na sběrnici a zavádí se z toho systém. Je to blbuvzdornější - podobně jako u HW RAID karty.

Jak je tohle u AMD? Yay or no-way?
Z man. stránky od mdadm jsem vyčetl, že mimo imsm umí i další typ externích metadat - ddf, ale netuším, jestli je to co AMD používá.
Tak jsem si říkal, že se zkusím zeptat, než se ponořím do případného hledání commitů v jádře.

Díky


RDa

  • *****
  • 2 779
    • Zobrazit profil
    • E-mail
Re:AMD NVMe RAID (RAIDXpert2) a md v jádře. Chodí to spolu?
« Odpověď #1 kdy: 18. 09. 2024, 17:03:42 »
To vypada jako neco co ma intel na desktopech - IRST .. a tento dokument ukazuje i AM4 platformy.. tak by to chtelo tam zkusit:

https://drivers.amd.com/relnotes/amd_nvme_sata_raid_quick_start_guide_for_windows_operating_systems.pdf


vROC dongle - to me prijde uplne zbytecny jen kvuli bootu, ktery mam osobne vyreseny vlastni synchronizaci EFI oddilu - protoze si nepamatuji ten grub mkconfig prikaz, tak mam skript co provede vsechno spravne. Zas tak casto neaktualizujes jadro (a delam to taky rucne).

Re:AMD NVMe RAID (RAIDXpert2) a md v jádře. Chodí to spolu?
« Odpověď #2 kdy: 18. 09. 2024, 22:14:02 »
To vypada jako neco co ma intel na desktopech - IRST .. a tento dokument ukazuje i AM4 platformy.. tak by to chtelo tam zkusit:
https://drivers.amd.com/relnotes/amd_nvme_sata_raid_quick_start_guide_for_windows_operating_systems.pdf

Ano, díky. Vypadá, že je to z hlediska ovládání a funkčnosti velice podobné jako zmíněný Intel RST, RSTe na SATA/SAS, které pak s příchodem NVMe disků nahradil VROC.
Samozřejmě zkusit to prakticky bude nejlepší, ale jak jsem zmínil mám teď k dispozici buď servery s velkými Epycy, kde se RAID řeší jinak, nebo jinde nainstalované stanice s TR, kde ale teď není RAID a nemůžu do nich úplně hrabat, abych si to vyzkoušel. Nějaké nové stanice s TR Pro budu mít teoreticky během pár měsíců na nějaké testy, uvidíme.

Nicméně jak jsem napsal ten dotaz, tak jsem se ještě v rychlosti díval a jsem spíš skeptický. Vypadá to, že AMD má nějaký out-of-tree modul, kompatibilní jen s vybranými verzemi jádra, ale to není úplně cesta, kterou bych se chtěl vydat se systémovými disky.
https://drivers.amd.com/relnotes/amd_raid_quick_start_guide_for_rhel_operating_system-rev_1.pdf
https://github.com/thopiekar/rcraid-dkms/tree/master

Rozhodně to není tak elegantní, jako s VROCem jak jsem popisoval. Tam je to upstreamované, funguje to přes mdraid a v podstatě to už roky šlape out-of-box. Aspoň s distribucemi, s kterými dělám, což je velká výhoda.

Citace
vROC dongle - to me prijde uplne zbytecny jen kvuli bootu, ktery mam osobne vyreseny vlastni synchronizaci EFI oddilu - protoze si nepamatuji ten grub mkconfig prikaz, tak mam skript co provede vsechno spravne. Zas tak casto neaktualizujes jadro (a delam to taky rucne).

No já to vidím přesně naopak, VROC mi dává největší smysl právě pro systémový disk. Na datové disky si to pořeším jinak, to neohrožuje start systému a můžu si to vyladit úplně podle potřeby.

U klasického mdraidu si samozřejmě můžu manuálně zklonovat GPT tabulku, sestavit si ty oddíly a EFI si skriptem samozřejmě můžu synchronizovat taky (připojí to párový oddíl, rsyncnu to mezi sebou). Ale je to opruz, protože to není v distribucích žádným způsobem provázáno na balíčkovací systém, aby se to spustilo po aktualizaci GRUBu, shimu atd. Takže já si to sice můžu nějak specificky pořešit, ale jakmile má člověk delegovat instalace a správu na někoho dalšího, už se z toho stane jen další starost.
Navíc je tam ten aspekt bootování, např. když blbne jedno zařízení v mirroru, ale nechcípne úplně a třeba hebne až po chvíli na nějakém IO timeoutu, po přístupu k určitému LBA, nebo jsou na něm porušená data (vyzkoušeno za vás :)).
Komplikuje se to pak i tím, že v EFI vars musí být správně uloženy všechny záznamy k loaderům, se správnou prioritou a finálně musí člověk doufat, že to v případě problému dobře zafunguje v EFI desky, přeskočí to ten první a nezhebne to po rebootu.
Tohle všechno VROC (případně RST) vcelku elegantně řeší, zařízení zablbne, označí se jako vadné, a už se na něj po rebootu nesahá, neblokuje start.
Navíc tím, že to v podstatě po zavedení jádra předá dál standardnímu mdraid modulu, tak jsou v systému pořád přímo dostupná jednotlivé NVMe disky a není to schované za složeným virtuálním blok. zařízením. Tzn. dá se na ně přistupovat všemi běžnými konfiguračními a diagnostickými nástroji jako smartctl, nvme-cli. Vytahovat logy přes nvme namespacy atp.
Mám to takhle v x serverech (i ve vzdálených lokacích) a funguje to dobře. Za těch pár tisíc z VROC dongle to podle mě stojí.

« Poslední změna: 18. 09. 2024, 22:15:38 od Michal Šmucr »