LVM2 Raid 1 "muss aktualisiert werden", wird jedoch nicht aktualisiert oder gelöscht

440
Lukas Barth

Ich verwende ein LVM-RAID 1 auf zwei Festplatten. Hier ist was lvsich über meine VG erzähle:

root@picard:~# lvs -a -o +devices,lv_health_status,raid_sync_action,raid_mismatch_count  /run/lvm/lvmetad.socket: connect failed: No such file or directory WARNING: Failed to connect to lvmetad. Falling back to internal scanning. LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert Devices Health SyncAction Mismatches lv-data vg-data rwi-aor-r- 2.70t 100.00 lv-data_rimage_0(0),lv-data_rimage_1(0) refresh needed idle 0 [lv-data_rimage_0] vg-data iwi-aor-r- 2.70t /dev/sda(0) refresh needed  [lv-data_rimage_1] vg-data iwi-aor--- 2.70t /dev/sdb(1)  [lv-data_rmeta_0] vg-data ewi-aor-r- 4.00m /dev/sda(708235) refresh needed  [lv-data_rmeta_1] vg-data ewi-aor--- 4.00m /dev/sdb(0)  

Es sieht so aus, als wäre etwas schief gelaufen /dev/sda. Das SMART-Protokoll dieser Festplatte sieht gut aus, daher hoffe ich, dass es nur temporär ist, und ich möchte mein RAID aktualisieren / resynchronisieren. Folgendes mache ich:

root@picard:~# lvchange --refresh vg-data/lv-data /run/lvm/lvmetad.socket: connect failed: No such file or directory WARNING: Failed to connect to lvmetad. Falling back to internal scanning.  (…wait for a couple of minutes…)  root@picard:~# lvs -a -o +devices,lv_health_status,raid_sync_action,raid_mismatch_count /run/lvm/lvmetad.socket: connect failed: No such file or directory WARNING: Failed to connect to lvmetad. Falling back to internal scanning. LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert Devices Health SyncAction Mismatches lv-data vg-data rwi-aor-r- 2.70t 100.00 lv-data_rimage_0(0),lv-data_rimage_1(0) refresh needed idle 0 [lv-data_rimage_0] vg-data iwi-aor-r- 2.70t /dev/sda(0) refresh needed  [lv-data_rimage_1] vg-data iwi-aor--- 2.70t /dev/sdb(1)  [lv-data_rmeta_0] vg-data ewi-aor-r- 4.00m /dev/sda(708235) refresh needed  [lv-data_rmeta_1] vg-data ewi-aor--- 4.00m /dev/sdb(0)  

Also hat das nichts getan? Mein dmesg zeigt an, dass es versucht hat, das RAID wiederherzustellen:

[150522.459416] device-mapper: raid: Faulty raid1 device #0 has readable super block. Attempting to revive it. 

Na gut, vielleicht hilft das Schrubben? Versuchen wir das mal:

root@picard:~# lvchange --syncaction repair vg-data/lv-data /run/lvm/lvmetad.socket: connect failed: No such file or directory WARNING: Failed to connect to lvmetad. Falling back to internal scanning. root@picard:~# lvs -a -o +devices,lv_health_status,raid_sync_action,raid_mismatch_count /run/lvm/lvmetad.socket: connect failed: No such file or directory WARNING: Failed to connect to lvmetad. Falling back to internal scanning. LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert Devices Health SyncAction Mismatches lv-data vg-data rwi-aor-r- 2.70t 100.00 lv-data_rimage_0(0),lv-data_rimage_1(0) refresh needed idle 0 [lv-data_rimage_0] vg-data iwi-aor-r- 2.70t /dev/sda(0) refresh needed  [lv-data_rimage_1] vg-data iwi-aor--- 2.70t /dev/sdb(1)  [lv-data_rmeta_0] vg-data ewi-aor-r- 4.00m /dev/sda(708235) refresh needed  [lv-data_rmeta_1] vg-data ewi-aor--- 4.00m /dev/sdb(0)  

Hier gibt es einige seltsame Dinge:

  • Das SyncActionist idle, dh es sieht aus, als wäre das Schrubben sofort beendet?
  • Wenn das Scrubbing abgeschlossen ist und das Array noch aktualisiert werden muss, wie hoch ist dann die Anzahl der Nichtübereinstimmungen? Sollte das Scrubbing nicht die Nichtübereinstimmung erkennen und diese entweder korrigieren (dh den Status "Aktualisieren erforderlich" löschen) oder die Nichtübereinstimmungszählung auf einen Wert ungleich Null erhöhen?

dmesg sagt:

[150695.091180] md: requested-resync of RAID array mdX [150695.092285] md: mdX: requested-resync done. 

Das sieht auch so aus, als hätte der Schrubber nichts getan.

Fragen

  • Wie rufe ich die eigentliche Bereinigung auf?
  • Angenommen, das Laufwerk ist nicht fehlerhaft - wie aktualisiere ich das Array?
  • Wenn das Laufwerk fehlerhaft war (dh die Aktualisierung lief sofort in einen Fehler) - wie würde ich das sehen? Ich gehe davon aus, dass dmesg einige I / O-Fehler aufweisen sollte. (Ich sehe keine von ihnen ...)

System Information

Ich verwende Armbian basierend auf Ubuntu 16.04.4 LTS. LVM-Version:

root@picard:~# lvm version LVM version: 2.02.133(2) (2015-10-30) Library version: 1.02.110 (2015-10-30) Driver version: 4.37.0 
0

0 Antworten auf die Frage