FĂŒr den Linux-Kernel wurde eine Reihe von Patches vorgeschlagen, die ein verteiltes replizierbares BlockgerĂ€t DRBD 9 implementieren, das eine Art RAID-1-Array ermöglicht, das aus ĂŒber das Netzwerk spiegelnden SpeichergerĂ€ten besteht, die an verschiedene Systeme angeschlossen sind. Der Treiber soll zunĂ€chst im Branch linux-next getestet und dann auf die Integration in den Linux-Kernel 7.2 vorbereitet werden.
Die alte Version von DRBD wird seit Version 2.6.33, die vor 16 Jahren veröffentlicht wurde, im Kernel bereitgestellt. Der im Kernel vorhandene Code basiert auf dem Branch DRBD 8, der sich erheblich von dem Branch DRBD 9 unterscheidet, der 2015 veröffentlicht wurde und protokolltechnisch nicht kompatibel ist. Es stellte sich heraus, dass der Branch DRBD 9 als separates externes Modul entwickelt wurde, das nicht mit dem Modul aus dem Hauptkernel synchronisiert wurde. Die im Kernel implementierte DRBD-Version wurde separat betreut und hinkt der aktuellen Codebasis von DRBD um 10 bis 15 Jahre hinterher. Die vorgeschlagenen Patches wurden erstellt, um die entstandene LĂŒcke zu schlieĂen.
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.
Ein Cluster, das den Speicher bildet, kann bis zu 32 Knoten umfassen, die sowohl im lokalen Netzwerk als auch geografisch verteilt untergebracht sind Rechenzentren. Die Synchronisation in solchen verteilten Speichern erfolgt in Form eines Mesh-Netzes â die Daten verbreiten sich in einer Kette von Knoten zu Knoten. Die Replikation der Knoten kann sowohl im synchronen als auch im asynchronen Modus erfolgen. Beispielsweise können lokal angeordnete Knoten die synchrone Replikation verwenden, wĂ€hrend fĂŒr Knoten an entfernten Standorten die asynchrone Replikation mit zusĂ€tzlicher Kompression und VerschlĂŒsselung des Datenverkehrs verwendet werden kann.
Der DRBD 9-Zweig zeichnet sich durch die Abstraktion der Transporteebene aus, die es ermöglicht, KommunikationskanĂ€le nicht nur ĂŒber TCP/IP, sondern auch unter Verwendung von RDMA/Infiniband zu realisieren. Im Vergleich zum Betrieb ĂŒber traditionelle IP-Netzwerke hat die Integration direkter Zugriffe auf den Arbeitsspeicher eines anderen Computers mittels RDMA (Remote Direct Memory Access) die Replikationsleistung verdoppelt und die CPU-Belastung um 50 % reduziert. Die maximale GröĂe des synchronisierten Speichers wurde auf 32 Knoten erhöht. In DRBD 9 wurde auch die Logik zur Resynchronisierung der Knoten geĂ€ndert, der Mechanismus zur Sperrung ĂŒberarbeitet, die UnterstĂŒtzung fĂŒr Netzwerk-NamensrĂ€ume hinzugefĂŒgt, eine automatische Statusanpassung der Knoten basierend auf der AktivitĂ€t implementiert, und die UnterstĂŒtzung fĂŒr zweiphasige Commits sowie das Rollout von Updates im nicht-blockierenden Modus implementiert. 
Quelle: opennet.ru
