Článek napsal Mario Gallegos z oddělení HPC and AI Innovation Lab v říjnu 2019
Počet klientských uzlů |
16 |
Uzel klienta |
C6320 |
Procesory na uzel klienta |
2x Intel(R) Xeon(R) Gold E5-2697v4, 18 jader při frekvenci 2,3 GHz |
Paměť na uzel klienta |
12x 16GiB modul RDIMM 2 400 MT/s |
BIOS |
2.8.0 |
Jádro operačního systému |
3.10.0-957.10.1 |
Verze GPFS |
5.0.3 |
./iozone -i0 -c -e -w -r 8M -s 128G -t $Threads -+n -+m ./seznam
vláken ./iozone -i1 -c -e -w -r 8M -s 128G -t $Threads -+n -+m ./seznam vláken
mpirun --allow-run-as-root -np $Threads --hostfile my_hosts.$Threads --mca btl_openib_allow_ib 1 --mca pml ^ucx --oversubscribe --prefix /mmfs1/perftest/ompi /mmfs1/perftest/lanl_ior/bin/ior -a POSIX -v -i 1 -d 3 -e -k -o /mmfs1/perftest/tst.file -w -s 1 -t 8m -b 128G
mpirun --allow-run-as-root -np $Threads --hostfile my_hosts.$Threads --mca btl_openib_allow_ib 1 --mca pml ^ucx --oversubscribe --prefix /mmfs1/perftest/ompi /mmfs1/perftest/lanl_ior/bin/ior -a POSIX -v -i 1 -d 3 -e -k -o /mmfs1/perftest/tst.file -r -s 1 -t 8m -b 128G
./iozone -i2 -c -O -w -r 4K -s 32G -t $Threads -+n -+m ./seznam vláken
mpirun --allow-run-as-root -np $Threads --hostfile my_hosts.$Threads --prefix /mmfs1/perftest/ompi --mca btl_openib_allow_ib 1 /mmfs1/perftest/lanl_ior/bin/mdtest -v -d /mmfs1/perftest/ -i 1 -b $Directories -z 1 -L -I 1024 -y -u -t -F
Počet vláken |
Počet adresářů na vlákno |
Celkový počet souborů |
1 |
2 048 |
2 097 152 |
2 |
1 024 |
2 097 152 |
4 |
512 |
2 097 152 |
8 |
256 |
2 097 152 |
16 |
128 |
2 097 152 |
32 |
64 |
2 097 152 |
64 |
32 |
2 097 152 |
128 |
16 |
2 097 152 |
256 |
8 |
2 097 152 |
512 |
4 |
2 097 152 |
1 024 |
2 |
2 097 152 |
mpirun --allow-run-as-root -np $Threads --hostfile my_hosts.$Threads --prefix /mmfs1/perftest/ompi --mca btl_openib_allow_ib 1 /mmfs1/perftest/lanl_ior/bin/mdtest -v -d /mmfs1/perftest/ -i 1 -b $Directories -z 1 -L -I 1024 -y -u -t -F -w 4K -e 4K
Obrázek 6: Výkon metadat – malé soubory (4K)
Systém dosahuje velmi dobrých výsledků pro operace Stat a Removal a dosahuje své maximální hodnoty na 128 vláknech se 7,7 M op/s a 1M op/s. Operace odebrání dosáhly maxima 37,3 000 operací za sekundu a operace vytvoření dosáhly svého maxima s 55,5 tisíci operacemi/s, obě při 512 vláknech. Operace Stat a Removal mají větší variabilitu, ale jakmile dosáhnou své maximální hodnoty, výkon neklesne pod 4 M op/s pro Stats a 200 000 op/s pro Removal. Operace Create a Read mají menší variabilitu a s rostoucím počtem vláken stále rostou.
Vzhledem k tomu, že tato čísla platí pro modul metadat s jedním polem ME4024, výkon se zvýší pro každé další pole ME4024, nemůžeme však předpokládat pouze lineární nárůst pro každou operaci. Pokud se celý soubor nevejde do uzlu inode pro takový soubor, budou datové cíle na ME4084 použity k uložení 4 000 souborů, což do jisté míry omezí výkon. Protože velikost uzlu inode je 4 KiB a je třeba do něj ještě ukládat metadata, vejdou se dovnitř pouze soubory o velikosti kolem 3 KiB a jakýkoli větší soubor bude používat datové cíle.
Tento test je téměř totožný s předchozími, až na to, že byly použity malé soubory 3KiB. Hlavní rozdíl je v tom, že tyto soubory se zcela vejdou do inode. Proto se nepoužívají uzly úložiště a jejich ME4084, což zlepšuje celkovou rychlost tím, že se pro úložiště používají pouze média SSD a je méně přístupů k síti.
Ke spuštění benchmarku byl použit následující příkaz, kde položka Threads byla proměnná s počtem použitých vláken (1–512, rostoucí po mocnině 2) a položka my_hosts.$Threads byl odpovídající soubor, který přiděloval každé vlákno na jiný uzel, přičemž se použilo kruhové dotazování pro jejich homogenní rozložení mezi 16 výpočetních uzlů.
mpirun --allow-run-as-root -np $Threads --hostfile my_hosts.$Threads --prefix /mmfs1/perftest/ompi --mca btl_openib_allow_ib 1 /mmfs1/perftest/lanl_ior/bin/mdtest -v -d /mmfs1/perftest/ -i 1 -b $Directories -z 1 -L -I 1024 -y -u -t -F -w 3K -e 3K
Obrázek 7: Výkon metadat – malé soubory (3 tis.)
Systém dosahuje velmi dobrých výsledků pro operace Stat a Read, které dosahují své maximální hodnoty při 256 vláknech s 8,29 M op/s a 5,06 M op/s. Operace odebrání dosáhly maxima 609 tisíc operací za sekundu při 128 vláknech a operace vytvoření dosáhly svého vrcholu se 78 tisíci operacemi za sekundu při 512 vláknech. Operace statistik a čtení mají větší variabilitu než vytváření a odebrání. Odebrání má malý pokles výkonu pro dvě vyšší vlákna, což naznačuje, že trvalý výkon po 128 vláknech bude mírně přes 400 tisíc operací. Vytváří stále narůstající až na 512 vláken, ale vypadá to, že dosahuje plató, takže maximální výkon může být stále pod 100 tisíc op/s.
Vzhledem k tomu, že malé soubory, jako jsou tyto, jsou zcela uloženy v modulu metadat na bázi SSD, mohou aplikace vyžadující vynikající výkon malých souborů použít jeden nebo více volitelných modulů metadat s vysokou náročností na zvýšení výkonu malých souborů. Soubory, které se vejdou do inody, jsou však podle současných standardů malé. Jelikož cíle metadat používají pole RAID 1 s disky SSD relativně malými (maximální velikost je 19,2 TB), bude kapacita ve srovnání s uzly úložiště omezená. Proto je třeba dbát na to, aby nedošlo k zaplnění cílů metadat, což může způsobit zbytečné poruchy a další problémy.
Mezi funkcemi PixStoru může být monitorování souborového systému prostřednictvím pokročilé analytiky zásadní pro výrazné zjednodušení správy, což pomáhá proaktivně nebo reaktivně najít problémy nebo potenciální problémy. V dalším kroku se stručně podíváme na některé z těchto funkcí.
Obrázek 8 ukazuje užitečné informace o kapacitě systému souborů. Na levé straně je uvedeno celkové využité místo v souborovém systému a deset nejlepších uživatelů podle využité kapacity souborového systému. Na pravé straně je historické zobrazení s využitou kapacitou po mnoho let, pak deset nejpoužívanějších typů souborů a deset nejpoužívanějších sad souborů, obojí na základě využité kapacity, ve formátu podobném Paretovým grafům (bez řádků pro kumulativní součty). S těmito informacemi může být snadné najít uživatele, kteří dostávají více než spravedlivý podíl na souborovém systému, trendy využití kapacity, které pomáhají při rozhodování o budoucím růstu kapacity, které soubory využívají většinu místa nebo které projekty zabírají většinu kapacity.
Obrázek 8: Analytika PixStor – zobrazení
kapacity Obrázek 9 ukazuje počet souborů se dvěma velmi užitečnými způsoby, jak najít problémy. V první polovině obrazovky je prvních deset uživatelů ve výsečovém grafu a deset nejlepších typů souborů a deset nejlepších sad souborů (představte si projekty) ve formátu podobném Paretovým grafům (bez řádků pro kumulativní součty), vše na základě počtu souborů. Tyto informace lze použít k zodpovězení některých důležitých otázek. Například uživatelé, kteří monopolizují souborový systém tím, že vytvářejí příliš mnoho souborů, jaký typ souboru vytváří noční můru metadat nebo jaké projekty využívají většinu zdrojů.
Spodní polovina obsahuje histogram s počtem souborů (frekvencí) pro velikosti souborů pomocí 5 kategorií pro různé velikosti souborů. To lze použít k získání představy o velikostech souborů používaných v celém systému souborů, které lze v koordinaci s typy souborů použít k rozhodnutí, zda bude komprese přínosná.
Obrázek 9: PixStor Analytics – Zobrazení počtu souborů
Současné řešení bylo schopno poskytnout poměrně dobrý výkon, který by měl být stabilní bez ohledu na využité místo (protože systém byl formátován v rozptýleném režimu), jak je vidět v tabulce 4. Řešení navíc lineárně škáluje kapacitu a výkon s přidáváním dalších modulů úložných uzlů a podobný nárůst výkonu lze očekávat i od volitelného modulu metadat s vysokými nároky. Toto řešení poskytuje zákazníkům HPC velmi spolehlivý paralelní systém souborů, který využívá mnoho clusterů HPC z žebříčku Top 500. Kromě toho poskytuje výjimečné možnosti vyhledávání, pokročilé monitorování a správu a přidání volitelných bran umožňuje sdílení souborů prostřednictvím všudypřítomných standardních protokolů, jako jsou NFS, SMB a další, tolika klientům, kolik je potřeba.
Tabulka 4 Špičkový a trvalý výkon
|
Špičkový výkon |
Stálý výkon |
||
Zápis |
Čtení |
Zápis |
Čtení |
|
Velký sekvenční N klientů – N souborů |
16,7 GB/s |
23 GB/s |
16,5 GB/s |
20,5 GB/s |
Velký sekvenční N klientů – jeden sdílený soubor |
16,5 GB/s |
23,8 GB/s |
16,2 GB/s |
20,5 GB/s |
Náhodné malé bloky N klientů – N souborů |
15,8 KIOps |
20,4 KIOps |
15,7 KIOps |
20,4 KIOps |
Prázdné soubory metadat – Create |
169 400 IOPS |
127,2 000 IOps |
||
Prázdné soubory metadat – Stat |
11,2 milionu operací IO za sekundu |
3,3 milionu IOps |
||
Prázdné soubory metadat – Read |
4,8 milionu IOps |
2,4 mil. IOPS |
||
Prázdné soubory metadat – Remove |
194,2 000 IOps |
144,8 000 IOps |
||
4KiB soubory metadat – Create |
55,4 000 IOps |
55,4 000 IOps |
||
4KiB soubory metadat – Stat |
6,4 milionu operací IOps |
4 milióny IOps |
||
4KiB soubory metadat – Read |
37,3 000 IOps |
37,3 000 IOps |
||
4KiB soubory metadat – Remove |
1 milion IOps |
219,5 000 IOps |
Vzhledem k tomu, že řešení má být vydáno s procesory Cascade Lake a rychlejší pamětí RAM, budou po finální konfiguraci systému provedeny namátkové kontroly výkonu. A je potřeba otestovat volitelný modul metadat pro vysoké nároky s alespoň 2x ME4024 a 4KiB soubory, aby bylo možné lépe zdokumentovat, jak se škáluje výkon metadat při zapojení datových cílů. Kromě toho bude změřen výkon pro uzly brány a spolu se všemi relevantními výsledky z namátkových kontrol bude uveden v novém blogu nebo dokumentu whitepaper. V neposlední řadě se plánuje testování a vydání dalších komponent řešení, které poskytnou ještě více možností.