Die Veröffentlichung des verteilten, replizierbaren BlockgerĂ€ts DRBD 9.2.0 wurde bekannt gegeben, das die Realisierung einer RAID-1-Ă€hnlichen Anordnung ermöglicht, die aus ĂŒber das Netzwerk verbundenen Festplatten verschiedener Maschinen besteht (Netzwerk-Spiegelung). Das System ist als Modul fĂŒr den Linux-Kernel gestaltet und wird unter der GPLv2-Lizenz verbreitet. Der Branch drbd 9.2.0 kann fĂŒr einen transparenten Austausch mit drbd 9.x.x verwendet werden und ist auf Protokollebene sowie hinsichtlich der Konfigurationsdateien und -werkzeuge vollstĂ€ndig kompatibel.
DRBD ermöglicht es, die SpeichergerĂ€te der Knoten eines Clusters zu einem gemeinsamen, ausfallsicheren Speicher zu verbinden. FĂŒr Anwendungen und das System erscheint dieser Speicher fĂŒr alle Systeme als identisches BlockgerĂ€t. Bei der Verwendung von DRBD werden alle Operationen mit der lokalen Festplatte an andere Knoten gesendet und mit den Festplatten anderer Maschinen synchronisiert. FĂ€llt ein Knoten aus, funktioniert der Speicher automatisch weiter ĂŒber die verbleibenden Knoten. Bei der Wiederherstellung der VerfĂŒgbarkeit des ausgefallenen Knotens wird dessen Zustand automatisch auf den aktuellen Stand gebracht.
Zum Cluster, der den Speicher bildet, können mehrere Dutzend Knoten gehören, die sowohl im lokalen Netzwerk als auch geografisch verteilt in verschiedene Rechenzentren. Die Synchronisation in solchen verteilten Speichern erfolgt durch den Einsatz von Mesh-Netzwerktechnologien (Daten flieĂen in einer Kette von Knoten zu Knoten). Die Replikation der Knoten kann sowohl synchron als auch asynchron erfolgen. Beispielsweise können lokal platzierte Knoten die synchrone Replikation verwenden, wĂ€hrend fĂŒr die Ăbertragung zu entfernten Standorten die asynchrone Replikation mit zusĂ€tzlicher Kompression und VerschlĂŒsselung des Traffics eingesetzt werden kann.

In der neuen Version:
- Die Latenzen fĂŒr die gespiegelt geschriebenen Anfragen wurden gesenkt. Eine engere Integration mit dem Netzwerk-Stack ermöglichte eine Reduzierung der Kontextwechsel des Planers.
- Die Konkurrenz zwischen dem Eingabe-/Ausgabeverkehr der Anwendungen und dem Eingabe-/Ausgabeverkehr der Resynchronisation wurde durch Optimierung der Sperren wÀhrend der Resynchronisation von Extents verringert.
- Die Leistung der Resynchronisation in Backends, die dynamische Speicherzuweisung (âthin provisioningâ) verwenden, wurde erheblich verbessert. Die Leistung konnte gesteigert werden, indem die Operationen trim/discard zusammengefĂŒhrt wurden, die deutlich lĂ€nger als normale Schreiboperationen dauern.
- Die UnterstĂŒtzung von Netzwerk-NamensrĂ€umen (network namespaces) wurde hinzugefĂŒgt, die die Integration mit Kubernetes zur Ăbertragung des Replikationstraffics ĂŒber ein fĂŒr Container getrenntes Netzwerk anstelle des Hostnetzwerks ermöglicht.
- Ein Modul transport_rdma wurde hinzugefĂŒgt, um Infiniband/RoCE als Transport statt TCP/IP ĂŒber Ethernet zu verwenden. Der Einsatz des neuen Transports ermöglicht geringere Latenzen, reduziert die CPU-Last und gewĂ€hrleistet die DatenĂŒbertragung ohne zusĂ€tzliche Kopieroperationen (zero-copy).
Quelle: opennet.ru
