2

I have an Ubuntu 18.04 PC with the following disk layout :

======================

lsblk
NAME                MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT
sda                   8:0    0 931,5G  0 disk  
└─sda1                8:1    0 931,5G  0 part  
  └─md0               9:0    0 931,4G  0 raid1 
    ├─lvraid0-root  253:0    0   9,3G  0 lvm   /
    ├─lvraid0-usr   253:1    0  26,4G  0 lvm   /usr
    ├─lvraid0-boot  253:2    0   952M  0 lvm   /boot
    ├─lvraid0-var   253:3    0  27,1G  0 lvm   /var
    ├─lvraid0-local 253:4    0     3G  0 lvm   /usr/local
    └─lvraid0-home  253:5    0 801,9G  0 lvm   /home
sdb                   8:16   1  28,9G  0 disk  
├─sdb1                8:17   1     2G  0 part  /media/jan/Ubuntu 18.04.3 LTS amd
└─sdb2                8:18   1   2,4M  0 part  
sdc                   8:32   0 931,5G  0 disk  
└─sdc1                8:33   0 931,5G  0 part  
  └─md0               9:0    0 931,4G  0 raid1 
    ├─lvraid0-root  253:0    0   9,3G  0 lvm   /
    ├─lvraid0-usr   253:1    0  26,4G  0 lvm   /usr
    ├─lvraid0-boot  253:2    0   952M  0 lvm   /boot
    ├─lvraid0-var   253:3    0  27,1G  0 lvm   /var
    ├─lvraid0-local 253:4    0     3G  0 lvm   /usr/local
    └─lvraid0-home  253:5    0 801,9G  0 lvm   /home
sdd                   8:48   0 238,5G  0 disk  
├─sdd1                8:49   0    64G  0 part  [SWAP]
└─sdd2                8:50   0 174,5G  0 part  

===================

In order to speed up disk access I configured lvm2 to use /dev/sdd2 (SSD) as a cache volume using lvmcache. I first tried caching all lvm volumes. That did not go well.

During update-grub there ware a lot of errors which disappeard when I removed the cache on boot volume. After this I did a update-initramfs -u -k all and update-grub and all, looked well and the caching worked like a charm with impressive speed.

Now boot - disaster ! No boot. I got some messages that the kernel did not support caching or something like that, and complaints that the boot process could not connect to lvmetad (it complained about even before, but lvm scanning found lvm volumes).

Luckily I ended up in an initramfs busybox. I had never heard of that before, but it had an lvm command that allowed me to use regular lv- type commands like lvremove and after removing cache volumes I was able to boot.

To make a long story relatively short, I tried to limit lvm caching to only one of volumes (not boot) but in all cases booting failed in some way. Now as shown in the lsblk output, I have a raid1 disk /dev/md0 made from two seagate hdds, and on top of that I have created a number of lvm volumes.

I would hope someone have a trick up their sleeve to enable the lvm cache to boot - and if possible also fix the lvmetad boot problem. I should add that I also tried to add modules to initramfs via /etc/initramfs-tools/modules. I added dm-cache.ko and it may have changed the boot problem nature (I dont have an exact description)

0

After some intensive googling I have found a solution.

Essentially the problem comes down to Ubuntu 18.04 initramfs framework is missing important components and configurations. You need to do the following :

sudo apt update

sudo apt upgrade

apt install initramfs-tools thin-provisioning toools

(in addition to LVM2 of course)

Then you have to follow this recipe to fix the initramfs shortcomings in Ubuntu 18.04

http://scyu.logdown.com/posts/519001-ubuntu-lvmcache-setup

configure your lvmcach in accordans with manpage for lvmcache

sudo update-initramfs -u -k all

sudo update-grub2

reboot and enjoy !

The result is amazing. It's like I have a speed daemon now on a 5 year old PC :-)

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.