A Flash Virtualization Platform (FVP) alapelemei, 2. rész. Saját platform vagy fájlrendszer használata

A Satyammal és a Murali Vilayannur-szal megbeszélt témák közül az egyik volt a fájlrendszer, amely adatokat tárol a flash eszközökön. A következő figyelemre méltó tényeket szem előtt kell tartani: a Satyam létrehozta a VMFS3-t, a Murali volt a VMFS5 vezető fejlesztője. Ebből a szempontból nyilvánvalónak tűnik a VMFS használata. A nagy meglepetés számomra azonban az volt, hogy a flash eszközök esetében nem használunk VMFS-t, még nagyobb meglepetés volt, hogy egyáltalán nem használjuk a fájlrendszert.

Miért nem VMFS?
A fájlrendszerek olyan funkciókat biztosítanak, amelyek nem szükségesek, és néha még ellentétesek az olyan platform követelményeivel, amelyek az aktív I / O-t flash eszközökön dolgozzák fel. A VMFS-hez hasonló fájlrendszer használatának egyik legnagyobb problémája az, hogy a SAN-tárolórendszerekre és azok adatkezelési modelljeire optimalizált; A Satyam egy cikket írt erről az ACM-nek, miközben a VMware-ben dolgozott. Sajnos ez a fájlrendszert az FVP-feladatokhoz nem megfelelő eszközvé teszi.

A közvetlen címfájlrendszerek túlterheléses flash-eszközei, amelyek csökkenti az élettartamukat, nem optimálisan feldolgozzák az önkényes I / O műveleteket, tesztelik (gyakran nagyon törékeny) szemétgyűjtő algoritmusaikat az erőre, és objektumaik (fájlok és könyvtárak) kevésbé alkalmasak virtuális gépszint és a szolgáltatásmenedzsment minősége, ami rendkívül fontos az FVP feladataihoz. A következő részben részletesen ismertetjük a flash eszközökön tárolt adatok kezelésének problémáját, de most egy rövid következtetés: ha a flash eszköz drága az Ön számára, ne tegyen rá közvetlen címzési fájlrendszert.

A fájlrendszerek olyan képességeket is biztosítanak, amelyek jelentősen meghaladják az FVP igényeit. Például a lemezzárak. A VMFS egy fejlett, elosztott zárkezelővel rendelkezik, amely szabályozza a különböző ESXi állomások hozzáférését a lemezekhez. Az FVP kezeli a gazda helyi lemezeit, és nem igényel zárolásokat más gépen, ezért az elosztott zárkezelő teljesen felesleges lesz. Ugyanez mondható el a POSIX kompatibilitásról és az elosztott tranzakciókról. És így tovább.

Alacsony szintű vaku műveletek
Íme egy példa arra, hogy a flash eszközökre való írás alapvetően különbözik a merevlemezeken tárolt felvételektől. A Flash nem tudja felülírni a meglévő adatokat. A flash memóriában tárolt adatok csak üres oldalon írhatók. A flash memória egyik jellemzője, hogy a felvétel oldalakon is elvégezhető, és a törlés csak blokkokban lehetséges. Mi az oldal és mi a blokk? A Flash adatokat tárol a cellákban; a sejteket oldalakra egyesítik (4 KB); az oldalak blokkokra vannak csoportosítva. A legtöbb gyártó 128 lapot egyesít egy blokkba. Ha törölni szeretné az oldalt, akkor törölnie kell az egész blokkot. A többi oldalról minden szükséges adatot máshol kell menteni. Általánosan ismert, hogy a flash eszközök korlátozott számú írási és törlési ciklussal rendelkeznek.

Következésképpen egy véletlenszerű I / O írás nagyobb hatással lehet, mint gondolta. A probléma az, hogy a legtöbb fájlrendszert a 80-as és 90-es években fejlesztették ki, és azóta nem fejlődtek ki. A fájlrendszerek nem veszik figyelembe a merevlemezekre tervezett alacsony szintű műveleteket használó flash-eszközök teljesítményének romlását; A legtöbb flash eszközgyártó különböző mechanizmusokat alkalmaz a progresszív teljesítményromlás érdekében. Számos rendszer segítségével ezeket a mechanizmusokat tekintjük meg, és megtudjuk, hogy miért van ilyen töredezettség a flash eszközökön.

Kopáskezelés
Megjegyezzük, hogy az egyszerűség kedvéért úgy döntöttem, hogy egy laponként 9 oldalt jelenít meg 128 blokk helyett.

Kezdjük a kopáskezelési eljárással. Ebben a példában az alkalmazás már létrehozta az adatokat, és rögzítette azt az 1. blokkban az A, B és C oldalakon (1. lépés). Új adatok érkeznek (2. lépés), amelyet a D, E és F oldalakra írnak. Az alkalmazás frissíti az előző adatokat (AC), és az előző oldalak használata helyett a flash eszköz továbbra is használja az új oldalakat. Ez az új adat A-1, B-1 és C-1. A feljegyzések lehető legegyenletesebb elosztását „kopáskezelésnek” nevezik. A régi oldalak már lejártnak vannak jelölve.

Szemétgyűjtés és többszörös belépés
Ebben a példában az A blokk tele van, mi történik, ha a felhasználó számára rendelkezésre álló hely a felvételhez elfogyott, és új adatok érkeznek?

A Flash az aktuális adatokat az üres cellákba másolja. A blokk tényleges adatait egy másik blokkba írják és írják. A késedelmes adatok az oldalakon maradnak, és a többi blokkoldallal együtt törlődnek. Ezt a folyamatot „szemétgyűjtésnek” nevezik.

A szemétgyűjtés rendben van, de a működés közben fellépő többszörös belépés jelentős károkat okoz a flash eszközöknek. 3 oldal felvételéhez a vakuegységnek 6 oldalt kell olvasnia és a 6 oldalt egy másik helyre írnia, mielőtt új adatokat írhat. És ne felejtsük el a törlési ciklust. Tegyük fel, hogy egy olyan forgatókönyv, amelyben a lemez megtelt, hol (átmenetileg) áthelyezzük az adatokat az új adatok rögzítése előtt? Diagramomban ehhez az opcióhoz hozzáadtam a B blokkot. Ahhoz, hogy ezt valós helyzetben lehessen végezni (a fájlrendszer használatakor), meg kell osztania a vezérlő által fenntartott felesleges helyet.

Ahhoz, hogy ezt valós helyzetben lehessen végezni (a fájlrendszer használatakor), meg kell osztania a vezérlő által fenntartott felesleges helyet

Túl sok hely
A vaku kapacitása a flash vezérlő által kezelt folyamatok számára fenntartható. Ezt mind a flash eszköz gyártója, mind a felhasználó végezheti el. Például, ha 160 GB-os flash PCIe gyorsítót vásárol, valójában 192 GB-os kártyát kap. A felhasználó számára 160 GB rendelkezésre áll, és 32 GB a vaku szintű vezérlőszintű műveletekhez, például szemétgyűjtéshez, hibajavításhoz és vezérlő firmware-hez. Ha nem ipari SSD-meghajtót vásárol, általában egy kicsit fenntartott többletterületet kap. Ha ezt a flash eszközt bármilyen fájlrendszerben formázza, tisztában kell lennie ezen funkciókkal, és esetleg további helyet kell fenntartania a rendelkezésre álló kapacitáson kívül. Jelenleg nincsenek szabványosított méretezési ajánlások, így a saját tapasztalatai alapján kell döntéseket hozni. A legrosszabb esetben egy töredezett lemezzel találja magát, és az SSD-nek folyamatosan kell adatokat továbbítania, hogy újakat írjon. Képzeld el, hogy a gyerekek játszanak a címkén, csak a mozgásmintázat egy kicsit bonyolultabb.

Adatkezelés átgondolása flash eszközökön
A PernixData mérnökei kifejlesztettek egy új formátumot az FVP flash-eszközei adatainak kezelésére. A részleteket az alábbi cikkekben és most néhány alapvető pontban ismertetjük.

Optimalizált a vakuhoz
A formátum úgy van kialakítva, hogy ideiglenes I / O adatokat tároljon a lehető legkisebb metaadatokkal, és olyan flash eszközzel dolgozzon, amelyhez a maximálisan elérhető teljesítmény áll rendelkezésre. A véletlenszerű bejegyzéseket egymást követőre konvertálja, hogy kihasználja a magasabb flash teljesítményt egymást követő írási módban. Ez csökkenti a redundáns adatok felülírását és törlését. És az algoritmus nem tartalmazza a fájlrendszerek öröklött korlátait, például a nagy blokkméreteket, könyvtárakat, fájlokat, hosszú tranzakciókat, zárkezelőket stb.

Dinamikusan megosztott kapacitás a virtuális gépek között
köszönöm mély integráció A VMkernel segítségével az FVP nyomon követheti az adatblokkokat és meghatározhatja, hogy a virtuális gép olvasás vagy írás. Függetlenül az ilyen műveletek nyomon követéséről, a platform képes a virtuális géphez rendelt térben olvasási és írási puffereket méretezni. Az FVP gyorsítótárat vagy egy tetszőleges virtuális gépadat-készletet törölhet a gyorsítótárból. Ezzel ellentétben, a flash eszköz hagyományos fájlrendszerére vonatkozó adat-kiürítési politika nem optimális, és több újraírást eredményez, mivel a fájlrendszer csak a fájl végére írhat adatokat, vagy a blokkokat is törölheti a végén.

Ez azt is jelenti, hogy nem szükséges statikus gyorsítótárterület-konfigurációt rendelni minden virtuális géphez, mintha a közvetlen címzéssel rendelkező fájlrendszert használná. Nagy döntés volt számunkra; a termék felhasználói élményének minél intuitívabbnak kell lennie.

Bala termékmenedzserünket idézem: "A termék eleganciája szerintem alapvető feladatokat lát el, amelyek nem igényelnek új vagy szokatlan műveleteket a felhasználótól."

A mindennapi munka szempontjából ez kiváló: nem szükséges minden virtuális gép gyorsítótárának előméretezése. Ez azt jelenti, hogy nem kell tudnia és előre jeleznie a flash használatát - az FVP mindent megtesz. A kemény erőforrás-allokáció hiánya azt jelenti, hogy a ki nem töltött virtuális gépek nem használják ki a vakut, és a redundáns blokktisztítási ciklusok nem megfelelő flash gyorsítótár mérettel rendelkeznek. Ez minimalizálja a több felvétel problémáját, és biztosítja a flash eszközök maximális teljesítményét és megbízhatóságát.

Eredeti cikk .

2016 óta az FVP visszavonult az eladásból.

Miért nem VMFS?
Mi az oldal és mi a blokk?
Tegyük fel, hogy egy olyan forgatókönyv, amelyben a lemez megtelt, hol (átmenetileg) áthelyezzük az adatokat az új adatok rögzítése előtt?