Montieren Sie zwischengespeicherte LVm2-Volumes vom Rettungssystem

482
K.A.B.

Ich habe das folgende Setup:

root@system:~# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 30G 0 disk  ├─sda1 8:1 0 1M 0 part  ├─sda2 8:2 0 977M 0 part  │ └─md0 9:0 0 976,4M 0 raid1 /boot └─sda3 8:3 0 29G 0 part  └─md1 9:1 0 29G 0 raid1  └─vg00-root_corig 253:3 0 29G 0 lvm  └─vg00-root 253:0 0 29G 0 lvm / sdb 8:16 0 8G 0 disk  ├─vg00-cache_cdata 253:1 0 8G 0 lvm  │ └─vg00-root 253:0 0 29G 0 lvm / └─vg00-cache_cmeta 253:2 0 32M 0 lvm  └─vg00-root 253:0 0 29G 0 lvm / sr0 11:0 1 1024M 0 rom  root@system:~# lvs -a LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert [cache] vg00 Cwi---C--- 7,93g 0,51 3,22 0,00  [cache_cdata] vg00 Cwi-ao---- 7,93g  [cache_cmeta] vg00 ewi-ao---- 32,00m  [lvol0_pmspare] vg00 ewi------- 32,00m  root vg00 Cwi-aoC--- 29,02g [cache] [root_corig] 0,51 3,22 0,00  [root_corig] vg00 owi-aoC--- 29,02g  

Wie Sie sehen können habe ich eine Volumengruppe vg00, die sich über zwei physikalische Geräte erstreckt sda(sda3)und sdb. Das LV rootwird auf einem Raid1 platziert md1. Dieses RAID-Gerät hat nur eine Festplatte. Dies macht für die Produktion keinen Sinn. Bitte ignorieren Sie das für den Moment. Es funktioniert in anderen Setups und ist hier nicht relevant.

Der rootLV verwendet einen Writethrough-Cache mit dm-cache.

Mein Problem: ZB wenn das System aus irgendeinem Grund nicht booten kann, muss ich meinen Lv mounten, rootder die Root-Dateien enthält, um Dateien wiederherzustellen oder eine fehlerhafte Installation zu reparieren. Um dies zu tun, boote ich in eine Rettungsweste und montiere den Raid1:

root@rescue:/# mdadm --assemble md1 /dev/sda3 mdadm: /dev/md/md1 has been started with 1 drive. 

Ich kann den LV jedoch nicht aktivieren root:

root@rescue:/# lvchange -a y vg00/root WARNING: Failed to connect to lvmetad. Falling back to device scanning. /dev/mapper/vg00-cache_cmeta: open failed: No such file or directory 

vgchange -a y vg00 erzeugt das gleiche Ergebnis.

Wenn Sie es oft genug versuchen, werden die erforderlichen lvs cache_cmetaund cache_cdatamanchmal aktiv ( lvs -a). Wenn das der Fall ist kann ich die Device - Mapper - Dateien mit erstellen vgmknodesund auszuführen lvchange -a y vg00/rootoder vgchange -a yzu aktivieren rootund das Gerät wie gewohnt zu montieren. Dies ist jedoch nicht zuverlässig.

Ich kann die Cache-LVs nicht manuell aktivieren:

root@rescue:/# lvchange -a y vg00/cache_cmeta WARNING: Failed to connect to lvmetad. Falling back to device scanning. Unable to change internal LV vg00/cache_cmeta directly. 

Frage: Wie kann ich einen zwischengespeicherten Lv richtig aktivieren?

Ich kann den LV entpacken, mit lvconcert --uncache vg00/rootdem er zuverlässig arbeitet. Ich suche jedoch nach einer zuverlässigen Methode, den rootLV zu montieren, ohne ihn vorher zu entschlüsseln.

0
Von [this] (https://askubuntu.com/a/752282) (und ähnlichen Daten konnte ich durch [Suchen] (https://www.google.com/search?q=Failed+to+connect) suchen + an + lvmetad)), sollten Sie entweder lvmedad (ein Dämon) starten, bevor Sie versuchen, andere LVM-Operationen auszuführen, oder es in der LVM-Konfiguration deaktivieren und initramfs aktualisieren Sie werden nicht davon abhängig sein, dass dieser Daemon aktiv ist. kostix vor 5 Jahren 0
lvmetad steht nicht zur Rettung zur Verfügung. Sie sollte den Betrieb nicht beeinflussen. Ich kann es trotzdem über config deaktivieren und sehen, was passiert, aber ich bezweifle, dass es einen Unterschied macht. Ich kann meine initramfs nicht ohne Zugriff auf meine rootfs aktualisieren. K.A.B. vor 5 Jahren 0

0 Antworten auf die Frage