当 LVM 卷被缓存时,Ubuntu 18.04 将无法启动

当 LVM 卷被缓存时,Ubuntu 18.04 将无法启动

我有一台 Ubuntu 18.04 PC,其磁盘布局如下:

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

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  

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

为了加快磁盘访问速度,我配置lvm2使用/dev/sdd2(SSD) 作为缓存卷lvmcache。我首先尝试缓存所有 lvm 卷。结果并不好。

期间update-grub出现了很多错误,但当我删除启动卷上的缓存后,错误就消失了。之后我做了一个update-initramfs -u -k allupdate-grub and all,看起来不错,缓存工作得很好,速度也很快。

现在启动 - 灾难!无法启动。我收到一些消息,说内核不支持缓存或类似的东西,并抱怨启动过程无法连接lvmetad(它甚至之前就抱怨过,但 lvm 扫描找到了 lvm 卷)。

幸运的是,我最终找到了一个initramfsbusybox。我之前从未听说过,但它有一个 lvm 命令,允许我使用常规的 lv 类型命令,例如lvremove,在删除缓存卷后,我就可以启动了。

长话短说,我尝试将 lvm 缓存限制在仅一个卷(不是启动卷)上,但在所有情况下,启动都以某种方式失败。现在,如输出所示lsblk,我有一个由两个 seagate hdd 组成的 raid1 磁盘/dev/md0,并且在此基础上,我创建了多个 lvm 卷。

我希望有人能想出办法来让 lvm 缓存启动 - 如果可能的话,还可以修复lvmetad启动问题。我应该补充一下,我也尝试initramfs通过添加模块/etc/initramfs-tools/modules。我添加了dm-cache.ko,它可能改变了启动问题的性质(我没有确切的描述)

答案1

经过深入的谷歌搜索后,我找到了解决方案。

本质上,问题归结为 Ubuntu 18.04 initramfs 框架缺少重要组件和配置。您需要执行以下操作:

sudo apt 更新

sudo apt 升级

apt 安装 initramfs-tools 精简配置工具

(当然除了 LVM2)

然后你必须按照这个方法来修复 Ubuntu 18.04 中的 initramfs 缺陷

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

根据 lvmcache 的手册页配置你的 lvmcach

sudo update-initramfs -u -k 全部

sudo 更新-grub2

重启并享受!

结果令人惊叹。就像我在一台 5 年前的 PC 上装了一个速度守护进程 :-)

相关内容