
Ich habe ein logisches LVM-Volume über dem MDADM RAID1-Setup. Ich versuche, diesem logischen Volume ein SSD-Gerät als Cache hinzuzufügen über:
vgextend dataVG /dev/sdd
lvcreate --type cache --cachemode writethrough -L 120G -n dataLV_cachepool dataVG/dataLV /dev/sdd
Alles scheint in Ordnung zu sein, bis ich mein System neu starte. Nach dem Neustart startet es nicht und ich lande im Wiederherstellungsmodus (Ubuntu).
Während des Bootvorgangs werden mir folgende Fehler angezeigt:
lvm[740]: dataVG: autoactivation failed.
systemd[1]: lvm2-pvscan@9:2.service: Main process exited, code=exited, status=5/NOTINSTALLED
systemd[1]: lvm2-pvscan@9:2.service: Failed with result 'exit-code'.
systemd[1]: Failed to start LVM2 PV scan on device 9:2.
lvm[774]: /usr/sbin/cache_check: execvp failed: No such file or directory
lvm[774]: Check of pool dataVG/dataLV_cachepool failed (status:2). Manual repair required!
lvm[774]: 0 logical volume(s) in volume group "dataVG" now active
lvm[774]: dataVG: autoactivation failed.
systemd[1]: Started File System Check on /dev/mapper/BACKUPVG-mainbackup.
systemd[1]: lvm2-pvscan@8:16.service: Main process exited, code=exited, status=5/NOTINSTALLED
systemd[1]: lvm2-pvscan@8:16.service: Failed with result 'exit-code'.
systemd[1]: Failed to start LVM2 PV scan on device 8:16.
systemd[1]: Mounting /mnt/mainbackup...
systemd[1]: Mounted /mnt/mainbackup.
kernel: EXT4-fs (dm-1): mounted filesystem with ordered data mode. Opts: (null)
systemd[1]: dev-mapper-dataVG\x2dataLV.device: Job dev-mapper-dataVG\x2dataLV.device/start timed out.
systemd[1]: Timed out waiting for device dev-mapper-dataVG\x2dataLV.device.
systemd[1]: Dependency failed for /mnt/dataLV.
systemd[1]: Dependency failed for Local File Systems.
systemd[1]: local-fs.target: Job local-fs.target/start failed with result 'dependency'.
systemd[1]: local-fs.target: Triggering OnFailure= dependencies.
systemd[1]: mnt-dataLV.mount: Job mnt-dataLV.mount/start failed with result 'dependency'.
systemd[1]: Dependency failed for File System Check on /dev/mapper/dataVG-dataLV.
systemd[1]: systemd-fsck@dev-mapper-dataVG\x2dataLV.service: Job systemd-fsck@dev-mapper-dataVG\x2dataLV.service/start failed with resu
systemd[1]: dev-mapper-dataVG\x2dataLV.device: Job dev-mapper-dataVG\x2dataLV.device/start failed with result 'timeout'.
Es funktioniert nur, wenn ich das zwischengespeicherte Laufwerk aus der VG entferne:
lvconvert --uncache dataVG/dataLV
Ich bin nicht sicher, wie ich dieses Problem angehen soll ...
LVM-Version:
LVM version: 2.02.176(2) (2017-11-03)
Library version: 1.02.145 (2017-11-03)
Antwort1
Ich habe das gleiche Problem unter Debian 8. Die Lösung besteht aus zwei Schritten.
Erstens werden die Systeme mit inaktiven LVMs für zwischengespeicherte LVs gebootet, weil erforderliche Module während des Bootvorgangs nicht geladen werden.
Der Versuch, sie manuell zu aktivieren, führt zu einem Fehler:
vgchange -a y vg0/home_cache
/usr/sbin/cache_check: execvp failed: No such file or directory
Check of pool vg0/home_cache failed (status:2). Manual repair required!
Tatsächlich existiert der Befehl /usr/sbin/cache_check nicht. Beheben Sie das Problem, indem Sie Folgendes installieren:
apt-get install thin-provisioning-tools
Zweitens beheben Sie das Problem, das dazu führt, dass LVM-Cache-Volumes nicht aktiviert werden. Es gibt einige Module, die im Initramfs-Boot-Image vorhanden sein müssen. Fügen Sie sie zu den erzwungenen Modulen hinzu, um Folgendes einzuschließen:
sudo echo "dm_cache" >> /etc/initramfs-tools/modules
sudo echo "dm_cache_mq" >> /etc/initramfs-tools/modules
sudo echo "dm_persistent_data" >> /etc/initramfs-tools/modules
sudo echo "dm_bufio" >> /etc/initramfs-tools/modules
Und danach:
update-initramfs -k `uname -r` -u -t
Und sichern Sie sich schließlich ab durch:
update-grub
Überprüfen Sie alles zweimal und starten Sie abschließend neu.
Antwort2
Ich glaube, Sie benötigen ein Cache-Kernelmodul (dm-cache) und /usr/sbin/cache_*-Tools in Ihrer Init-Ramdisk. In Fedora wird dies von Dracut erledigt, im Debian- (und Ubuntu-)Paket von initramfs-tools.