In das Repository, das Ănderungen an Btrfs fĂŒr zukĂŒnftige Kernzweige von Linux entwickelt, wurde ein Satz von Patches zur Implementierung einer zyklischen Balancierungsrichtlinie fĂŒr LesevorgĂ€nge in RAID1 aufgenommen, die den "Round-robin"-Algorithmus verwendet. Um die Verteilung der Leseoperationen im Rundlauf in "\/sys\/fs\/btrfs\/\/read_policy" zu aktivieren, muss der Wert "round-robin:[min_contiguous_read]" gesetzt werden, wobei der optionale Parameter "min_contiguous_read" die minimale GröĂe der Anfragen definiert, die zwischen den Spiegeln ausgeglichen werden soll (Standardwert von 256 KiB).
UrsprĂŒnglich wurde die Lastverteilung in RAID1 in Btrfs basierend auf der PID des Prozesses durchgefĂŒhrt, der die Ein-/Ausgabe angefordert hat. Dieses Schema funktionierte gut in Systemen, in denen viele verschiedene Prozesse die Last erzeugten, erlaubte jedoch bei einprozessualer Last nicht, die maximale Leistung zu erreichen. Beispielsweise reduzierte die Aktivierung der Richtlinie "round-robin" die AusfĂŒhrungszeit des Defragmentierungsprozesses von 18 auf 8,8 Sekunden in durchgefĂŒhrten Tests.
ZusĂ€tzlich wurde eine Ănderung hinzugefĂŒgt, die den Parameter "devid:" in "\/sys\/fs\/btrfs\/read_policy" implementiert. Dieser Parameter deaktiviert die Balancierung und weist an, Leseoperationen ausschlieĂlich von der angegebenen Festplatte durchzufĂŒhren.
Quelle: opennet.ru
