Twee schrijfmodi van RAID-kaartcache
Sep 02, 2024Voor schrijf-IO op de bovenste laag zijn er twee modi voor RAID-controllers:
(1) WriteBack-modus: Wanneer gegevens uit de bovenste laag binnenkomen, slaat de RAID-controller deze op in de cache en meldt de host-IO onmiddellijk dat deze voltooid is. Hierdoor kan de host zonder wachten doorgaan naar de volgende IO, terwijl de gegevens in de cache van de RAID-kaart blijven zonder naar de schijf te worden geschreven. De RAID-controller optimaliseert het schrijven naar de schijf door individueel of in batches naar de schijf te schrijven, of door de IO's in de wachtrij te plaatsen met behulp van wachtrijtechnieken. Deze aanpak heeft echter een cruciaal nadeel: als er een stroomstoring optreedt, gaan de gegevens in de cache van de RAID-kaart verloren terwijl de host ervan uitgaat dat de IO is voltooid, wat resulteert in aanzienlijke inconsistenties tussen de bovenste en onderste lagen. Daarom implementeren bepaalde kritische toepassingen, zoals databases, hun eigen maatregelen voor consistentiedetectie.
Om deze reden hebben high-end RAID-kaarten batterijen nodig om de cache te beschermen. In het geval van een stroomstoring blijft de batterij de cache van stroom voorzien, waardoor de gegevensintegriteit wordt gewaarborgd. Bij herstel van de stroomvoorziening geeft de RAID-kaart prioriteit aan het schrijven van de onvolledige IO's die in de cache zijn opgeslagen naar de schijf.
(2) WriteThrough-modus: In deze modus wordt IO van de bovenste laag pas als voltooid beschouwd nadat de RAID-controller de gegevens naar de schijf heeft geschreven. Deze aanpak garandeert een hoge betrouwbaarheid. Hoewel het prestatievoordeel van de cache in deze modus verloren gaat, blijft de bufferfunctie effectief.
Naast dat het een schrijfcache is, is de leescache ook erg belangrijk. Het cache-algoritme is een zeer complex onderwerp, met een reeks complexe mechanismen. Een van de algoritmen heet PreFetch, wat betekent dat de gegevens op de schijf die "waarschijnlijk" de volgende keer door de host zullen worden benaderd, "in de cache worden gelezen" voordat de host een lees-I0-verzoek verzendt. Hoe wordt deze ‘waarschijnlijk’ berekend?
In feite wordt aangenomen dat de host een grote waarschijnlijkheid heeft om de gegevens te lezen in de aangrenzende positie van de schijf waar de gelezen gegevens zich deze keer bevinden in de volgende IO. Deze aanname is zeer toepasbaar op het continu sequentieel lezen van IO, zoals het lezen van logisch continu opgeslagen gegevens. Dergelijke toepassingen, zoals FTP-diensten voor de overdracht van grote bestanden en video-on-demand-diensten, zijn allemaal toepassingen voor het lezen van grote bestanden. Als veel gefragmenteerde kleine bestanden ook continu op aangrenzende posities op de schijf worden opgeslagen, zal caching de prestaties aanzienlijk verbeteren, omdat de IOPS die nodig is om kleine bestanden te lezen erg hoog is. Als er geen cache is, hangt het volledig af van de hoofdpoging om elke IO te voltooien, wat lang duurt.
STOR Technology Limited biedt u hoge kwaliteit 9560-16I, 9560-8I, 9361-4I, 9540-8I, enz. Wij bieden u diensten van hogere kwaliteit en een verzekerde after-sales service. Welkom om ons te bezoeken en gerelateerde producten met ons te bespreken.
Onze website: https://www.cloudstorserver.com/
Neem contact met ons op: alice@storservers.com / +86-755-83677183
WhatsApp: +8613824334699