惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

美团技术团队
D
DataBreaches.Net
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
D
Docker
N
Netflix TechBlog - Medium
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
C
Check Point Blog
腾讯CDC
Stack Overflow Blog
Stack Overflow Blog
V
Visual Studio Blog
IT之家
IT之家
月光博客
月光博客
U
Unit 42
K
Kaspersky official blog
T
Threatpost
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
GbyAI
GbyAI
P
Proofpoint News Feed
Last Week in AI
Last Week in AI
云风的 BLOG
云风的 BLOG
酷 壳 – CoolShell
酷 壳 – CoolShell
I
InfoQ
Engineering at Meta
Engineering at Meta
Recorded Future
Recorded Future
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
S
Security @ Cisco Blogs
MyScale Blog
MyScale Blog
大猫的无限游戏
大猫的无限游戏
Security Archives - TechRepublic
Security Archives - TechRepublic
Webroot Blog
Webroot Blog
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Hacker News - Newest:
Hacker News - Newest: "LLM"
S
Schneier on Security
S
Secure Thoughts
The Register - Security
The Register - Security
B
Blog RSS Feed
The Last Watchdog
The Last Watchdog
P
Palo Alto Networks Blog
爱范儿
爱范儿
B
Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
N
News and Events Feed by Topic
阮一峰的网络日志
阮一峰的网络日志
L
LINUX DO - 热门话题
C
Cisco Blogs
Spread Privacy
Spread Privacy
F
Full Disclosure
博客园 - 聂微东
T
The Blog of Author Tim Ferriss

老鱼的博客

DOS 内存粗解 - 老鱼的博客 Qt Quick 编译器简介 - 老鱼的博客 在 openSUSE 底下跨平台编译 mingw64 程序 激活 Python 虚拟环境 - 老鱼的博客 安装与编译最简 windows qt - 老鱼的博客 如何存储密码(KDF) - 老鱼的博客 静态编译 Qt 简单教程 - 老鱼的博客 Linux 下超频 Ryzen 1700 - 老鱼的博客 怎么样在 virtualenv 里面使用 PyQt - 老鱼的博客
bcache 的使用 - 老鱼的博客
2017-11-17 · via 老鱼的博客

bcache 的使用


类型:LinuxApp,创建时间:Nov. 17, 2017, 2:50 p.m.

标题无“转载”即原创文章,版权所有。转载请注明来源:http://hgoldfish.com/blogs/article/106/。

下午花了一些时间测试 bcache 与 lvm cache 的使用。lvm cache 相对来说功能比较丰富,能够跟 raid1 一起组 lv,而 bcache 就只能简单地处理 cache。从安全性与性能的角度来看,我倒觉得 bcache 更为专业一些。接下来说一下 bcache 的基本使用:

首先要安装 bcache-tools

# zypper install bcache-tools

由两个设备创建 bcache 是很简单的事,假设 sda 是 ssd,而 sdb 是 hdd,

# make-bcache -w 4k -b 2m -C /dev/sda -B /dev/sdb

其中的-w参数指定底层设备的簇大小,而-b参数指定 bcache 管理的块大小。-C指定 cache 设备,-B指定 backend 设备。如果有多个 backend 设备可以写多个。

有些书籍或者 wiki 会介绍分别创建 cache 和 back 设备,然后再把 cache 设备注册到 bcache0 里面也是可以。。不过我直接一条命令会更简单一点。

再接下来的使用就没啥特殊的了。创建文件系统,挂载。。

bcache 不会把顺序写入的数据放在 cache 上面。所以如果既要做 raid 又要做 ssd cache 的时候,应该把 bcache 放在最上层。否则,在经过 raid 一层以后,顺序写的 io 操作有时候会变成随机写,bcache 不会识别,就会发生写放大,降低 IO 性能。

bcache 的操作大多可以通过内核的接口来做:

/sys/block/sdb/bcache里面列出了设备相关的 bcache 操作。比如:

  1. 把停止的 bcache 设备跑起来。这一招经常用于 cache 设备丢失的时候用。

    # echo 1 > /sys/block/sdb/bcache/running
    
  2. 把正在运行的 bcache 设备停止。

    # echo 1 > /sys/block/sdb/bcache/stop
    
  3. 查看状态:

    # cat /sys/block/sdb/bcache/state
    
  4. 修改 writeback 模式:

    # echo writethrough > /sys/block/bcache0/bcache/cache_mode
    
  5. 把 cache 上面的数据刷到 back 上面:

    # echo 0 > /sys/block/bcache0/bcache/writeback_percent
    
  6. 当 ssd 丢失的时候,可以看看有多少脏数据还没有写到 hdd 上面,这里的 sdb 是 back 设备:

    # cat /sys/block/sdb/bcache/dirty_data
    

    跑起来:

    # echo 1 > /sys/block/sdb/bcache/running
    

有两个问题未解决:

  1. 有时候 bcache 做错了,想把磁盘清掉重新弄。比如使用wipefs -af命令,系统会提示拒绝访问。不知道要怎么处理,只好进入 rescue 系统运行wipefs了。

  2. 把 root 分区安装到 bcache,虽然有很多资料可以做。但建议大家就算了,root 分区一般不是很大,放 ssd 上面是值得的。一块 128g 的 ssd 还能剩下 64g 做 bcache 也足够了。

标题无“转载”即原创文章,版权所有。转载请注明来源:http://hgoldfish.com/blogs/article/106/。


暂时还没有任何评论。