Ubuntu Kylin 上如何用 bcache 实现 SSD 缓存

最近在台式机上装 Ubuntu Kylin 18.04,台式机有个机械硬盘,感觉用起来很慢,就找了块旧的 128G 的 SSD,想提升一下速度。但毕竟 128G 的盘比较小,于是就想能不能那它做高速缓存,给那个大的机械硬盘提速。

简单查了一下网上的资料,有几个不同的方案,其中 bcache 的方案相对比较成熟,操作上也比较简单,于是就开干。

刚开始,手工做了磁盘分区,然后把 /dev/bcache0 作为根目录来挂载,安装完毕后,系统无法正常启动,于是又查了资料,原来 grub2 并不支持以 bcache 的块类型作为根分区。几番尝试无果后,只好换用其它方案。最终用 LVM 的方案调试成功,下面简单记录方法。

基本环境

  1. 机械硬盘 /dev/sda,创建两个分区, sda1 500M,作为引导分区,sda2 作为其它部分。
  2. SSD /dev/sdb,创建三个分区,sdb1 作为 swap,sdb2 留空,sdb3 10G。

安装配置过程

以下命令均需使用 root 身份执行。

1. 创建 LVM
pvcreate /dev/sdb3
vgcreate kylin /dev/sdb3
lvcreate -L8G -nsystem kylin
2. 安装系统

选择手工的安装方式,指定 /dev/sda1 为 /boot,/dev/kylin/system 为 /,安装完毕后重启。

3. 配置 bcache

将 /dev/sda2 作为存储数据的盘,将 /dev/sdb2 作为缓存。

apt-get install bcache-tools
wipefs -a /dev/sda2
wipefs -a /dev/sdb2
make-bcache -B /dev/sda2 -C /dev/sdb2
4. 迁移数据

目的是把之前的 pv 移除,让整个 vg 基于 bcache 运行。

pvcreate /dev/bcache0
vgextend kylin /dev/bcache0 # 扩展 vg
pvmove /dev/sdb3 # 从此 pv 迁移数据到其它 pv
vgreduce kylin /dev/sdb3 # 从 vg 中移除此 pv
5. 扩展系统盘

把系统盘从 8G 扩为 100G

lvresize -L100G /dev/kylin/system
resize2fs /dev/kylin/system

以上步骤完成后,重启系统。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容