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

推荐订阅源

Simon Willison's Weblog
Simon Willison's Weblog
P
Privacy International News Feed
www.infosecurity-magazine.com
www.infosecurity-magazine.com
T
Troy Hunt's Blog
Hacker News - Newest:
Hacker News - Newest: "LLM"
Attack and Defense Labs
Attack and Defense Labs
S
Secure Thoughts
V2EX - 技术
V2EX - 技术
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
O
OpenAI News
Cloudbric
Cloudbric
Google Online Security Blog
Google Online Security Blog
Schneier on Security
Schneier on Security
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Help Net Security
Help Net Security
Cyberwarzone
Cyberwarzone
G
GRAHAM CLULEY
L
Lohrmann on Cybersecurity
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Spread Privacy
Spread Privacy
NISL@THU
NISL@THU
N
News and Events Feed by Topic
T
Tenable Blog
S
Security @ Cisco Blogs
N
News and Events Feed by Topic
The Hacker News
The Hacker News
C
CXSECURITY Database RSS Feed - CXSecurity.com
宝玉的分享
宝玉的分享
月光博客
月光博客
酷 壳 – CoolShell
酷 壳 – CoolShell
美团技术团队
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Google DeepMind News
Google DeepMind News
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
T
Tailwind CSS Blog
V
Visual Studio Blog
P
Proofpoint News Feed
Webroot Blog
Webroot Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
博客园 - 三生石上(FineUI控件)
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Jina AI
Jina AI
雷峰网
雷峰网
T
The Blog of Author Tim Ferriss
Hugging Face - Blog
Hugging Face - Blog
腾讯CDC
L
LangChain Blog
The Register - Security
The Register - Security
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园 - 聂微东

老鱼的博客

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/。


暂时还没有任何评论。