Een cache op blokniveau instellen met DRBD op Linux

Ik wil een actieve/actieve DRBD-configuratie instellen met twee knooppunten. Mijn applicatie doet I/O's rechtstreeks op het DRBD-apparaat. Ik heb geen optie gezien om caching binnen DRBD mogelijk te maken.

Is er een linux-module waarmee ik een cache kan instellen tussen DRBD en de schijfmodule? Elke cache boven de DRBD-module kan ertoe leiden dat oude gegevens worden gelezen door de knooppunten.

0
Wat probeer je te bereiken? Wilt u alleen gegevens delen tussen applicaties die uiteindelijk later op schijf worden geschreven? Wat zijn je vereisten?
toegevoegd de auteur mensi, de bron
Wat bedoel je met "cache op hoger niveau"? Kun je je vraag uitbreiden met specifieke informatie over wat je wilt bouwen, omdat het antwoord afhangt van het type applicatie dat je hebt en hoe je toegang krijgt tot het apparaat met gedeelde blokken?
toegevoegd de auteur mensi, de bron
Dit wordt een cluster met hoge beschikbaarheid. De applicatie gaat de schijf gebruiken als hun aangepaste blokgebaseerde opslag voor zeer hoge prestaties. Aangezien DRBD de replicatie aan het doen was, zou het hebben van een cachelaag onder DRBD me niet in staat stellen het andere systeem te waarschuwen van het wegspoelen van het juiste blok uit zijn hoger niveau cache.
toegevoegd de auteur Imran, de bron
Hoger niveau zou betekenen dat elke module (bestandssysteem, directe bloktoegang, enz.) Toegang krijgt tot het drbd-apparaat als opslag. De toepassing krijgt toegang tot het gedeelde blokapparaat door een open/mmap uit te voeren tegen het/dev/nnn-apparaat en vervolgens de I/O uit te voeren. Vergrendelen indien nodig zal gebeuren met behulp van een gedistribueerde vergrendeling. De toepassing kan een gebruikersruimtebibliotheek implementeren die gedeeld geheugen kan gebruiken voor caching enz., Maar het zou moeten worden geïnformeerd over blokken die op het andere knooppunt worden gemodificeerd. Ik zou dat willen vermijden en caching gebruiken op drbd of op een niveau onder drbd.
toegevoegd de auteur Imran, de bron
Ik heb bcache.evilpiepirate.org gevonden die er veelbelovend uitziet
toegevoegd de auteur Imran, de bron

1 antwoord

DRBD zelf heeft 3 protocoltypes met verschillende garanties. U kunt proberen B of zelfs A te gebruiken. Alle typen blokkeren echter totdat de lokale schrijfbewerking succesvol is verlopen. Wat betreft caching schrijft de schijf expliciet naar de schijf, this SO question biedt mogelijk nog meer aanwijzingen over wat er mogelijk is. Vooral het antwoord van dannysauer ziet er interessant uit.

0
toegevoegd