Langsamer Zugriff auf btrfs auf LVM /

7

Wir haben dieses Setup auf unserem Server:

  • Ubuntu 14.04 (früher 12.04)
  • 10 TB RAID-6-System
  • LVM (eine VG, zwei LV)
  • ext4-Partition (~ 2 TB)
  • Btrfs-Partition (~ 8 TB)

Nach einem Neustart im letzten Monat war das System langsam. Zuerst dachten wir, es liege daran, dass das RAID neu synchronisiert wurde (ein Laufwerk wurde nicht hinzugefügt und reaktiviert). Aber nachdem dies endgültig beendet ist (12-13 Tage), ist der Zugriff auf Btrfs immer noch merklich langsam. Der ext4-Zugriff scheint normal zu sein.

Der Systemadministrator, der dies eingerichtet hat (und diesen Sommer verlassen hat), hat bereits autodefrag verwendet, noatime auf dem Btrfs-Mount.

Was können wir tun, um Btrfs wieder zu beschleunigen?

RachelP83
quelle

Antworten:

9

Ich kann nicht kommentieren, sorry, wenn dies nicht gut als Antwort ist. Sie sollten Ihre Laufwerke überprüfen. Ich denke, 12 Tage Rsync-Zeit für 10 TB sind zu lang, sollte eher 12-24 Stunden betragen. Schauen Sie sich die verschiedenen Laufwerke mit smartctl an, um zu überprüfen, ob viele Fehler vorliegen:

for i in a b c d e f g h i j k l; do echo $i ; smartctl -x /dev/sd$i | grep occurred | head -1 ; done

Ich habe gesehen, dass RAID dadurch langsamer wird. Und IIRC Btrfs benötigt mehr Verzeichniszugriff als ext4 für Verzeichnissuchen, was den Unterschied in der Zugriffsgeschwindigkeit erklären könnte.

Dolch
quelle
1
Vielen Dank für diesen Tipp. Ich habe es benutzt und ein Laufwerk mit 832 Fehlern gefunden (und eines mit 2, keine Fehler im Rest). Nach dem Ausschalten und Entfernen des Laufwerks hat sich der Btrfs-Zugriff spürbar beschleunigt. Ein Ersatzlaufwerk ist unterwegs.
RachelP83
Ich habe mich gerade von zu Hause aus wieder beim Server angemeldet: Die Neusynchronisierung des neuen Laufwerks ist bereits abgeschlossen! Die Verfahrgeschwindigkeiten des Verzeichnisses scheinen wieder normal zu sein.
RachelP83
4

Sie haben gerade drei Ebenen der Festplatten-E / A-Indirektion gestapelt und fragen sich, warum die Leistung schlecht ist?

In der Informatik gibt es ein altes Sprichwort, das David Wheeler zugeschrieben wird :

Jedes Problem in der Informatik kann mit einer anderen Indirektionsebene gelöst werden.

Es ist nicht wahr. Es gibt ein Problem, das Sie auf diese Weise nicht lösen können: Das System ist zu langsam. (Nicht ohne ohnehin mehr Hardware hinzuzufügen. In diesem Fall mehr Spindeln oder Clustering oder Lastausgleich usw.)

Btrfs enthält LVM - Funktionalität, aber du hast und gestapelt gegangen , dass oben auf Linux LVM2 Schicht und setzen , dass auf einem Hardware - RAID-6 - System. Was haben Sie noch getan, um virtuelle Maschinen auf diesem schwankenden Abstraktionsstapel zu hosten, damit Sie eine oder zwei weitere Ebenen der Dateisystem-Indirektion hinzufügen können?

Sie haben um Rat gefragt, also hier ist meiner: Schnapp dir einige dieser Schichten.

Wenn ich es wäre, würde ich das Hardware-Disk-Subsystem für JBOD konfigurieren und Btrfs direkt darüber legen.

Im Allgemeinen sollten Sie nicht erwarten, dass Btrfs die gleiche Leistung wie erzielt ext[234]. Sie vergleichen Äpfel nicht mit Äpfeln. Btrfs bietet Ihnen ein höheres Maß an Datenintegrität, sodass es natürlich etwas langsamer läuft. TANSTAAFL .

Warren Young
quelle
Ihre Beobachtungen werden geschätzt, aber ich kann die Hardware derzeit nicht ändern, und nur Btrfs verursachte Probleme mit bestimmten großen Dateien, die aktualisiert wurden (ein bekanntes Problem), so dass wir das nicht direkt "auf dem Metall" haben können. Wie auch immer, die Leistung war früher gut, mit Schichten und an Ort und Stelle.
RachelP83
5
Nach meiner Erfahrung führt btrfs eine Menge Housekeeping durch, wenn ein Dateisystem bereitgestellt wird, auch abhängig davon, ob es sauber nicht bereitgestellt wurde oder nicht. Gibt es Kernelprozesse, die sich auf btrfs beziehen, die beim Ausführen im Status 'D' ausgeführt werden ps aux? Wenn ja, warten Sie einfach ab. Starten Sie nicht neu, es wird die Aktion neu starten ... Abgesehen davon verursacht LVM kaum Leistungseinbußen. Zumindest konnte ich es nicht auf meine unwissenschaftliche Weise messen.
Wurtel
3
Beachten Sie, dass Informationen zum LVM-Volume in den Geräte-Mapper geladen werden, der Teil der Block-E / A-Schicht im Kernel ist. Dies bedeutet, dass die Auswirkungen von lvm auf die Leistung kaum spürbar sein sollten.
März