iPon Hírek

Publikus az NVMe protokoll 1.3-as specifikációja

Dátum | 2017. 05. 25.
Szerző | J.o.k.e.r
Csoport | ADATTÁROLÁS

Az NVMe protokoll, amely a PCIe alapú SSD meghajtók hatékony kezeléséről gondoskodik, elég régóta megrekedt az 1.2-es verziónál, az ugyanis 2014 novemberében készült el, azóta pedig csak kisebb, főként üzleti felhasználókat érintő újításokkal gyarapodott a repertoárja. A napokban végre sor került az NVM Express protokoll legújabb, 1.3-as szabványának bemutatására is, amely mind a kliens szintű, mind pedig a szerverszintű adattárolók számára tartogat néhány nagyon fontos és hasznos újítást.
Érdekesség, hogy az új NVMe szabvány egyes elemeit az eMMC interfésztől és az ATA protokolltól kölcsönözte, a végeredmény azonban meglehetősen impozáns lett. Mivel nagyon sok kisebb-nagyobb újítás szerepel a friss szabvány leírásában, így az alábbiakban nagyobbacska felsorolás formájában teszünk említést mindazokról, amelyek a legfontosabbak és legérdekesebbek. Boot Partitions Ez egy új funkció, ami lehetővé teszi, hogy a rendszerindító partíciót egyszerűbben, az NVMe protokollon keresztül lehessen elérni, méghozzá úgy, hogy kevésbé vagy egyáltalán ne legyen szükség más adattároló eszközök, mint például SPI Flash használatára. A boot firmware kezelését ennek eredményeként egy új, Boot Partition nevű szolgáltatást veheti át, ami két boot partícióval gondoskodik a biztonságos firmware frissítésről. A frissítés minden esetben a másodlagos partíciót célozza, majd mielőtt az válna aktívvá, a rendszer ellenőrzi az adatok helyességét. Ez a funkció elsősorban az NVMe BGA SSD meghajtókat használó mobileszközök számára lehet hasznos, vagyis táblákon és okostelefonokon juthat szerephez, felhasználók által frissíthető meghajtók esetében nem valószínű, hogy használni fogják. A boot partíciókat egyébként az NVMe 1.2-es kiadásából ismerős Replay Protected Memory Block funkción keresztül védeni is lehet a rosszindulatú támadásoktól. Sanitize A SATA és SAS meghajtókhoz hasonlóan az NVMe alapú SSD-k is megkapják a Secure Erase alternatívájaként ismert Sanitize parancsot. Ez gyakorlatilag biztonságos adattörlésre ad módot, méghozzá úgy, hogy az adatok nem csak a NAND Flash cellákból, de az összes gyorsítótárból és a Controller Memory Bufferből is eltávolításra kerülnek – már ha utóbbi éppen rendelkezésre áll. Ezen a parancson keresztül az adott rendszer egyébként azt is eldöntheti, hogyan törlődjenek az adatok: blokktörléssel, felülírással, vagy a titkosító kulcs megsemmisítésével. A jelenlegi NVMe meghajtóknál a Format NVM parancson keresztül lehet biztonságos törlést kezdeményezni, ez a parancs azonban elsősorban a blokkformátum váltását segíti, legalábbis az az alapvető feladata, de opcionálisan biztonságos törlésre is bevethető. Fontos különbség azonban, hogy míg a Format NVM parancs működését névtérre is lehet korlátozni, addig a Sanitize parancs csak és kizárólag globális érvényű lehet, vagyis a teljes meghajtó tartalmát törli – kivéve a boot partíciókat és a védett memóriablokkot, amennyiben ezeket implementálták. Device Self Tests Az ATA meghajtóknál használt S.M.A.R.T. önteszthez hasonlóan most már az NVMe protokoll is bevethet egy opcionális interfészt annak érdekében, hogy az adott meghajtón öntesztet lehessen végezni. A teszt pontos paramétereit mindig az adott gyártó határozza meg, az viszont előírás, hogy nem csak gyors, de teljes önteszt futtatására is lehetőséget kell biztosítani. A gyors önteszt nem lehet hosszabb 2 percnél, a teljes önteszt esetében pedig folyamatjelzővel kell ábrázolni, mennyi ideig tart még a tesztelés. Amíg a tesztek futnak, a rendszernek használhatónak kell maradnia, a tesztek során végzett írási és olvasási feladatok pedig nem veszélyeztethetik a felhasználói adatokat. Virtualizáció Fontos előrelépés, hogy míg az NVMe szabvány előző változataiban nem definiálták, hogyan kell megvalósítani az SR-IOV alapú virtualizációs támogatást, addig az 1.3-as szabványtól kezdve már szabványos virtualizációs szolgáltatáscsomagot határoznak meg, amelyben szerepel, hogyan kell konfigurálni és használni az SR-IOV támogatáshoz kapcsolódó funkciókat. Az alapot az adja, hogy az új SSD meghajtók rendelkezni fognak néhány rugalmas erőforrással, amelyek a meghajtó elsődleges vagy másodlagos vezérlőihez kapcsolódhatnak. Ez azt jelenti, hogy lesz egy elsődleges fizikai SR-IOV funkció, amely mellett egy vagy több másodlagos virtuális SR-IOV funkció is rendelkezésre áll, így ezek szabadon az egyes virtuális gépekhez rendelhetőek.
Forrás: AnandTech
Ezzel az újítással egyetlen NVMe meghajtó végre több névteret használhat a rendelkezésre álló tárhely partícionálásához, az egyes partíciók pedig különböző virtuális vezérlőkhöz rendelhetőek, amelyek különböző virtuális konfigurációkat szolgálhatnak ki. A névterek esetében megvan az az opció, hogy exkluzívan az egyes virtuális gépekhez rendelhetőek, de akár meg is oszthatóak a virtuális gépek között, ha szükséges. Az említett funkciók használatához ráadásul nincs szükség a hypervisor saját meghajtó-menedzselő rétegének implementálására, vagy az adott vendég operációs rendszer NVMe drivereinek módosítására. Namespace Optimal IO Boundary Az NVMe alapú SSD meghajtóknál többféle szektorméret támogatása is biztosított a Format NVM parancson keresztül, igaz, az SSD-k többsége rendszerint 512 bájtos logikai blokkokat használ, de a 4 KB-os logikai blokkokat is támogatják, amelyek sokszor jobb teljesítményt is nyújtanak. Ezek a blokkméretek persze nincsenek összhangban az adott NAND Flash alapú SSD valós lap- vagy blokkméretével, pedig az összhang esetenként a teljesítmény növekedését is biztosíthatná. A szektorméret 16 KB-ra vagy nagyobb méretre való átváltásával például igazodhatna az adott rendszer a modern 3D NAND Flash lapkák valós lapméretéhez, de ez a jelek szerint kevésbé vonzó módszer, viszont az NVMe 1.3 jóvoltából van másik út is. A Namespace Optimal IO Boundary funkció keretén belül az adott operációs rendszer hozzáigazíthatja az I/O műveleteket a valós lapmérethez, ebben pedig segítséget nyújt a szóban forgó szolgáltatáshoz tartozó mező, az ugyanis tartalmaz egy, az adott lapmérethez tartozó szorzót, ami segít a teljesítmény optimalizálásában. Ez a szorzó a szektorméretet veszi alapul, ami 512B vagy 4 KB lehet. Directives és Streams funkció Az NVMe Directives támogatás egy hatalmas jelentőségű újítás, ami egy általános keretrendszeren keresztül lehetőséget biztosít a vezérlő és az adott rendszer számára, hogy extra meta-adatokat osszanak meg egymással, amelyek a közönséges NVMe parancsok fejlécébe illeszthetőek. Az első ilyen direktíva a Streams, ami csak írási parancsokhoz használható, jelentősége pedig óriási, hiszen segítségével az adott operációs rendszer megjelölheti az összetartozó műveleteket, például azokat, amelyek ugyanahhoz a folyamathoz vagy virtuális géphez köthetőek.
Forrás: AnandTech
Ez azért fontos, mert a vezérlő ennek megfelelően tárolhatja el az adatokat fizikai szinten. Amennyiben egyszerre sok folyamat adatait kell kezelni, akkor ez az opció nagy segítség, hiszen a teljesítmény kiszámíthatóbb, stabilabb lehet, ugyanis az összetartozó adatrészletek hatékonyabban tárolhatóak el, de az olvasási gyorsítótárazás is hatékonyabban működhet, ha egy helyen vannak az egy folyamathoz tartozó adatok. Non-Operational Power State Permissive Mode Az NVMe SSD meghajtók eleve sokkal rugalmasabb energia-menedzsmenttel rendelkeznek, mint SATA alapú társaik, hiszen sok üzemi és üresjárati állapotot tudnak megkülönböztetni, ami hatékonyabb energiafelhasználást és hatékonyabb működést eredményez. Ezek az állapot-profilok tartalmazzák az aktuális fogyasztás értékét, az állapotba való belépéshez, valamint az onnan történő kilépéshez szükséges késleltetési időt, valamint az egyes üzemi állapotok relatív teljesítményéről is adatot szolgáltatnak az operációs rendszer felé. Az APST támogatással rendelkező meghajtóknak cserébe az operációs rendszer is küld információt azzal kapcsolatban, az aktuális szabályok szerint mennyi ideig kell várniuk, míg a következő alsóbb teljesítményállapotba léphetnek. Az NVMe 1.3-as változata két újítást hoz ezen a téren. Az egyik azt szabályozza, hogy egy üresjáratban ketyegő meghajtó túllépheti-e az üresjárati fogyasztáskeretet annak érdekében, hogy háttérfeladatokat végezhessen, például elindítsa a hulladékgyűjtő funkciót. Az akkumulátoros rendszereknél, amelyek az üzemidő kitolásában érdekeltek, jellemzően a Non-Operational Power State Permissive Mode letiltását igénylik majd, míg a kevésbé szigorú energia-menedzsmentet alkalmazó eszközöknél engedélyezett lesz ez a mód, így a hulladékgyűjtő algoritmus zavartalanul dolgozhat. A második újítást a következő bekezdésben tárgyaljuk. Host Controller Thermal Management Ez a második fontos energiagazdálkodás-menedzsmenttel kapcsolatos újítás, ami kicsit átláthatóbbá teszi a túlmelegedést gátló throttling funkció működését. A throttling keretén belül a túlmelegedő vezérlő órajel-csökkentéssel próbálja hűteni magát, ami természetesen a teljesítményre is negatív hatást gyakorol. Eddig a throttling funkció működése teljesen modell-specifikus volt, működéséről pedig semmit sem tudott az adott operációs rendszer. Az újítás jóvoltából azonban most már az adott operációs rendszernek is lesz beleszólása a throttling működésébe, hiszen az új szabvány keretén belül kétféle throttling küszöbértéket határozhat meg. Az egyik küszöbérték elérésekor a throttling funkció mérsékelten aktiválódik, míg a második küszöbértéknél bekapcsol az agresszív throttling, hogy a meghajtó jobban hűlhessen. Persze az továbbra is az SSD gyártóján múlik majd, hogy milyen szenzoradatok alapján, hogyan számolják az úgynevezett Composite Temperature értéket, amire a küszöbértékek vonatkoznak, valamint a throttling hiszterézis görbéjét is szabadon tervezhetik meg. A gyártók továbbra is megadhatnak saját hőmérséklet-limitet annak érdekében, hogy a komponensek sérülése elkerülhető legyen, de a kompakt eszközöknél, vagyis az okostelefonoknál, a tábláknál és az ultrabookoknál már több mozgástér lesz ahhoz, hogy könnyebben elkerüljék az SSD melegedéséből fakadó kellemetlenségeket, például azt, hogy az SSD miatt a többi komponensnek is sokkal magasabb üzemi hőmérsékleten kelljen dolgoznia.
Új hozzászólás írásához előbb jelentkezz be!