Dell EMC Ready -ratkaisu HPC PixStor -tallennukseen - NVMe-taso
Summary: Blogissa esitellään HPC-tallennusratkaisun komponentti, mukaan lukien arkkitehtuuri ja suorituskyvyn arviointi.
Symptoms
Blogissa esitellään HPC-tallennusratkaisun komponentti, mukaan lukien arkkitehtuuri ja suorituskyvyn arviointi.
Resolution
Dell EMC Ready -ratkaisu HPC PixStor -tallennukseen
NVMe-taso
Sisällysluettelo
Peräkkäinen IOzone-suorituskyky N-tiedostot
Peräkkäinen IOR Performance N -asiakkaat 1 tiedostoon
Satunnaiset pienet lohkot IOzone Performance N -asiakkaat N-tiedostoihin
Metatietojen suorituskyky MDtestillä käyttäen 4 KiB-tiedostoa
Johdanto
Nykypäivän HPC-ympäristöt vaativat entistä enemmän erittäin nopeaa tallennusta, ja koska suoritinmäärä on suurempi, verkot ovat nopeampia ja muistia suurempi, tallennustilasta on tulossa pullonkaula monissa työkuormissa. Nämä suuren kysynnän suurteholaskentavaatimukset katetaan yleensä rinnakkaisilla tiedostojärjestelmillä (PFS), jotka tarjoavat samanaikaisen pääsyn yhteen tiedostoon tai tiedostojoukkoon useista solmuista ja jakavat tietoja erittäin tehokkaasti ja turvallisesti useisiin LUN-levyihin useissa palvelimissa. Nämä tiedostojärjestelmät ovat yleensä pyörivään mediaan perustuvia tarjoamaan suurimman kapasiteetin alhaisimmilla kustannuksilla. Yhä useammin pyörivän tallennusvälineen nopeus ja viive eivät kuitenkaan pysy monien nykyaikaisten HPC-työkuormien vaatimusten tasalla, mikä edellyttää flash-tekniikan käyttöä purskepuskureiden, nopeampien tasojen tai jopa erittäin nopean naarmuuntumisen, paikallisen tai hajautetun, muodossa. Dell EMC Ready Solution HPC:lle PixStor Storagekäyttää NVMe-solmuja komponenttina kattamaan tällaiset uudet suuren kaistanleveyden vaatimukset sen lisäksi, että ne ovat joustavia, skaalattavia, tehokkaita ja luotettavia.
Ratkaisuarkkitehtuuri
Tämä blogi on osa HPC-ympäristöjen rinnakkaisten tiedostojärjestelmäratkaisujen (PFS) sarjaa, erityisesti HPC PixStor -tallennuksen DellEMC Ready Solution -ratkaisua, jossa NVMe-asemilla varustettuja DellEMC PowerEdge R640 -palvelimia käytetään nopeana flash-pohjaisena tasona.
PixStor PFS -ratkaisu sisältää laajalle levinneen yleisen rinnakkaisen tiedostojärjestelmän, joka tunnetaan myös nimellä Spectrum Scale. ArcaStream sisältää myös monia muita ohjelmistokomponentteja, jotka tarjoavat edistyneen analytiikan, yksinkertaistetun hallinnan ja seurannan, tehokkaan tiedostohaun, edistyneet yhdyskäytäväominaisuudet ja paljon muuta.
Tässä blogissa esitellyt NVMe-solmut tarjoavat erittäin tehokkaan flash-pohjaisen tason PixStor-ratkaisulle. Tämän NVMe-tason suorituskykyä ja kapasiteettia voidaan skaalata lisäämällä NVMe-solmuja. Kapasiteettia saadaan valitsemalla PowerEdge R640:n tukemat NVMe-laitteet.
Kuvassa 1 on viitearkkitehtuuri, joka kuvaa ratkaisua, jossa on 4 NVMe-solmua ja joka käyttää suuren kysynnän metatietomoduulia, joka käsittelee kaikki metatiedot testatussa kokoonpanossa. Tämä johtuu siitä, että tällä hetkellä näitä NVMe-solmuja käytettiin vain datatallennuskohteina. NVMe-solmuja voidaan kuitenkin käyttää myös tietojen ja metatietojen tallentamiseen tai jopa nopeammaksi flash-vaihtoehdoksi suuren kysynnän metatietomoduulille, jos äärimmäiset metatietovaatimukset sitä vaativat. Näitä NVMe-solmujen määrityksiä ei testattu osana tätä työtä, mutta niitä testataan tulevaisuudessa.

Kuva 1 Viitearkkitehtuuri
Ratkaisun osat
Tämä ratkaisu käyttää uusimpia 2. sukupolven Intel Xeon Scalable Xeon -suorittimia eli Cascade Lake -suorittimia ja nopeinta saatavilla olevaa RAM-muistia (2 933 MT/s), lukuun ottamatta hallintasolmuja, jotka pitävät ne kustannustehokkaina. Lisäksi ratkaisu päivitettiin uusimpaan PixStor-versioon (5.1.3.1), joka tukee RHEL 7.7: ää ja OFED 5.0: ta, jotka ovat tuettuja ohjelmistoversioita julkaisuhetkellä.
Kussakin NVMe-solmussa on kahdeksan Dell P4610 -laitetta, jotka on määritetty kahdeksaksi RAID 10 -laitteeksi palvelinparille NVMe over Fabric -ratkaisun avulla. Tämä mahdollistaa tietojen vikasietoisuuden laitetason lisäksi myös palvelintasolla. Lisäksi, kun tietoja menee johonkin näistä RAID10-laitteista tai niistä ulos, molempien palvelimien kaikkia 16 asemaa käytetään, mikä lisää kaikkien asemien kaistanleveyttä. Siksi ainoa rajoitus näille komponenteille on, että ne on myytävä ja käytettävä pareittain. Kaikkia PowerEdge R640:n tukemia NVMe-asemia voidaan käyttää tässä ratkaisussa, mutta P4610:n peräkkäinen kaistanleveys on 3200 Mt/s sekä luku- että kirjoitustoiminnoille sekä suuret satunnaiset IOPS-määritykset, jotka ovat mukavia ominaisuuksia, kun yritetään skaalata arvioimaan tämän flash-tason vaatimusten täyttämiseen tarvittavien parien määrää.
Jokaisessa R640-palvelimessa on kaksi HCA:ta, Mellanox ConnectX-6 Single Port VPI HDR100, joita käytetään EDR 100 Gb IB -liitäntöinä. NVMe-solmut ovat kuitenkin valmiita tukemaan HDR100-nopeuksia, kun niitä käytetään HDR-kaapeleiden ja -kytkimien kanssa. HDR100:n testaaminen näissä solmuissa lykätään osana koko PixStor-ratkaisun HDR100-päivitystä. Molempia CX6-liittymiä käytetään RAID 10:n tietojen synkronointiin (NVMe over fabric) ja tiedostojärjestelmän yhteyksinä. Lisäksi ne tarjoavat laitteiston redundanssin sovittimessa, portissa ja kaapelissa. Kytkintason vikasietoisuus edellyttää kaksiporttisia CX6 VPI -sovittimia, mutta ne on hankittava ohjelmisto- ja oheislaitekomponentteina.
NVMe-solmujen suorituskyvyn kuvaamiseen käytettiin kuvassa 1 esitetystä järjestelmästä vain suuren kysynnän metatietomoduulia ja NVMe-solmuja.
Taulukossa 1 on luettelo ratkaisun pääkomponenteista. ME4024:n tukemien asemien luettelossa 960 Gt:n SSD-asemia käytettiin metatietojen määrittämiseen, ja niitä käytettiin suorituskyvyn karakterisointiin. Nopeammat asemat voivat tarjota parempia satunnaisia IOP:itä ja mahdollisesti parantaa luonti-/poistometatietojen toimintoja. NVMe-solmut tukevat kaikkia PowerEdge R640:n tukemia NVMe-laitteita.
Taulukko 1 Vapautumishetkellä käytettävät komponentit ja testipenkissä käytettävät komponentit
|
Julkaisuhetkellä |
||
|
Sisäiset liitännät |
Dell Networking S3048-ON Gigabit Ethernet |
|
|
Tietojen tallennuksen osajärjestelmä |
1–4x Dell EMC PowerVault ME4084 1x – 4x Dell EMC PowerVault ME484 (yksi ME4084:ää kohti) |
|
|
Valinnainen suuren kysynnän metatietojen tallennusalijärjestelmä |
1x – 2x Dell EMC PowerVault ME4024 (4 x ME4024 tarvittaessa, vain suuri kokoonpano) |
|
|
RAID-tallennusohjaimet |
12 Gb/s:n SAS |
|
|
Suoritin |
NVMe-solmut |
2 x Intel Xeon Gold 6230 2,1 GHz, 20 ydintä / 40 säiettä |
|
Suuren kysynnän metatiedot |
||
|
Tallennustilasolmu |
||
|
Hallintasolmu |
2 x Intel Xeon Gold 5220 2,2 GHz, 18 ydintä / 36 säiettä |
|
|
Muisti |
NVMe-solmut |
12 x 16 GiB 2 933 MT/s RDIMM (192 GiB) |
|
Suuren kysynnän metatiedot |
||
|
Tallennustilasolmu |
||
|
Hallintasolmu |
12 x 16 Gt:n DIMM-moduulia, 2 666 MT/s (192 GiB) |
|
|
Käyttöjärjestelmä |
CentOS 7.7 |
|
|
Kernel-versio |
3.10.0-1062.12.1.el7.x86_64 |
|
|
PixStor-ohjelmisto |
5.1.3.1 |
|
|
Tiedostojärjestelmäohjelmisto |
Spectrum Scale (GPFS) 5.0.4-3 ja NVMesh 2.0.1 |
|
|
Tehokkaat verkkoyhteydet |
NVMe-solmut: 2 x ConnectX-6 InfiniBandia, jossa EDR/100 GbE |
|
|
Suorituskykyinen kytkin |
2 x Mellanox SB7800 |
|
|
OFED-versio |
Mellanox OFED 5.0-2.1.8.0 |
|
|
Paikalliset levyt (käyttöjärjestelmä ja analysointi/valvonta) |
Kaikki palvelimet paitsi luetellut NVMe-solmut 3 x 480 Gt:n SSD-levy SAS3 (RAID1 + HS) käyttöjärjestelmälle3 x 480 Gt:n SSD-levy SAS3 (RAID1 + HS) käyttöjärjestelmälle PERC H730P RAID -ohjain PERC H740P RAID -ohjain Hallintasolmu 3 x 480 Gt:n SSD SAS3 (RAID1 + HS) käyttöjärjestelmälle, jossa on PERC H740P RAID -ohjain |
|
|
Järjestelmänhallinta |
iDRAC 9 Enterprise + DellEMC OpenManage |
|
Suorituskyvyn karakterisointi
Tämän uuden Ready Solution -komponentin karakterisoimiseksi käytettiin seuraavia vertailuarvoja:
·IOzone N:stä N:ään
peräkkäin ·IOR N - 1 peräkkäin
·IOzone satunnainen
·MDtesti
Kaikkien edellä lueteltujen vertailuarvojen osalta testialustalla oli asiakkaat alla olevassa taulukossa 2 kuvatulla tavalla . Koska testattavien laskentasolmujen määrä oli vain 16, kun tarvittiin suurempi määrä säikeitä, nämä säikeet jakautuivat tasaisesti laskentasolmuille (ts. 32 säiettä = 2 säiettä solmua kohti, 64 säiettä = 4 säiettä solmua kohti, 128 säiettä = 8 säiettä solmua kohti, 256 säiettä = 16 säiettä solmua kohti, 512 säiettä = 32 säiettä solmua kohti, 1024 säiettä = 64 säiettä solmua kohti). Tarkoituksena oli simuloida suurempaa määrää samanaikaisia asiakkaita käytettävissä olevien laskentasolmujen rajallisella määrällä. Koska jotkin vertailuarvot tukevat suurta määrää säikeitä, käytettiin enimmäisarvoa 1024 asti (määritetty kullekin testille) välttäen samalla liiallista kontekstin vaihtamista ja muita siihen liittyviä sivuvaikutuksia vaikuttamasta suorituskykytuloksiin.
Taulukko 2 Asiakkaan testialusta
|
Asiakassolmujen määrä |
16 |
|
Asiakassolmu |
C6320 |
|
Suorittimet asiakassolmua kohden |
2x Intel(R) Xeon(R) Gold E5-2697v4, 18 ydintä @ 2,30 GHz |
|
Muistia asiakassolmua kohden |
8 x 16 GiB, 2 400 MT/s RDIMM (128 GiB) |
|
BIOS |
2.8.0 |
|
Käyttöjärjestelmän ydin |
3.10.0-957.10.1 |
|
Tiedostojärjestelmäohjelmisto |
Spectrum Scale (GPFS) 5.0.4-3 ja NVMesh 2.0.1 |
Peräkkäinen IOzone-suorituskyky N-asiakkaista N-tiedostoihin
Peräkkäisten N-asiakkaiden ja N-tiedostojen suorituskyky mitattiin IOzone-versiolla 3.487. Suoritetut testit vaihtelivat yhdestä säikeestä 1024 säikeeseen kahden tehon välein.
Palvelimien välimuistiin tallentamisen vaikutukset minimoitiin asettamalla GPFS-sivuvarannon säädettäväksi 16 GiB ja käyttämällä yli kaksi kertaa suurempia tiedostoja. On tärkeää huomata, että GPFS: lle tämä viritettävä asettaa tietojen välimuistiin tallentamiseen käytettävän muistin enimmäismäärän riippumatta asennetun ja vapaan RAM-muistin määrästä. On myös tärkeää huomata, että aiemmissa DellEMC-HPC-ratkaisuissa suurten peräkkäisten siirtojen lohkokoko on 1 MiB, kun taas GPFS:ssä oli 8 MiB-lohkoa, joten tätä arvoa käytetään vertailukohtana optimaalisen suorituskyvyn saavuttamiseksi. Se voi näyttää liian suurelta ja ilmeisesti tuhlata liikaa tilaa, mutta GPFS käyttää alalohkojen allokointia estääkseen tämän tilanteen. Nykyisessä kokoonpanossa kukin lohko jaettiin 256 32 KiB: n alilohkoon.
Seuraavia komentoja käytettiin kirjoitus- ja lukuvertailun suorittamiseen, jossa $Threads oli muuttuja käytettyjen säikeiden lukumäärällä (1–1024 kahden potenssin lisäyksellä), ja säieluettelo oli tiedosto, joka jakoi jokaisen säikeen eri solmuun käyttämällä pyöreää punarintaa jakamaan ne homogeenisesti 16 laskentasolmuun.
Asiakkaiden mahdollisten välimuistivaikutusten välttämiseksi tiedostojen kokonaiskoko oli kaksinkertainen käytettyjen asiakkaiden RAM-muistin kokonaismäärään. Toisin sanoen, koska jokaisella asiakkaalla on 128 GiB RAM-muistia, säikeiden lukumäärälle, joka on yhtä suuri tai suurempi kuin 16 säiettä , tiedostokoko oli 4096 GiB jaettuna säikeiden lukumäärällä (alla olevaa muuttujaa $Size käytettiin tämän arvon hallintaan). Tapauksissa, joissa oli alle 16 säiettä (mikä tarkoittaa, että jokainen säie oli käynnissä eri asiakkaassa), tiedostokooksi vahvistettiin kaksinkertainen muistimäärä asiakasta kohti eli 256 GiB.
iozone -i0 -c -e -w -r 8M -s $ G -t $Threads -+n -+m ./threadlist
iozone -i1 -c -e -w -r 8M -s $ G -t $Threads -+n -+m ./threadlist

Kuva 2 N:stä N peräkkäinen suorituskyky
Tuloksista voimme havaita, että kirjoitussuorituskyky nousee käytettyjen säikeiden lukumäärän myötä ja saavuttaa sitten tasangon noin 64 säikeessä kirjoitusten ja 128 säikeen lukemisessa. Sitten myös lukusuorituskyky nousee nopeasti säikeiden lukumäärän myötä ja pysyy sitten vakaana, kunnes IOzonen sallimien säikeiden enimmäismäärä saavutetaan, ja siksi suurten tiedostojen peräkkäinen suorituskyky on vakaa jopa 1024 samanaikaiselle asiakkaalle. Kirjoitusteho laskee noin 10 % 1024 säikeessä. Koska asiakasklusterissa on kuitenkin vähemmän ytimiä, on epävarmaa, johtuuko suorituskyvyn heikkeneminen vaihtamisesta ja vastaavista yleiskustannuksista, joita ei havaita pyörivillä tallennusvälineillä (koska NVMe-viive on hyvin pieni pyöriviin tallennusvälineisiin verrattuna), vai onko RAID 10 -tietojen synkronoinnista tulossa pullonkaula. Tämän asian selventämiseksi tarvitaan lisää asiakkaita. Lukemissa havaittiin poikkeama 64 säikeessä, joissa suorituskyky ei skaalautunut edellisissä datapisteissä havaitulla nopeudella, ja sitten seuraavassa datapisteessä siirtyy arvoon, joka on hyvin lähellä jatkuvaa suorituskykyä. Tällaisen poikkeaman syyn löytämiseksi tarvitaan lisää testausta, mutta se ei kuulu tämän blogin piiriin.
Lukujen suurin lukusuorituskyky oli pienempi kuin NVMe-laitteiden teoreettinen suorituskyky (~102 Gt/s) tai EDR-linkkien suorituskyky, vaikka oletettaisiin, että yhtä linkkiä käytettiin enimmäkseen NVMe:hen kangasliikenteen kautta (4x EDR BW ~ 96 GB/s).
Tämä ei kuitenkaan ole yllätys, koska laitteistokokoonpano ei ole tasapainossa kunkin suoritinkannan NVMe-laitteiden ja IB HCA: iden suhteen. Yksi CX6-sovitin on CPU1: n alla, kun taas CPU2: ssa on kaikki NVMe-laitteet ja toinen CX6-sovittimet. Ensimmäistä HCA:ta käyttävän tallennusliikenteen on käytettävä UPI:itä NVMe-laitteiden käyttämiseen. Lisäksi minkä tahansa käytetyn CPU1:n ytimen on käytettävä CPU2:lle määritettyjä laitteita tai muistia, joten tietojen paikallisuus kärsii ja UPI-linkkejä käytetään. Tämä voi selittää maksimaalisen suorituskyvyn heikkenemisen verrattuna NVMe-laitteiden enimmäissuorituskykyyn tai CX6 HCA:iden linjan nopeuteen. Tämän rajoituksen korjaamisen vaihtoehtona on tasapainoinen laitteistokokoonpano, mikä tarkoittaa tiheyden vähentämistä puoleen käyttämällä R740-mallia, jossa on neljä x16-paikkaa, ja käyttämällä kahta x16 PCIe -laajennuslaitetta NVMe-laitteiden jakamiseen tasaisesti kahdelle suorittimelle ja yhden CX6 HCA:n käyttämistä kunkin suorittimen alla.
Peräkkäinen IOR Performance N -asiakkaat 1 tiedostoon
Peräkkäisten N-asiakkaiden suorituskyky yhteen jaettuun tiedostoon mitattiin IOR-versiolla 3.3.0, jota OpenMPI v4.0.1 avusti vertailuarvon suorittamiseksi 16 laskentasolmussa. Suoritetut testit vaihtelivat yhdestä säikeestä 512 säikeeseen, koska ytimiä ei ollut tarpeeksi 1024 tai useammalle säikeelle. Tässä vertailutestissä käytettiin 8 MiB-lohkoa optimaalisen suorituskyvyn saavuttamiseksi. Edellisessä suorituskykytestiosassa on täydellisempi selitys sille, miksi sillä on merkitystä.
Tietojen välimuistivaikutukset minimoitiin asettamalla GPFS-sivuvarannon säädettäväksi 16 GiB: ksi, ja tiedoston kokonaiskoko oli kaksinkertainen käytettyjen asiakkaiden RAM-muistin kokonaismäärään. Toisin sanoen, koska jokaisella asiakkaalla on 128 GiB RAM-muistia, säikeiden määrän ollessa yhtä suuri tai suurempi kuin 16 säiettä, tiedostokoko oli 4096 GiB, ja sama määrä tästä kokonaismäärästä jaettiin säikeiden lukumäärällä (alla olevaa muuttujaa $Size käytettiin tämän arvon hallintaan). Tapauksissa, joissa oli alle 16 säiettä (mikä tarkoittaa, että jokainen säie oli käynnissä eri asiakkaassa), tiedostokoko oli kaksi kertaa käytetyn asiakkaan muistin määrä kerrottuna säikeiden määrällä, toisin sanoen kutakin säiettä pyydettiin käyttämään 256 GiB.
Seuraavia komentoja käytettiin vertailukohdan suorittamiseen kirjoitus- ja lukutoiminnoille, joissa $Threads oli muuttuja käytettyjen säikeiden lukumäärällä (1 - 1024 kahden potenssin lisäyksellä) ja my_hosts.$Threads on vastaava tiedosto, joka allokoi jokaisen säikeen eri solmuun käyttämällä round robinia jakamaan ne homogeenisesti 16 laskentasolmuun.
mpirun --allow-run-as-root -np $Threads --hostfile my_hosts.$Threads --mca btl_openib_allow_ib 1 --mca pml ^ucx --oversubscribe --etuliite /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 $ G
mpirun --allow-run-as-root -np $Threads --hostfile my_hosts.$Threads --mca btl_openib_allow_ib 1 --mca pml ^ucx --oversubscribe --etuliite /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 $ G

Kuva 3 N:1 Peräkkäinen suorituskyky
Tuloksista voimme havaita, että luku- ja kirjoitussuorituskyky on korkea riippumatta lukitusmekanismien implisiittisestä tarpeesta, koska kaikki säikeet käyttävät samaa tiedostoa. Suorituskyky nousee jälleen erittäin nopeasti käytettyjen säikeiden lukumäärällä ja saavuttaa sitten tasangon, joka on suhteellisen vakaa lukemiseen ja kirjoittamiseen aina tässä testissä käytettyjen säikeiden enimmäismäärään asti. Huomaa, että suurin lukusuorituskyky oli 51,6 Gt/s 512 säikeessä, mutta suorituskyvyn taso on noin 64 säikeessä. Huomaa myös, että enimmäiskirjoitusteho 34,5 Gt/s saavutettiin 16 säikeen kohdalla ja saavutettiin taso, joka on havaittavissa käytettyjen säikeiden enimmäismäärään asti.
Satunnaiset pienet lohkot IOzone-suorituskyky N-asiakkaista N-tiedostoihin
Satunnaisten N-asiakkaiden ja N-tiedostojen suorituskyky mitattiin IOzone-versiolla 3.487. Suoritetut testit vaihtelivat yhdestä säikeestä 1024 säikeeseen kahden tehon välein.
Suoritetut testit vaihtelivat yhdestä säikeestä 512 säikeeseen, koska asiakasytimiä ei ollut tarpeeksi 1024 säikeelle. Jokainen säie käytti eri tiedostoa ja säikeille määritettiin pyöreä punarinta asiakassolmuissa. Tässä vertailutestissä käytettiin 4 KiB-lohkoa pienten lohkojen liikenteen jäljittelemiseen ja jonon syvyyden käyttämiseen 16. Suurikokoisen ratkaisun ja kapasiteetin laajennuksen tuloksia verrataan.
Välimuistivaikutukset minimoitiin jälleen asettamalla GPFS-sivupoolin säädettäväksi 16 GiB:ksi, ja jotta vältettäisiin mahdolliset tietojen välimuistivaikutukset, tiedostojen kokonaiskoko oli kaksinkertainen käytettyjen asiakkaiden RAM-muistin kokonaismäärään verrattuna. Toisin sanoen, koska jokaisella asiakkaalla on 128 GiB RAM-muistia, säikeiden lukumäärälle, joka on yhtä suuri tai suurempi kuin 16 säiettä, tiedostokoko oli 4096 GiB jaettuna säikeiden lukumäärällä (alla olevaa muuttujaa $Size käytettiin tämän arvon hallintaan). Tapauksissa, joissa oli alle 16 säiettä (mikä tarkoittaa, että jokainen säie oli käynnissä eri asiakkaassa), tiedostokooksi vahvistettiin kaksinkertainen muistimäärä asiakasta kohti eli 256 GiB.
iozone -i0 -I -c -e -w -r 8M -s $ G -t $Threads -+n -+m ./nvme_threadlist <= Luo tiedostot peräkkäin
iozone -i2 -I -c -O -w -r 4k -s $ G -t $Threads -+n -+m ./nvme_threadlist <= Suorita satunnaiset lukemat ja kirjoitukset.

Kuva 4 N:stä N satunnaissuoritukseen
Tuloksista voimme havaita, että kirjoitussuorituskyky alkaa korkeasta arvosta 6K IOps ja nousee tasaisesti jopa 1024 säikeeseen, missä näyttää saavuttavan tasangon yli 5 miljoonalla IOPS: llä, jos enemmän säikeitä voitaisiin käyttää. Toisaalta lukusuorituskyky alkaa 5K IOPS: sta ja lisää suorituskykyä tasaisesti käytettyjen säikeiden lukumäärän mukaan (muista, että säikeiden määrä kaksinkertaistuu jokaiselle datapisteelle) ja saavuttaa 7.3 miljoonan IOPS: n maksimaalisen suorituskyvyn 1024 säikeellä ilman merkkejä tasangon saavuttamisesta. Useampien säikeiden käyttäminen edellyttää useampaa kuin 16 laskentasolmua, jotta vältetään resurssien nälkä ja liiallinen vaihtaminen, jotka voivat heikentää näennäistä suorituskykyä, jolloin NVMe-solmut voisivat itse asiassa ylläpitää suorituskykyä.
Metatietojen suorituskyky MDtestillä käyttäen 4 KiB-tiedostoa
Metatietojen suorituskykyä mitattiin MDtest-versiolla 3.3.0, jota OpenMPI v4.0.1 avusti vertailuarvon suorittamiseksi 16 laskentasolmussa. Suoritetut testit vaihtelivat yksittäisestä säikeestä 512 säikeeseen. Vertailuarvoa käytettiin vain tiedostoille (ei hakemistojen metatietoja), jolloin saatiin ratkaisun käsittelemien luomien, tilastojen, lukujen ja poistojen määrä, ja tuloksia verrattiin suurikokoiseen ratkaisuun.
Valinnaista suuren kysynnän metatietomoduulia käytettiin, mutta yhdessä ME4024-ryhmässä, vaikka tässä työssä testatussa suuressa kokoonpanossa oli kaksi ME4024-konetta. Metatietomoduulin käyttö johtuu siitä, että tällä hetkellä näitä NVMe-solmuja käytetään tallennuskohteina vain tiedoille. Solmuja voidaan kuitenkin käyttää tietojen ja metatietojen tallentamiseen tai jopa flash-vaihtoehtona suuren kysynnän metatietomoduulille, jos äärimmäiset metatietovaatimukset sitä edellyttävät. Näitä kokoonpanoja ei testattu osana tätä työtä.
Koska samaa suuren kysynnän metatietomoduulia on käytetty aiemmin DellEMC Ready Solution for HPC PixStor Storage -ratkaisun vertailussa, metatietojen tulokset ovat hyvin samankaltaisia verrattuna aiempiin blogituloksiin. Tästä syystä tutkimusta tyhjillä tiedostoilla ei tehty, vaan käytettiin 4 KiB-tiedostoa. Koska 4KiB-tiedostot eivät mahdu inodiin metatietotietojen kanssa, NVMe-solmuja käytetään kunkin tiedoston tietojen tallentamiseen. Siksi MDtest voi antaa karkean käsityksen pienten tiedostojen suorituskyvystä lukemisessa ja muissa metatietotoiminnoissa.
Vertailuarvon suorittamiseen käytettiin seuraavaa komentoa, jossa $Threads oli muuttuja käytettyjen säikeiden lukumäärällä (1 - 512 kahden potenssin lisäyksellä) ja my_hosts.$Threads on vastaava tiedosto , joka allokoi jokaisen säikeen eri solmuun käyttämällä round robinia levittämään ne homogeenisesti 16 laskentasolmuun. Samoin kuin Random IO -vertailuarvo, säikeiden enimmäismäärä rajoitettiin 512: een, koska ytimiä ei ole tarpeeksi 1024 säikeelle ja kontekstin vaihtaminen vaikuttaisi tuloksiin, raportoimalla luvun pienemmäksi kuin ratkaisun todellinen suorituskyky.
mpirun --allow-run-as-root -np $Threads --hostfile my_hosts.$Threads --etuliite /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
Koska suorituskykytuloksiin voi vaikuttaa IOPS:ien kokonaismäärä, tiedostojen määrä hakemistoa kohden ja säikeiden määrä, päätettiin tiedostojen kokonaismäärä pitää 2 MiB-tiedostossa (2^21 = 2097152), tiedostojen määräksi hakemistoa kohden vahvistettiin 1024 ja hakemistojen määrä vaihteli säikeiden määrän muuttuessa taulukossa 3 esitetyllä tavalla.
Taulukko 3: MDtest-hakemistojen tiedostojen jakauma
|
Säikeiden määrä |
Hakemistojen määrä säiettä kohden |
Tiedostojen kokonaismäärä |
|
1 |
2048 |
2,097,152 |
|
2 |
1024 |
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 |

Kuva 5: Metatietojen suorituskyky – 4 KiB-tiedostoa
Huomaa ensin, että valittu asteikko oli logaritminen kantaluvun 10 kanssa, jotta voidaan verrata operaatioita, joilla on eroja useiden suuruusluokkien kanssa; Muuten osa toiminnoista näyttäisi tasaiselta viivalta, joka on lähellä nollaa lineaarisella asteikolla. Logaritmikuvaaja, jonka kanta on 2, voisi olla sopivampi, koska säikeiden lukumäärää lisätään potenssilla 2, mutta kuvaaja näyttäisi hyvin samanlaiselta ja ihmisillä on taipumus käsitellä ja muistaa parempia numeroita potenssin 10 perusteella.
Järjestelmä saa erittäin hyviä tuloksia, kuten aiemmin on raportoitu, kun tilastotoiminnot saavuttavat huippuarvon 64 säikeellä lähes 6,9 miljoonalla op/s:lla ja sitten sitä pienennetään, kun suuremmat säikemäärät saavuttavat tasangon. Luontitoiminnot saavuttavat 113K op/s -maksimiarvon 512 säikeellä, joten niiden odotetaan lisääntyvän edelleen, jos asiakassolmuja (ja ytimiä) käytetään enemmän. Luku- ja poistotoiminnot saavuttivat maksiminsa 128 säikeessä, saavuttaen huippunsa lähes 705K op/s lukutoiminnoissa ja 370K op/s poistoissa, ja sitten ne saavuttavat tasankoja. Tilastotoiminnoissa on enemmän vaihtelua, mutta kun ne saavuttavat huippuarvonsa, suorituskyky ei laske alle 3,2 miljoonan tilastotoiminnon. Luo ja poista ovat vakaampia, kun ne saavuttavat tasangon, ja pysyvät yli 265K op/s poistossa ja 113K op/s luonnissa. Lopuksi lukemat saavuttavat tasangon, jonka suorituskyky on yli 265K op/s.
Johtopäätökset ja jatkosuunnitelmat
NVMe-solmut ovat tärkeä lisä HPC-tallennusratkaisuun, sillä ne tarjoavat erittäin korkean suorituskykytason, hyvän tiheyden, erittäin suuren satunnaiskäytön suorituskyvyn ja erittäin korkean peräkkäisen suorituskyvyn. Lisäksi ratkaisun kapasiteetti ja suorituskyky skaalautuvat lineaarisesti, kun NVMe-solmumoduuleja lisätään lisää. NVMe-solmujen suorituskykyä voidaan tarkastella taulukossa 4, sen odotetaan olevan vakaa, ja näitä arvoja voidaan käyttää arvioimaan suorituskykyä eri NVMe-solmuille.
Muista kuitenkin, että kukin NVMe-solmupari tuottaa puolet taulukossa 4 esitetystä määrästä.
Tämä ratkaisu tarjoaa HPC-asiakkaille erittäin luotettavan rinnakkaisen tiedostojärjestelmän, jota monet Top 500 -HPC-klusterit käyttävät. Lisäksi se tarjoaa poikkeukselliset hakuominaisuudet, edistyneen valvonnan ja hallinnan, ja valinnaisten yhdyskäytävien lisääminen mahdollistaa tiedostojen jakamisen kaikkialla läsnä olevien vakioprotokollien, kuten NFS: n, SMB: n ja muiden, kautta niin monelle asiakkaalle kuin tarvitaan.
Taulukko 4: 2 NVMe-solmuparin huippusuorituskyky ja jatkuva suorituskyky
|
|
Huippusuorituskyky |
Jatkuva suorituskyky |
||
|
Kirjoittaa |
Read |
Kirjoittaa |
Read |
|
|
Suuri peräkkäinen N-asiakas N-tiedostoon |
40,9 Gt/s |
84,5 Gt/s |
40 Gt/s |
81 Gt/s |
|
Suuret peräkkäiset N-asiakkaat yhteen jaettuun tiedostoon |
34,5 Gt/s |
51,6 Gt/s |
31,5 Gt/s |
50 Gt/s |
|
Satunnainen pieni lohko N asiakasta N tiedostoon |
5,06 MIOPS |
7,31 MIOPS |
5 MIOPS |
7.3 MIOPS |
|
Metatiedot 4KiB-tiedostojen luominen |
113K IOps |
113K IOps |
||
|
Metadata Stat 4KiB-tiedostot |
6,88 miljoonan IOps |
3,2 miljoonan IOps |
||
|
Metatiedot Lue 4KiB-tiedostoja |
705K IOps |
500 K IOps |
||
|
Metatiedot Poista 4KiB-tiedostot |
370K IOps |
265 tuhatta IOps:ää |
||
Koska NVMe-solmuja käytettiin vain datan käsittelyyn, mahdollinen tuleva työ voi sisältää niiden käytön tietojen ja metatietojen tallentamiseen, ja niissä voi olla itsenäinen flash-pohjainen taso, jossa on parempi metatietojen suorituskyky, koska NVMe-laitteet ovat suurempia ja viive pienempi kuin RAID-ohjainten takana olevat SAS3 SSD -asemat. Jos asiakkaalla on erittäin suuret metatietovaatimukset ja hän tarvitsee ratkaisun, joka on tiheämpi kuin mitä suuren kysynnän metatietomoduuli pystyy tarjoamaan, joitakin tai kaikkia hajautettuja RAID 10 -laitteita voidaan käyttää metatietoina samalla tavalla kuin ME4024-laitteiden RAID 1 -laitteita nykyään.
Toinen pian julkaistava blogi luonnehtii PixStor Gateway -solmuja, jotka mahdollistavat PixStor-ratkaisun yhdistämisen muihin verkkoihin NFS- tai SMB-protokollien avulla ja voivat skaalata suorituskykyä. Lisäksi ratkaisu päivitetään HDR100: een hyvin pian, ja toisen blogin odotetaan puhuvan tästä työstä.