Cookies op Tweakers

Tweakers maakt gebruik van cookies, onder andere om de website te analyseren, het gebruiksgemak te vergroten en advertenties te tonen. Door gebruik te maken van deze website, of door op 'Ga verder' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt, bekijk dan ons cookiebeleid.

Meer informatie

Door , , 62 reacties

Marvell werkt aan een pci-express-kaart die gegevens moet cachen en sorteren voordat ze naar een storage-server worden gestuurd. Dit moet het aantal benodigde schrijfbewerkingen voor het opslaan van informatie verminderen.

De DragonFly Virtual Storage Accelerator, een pci-express-kaart die waarschijnlijk ergens in deze herfst in de winkelschappen komt te liggen, heeft als taak netwerkverkeer te cachen en sorteren voordat het over het netwerk naar opslagservers wordt gestuurd. Gegevens kunnen daardoor sequentieel worden weggeschreven, wat sneller gaat dan wanneer random-data moet worden weggeschreven. Redundante data zou helemaal niet weggeschreven hoeven worden, wat de write-amplification ten goede komt.

De kaart gaat waarschijnlijk rond de duizend dollar kosten, meldt Computerworld. Aan boord heeft de kaart niet-volatiel dram-geheugen en nand-flashgeheugen als respectievelijk L1- en L2-geheugen. Een ingebouwde processor is verantwoordelijk voor het sorteren van de gegevens. Vervolgens worden de gegevens naar een nas- of san-array gestuurd. Het gebruikte protocol maakt daarbij niet uit.

Doordat het aantal schrijfbewerkingen wordt verminderd, kan ook de levensduur van opslagapapparatuur worden verlengd. Vooral bij ssd's is dat belangrijk, doordat deze een bepaald aantal erase-write-cycles hebben. Na 10.000 tot 100.000 van die cycli gaat de integriteit van de opslag achteruit.

Marvell Dragonfly VSA

Moderatie-faq Wijzig weergave

Reacties (62)

Ik heb net het artikel op computerworld gelezen (zie linkje in het artikel) en begreep toen pas goed wat de bedoeling van de kaart is.

Het gaat voornamelijk om IO traffic over het storage-netwerk, afkomstig van virtual machines, richting storage appliances. Wanneer je 10 VM's op 1 hypervisor hebt draaien en de storage op een appliance zet, ziet die appliance bijvoorbeeld veel random write acties, wat de performance natuurlijk niet ten goede komt.

Deze kaart zorgt ervoor dat de instructies beter aansluiten voor de appliance door de volgorde van de pakketten logischer te maken. Voor wie er meer over wil weten: lees het artikeltje op computerworld.

[Reactie gewijzigd door EnigmA-X op 4 april 2011 20:16]

Iets doet mij vermoeden dat dit nu niet perse een kaartje zal zijn voor den achteloze consument. Ik zie de functionaliteit meer tot zijn recht komen wanneer deze als een soort 'load balancer' wordt ingezet vr de storageserver. Alle schrijfacties van de clients komen binnen op punt A en via deze Marvell oplossing wordt er dan netter en sneller naar de NAS geschreven.

Althans, dat lijkt me wel zo'n beetje het idee. Het lijkt me stug dat je al je clients wilt gaan uitrusten met een pci-e kaart van $/€1000,-- om storage sneller te laten verlopen...
Dit is precies wat ik ook zat te bedenken. Als je dit voor/in je file server kan zetten. Dus 1 kaart per FS. Dan kan ik snappen dat dit handig is.

Of je gebruikt het voor je backup servers. als een backup dan opeens nog maar 8 uur duurt i.p.v 12 voor een groot netwerk.
Het origineel artikel maakt veel duidelijk... Ze spreken over gebruik in een server waar veel virtuele servers op draaien. Als elk van die virtuele servers naar de NAS gaat, zitten al hun pakketten door elkaar (en geeft wat vertraging op de NAS). Deze kaart cached de pakketten van de verschillende servers en stuurt ze dan na elkaar door.

Al bij al een vrij slim concept, maar met relatief beperkte toepasbaarheid.
Klopt... en dan zie ik ook de meerwaarde. Echter, het artikel zegt :"Marvell werkt aan een pci-express-kaart die gegevens moet cachen en sorteren voordat ze naar een storage-server worden gestuurd."

EDIT: kan natuurlijk wel handig zijn om data tussen 2 servers te transfereren (back up of zo). Vaak hebben die wel een eigen netwerkverbinding. En dan heb je een snellere communicatie. (was je backup-opmerking die me dit deed beseffen)

[Reactie gewijzigd door V_J op 4 april 2011 15:51]

Dus voor maximaal resultaat dient elke client die data op een storage server kan zetten deze kaart te hebben?

Beetje dure grap voor 1000$ per kaart.
Nee ik denk dat de kaart de data sorteert op een manier dat makkelijker is voor de NAS om te verwerken. Als een andere client deze geschreven data weer opgevraagd van de NAS, krijgt hij dezelfde data terug, het maakt immers niet uit hoe je data op een HDD zet. Het zal waarschijnlijk sneller gaan omdat het opslag systeem makkelijk bij de geschreven data kan komen.

Ik zie het voordeel wel in! Mijn NAS staat nu in RAID-1 en heeft moeite met random stukjes data weg te schrijven. Dit al wel helpen!
Al zal de prijs niet mals zijn voor dit Niche product....
Dat is inderdaad wat de kaart doet. Data ordenen zodat het sequentieel opgeslagen en uitgelezen kan worden. Alleen doet het dit voor dat het verstuurd wordt over het netwerk. Dus de verzendende kant moet de data maar mooi gaan sorteren.

Met een filesystem als ZFS met SSD's voor caching en write logging is dit hele systeem niet nodig.
Met een filesystem als ZFS met SSD's voor caching en write logging is dit hele systeem niet nodig.
Precies. I/O optimalisatie doe je op de storage server/SAN/NAS.

Ik snap misschien ook niet de werking van het product. Hoe kan het nou onafhankelijk van het gebruikte protocol een voordeel brengen voor de storage server als dat ding op de client staat?
Alleen doet het dit voor dat het verstuurd wordt over het netwerk. Dus de verzendende kant moet de data maar mooi gaan sorteren.
Een client weet niets van de fysieke locatie van de data op de volumes. Hoe kan je nou zonder die informatie I/O optimaliseren?
Daarnaast is het dus nog een protocolonafhankelijk...? Wat nou als je een variant van NFS, iSCSI 2012 (fictief) will gaan gebruiken? Kan die dan toveren en de network I/O toch nog allemaal optimaliseren?

Wat ik me daarentegen wel van voorstellen is dat dat ding iSCSI/NFS/etc. offloading kan doen voor het OS. Maar dat doen al veel netwerkkaarten zoals Broadcom NetXtreme kaarten in servers en de duurdere Intels ook als ik me niet vergis. En voor een veel lagere prijs.

Nee ik geloof hier niet in zonder deugdelijke technische achtergrondinformatie en uitleg.

@backspace219: ja ik zit nu ook te denken... 1 april?

[Reactie gewijzigd door gertvdijk op 4 april 2011 17:26]

ik zie de mogenlijkheden van de kaart wel.
het is een beetje klein ik geef toe maar in het volgende segment zal dit zeker werken.

stel je hebt 7 servers zonder hardeschijf en 1 luxe nas.
je laat de servers booten via iscsi via zoon netwerkkaart.
dan levert dat best wel wat snelheids wins op.

ingeval van een client die een nas via cifs(smb) of nfs probeert te bereiken zal het eerder vertraging geven of zelfs niet kunnen. volgens mij.
ik zou in ieder geval niet weten hoe je de file lock zou moeten oplossen.
stel je hebt 7 servers zonder hardeschijf en 1 luxe nas.
je laat de servers booten via iscsi via zoon netwerkkaart.
dan levert dat best wel wat snelheids wins op.
Ooh? Hoe krijg je dan die snelheidswinst? Daar gaat het nou juist om!
ingeval van een client die een nas via cifs(smb) of nfs probeert te bereiken zal het eerder vertraging geven of zelfs niet kunnen. volgens mij.
Nee, men belooft zelfs protocolonafhankele winsten in I/O via netwerk...
ik zou in ieder geval niet weten hoe je de file lock zou moeten oplossen.
Heeft niks met de kaart te maken imo. Leer wat meer over NFS, CIFS, OCFS, iSCSI. File locking zit namelijk allemaal in het protocol (bijv. NFS4 wel, en niet in iSCSI).
in geval van iscsi is de target die je aanmaakt maar voor 1 client schrijf en leesbaar.
op dat moment kun je lees en schrijf cache gebruiken, zo veel als technisch haalbaar is.
je hoeft geen rekening te houden met andere gebruikers.
(eigenlijk kun je op zoon netwerk kaart ook een gewone harddisk gebruiken in plaats van een ssd)

in geval van cifs en nfs3/4 spreek je vaak met meerdere computers de share aan.
als je dan schrijf cache gebruikt blijft de file lock langer staan,
en lees cache kan niet want een ander zou die file al eens aangepast kunnen hebben.
dus is eerder vertragend dan versnellend. (er zijn wel een paar uitzonderingen in nfs3/4 heb ik in dit verhaal niet mee genomen.)

ocfs nog nooit mee gewerkt zal hem straks effe googelen.
(heb hem net gegoogeld. valt in princiepe onder een schared disk file system dus zelfde probleem als cifs en nfs maar er zijn wel mogelijkheden om te versnellen voor zoon kaart.)

ik vind het tweakers.net verhaaltje er ook niet echt duidelijk over.
maar ik denk echt dat marvel alleen het iscsi protocol + nog een aantal ander protocollen bedoeld en niet alle protocollen.
maar goed het is ook een marketing verhaaltje en geen technisch document.

ik kan me ergens een project herinneren die precies het zelfde deed als deze kaart maar dan als software en een lokale harde schijf. kom er effe niet zo snel op.

[Reactie gewijzigd door migjes op 4 april 2011 20:10]

ik kan me ergens een project herinneren die precies het zelfde deed als deze kaart maar dan als software en een lokale harde schijf. kom er effe niet zo snel op.
Defrag? :+
Hoe weet deze kaart nou wat voor data waar hoort ? Er zijn zoveel soorten databases. Dit ljkt meer op een late 1 april grap (of ik snap hier gewoon iets niet).
Niet echt, het idee is dat meerdere 'virtuele clients' 1 (of meer) kaart (en)op de server delen. Dus ipv. tientallen Virtuele Machines die hetzelfde proberen weg te schrijven, maar 1x.
Dus thin clients/terminals > applicatie server > Dragonfly > storage server?
Het wordt allemaal maar sneller en groter qua opslag.

Maar dit is iets waar je veel meer baat bij hebt, omdat je bijvoorbeeld in een bedrijfsituatie met veel werkplekken je data kunt verzenden/ophalen in een snellere tijd kunt produceren.

Zelf denk ik dus dat dit wel toekomst is, maar waarom Marvell die hiermee uitkomt?
als je op elke client zo'n kaartje moet gaan stoppen dan wordt je ook niet vrowlijk hoor,

ik denk dat dit soort kaartjes vooral nuttig zijn voor clusters waarbij bijv de webserver niet zelfs ook de data bevat. en zaken zoals vmware nodes waar je virtuele schijf ook op een san staat. in dat soort toch al dure machines zijn dit soort kaartjes vrij goedkoop en leveren door de hoge data-druk ook veel potentiele snelheidsverbeteringen.
Is dit apparaat niet juist bedoeld voor de computer die als NAS fungeert? Dat lijkt me de beste plek om te cachen voor je hardeschijf :).
Omdat netwerktechnologie Marvell's core-business is? Gokje ;)
niet vanwege Marvel's spiderman's netwerken dus.
Iemand een idee hoe dit precies werkt? Een soort hardwarematige filesystem wat I/O sequentieel schrijft maar random weer terugleest?

Met ZFS en SLOG disk kun je hetzelfde doen: sequential I/O maken van random I/O. Kost je helemaal niets. :)
Vraag is, als 1000VPS'en die op 1 server draaien allemaal hetzelfde naar de NAS willen schrijven, of andere oplossingen dit ook kunnen beperken tot 1 actie, zoals deze Marvell-oplossing. Geen flauw idee of zoiets reeds in ZFS (of OCFS e.d.) zit?

Idee is wel aardig, en er is immers ook hardware/software RAID, voor beiden is een markt.
zfs moet de SLOG/ARC op 1 machine hebben, niet op een andere node in het netwerk.

En elke journalled file systeem (inclusief ZFS) raakt corrupt als de writes zomaar georderd worden t.o.v. van de write journal. Het gaat pas fout als de stroom ervan af gaat.....
Zitten we op zo een toepassing te wachten? Het aantal toepassingen lijkt me alvast beperkt, want het lijkt me niet echt van toepassing voor kritische applicaties. Neem bijvoorbeeld een transactie op een database. Je programma kan allerlei stappen uitvoeren terwijl die kaart je acties in cache steekt. Vervolgens crasht het netwerk en kan je kaart de gegevens niet meer wegschrijven naar de databaseserver. Moet je programma het gebruik van zo een kaarten in rekening gaan brengen?
Neem bijvoorbeeld een transactie op een database. Je programma kan allerlei stappen uitvoeren terwijl die kaart je acties in cache steekt.
tot hiertoe kan ik je nog prima volgen maar dan
Vervolgens crasht het netwerk en kan je kaart de gegevens niet meer wegschrijven
en dan vraag ik me af hoe je zonder dit kaartje nog wel data had weggeschreven over een gecrashed netwerk.

volgens mij heb je op dat moment zowiso grotere problemen ... als zowel je primaire als je backup verbinding naar je 'bedrijfscritische' database weg is, heb je wel dingen om je meer druk over te maken dan die laatste paar kb die out of sync is.
Eigenlijk vroeg ik me af wat er zou gebeuren als alles volgens je applicatie alles ok is, maar dat het stukje data nog in cache zit op de netwerkkaart op het moment dat het netwerk uitvalt.

Een database transactie is misschien een slecht voorbeeld omdat die nog een succes of failure moet terugsturen, maar er zijn misschien andere voorbeeldjes.
Dit is een non probleem; als het al zo werkt dat de data wordt opgevangen door je netwerkkaart en nog niet is verstuurd, dan heeft je applicatie dus ook nog geen received status gekregen. Dit probleem kan zonder de kaart ook optreden (bijvoorbeeld: pakket is onderweg en netwerk crasht). Wat doe je dan? dit is op verschillende lagen in het netwerk allang opgevangen, dus het lijkt me niet dat hier een nieuwe situatie is neergezet die aanpassingen op applicatie niveau vereist.
Dergelijke kaarten zijn battery backed up, uitval betekend dat je veelal 36uur de tijd hebt om de boel te laten wegschrijven. Op de HP P800 kan je er zelfs meerdere parallel aansluiten (offline accu vervangen zonder dataloss). Op de P600 zit er ook nog op de RAM cache module een individuele BBU.
Na 10.000 cycli, met 25nm nand geheugen is dat ondertussen toch slechts 2500tot 3200 cycli.
Dat gaat over consumenten SSD's, enterprise hardware is over het algemeen degelijker uitgevoerd (met bijv. SLC geheugen) en kunnen dus vaker beschreven worden.
Er zit dan ook een groot verschil tussen consumenten hardware en bedrijfs modellen ;)

De consument is blij als het ding ongeveer 3 jaar mee gaat omdat men dan toch een nieuwe computer koopt en een betere, grotere, snellere schijf etc... maar veel bedrijven draaien machines die makkelijk 6 jaar lang niets anders doen dan een zelfde applicatie hosten en op zijn meest zo af en toe eens een patch voor het OS of de applicatie toe passen maar hardware upgraden hoeft vaak niet. Dit geld ook voor NAS/SAN. Je koopt een SAN oplossing steekt er 5TB aan disks in en je kunt makkelijk een jaar of 6 de zelfde SAN oplossing gebruiken misschien dat je tegen het einde van de 6 jaar in plaats van de originele 5TB er 7TB in hebt hangen maar veel meer veranderingen zullen er niet plaats vinden.
Juist om dit mogelijk te maken met SSD's moet je wel naar een oplossing over waar bij je zo veel mogelijk bespaard voor writes en reads. Daar naast als je kijkt naar de meeste SSD's die een doorvoer snelheid halen van +300MB dan zie je al snel dat ze bij random writes vaak nog niet boven de 70 tot 100MB uit komen iets dat op deze manier voor een groot deel opgelost kan worden.
Daar naast en dat is ook niet onbelangrijk als je dubbele data kan voorkomen en een update die keer op keer op nieuw wordt weg geschreven kunt cachen en simpel weg kunt bevestigen zonder daadwerkelijk een nieuwe schrijf actie nodig te hebben dan kun je ook de "snelheid" van het geheel nog eens flink op krikken.

Al met al denk ik dat dit soort oplossingen nog wel eens snel zouden kunnen groeien in populariteit. Al lijkt het me dat de SSD fabrikanten als dit echt aan slaat SSD's gaan maken die dit soort functionaliteit ook kunnen leveren. Om op die manier nog sneller te werken. Een SSD heeft al een wear leveling algoritme, encryptie en compressie dus waarom niet ook een caching oplossing die dit soort werk op SSD niveau uitvoert en op die manier de achterliggende hardware nog meer bespaard.
Het lijkt me dat het voor een SSD helemaal niet zo moeilijk is om te onthouden dat die ene cel in het afgelopen uur al eens beschreven is met een 1 en dat het dus zinloos is om dit weer te doen. Op die manier kun je aardig wat nutteloze acties besparen en de SSD virtueel veel sneller maken dan het ding nu is.
Consumenten en bedrijven gebruiken in de praktijk ongeveer dezelfde afschrijftermijn gemiddeld. Alleen gedurende die periode is de kans groot dat de hardware meer gebruikt word in een bedrijfssituatie en is uitval een stuk duurder voor bedrijven, vandaar dat die duurdere hardware met meer zekerheid kopen en vaak gaat zekerheid nog voor prestatie.
Ronde de 1000,- dollar is toch een flinke prijs, maar zo beginnen alle nieuwe producten natuurlijk.
Zal nog wel even duren voordat we hem in Nederland in handen kunnen krijgen om te testen of het echt wel een grote vooruitgang is qua snelheid.
In ieder geval blijft de techniek niet stil staan.
Vroegah toen er nog een aparte PhysX kaart bestond ;) : nieuws: Ageia PhysX-kaart getest. De tijd zal het leren en inderdaad vanuit hier zullen er weer andere merken er misschien nog iets anders op verzinnen/voortborduren.

Vind het wel grappig dat mensen zeggen "Oh wat duur", maar er zijn toch mensen die het kopen en het nut er van inzien. Zo wordt techniek betaalbaar (ook voor particulieren, maar het duurt misschien wat langer ;))
idd, dit soort dingen zullen, als ze zich eenmaal bewezen hebben, vanzelf in (server) moederborden en, zoals je dat tegenwoordig ziet, in CPU's geintegreerd worden tegen een fractie van de prijs.
Ik zie meer heil in een slimme driver icm een Sata600 SSD.....

Veel kostenefficienter...

Toegegeven, met een PCI-e kaart offload je de CPU, maar een beetje CPU heeft toch maar enkele procenten load nodig om een gigabit vol te prakken met data...

Die CPU power pak je ook weer terug als je efficienter naar de SAN/NAS weg weet te schrijven, want dan hoeft de huidige datalayer in je app minder te wachten...


EDIT een 1000 euro kaart (want om de een of andere reden zijn dollars in pc wereld gewoon euro's) maken om iets dergelijks te doen klinkt mij als een slimme marketingtruuk om een probleem te vinden voor een oplossing die je kunt maken...

[Reactie gewijzigd door stoepie2002 op 4 april 2011 15:38]

ZFS does it all. De grote truuk is kleine random reads op te vangen, voor een bepaalde duur en deze opsparen todat je ze sequentieel kan wegschrijven wegschrijven (32x4K opeenvolgende blokjes als een 128K stripe size).

[Reactie gewijzigd door analog_ op 4 april 2011 18:13]

Waarom zou je dit niet softwarematig (dus op het niveau van het besturingssysteem/filesystemdriver, of desnoods de netwerklaag) kunnen doen? Natuurlijk, writes cachen kost geheugen, maar voor $1000 kun je behoorlijk wat geheugen bijprikken.
Dat idee had ik dus ook..
Maar als de software dan $1000 moet kosten bespaard dat enkel een pci-e slot..

Op dit item kan niet meer gereageerd worden.



Apple iOS 10 Google Pixel Apple iPhone 7 Sony PlayStation VR AMD Radeon RX 480 4GB Battlefield 1 Google Android Nougat Watch Dogs 2

© 1998 - 2016 de Persgroep Online Services B.V. Tweakers vormt samen met o.a. Autotrack en Carsom.nl de Persgroep Online Services B.V. Hosting door True