Linux下如何合理利用SSD和HDD

之前尝试过lvm-cache与bcache,发现性能都挺。。。

这篇文章就想记录下我目前使用的新方案

硬盘组合是:

这里简单说下我之前使用的方案吧:

俩块HDD使用mdadm组raid1,使用luks加密,并格式化为bcache后端设备,使用btrfs文件系统
SSD分512M为EFI分区,余下空间格式化为bcache的缓存设备。

看起来没什么毛病,但是实际使用时,如果有大量/大型文件的读写就会造成系统卡顿,且一些命令都会卡住
忍到了最近,入了块能容下之前系统数据的移动硬盘备份包了数据

本来想换回lvm-cache的,但觉得这货应该也不会比bcache好到哪里

于是想到了工作时做chroot环境用到的mount --bind xxx xxx

经过实验和重装是可行的:

...
/dev/mapper/data    /mnt/data    btrfs    defaults    0 0
/mnt/data/home      /home        none     bind        0 0
/mnt/data/var       /var         none     bind        0 0
...

这里的/dev/mapper/data是mdadm组raid1使用luks加密后的块设备,在/etc/crypttab里写入解密的配置让系统启动时自动解密为/dev/mapper/data
把它当作数据盘挂载在/mnt/data后在里面创建home和var目录,之所以选择这俩目录挂载到机械硬盘是因为这俩个目录的读写最频繁且数据量最大(home不用说,var是各类软件丢数据和日志的地方)

如果你固态硬盘足够大或者对var目录里的读写有性能要求可以改成如下:

...
/dev/mapper/data    /mnt/data    btrfs    defaults    0 0
/mnt/data           /home        none     bind        0 0
...

要注意的是/dev/mapper/data一定要写在它们前面,因为系统是按顺序挂载的

添加新评论