Artikkelin on kirjoittanut Nirmala Sundararajan Dell EMC:n HPC and AI Innovation Labista marraskuussa 2019
Dell EMC Ready -ratkaisut tehokkaseen HPC BeeGFS -tallennukseen
Taulukoissa 1 ja 2 kuvataan hallintapalvelimen ja metatieto-/tallennuspalvelimen laitteiston tekniset tiedot. Taulukossa 3 kuvataan ratkaisussa käytetyt ohjelmistoversiot.
Taulukko 1: PowerEdge R640 -kokoonpano (hallintapalvelin) | |
---|---|
Server | Dell EMC PowerEdge R640 |
Suoritin | 2 x Intel Xeon Gold 5218, 2,3 GHz, 16 ydintä |
Muisti | 12 x 8 Gt:n DDR4, 2 666 MT/s:n DIMM-moduulit – 96 Gt |
Paikalliset levyt | 6 x 300 Gt:n, 2,5":n SAS-kiintolevyä, 15 000 RPM |
RAID-ohjain | Integroitu PERC H740P RAID -ohjain |
Kaistan ulkopuolinen hallinta | iDRAC9 Enterprise ja Lifecycle Controller |
Virtalähteet | Kaksi 1 100 W:n virtalähdettä |
BIOS-versio | 2.2.11 |
Käyttöjärjestelmä | CentOS™ 7.6 |
Kernel-versio | 3.10.0-957.27.2.el7.x86_64 |
Taulukko 2 PowerEdge R740xd -kokoonpano (metatiedot ja tallennuspalvelimet) | |
---|---|
Server | Dell EMC PowerEdge R740xd |
Suoritin | 2 x Intel Xeon Platinum 8268 -suoritin @ 2,90 GHz, 24 ydintä |
Muisti | 12 x 32 Gt, DDR4, 2 933 MT/s, DIMM – 384 Gt |
BOSS-kortti | 2 x 240 Gt:n M.2 SATA -SSD-levyä käyttöjärjestelmän RAID 1 -kokoonpanossa |
Paikalliset asemat | 24x Dell Express Flash NVMe P4600, 1,6 Tt, 2,5" U.2 |
Mellanoxin EDR-kortti | 2 x Mellanox ConnectX-5 EDR -korttia (paikat 1 ja 8) |
Kaistan ulkopuolinen hallinta | iDRAC9 Enterprise ja Lifecycle Controller |
Virtalähteet | Kaksi 2 000 W:n virtalähdettä |
Taulukko 3 Ohjelmistokokoonpano (metatiedot ja tallennuspalvelimet) | |
---|---|
BIOS | 2.2.11 |
CPLD | 1.1.3 |
Käyttöjärjestelmä | CentOS™ 7.6 |
Kernel-versio | 3.10.0-957.el7.x86_64 |
iDRAC | 3.34.34.34 |
Järjestelmänhallintatyökalu | OpenManage Server Administrator 9.3.0-3407_A00 |
Mellanox, OFED | 4.5-1.0.1.0 |
NVMe SSD -asemat | QDV1DP13 |
*Intel-konesalityökalu ® | 3.0.19 |
BeeGFS | 7.1.3 |
Grafana | 6.3.2 |
InfluxDB | 1.7.7 |
IOzone-vertailuarvo | 3.487 |
Edellä olevassa esimerkissä näkyy kaksi eri tiedostojärjestelmää, jotka on liitetty samaan työasemaan. Tässä testauksessa asiakkaina käytettiin 32 x C6420-solmua.$ kissa /etc/beegfs/beegfs-mounts.conf
/mnt/beegfs-medium /etc/beegfs/beegfs-client-medium.conf
/mnt/beegfs-small /etc/beegfs/beegfs-client-small.conf
Kuvassa 8 on testialusta, jossa InfiniBand-yhteydet NUMA-vyöhykkeeseen on korostettu. Jokaisella palvelimella on kaksi IP-linkkiä ja liikenne NUMA 0 -vyöhykkeen läpi tapahtuu rajapinnalla IB0, kun taas NUMA 1 -vyöhykkeen läpi kulkeva liikenne hoidetaan rajapinnalla IB1.# kissa /proc/sys/ydin/numa_balancing
0
Taulukko 4 Asiakkaan kokoonpano | |
---|---|
Asiakkaat | 32 x Dell EMC PowerEdge C6420 -laskentasolmu |
BIOS | 2.2.9 |
Suoritin | 2 x Intel Xeon Gold 6148 -suoritin @ 2,40GHz, 20 ydintä suoritinta kohti |
Muisti | 12 x 16 Gt:n DDR4, 2 666 MT/s:n DIMM-moduulit – 192 Gt |
BOSS-kortti | 2 x 120 Gt:n M.2-käynnistysasemaa, RAID 1 käyttöjärjestelmälle |
Käyttöjärjestelmä | Red Hat Enterprise Linux Server release 7.6 |
Kernel-versio | 3.10.0-957.el7.x86_64 |
Verkon liitäntä | 1 x Mellanox ConnectX-4 EDR -kortti |
OFED-versio | 4.5-1.0.1.0 |
Peräkkäisten lukujen ja kirjoitusten arvioimiseksi IOzone-vertailuarvoa käytettiin peräkkäisessä luku- ja kirjoitustilassa. Nämä testit suoritettiin useilla säikeillä, jotka alkoivat 1 säikeestä ja lisäsivät tehoa 2, jopa 1024 säiettä. Jokaisella säikemäärällä luotiin yhtä monta tiedostoa, koska tämä testi toimii yhdessä tiedostossa säiettä kohti tai N asiakasta N-tiedostoon (N-N) -tapauksessa. Prosessit jaettiin 32 fyysiseen asiakassolmuun round robin- tai syklisesti siten, että pyynnöt jakautuvat tasaisesti ja kuormitus tasapainotetaan. Kokonaistiedostokooksi valittiin 8 Tt, joka jaettiin tasan säikeiden lukumäärälle kussakin testissä. Kokonaistiedostokoko valittiin riittävän suureksi minimoimaan välimuistiin tallentamisen vaikutukset palvelimilta sekä BeeGFS-asiakkailta. IOzone suoritettiin yhdistetyssä kirjoitustilassa ja luettiin sitten (-i 0, -i 1), jotta se pystyi koordinoimaan toimintojen välisiä rajoja. Tässä testauksessa ja tuloksissa käytimme 1MiB-tietuekokoa jokaiselle ajolle. Peräkkäisissä N-N-testeissä käytetyt komennot ovat alla:
Peräkkäiset kirjoitukset ja lukemat: iozone -i 0 -i 1 -c -e -w -r 1m -i -s $Size -t $Thread -+n -+m /path/to/threadlist
Käyttöjärjestelmän välimuistit myös poistettiin tai puhdistettiin asiakassolmuissa iteraatioiden välillä sekä kirjoitus- ja lukutestien välillä suorittamalla komento:
# synkronointi ja kaiku 3 > / proc / sys / vm / drop_caches
Beegfs-arvon raitojen oletusmäärä on 4. Tiedoston koko ja kohteiden määrä voidaan kuitenkin määrittää hakemistokohtaisesti. Kaikissa näissä testeissä BeeGFS-raidan kooksi valittiin 2 Mt ja raitojen määräksi 3, koska meillä on kolme kohdetta NUMA-aluetta kohden alla olevan kuvan mukaisesti:
$ beegfs-ctl --getentryinfo --mount=/mnt/beegfs /mnt/beegfs/benchmark --verbose
EntryID: 0-5D9BA1BC-1
ParentID: root
Metatietosolmu: node001-numa0-4 [ID: 4]
Raitakuvion tiedot:
+ Tyyppi: RAID0
+ Chunksize: 2M
+ Tallennuskohteiden määrä: toivottu:
3+ Tallennusvaranto: 1 (oletus)
Inode-hajautuspolku: 7/5E/0-5D9BA1BC-1
Läpinäkyvät valtavat sivut poistettiin käytöstä, ja seuraavat viritysvaihtoehdot ovat käytössä metatieto- ja tallennuspalvelimilla:
- vm.dirty_background_ratio = 5
- vm.dirty_ratio = 20
- vm.min_free_kbytes = 262144
- vm.vfs_cache_pressure = 50
- vm.zone_reclaim_mode = 2
- kernel.numa_balancing = 0
Edellä mainittujen lisäksi käytettiin seuraavia BeeGFS-viritysvaihtoehtoja:
Kuvassa 9 nähdään, että huippulukusuorituskyky on 132 Gt/s 1024 säikeessä ja huippukirjoitus 121 Gt/s 256 säikeessä. Kumpikin asema voi tarjota 3,2 Gt/s:n huippulukusuorituskyvyn ja 1,3 Gt/s:n huippukirjoitussuorituskyvyn, mikä mahdollistaa teoreettisen huipputason 422 Gt/s lukutoiminnoissa ja 172 Gt/s kirjoituksissa. Tässä verkko on kuitenkin rajoittava tekijä. Meillä on yhteensä 11 InfiniBand EDR -linkkiä kokoonpanon tallennuspalvelimille. Kunkin linkin teoreettinen huippusuorituskyky voi olla 12,4 Gt/s, jolloin teoreettinen huippusuorituskyky on 136,4 Gt/s. Saavutettu huippuluku- ja kirjoitussuorituskyky on vastaavasti 97 % ja 89 % teoreettisesta huippusuorituskyvystä.
Yksittäisen säikeen kirjoitustehon havaitaan olevan ~ 3 Gt/s ja lukunopeus ~ 3 Gt/s. Havaitsemme, että kirjoitussuorituskyky skaalautuu lineaarisesti, saavuttaa huippunsa 256 säikeessä ja alkaa sitten laskea. Pienemmillä säikeiden määrillä luku- ja kirjoitussuorituskyky on sama. Koska 8 säiettä asti meillä on 8 asiakasta, jotka kirjoittavat 8 tiedostoa 24 kohteeseen, mikä tarkoittaa, että kaikkia tallennuskohteita ei hyödynnetä täysimääräisesti. Meillä on järjestelmässä 33 tallennuskohdetta, joten kaikkien palvelimien täysimääräiseen hyödyntämiseen tarvitaan vähintään 11 säiettä. Lukusuorituskyky rekisteröi tasaisen lineaarisen kasvun samanaikaisten säikeiden määrän kasvaessa, ja havaitsemme lähes samanlaisen suorituskyvyn 512 ja 1024 säikeessä.
Huomaamme myös, että lukusuorituskyky on alhaisempi kuin säikeiden määrän kirjoitusmäärät 16: sta 128: een, ja sitten lukusuorituskyky alkaa skaalautua. Tämä johtuu siitä, että vaikka PCIe-lukutoiminto on kirjaamaton toiminto, joka edellyttää sekä pyyntöä että valmistumista, PCIe-kirjoitustoiminto on tulipalo ja unohdus -toiminto. Kun tapahtumakerroksen paketti on luovutettu tiedonsiirtokerrokselle, toiminto on valmis. Kirjoitustoiminto on kirjattu toiminto, joka koostuu vain pyynnöstä.
Lukunopeus on yleensä pienempi kuin kirjoitusnopeus, koska lukemiseen tarvitaan kaksi tapahtumaa yhden kirjoituksen sijaan samalle tietomäärälle. PCI Express käyttää lukemiseen jaettua tapahtumamallia. Luettu tapahtuma sisältää seuraavat vaiheet:
Lukunopeus riippuu viiveestä lukupyynnön lähettämisen ja tietojen palauttamisen välillä. Kun sovellus kuitenkin lähettää riittävän määrän lukupyyntöjä tämän viiveen kattamiseksi, siirtonopeus maksimoidaan. Tästä syystä, vaikka lukusuorituskyky on pienempi kuin kirjoitusten 16 säikeestä 128 säikeeseen, mittaamme lisääntynyttä läpäisykykyä, kun pyyntöjen määrä kasvaa. Pienempi määrä mitataan, kun pyytäjä odottaa valmistumista ennen seuraavien pyyntöjen lähettämistä. Suurempi suorituskyky rekisteröidään, kun lähetetään useita pyyntöjä viiveen poistamiseksi ensimmäisten tietojen palautusten jälkeen.
Satunnaisen IO-suorituskyvyn arvioimiseksi IOzonea käytettiin satunnaistilassa. Kierremääriä testattiin alkaen 4 säikeestä jopa 1024 säikeeseen. Suoraa IO-vaihtoehtoa (-I) käytettiin IOzonen suorittamiseen niin, että kaikki toiminnot ohittavat puskurivälimuistin ja siirtyvät suoraan levylle. BeeGFS-raitojen lukumääräksi käytettiin 3 ja palan kokoa 2 Mt. IOzonessa käytetään 4 KiB: n pyyntökokoa. Suorituskykyä mitataan I/O-operaatioina sekunnissa (IOPS). Käyttöjärjestelmän välimuistit pudotettiin ajojen välillä sekä BeeGFS-palvelimilla että BeeGFS-asiakkailla. Satunnaisten kirjoitusten ja lukujen suorittamiseen käytetty komento on alla:
Satunnainen lukee ja kirjoittaa: iozone -i 2 -w -c -O -I -r 4K -s $Size -t $Thread -+n -+m /polku/to/threadlist
Kuva 10: Satunnainen luku- ja kirjoitussuorituskyky käyttämällä IOzonea ja 8 Tt:n kokonaistiedostokokoa
Satunnaiskirjoitushuippu ~3,6 miljoonaa IOPS:ää 512 säikeessä ja satunnaislukuhuippu ~3,5 miljoonaa IOPS:ää 1024 säikeessä, kuten kuvassa 10 esitetään. Sekä kirjoitus- että lukusuorituskyky on parempi, kun IO-pyyntöjä on enemmän. Tämä johtuu siitä, että NVMe-standardi tukee jopa 64 Kt:n I/O-jonoa ja jopa 64 Kt:n komentoja jonoa kohden. Tämä suuri NVMe-jonojen joukko tarjoaa korkeamman I/O-rinnakkaisuuden tason, ja siksi havaitsemme IOPS: n ylittävän 3 miljoonaa.
Tässä blogissa ilmoitetaan Dell EMC High Performance BeeGFS -tallennusratkaisun julkaisusta ja korostetaan sen suorituskykyominaisuuksia. Ratkaisun peräkkäisten luku- ja kirjoitustehojen huippu on ~132 Gt/s ja ~121 Gt/s, ja satunnaiskirjoitusten huippu on ~3,6 miljoonaa IOPS:ää ja satunnaislukujen huippu ~3,5 miljoonaa IOPS:ää.
Tämä blogi on ensimmäinen osa "BeeGFS Storage Solution" -ratkaisua, joka on suunniteltu keskittyen korkean suorituskyvyn raaputustilaan. Pysy kuulolla blogisarjan osasta 2, jossa kuvataan, miten ratkaisua voidaan skaalata lisäämällä palvelimien määrää suorituskyvyn ja kapasiteetin lisäämiseksi. Blogisarjan osassa 3 käsitellään BeeGFS:n lisäominaisuuksia ja korostetaan "StorageBenchin", BeeGFS:n sisäänrakennetun tallennustavoitteiden vertailuarvon, käyttöä.
Osana seuraavia vaiheita julkaisemme myöhemmin white paper -raportin, joka sisältää metatietojen suorituskyvyn ja N threads to 1 file IOR -suorituskyvyn sekä lisätietoja suunnittelunäkökohdista, hienosäädöstä ja kokoonpanosta.