Ich ersetze eine ausgefallene Festplatte in einem gespiegelten BTRFS.
btrfs device delete missing /[mountpoint]
dauert sehr lange, daher gehe ich davon aus, dass die Daten tatsächlich auf das Ersatzlaufwerk übertragen werden.
Gibt es eine Möglichkeit, den Fortschritt einer solchen Operation zu überwachen?
Ich erwarte nicht unbedingt eine hübsch aussehende Benutzeroberfläche oder sogar einen Prozentzähler. und ich bin bereit, ein paar Zeilen Shell-Skript zu schreiben, wenn dies erforderlich ist, aber ich weiß nicht einmal, wo ich anfangen soll, nach relevanten Daten zu suchen. btrfs filesystem show
Beispiel: Hängt nur und wartet vermutlich auf den Abschluss des Balance-Vorgangs, bevor Informationen zu den gespiegelten fs angezeigt werden.
Balance on '/volume1' is running
28 out of about 171 chunks balanced (1156 considered), 84% left
. Ungewöhnlich zählt der Prozentsatz herunter.dies wird ungefähr so aussehen:
Und wenn Sie bemerken, dass die Geräte-ID Nr. 4 etwas anders aussieht als die anderen. Wenn Sie "btrfs device delete missing / mntpoint" ausführen, wird die Wiederherstellung der RAID-Metadaten gestartet, die zur Freigabe dieses "fehlenden" Laufwerks erforderlich sind.
wenn du sowas machst
Dann können Sie sehen, dass der Speicherplatz auf dem fehlerhaften "fehlenden" Gerät allmählich kleiner wird, bis der Vorgang abgeschlossen ist und es aus der Datei entfernt wird.
quelle
Es kann einige Zeit dauern, bis BTRFS Daten gelesen oder neu angeordnet hat, bevor Daten auf das Laufwerk geschrieben werden, auf das sie voraussichtlich geschrieben werden.
Sie können sehen, wie viel CPU-Zeit für BTRFS-Vorgänge aufgewendet wird, einschließlich Neuverteilung, Hinzufügen, Löschen, Konvertieren usw.:
Installieren Sie sysstat und führen Sie Folgendes aus, um festzustellen, wie viele Festplatten ausgelastet sind:
Fügen Sie einige Optionen hinzu, damit iostat Statistiken in Megabyte anzeigt und alle 30 Sekunden aktualisiert:
Beispielausgabe von Scrub, sodass während dieses Intervalls keine Schreibvorgänge ausgeführt werden:
Installieren Sie munin und führen Sie es aus, um historische Diagramme der Laufwerksaktivität und viele andere Informationen anzuzeigen. https://www.digitalocean.com/community/tutorials/installationsanleitung-des-munin-monitoring-tools-auf-ubuntu-14-04
quelle
Ich habe mich auch gefragt, wann ein lang anhaltender Löschvorgang abgeschlossen sein wird, also habe ich mir dieses kleine Stück Shell-Code ausgedacht:
Dies gibt Ihnen einen schönen Fortschrittsbalken wie diesen:
Die allgemeine Idee ist,
pv
den Fortschritt anzuzeigen. Da dieser Befehl nur das Überwachen von Bytes erlaubt, die durch eine Pipe fließendd
, generieren wir eine angemessene Anzahl von Nullen und leiten sie weiterpv
.Der Vorteil dieser Methode ist, dass Sie einen schönen Fortschrittsbalken erhalten. Da jedoch
btrfs
Daten anscheinend immer jeweils um ein GB gelöscht werden, dauert es einige Zeit, bis ein neuer Unterschied in der Bytegröße festgestellt werden kann.Um dieses Problem zu beheben,
-a
wird das Flag zu den Standard-Flags von hinzugefügtpv
, damit eine durchschnittliche Übertragungsrate angezeigt wird (da die normale aktuelle Übertragungsrate die meiste Zeit 0 ist).Mir ist klar, dass dies nicht die beste Lösung ist, aber die beste, die ich finden konnte. Wenn jemand Verbesserungsvorschläge hat, lass es mich wissen! :)
quelle