http://wm-monitoring.ru/ ')) {alert('Спасибо за то что установили нашу кнопку! =)');} else {alert('Очень жаль! =(');}"> http://wm-monitoring.ru/

Basiselementen van het Flash Virtualization Platform (FVP), deel 2. Uw eigen platform of bestandssysteem gebruiken

Een van de onderwerpen die ik met Satyam en Murali Vilayannur heb besproken, was het bestandssysteem dat wordt gebruikt om gegevens op flash-apparaten op te slaan. De volgende opmerkelijke feiten moeten in gedachten worden gehouden: Satyam creëerde VMFS3, Murali was de toonaangevende ontwikkelaar van VMFS5. Vanuit dit oogpunt lijkt het gebruik van VMFS voor de hand liggend. De grote verrassing voor mij was echter het feit dat we voor flash-apparaten geen VMFS gebruiken, een nog grotere verrassing was dat we het bestandssysteem helemaal niet gebruiken.

Waarom geen VMFS?
Bestandssystemen bieden functies die niet vereist zijn en soms zelfs in strijd zijn met de vereisten van het platform dat actieve I / O op flash-apparaten verwerkt. Een van de grootste problemen bij het gebruik van een bestandssysteem vergelijkbaar met VMFS op een flash-apparaat is dat het is geoptimaliseerd voor SAN-opslagsystemen en hun modellen voor gegevensbeheer; Satyam schreef hierover een artikel voor ACM tijdens het werken in VMware. Helaas maakt dit het bestandssysteem een ​​ongepast hulpmiddel voor FVP-taken.

Directe adresbestandssystemen overbelasten flash-apparaten, waardoor hun levensduur wordt verkort, willekeurige I / O-bewerkingen niet optimaal worden verwerkt, hun (vaak zeer kwetsbare) garbage collection-algoritmen op sterkte worden getest en hun objecten (bestanden en mappen) minder geschikt zijn voor niveau van virtuele machines en kwaliteit van servicebeheer, wat uiterst belangrijk is voor FVP-taken. In het volgende gedeelte wordt het probleem van het beheer van gegevens op flash-apparaten gedetailleerd, maar voor nu een korte conclusie: als uw flash-apparaat duur voor u is, plaats er dan geen direct adresserend bestandssysteem op.

Bestandssystemen bieden ook mogelijkheden die de behoeften van FVP aanzienlijk overtreffen. Bijvoorbeeld schijfvergrendelingen. VMFS heeft een geavanceerde gedistribueerde vergrendelingsmanager die de toegang van verschillende ESXi-hosts tot schijven beheert. FVP beheert de lokale schijven van de host en vereist geen sloten op andere hosts, waardoor de gedistribueerde vergrendelingsmanager volledig overbodig wordt. Hetzelfde kan gezegd worden over POSIX-compatibiliteit en gedistribueerde transacties. Enzovoort.

Flitsbediening op laag niveau
Hier is een voorbeeld van hoe schrijven naar flash-apparaten fundamenteel verschilt van opnames op harde schijven. Flash kan bestaande gegevens niet overschrijven. Gegevens in het flashgeheugen kunnen alleen op een lege pagina worden geschreven. Een kenmerk van het flashgeheugen is dat het opnemen per pagina kan worden uitgevoerd en dat het wissen alleen in blokken kan worden gedaan. Wat is een pagina en wat is een blok? Flash slaat gegevens op in cellen; cellen worden gecombineerd tot pagina's (4 KB); pagina's zijn gegroepeerd in blokken. De meeste fabrikanten combineren 128 pagina's in één blok. Als u de pagina wilt wissen, moet u het hele blok wissen. Alle benodigde gegevens van andere pagina's moeten ergens anders worden opgeslagen. Het is algemeen bekend dat flash-apparaten een beperkt aantal schrijf- en wiscycli hebben.

Bijgevolg kan een willekeurig I / O-schrijven een grotere impact hebben dan u dacht. Het probleem is dat de meeste bestandssystemen in de jaren 80 en 90 zijn ontwikkeld en sindsdien niet zijn gevorderd. Bestandssystemen houden geen rekening met de verslechtering van de prestaties die ze veroorzaken voor flash-apparaten met bewerkingen op laag niveau die zijn ontworpen voor harde schijven; De meeste fabrikanten van flitsapparaten implementeren verschillende mechanismen om rekening te houden met progressieve achteruitgang van de prestaties. Met behulp van verschillende schema's beschouwen we deze mechanismen en ontdekken we waarom fragmentatie zo'n effect heeft op flash-apparaten.

Draag management
Let op, voor de eenvoud heb ik besloten om 9 pagina's in één blok te tonen in plaats van 128 pagina's per blok.

Laten we beginnen met het slijtagebeheerproces. In dit voorbeeld heeft de applicatie de gegevens al gemaakt en vastgelegd op pagina's A, B en C in blok 1 (stap 1). Nieuwe gegevens arriveren (stap 2), die naar pagina's D, E en F worden geschreven. De toepassing werkt de vorige gegevens (AC) bij en in plaats van de vorige pagina's te gebruiken, blijft het flash-apparaat de nieuwe pagina's gebruiken. Deze nieuwe gegevens hebben het label A-1, B-1 en C-1. Verspreiding van records zo gelijkmatig mogelijk wordt "slijtagebeheer" genoemd. Oude pagina's worden nu gemarkeerd als verlopen.

Afvalinzameling en meervoudige invoer
In dit voorbeeld is blok A vol. Wat gebeurt er als de beschikbare ruimte voor de gebruiker leeg is en er nieuwe gegevens binnenkomen?

Flash kopieert huidige gegevens naar lege cellen. De feitelijke gegevens in het blok worden gelezen en naar een ander blok geschreven. Achterstallige gegevens blijven op de pagina's staan ​​en worden samen met de rest van de blokpagina's gewist. Dit proces wordt "afvalinzameling" genoemd.

Vuilnisophaling is prima, maar de meervoudige invoer die optreedt tijdens de werking ervan veroorzaakt aanzienlijke schade aan flash-apparaten. Om 3 pagina's op te nemen, moet het flash-apparaat 6 pagina's lezen en de 6 pagina's naar een andere plaats schrijven voordat het nieuwe gegevens kan schrijven. En vergeet de wiscyclus niet. Stel dat een scenario waarin de schijf vol is, waar zullen we de gegevens (tijdelijk) verplaatsen voordat we nieuwe gegevens opnemen? In mijn diagram heb ik blok B toegevoegd voor deze optie. Om dit in een echte situatie te doen (bij gebruik van het bestandssysteem), moet u overtollige ruimte toewijzen gereserveerd door de controllerflits.

Om dit in een echte situatie te doen (bij gebruik van het bestandssysteem), moet u overtollige ruimte toewijzen gereserveerd door de controllerflits

Overmatige ruimte
Flitscapaciteit kan worden gereserveerd voor processen die worden beheerd door een flash-controller. Dit kan zowel door de fabrikant van het flashapparaat als door de gebruiker worden gedaan. Als u bijvoorbeeld een 160 GB flash PCIe-versneller koopt, krijgt u in feite een 192 GB-kaart. 160 GB is beschikbaar voor de gebruiker en 32 GB is aanvullend gereserveerd voor flash-level controller-level operaties, zoals garbage collection, foutcorrectie en controller firmware. Wanneer u een niet-industriële SSD-schijf koopt, krijgt u meestal een beetje gereserveerde overtollige ruimte. Wanneer u dit flash-apparaat in een willekeurig bestandssysteem formatteert, moet u op de hoogte zijn van deze functies en mogelijk extra ruimte reserveren buiten de beschikbare capaciteit. Er zijn momenteel geen gestandaardiseerde schaalaanbevelingen, dus u moet keuzes maken op basis van uw eigen ervaring. In het ergste geval bevindt u zich met een gefragmenteerde schijf en moet de SSD voortdurend gegevens overdragen om nieuwe te schrijven. Stel je voor dat de kinderen tag spelen, alleen het bewegingspatroon is iets ingewikkelder.

Herzien van gegevensbeheer op flash-apparaten
PernixData-ingenieurs hebben een nieuw formaat ontwikkeld voor het beheer van gegevens op flash-apparaten voor FVP. Details zullen worden onthuld in de volgende artikelen, en nu een paar fundamentele punten.

Geoptimaliseerd voor flits
Het formaat is ontworpen om tijdelijke I / O-gegevens op te slaan met de minimaal mogelijke set metagegevens en te werken met een flash-apparaat met de maximaal beschikbare prestaties ervoor. Het converteert willekeurige invoer in opeenvolgende invoer om te profiteren van hogere flitsprestaties in opeenvolgende schrijfmodus. Dit vermindert het aantal overbodige gegevensoverschrijvingen en wiscycli. En het algoritme bevat niet de erfelijke beperkingen van bestandssystemen, zoals grote blokgroottes, mappen, bestanden, lange transacties, lockmanagers, enz.

Dynamisch gedeelde capaciteit tussen virtuele machines
dank diepe integratie Met VMkernel kan FVP datablokken volgen en bepalen of hun virtuele machine aan het lezen of schrijven is. Onafhankelijk van dergelijke operaties kan het platform lees- en schrijfbuffers schalen in de ruimte die is toegewezen voor de virtuele machine. FVP kan een willekeurige set virtuele machinegegevens uit de cache opslaan of cachen. Het gegevensevacuatiebeleid op het traditionele bestandssysteem voor een flash-apparaat is daarentegen suboptimaal en resulteert in meerdere herschrijvingen, omdat het bestandssysteem kan alleen gegevens naar het einde van het bestand schrijven of ook blokken van het einde verwijderen.

Het betekent ook dat u geen statische cacheruimte-configuratie hoeft toe te wijzen voor elke virtuele machine, zoals het zou zijn als u een bestandssysteem met directe adressering gebruikt. Het was een geweldige beslissing voor ons; gebruikerservaring van het product moet zo intuïtief mogelijk zijn.

Ik citeer onze productmanager Bala: "De elegantie van het product is naar mijn mening dat het basistaken uitvoert en GEEN nieuwe of ongebruikelijke acties van de gebruiker vereist."

In termen van dagelijks werk is dit uitstekend: u hoeft de cache niet voor elke virtuele machine vooraf te schalen. Dit betekent dat u het toekomstige gebruik van flash niet hoeft te kennen en te voorspellen - FVP zal alles voor u doen. Het ontbreken van een toewijzing van harde bronnen betekent het gebrek aan onderbenutting van flash door ongeladen virtuele machines en het verschijnen van redundante blokopruimingscycli voor actieve virtuele machines met onvoldoende flash-cachegrootte. Dit minimaliseert het probleem van meerdere opnames en zorgt voor maximale prestaties en betrouwbaarheid van flash-apparaten.

Oorspronkelijk artikel .

Sinds 2016 is FVP uit de verkoop genomen.

Карта