首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用raspberry pi 4在ubuntu上测试bcache

用raspberry pi 4在ubuntu上测试bcache
EN

Unix & Linux用户
提问于 2019-12-09 04:33:08
回答 1查看 966关注 0票数 1

我在用ubuntu测试树莓皮4的bache。我之所以选择ubuntu,是因为我找到了标准的raspbian,但是bcache作为内核模块没有正确加载,也出现了一些问题。我试着排除故障,但是后来我搬到了ubuntu,它马上就起作用了。

我的装置是这样的。

代码语言:javascript
复制
1 x 1TB HGST 5400RPM 2.5 laptop hard disk
1 x 256GB WD Green 2.5 SSD
Raspberry pi 4 4GB model with large heat-sink for cooling and 4A power.

我用USB3.0端口将HDD和SSD连接到raspberry pi (都是外部驱动的),并引导到ubuntu。首先,我测试了欠压误差,发现一切正常.

代码语言:javascript
复制
SSD -> /dev/sda
HDD -> /dev/sdb

然后,我在两个驱动器上创建一个分区,并创建bcache,如下所示。

代码语言:javascript
复制
make-bcache -B /dev/sdb1
make-bcache -C /dev/sda1

然后在/datastore上挂载/dev/bcache0

然后,我按以下方式附加了缓存设备

代码语言:javascript
复制
echo MYUUID > /sys/block/bcache0/bcache/attach

然后,我启用了回写缓存。

代码语言:javascript
复制
echo writeback > /sys/block/bcache0/bcache/cache_mode

然后我安装了vsftpd服务器,并将根ftp作为我的bcache0挂载点,并开始测试。前几个测试,我可以上传文件113 most,我注意到大多数文件直接写入支持设备,即使缓存是附加的。

当我使用bcache-状态脚本https://gist.github.com/damoxc/6267899测试状态时,我看到大多数写操作没有缓存并直接写入备份设备,113 most直接来自机械硬盘驱动器:-O?

然后我开始细调。如关于故障排除的建议,本https://www.kernel.org/doc/Documentation/bcache.txt文档的性能部分

首先,通过执行以下命令将sequential_cutoff设置为零

代码语言:javascript
复制
echo 0 > /sys/block/bcache0/bcache/sequential_cutoff

在此之后,我可以立即看到SSD设备缓存点击量增加。同时我还在不停地运行iostat。我可以从iostat看到SSD被直接访问。但是几分钟后,我的filezilla客户端挂起,我无法重新启动FTP上传流。当我尝试访问bcache0挂载时,它真的很慢。缓存状态显示为“脏”。

然后我重新启动pi并重新连接设备。并设置在以下

代码语言:javascript
复制
echo 0 > /sys/fs/bcache/MYUUID/congested_read_threshold_us
echo 0 > /sys/fs/bcache/MYUUID/congested_write_threshold_us

根据https://www.kernel.org/doc/Documentation/bcache.txt的文章,这是为了避免bcache跟踪备份设备延迟。但即使在这个选择之后。我的FTP上传流不断崩溃。然后,我将全部设置为默认设置。尽管如此,由于大量的文件上传,它仍然会崩溃。

并且我注意到在测试pi CPU没有得到充分利用。

使用pi41Gbps以太网可以获得的最大吞吐量是930 1Gbps,这是非常好的。HGST驱动器,当我用水晶磁盘标记测试时,NTFS能够写高达90 90MBps。看来我可以在pi上得到113 file,因为文件系统是ext4。

如果我能得到超过80 80MBps的ftp上传速度,我是可以的。我的问题是

为什么FTP流在与bcache一起使用时不断崩溃,以及为什么bcache安装变得缓慢超时。

为什么即使将sequential_cutoff设置为0,缓存使用率也非常低?

以前有人用Raspberry PI 4测试过bcache吗?如果是,如何正确地使用SSD进行缓存?

最后,有人能解释一下bcache在写回模式下是如何工作的吗?我只使用这个档案数据,我不需要访问热数据的SSD类型的设置。

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2019-12-10 03:59:40

通过https://www.raspberrypi.org/forums/viewtopic.php?t=245931这个主题的说明,我设法解决了这个问题。

这是由于Raspberry PI 4 USB3.0 UASP驱动程序问题,它使我的外部SSD连接断续。在为忽略UAS接口而向cmdline.txt添加行之后,我的SSD就像bcache一样完美无缺地工作。

基本上,您需要找到您的外部USB3.0SSD/ Enclosure和PID

代码语言:javascript
复制
lsusb

然后,我必须编辑cmdline.txt并添加文件的下面一行。其中aaaa等于VID,bbbb等于PID。

代码语言:javascript
复制
usb-storage.quirks=aaaa:bbbb:u

然后重新启动pi。重新启动后,我的SSD是稳定的,并且在我的kern.log中看不到任何有关UAS接口的错误。

除此之外,bcache设置在Raspberry pi 4中运行得非常完美。

票数 1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/556250

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档