Minne har alltid varit den typ av hårdvara som levererat på löftet om enorma hastigheter. Det finns några nackdelar: det är dyrt, det är begränsat i kapacitet och det är inte beständigt (för att behålla data måste minnet slås på, vilket är ytterligare problematiskt eftersom minnet behöver uppdateras regelbundet). Intel och Micron tillkännagav 3DXPoint-teknik för ungefär tre år sedan som skulle vara det första steget mot beständigt minne. Även om denna teknik inte var lika snabb som minne, var den mycket snabbare än flashlagring och mycket mer kostnadseffektiv. MemVerge såg potentialen för ihållande minne och lanserades för att realisera denna potential.
Minne har alltid varit den typ av hårdvara som levererat på löftet om enorma hastigheter. Det finns några nackdelar: det är dyrt, det är begränsat i kapacitet och det är inte beständigt (för att behålla data måste minnet slås på, vilket är ytterligare problematiskt eftersom minnet behöver uppdateras regelbundet). Intel och Micron tillkännagav 3DXPoint-teknik för ungefär tre år sedan som skulle vara det första steget mot beständigt minne. Även om denna teknik inte var lika snabb som minne, var den mycket snabbare än flashlagring och mycket mer kostnadseffektiv. MemVerge såg potentialen för ihållande minne och lanserades för att realisera denna potential.
De första 3D XPoint-enheterna vi såg var mer inriktade på lagring. Allt eftersom tiden gick utnyttjade Intel 3D XPoint persistent memory (PMem) för att skapa en snabbare SSD. Senare tillkännagav Intel en beständig minnesmodul som satt i DIMM-platsen och fungerade som en expansion till DRAM. Medan vi tidigare såg minne för snabba behov och lagring för stora behov, började PMem att sudda ut gränsen. MemVerge försöker blanda det bästa av två världar genom att möjliggöra DRAM-prestanda med stor kapacitet och uthållighet.
MemVerge har undersökt landskapet av beständigt minne och utvecklat mjukvara för att låta PMem utnyttja sin potential kontra att utnyttja den som en cache, hastighetsnivå eller minnesexpanderare. Företaget använder vad det kallar Big Memory computing för att omvandla miljöer med endast DRAM till lägre kostnader och ännu viktigare, minnesmiljöer med högre densitet som utnyttjar både DRAM och PMem. Den gör detta genom att virtualisera de två till en pool av mjukvarudefinierat minne som också levererar mjukvarudefinierade tjänster. Utöver ovanstående erbjuder programvaran ett abstraktionslager som gör att alla applikationer i ett datacenter kan dra nytta av nya typer av minne, minnesanslutningar, processorer och minnesallokatorer för att hantera moderna och framväxande applikationer och arbetsbelastningar.
Tillbaka i september förra året släppte MemVerge den allmänna tillgängligheten för sin Memory Machine. Mjukvaran erbjuds i två varianter: Standardversion som virtualiserar byte-adresserbar DRAM och PMem-minne som snabbar upp appar och sänker kostnaderna men som inte möjliggör persistens; och AdvancedVersion som är allt ovan med persistens aktiverat, samt minnestjänster i företagsklass som är baserade på ZeroIO in-memory ögonblicksbilder.
ZeroIO in-memory ögonblicksbilder, som namnet antyder, tillåter ögonblicksbilder av DRAM och PMem med nollIO till lagring. Detta gör DRAM, som normalt är flyktigt och med låg tillgänglighet, till en nivå med hög tillgänglighet. ZeroIO-ögonblicksbilder tillåter också vad det kallade tidsresor, vilket gör det möjligt att gå tillbaka till tidigare ögonblicksbilder. Det finns en AutoSave-funktion som rullar tillbaka appar till föregående ögonblicksbild om det skulle krascha. Ögonblicksbilderna möjliggör produktion av tunna kloner utan att använda mer minnesresurser. Och ögonblicksbilderna kan migreras till andra servrar och användas för att skapa en ny appinstans.
MemVerge Minnesmaskinhantering
MemVerge Memory Machine har ett ganska snyggt GUI. Den globala instrumentpanelen visar element som vi har kommit att förvänta oss i lagring, skillnaderna i det här fallet att DRAM och PMem är huvudelementen som övervakas och användning kan enkelt ses här. Överst finns flikar för värdar, appinstanser, ögonblicksbilder och varningar.
Genom att klicka på hemknappen till vänster visas grundläggande information om systemet (IP-adress, OS, Kernal-version, CPU) samt en djupdykning i minnes- och PMem-användning och prestanda.
Användare kan gå ner i minnet ytterligare genom att dra upp en minnesrapport för att se användning per timme. Detta framhäver också typen, PMem vs. DRAM.
Och användare kan titta på Memory Machines RESTful API:er samt konfigurera dem.
Snapshots är en stor del av Memory Machine, men vi kommer att gå in på det i vår prestationssektion.
konfiguration
I vårt labb utnyttjade vi MemVerge Memory Machine på en Supermicro SYS-2029U-TN24R4T med följande specifikationer:
Hårdvarumodell | Supermicro SYS-2029U-TN24R4T |
CPU | 2x Intel(R) Platinum(R) 8270 CPU @ 2.70 GHz, 26 kärnor |
DRAM | DDR4 192GB |
PMem | 12x128GB |
OS SSD | 1TB SATA SSD |
OS | 8.2.2004 CentOS |
Kärna | 4.18.0-193.19.1.el8_2.x86_64 |
MemVerge Memory Machine Performance
Vårt normala batteri av tester skulle inte vara vettigt här eftersom MemVerge Memory Machine är inriktat på arbetsbelastningar och applikationer som behöver köras i minnet. Våra riktmärken ses vanligtvis som normala till högstressade arbetsbelastningar som skulle ses i verkligheten under IT-drift. Istället kommer vi här att titta på några olika tester och vi kommer att titta specifikt på saker som DRAM kontra PMem kontra DRAM + PMem och hur var och en skakar ut. För den här recensionen kommer vi att använda KDB Performance både bulkinsert och lästest samt Redis Quick Recovery med ZeroIO Snapshot och Redis Clone med ZeroIO Snapshot.
KDB prestandatestning
Kx:s kdb+ är en tidsserie i minnesdatabas. Den är känd för sin snabbhet och effektivitet och av den anledningen mycket populär inom Financial Service Industry. En stor begränsning för kdb är begränsningen av DRAM-kapacitet. MemVerge Memory Machine passar perfekt här så kdb kan dra full nytta av PMem för utökat minnesutrymme med liknande prestanda som DRAM. För bulkskärstestet tittade vi på ett enstaka skär, 10, 100, 1000, 10000, 15000, 20000 och 25000 skär och mättes i miljontals bulkskär per sekund.
Med KDB-bulk-inlägget ser vi några intressanta resultat. Vid en enda insättning hade alla tre liknande resultat. I mindre batchstorlekar ser vi DRAM som bäst presterande. När batchstorlekarna växer över 10,000 XNUMX ser vi Memory Machine ta ledningen över DRAM med PMem efterföljande för att hålla varje batch.
Därefter tittade vi på kdb+ med ett Lästest. Här är testupplägget lite annorlunda. Lästestet är detsamma genomgående men den här gången tittade vi på endast DRAM, endast PMem och sedan PMem med antingen 20GB eller 40GB cache av DRAM. DRAM kunde bara nå 4.2 GB/s, PMem nådde bara 2.9 GB/s, med en 20 GB cache av DRAM kunde Memory Machine träffa nästan samma DRAM bara med 3.9 GB/s och med 40 GB cache vi såg den högsta prestandan på 4.8 GB/s. Vad som är mer intressant att notera är att de två sista fortfarande tillåter gott om DRAM för andra uppgifter.
Redis Snapshot Testing
Redis är ett datalager med öppen källkod i minnet som används som databas, cache och meddelandeförmedlare. Det är mycket populärt och kraftfullt, så det är ett idealiskt program för att jämföra MemVerge Memory Machine. När Redis körs på MemVerge Memory Machine allokeras DRAM och PMem till Redis. Sedan sparar MemVerge ZeroIO-ögonblicksbilder applikationens minnessidor utan lagrings-IO-operationer. När Redis kraschar är all dataögonblicksbild till PMem beständig. Kraschåterställning innebär att helt enkelt peka på befintliga data i PMem utan att någon lyft och flyttar data från lagring.
I det här avsnittet kommer vi att testa MemVerge ZeroIO-ögonblicksbilden för snabb återställning.
Först ska vi titta på Redis Quick Recovery med ZeroIO Snapshot. Till skillnad från prestandariktmärken kommer vi här att visa funktionalitet och användarvänlighet. När Redis har installerats och kör en databas loggar vi in på Memory Machine och ser saker som hur mycket PMem som används.
Under applikationsfliken kan vi se att en Redis-server körs.
Medan den är igång tar vi några ögonblicksbilder. Uppenbarligen, om inga ögonblicksbilder tas kan man inte återställa från en ögonblicksbild.
Skadar aldrig för säkerhets skull, dubbelkolla så att vi har tagit några ögonblicksbilder.
När vi vet att vi har dem utlöser vi ett Redis DB-fel. Vi väljer en ögonblicksbild och återställer, efter en liten paus är vi igång igen.
Redis Clone med ZeroIO Snapshot
Här tar vi flera av samma steg som ovan. Efter att ögonblicksbilden har tagits kan vi återställa den som en klon med ett nytt namnområde och ny IP-adress. Vi ansluter till klonen från en annan värd och kan se att den tar upp ungefär samma minne.
Allt ovanstående kan också göras med en CLI-prompt för de som föredrar det.
Slutsats
MemVerge Memory Machine är SDS som syftar till att kombinera minnets prestanda med PMems uthållighet. PMem används vanligtvis som en cache för att påskynda lagring. Även om detta är en välsignelse i många fall för lagring, behöver applikationer i minnet minnesprestanda, inte en cache. MemVerge virtualiserar både DRAM och PMem till pooler av mjukvarudefinierat minne med mjukvarudefinierade tjänster. Memory Machine förvandlar DRAM till en nivå med hög tillgänglighet med hjälp av ögonblicksbilder från nollIO i minnet. ZeroIO möjliggör skapandet av tunna kloner utan att belasta minnesresurser.
När vi går in i nya kategorier måste vi anta nya prestandatester och riktmärken. Att testa in-memory SDS med våra normala riktmärken skulle inte vara användbart eftersom det inte är vad det är gjort för. Istället utnyttjade vi KDB Performance både bulk-insättning och lästest samt Redis Quick Recovery med ZeroIO Snapshot och Redis Clone med ZeroIO Snapshot. Testerna utfördes på en Supermicro SYS-2029U-TN24R4T-server, även om den borde fungera på validerade servrar som stöder Intel Optane PMem-moduler.
Med KDM bulk testade vi flera batchstorlekar och tittade på DRAM, PMem och en kombination av de två genom Memory Machine. Eftersom satserna började små var det ingen överraskning att se DRAM ha den bästa prestandan. Det som verkligen var intressant att se är att allt eftersom testet belastade resurserna hårdare, gjorde MemVerge det bättre och bättre. Med KDM-läsningen såg vi liknande trender. DRAM fungerade riktigt bra, ingen överraskning där. PMem gick bra, men bra under DRAM. Med endast 20 GB cache för DRAM med Memory Machine presterade den på 3.9 GB/s jämfört med DRAM enbart 4.2 GB/s. Genom att ge MemVerge 40 GB DRAM för cache fick du den bästa prestandan totalt sett med 4.8 GB/s samtidigt som det lämnar massor av DRAM för andra uppgifter.
Den andra delen av prestandatestningen var Redis Quick Recovery med ZeroIO Snapshot och Redis Clone med ZeroIO Snapshot. Här gällde mer funktionalitet kontra kvantifierbar prestanda. Vi tog i princip snabbt ögonblicksbilder, utlöste ett misslyckande och kunde snabbt vara igång igen.
Intels PMem är en oerhört intressant teknik som har varit något långsam att adoptera på grund av begränsade sätt att enkelt anta och utnyttja modulerna på rätt sätt. Med MemVerge kan organisationer dra nytta av vad PMem har att erbjuda, i en lösning som byggdes specifikt med denna teknik i åtanke. För de med applikationer som kan dra nytta av det stora och motståndskraftiga minnesfotavtrycket som PMem erbjuder, är MemVerge definitivt värt att utvärdera.
Engagera dig med StorageReview
Nyhetsbrev | Youtube | Podcast iTunes/Spotify | Instagram | Twitter | Facebook | Rssflöde