我有一台 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 all
和update-grub and all
,看起来不错,缓存工作得很好,速度也很快。
现在启动 - 灾难!无法启动。我收到一些消息,说内核不支持缓存或类似的东西,并抱怨启动过程无法连接lvmetad
(它甚至之前就抱怨过,但 lvm 扫描找到了 lvm 卷)。
幸运的是,我最终找到了一个initramfs
busybox。我之前从未听说过,但它有一个 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 上装了一个速度守护进程 :-)