Linux怎么打开ssd的cache,如何安装和使用flashcache/bcache将HDD缓存到SSD?

问题描述

我想知道是否有人试图安装和运行使用flashcache或bcache构建的内核进行SSD缓存?

你是怎么做到的?

最佳解决思路

好吧,我们得到了一个bcache答案,但没有flashcache的答案。我之所以选择flashcache是​​因为我已经有了一个安装,所以bcache是​​不可能的。对我而言,设置似乎也更容易。我选择了DKMS方法,所以每次进行内核升级时都不会遇到重建模块/工具的问题。

这些步骤在Github上的README-DKMS中列出。

构建模块

您要做的第一件事是安装构建先决条件:

sudo apt-get install dkms build-essential linux-headers-$(uname -r) git

然后抓住来源:

git clone git://github.com/facebook/flashcache; cd flashcache

构建和安装模块:

make -f Makefile.dkms

创建一个flashcache设备

(在这个例子中我使用了写回缓存 – 默认 – 但是flashcache也可以做writearound和writethrough)

缓存non-root(未安装在/)设备

sudo flashcache_create -p back fcache /dev/sdbX /dev/sdaX其中fcache是​​创建的设备(/dev /mapper /fcache),/dev /sdaX是SSD分区(或整个磁盘),/dev /sdbX是HDD分区。

缓存您的根设备

如果您正在缓存根设备,还有一些步骤。这部分你需要一个Ubuntu LiveCD /USB。

cd /path/to/flashcache/source

make -f Makefile.dkms boot_conf

编辑/boot/grub/grub.cnf和/etc /fstab从/dev /mapper /fcache启动(我不相信这一步确实是必要的,但它说的是)。请务必记下原始根设备的UUID。

使用LiveCD /LiveUSB重新启动。

挂载根设备:mount /dev/sda4 /mnt(/dev /sda4是我的Linux根分区)

cd /mnt/path/to/flashcache/source

sudo apt-get install dkms build-essential linux-headers-$(uname -r)

make; sudo make install无需在实时环境中进行整个DKMS设置

卸载根设备sudo umount /mnt

sudo flashcache_create -p back fcache /dev/sdbX /dev/disk/by-uuid/[UUID]其中fcache是​​创建的设备(它应该与放在/etc /fstab和/boot/grub/grub.cnf中相同,在我的情况下是fcache),/dev /sdbX是SSD分区(或整个disk)和[UUID]是根分区的UUID。

重启!

使用根设备时需要注意

当flashcache用于根设备时,一个小麻烦是grub-probe无法检测到根设备并且可能搞乱你的启动菜单,因此你有两个Ubuntu entires。但是,由于上面的make -f Makefile.dkms boot_conf步骤会在您的initrd中安装一些将检测并使用flashcache设备的脚本,因此您在所有实际中使用它并不重要。

次佳解决思路

有一个转换工具可以在现有设备上启用bcache(披露:我写了它)。这也是进行全新安装的方法,因为当前的发行版安装程序不知道如何创建bcache设备(在这种情况下:首先安装到HDD)。

BCACHE需要的Linux 3.10或更高版本,这是俏皮,并且可以从http://kernel.ubuntu.com/~kernel-ppa/mainline/?C=M;O=D(查找最新发布标签,目前v3.11.5-saucy,并安装符合你的架构的deb包)手动安装。

bcache-tools和blocks可以从my storage ppa安装。

第三种解决思路

事先警告:bcache不能用于现有的Ubuntu安装。如果您的操作系统需要SSD缓存,则应等待可能设置SSD缓存的Ubuntu安装程序的未来版本或特殊版本。请在此处查看Oli的回答:Does bcache require a fresh installation?

对于其他想要使用bcache驱动器获取non-OS数据的人:

首先要做的是使用内核主线PPA使用13.04或更早版本来升级内核。使用此说明可在此处找到:

确保在启动时选择3.9或更高版本的内核,否则它将无法运行,您的驱动器将消失。

安装bcache-tools,此时您必须从git存储库安装:

git clone http://evilpiepirate.org/git/bcache-tools.git

如果你设法用debian打包bcache-tools,请告诉我们,这个问题会为你更新。 (bcache-tools的构建依赖项是uuid-dev和libblkid-dev。必须安装它们才能构建bcache-tools。)

准备好所有工具后,您就可以尝试按照此处的指南操作:

本指南介绍如何格式化驱动器(SSD和硬盘驱动器),然后将它们连接在一起以使用bcache创建新的设备块。如果您发现说明令人困惑,请发表评论,我将简化更新此答案。

第四种思路

我以为我会来这里评论安装新内核时发生的事情。我只在我的/home /文件夹分区中使用flashcache。我安装了一个新内核,启动进入它并在启动时停止并说它找不到/dev /mapper /home_cached,当你收到这条消息时我有3个选择,我选择以root用户身份登录试图解决它。我首先尝试加载flashcache模块,它说它找不到它。所以我想我必须为我刚安装的这个新内核编译和安装它。我仍然将/flashcache /文件夹放在/root /中,所以我进入它并运行

make -f Makefile.dkms boot_conf

然后我跑了

make install

然后我加载了flashcache模块

modprobe flashcache

然后我只需要加载我现有的flashcache设备

flashcache_load /dev/sdb1

然后用我的主分区挂载

mount /home

然后退出以root用户身份登录并退出命令行,它应该继续正常启动。全部完成!

参考资料

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值