我在用ubuntu测试树莓皮4的bache。我之所以选择ubuntu,是因为我找到了标准的raspbian,但是bcache作为内核模块没有正确加载,也出现了一些问题。我试着排除故障,但是后来我搬到了ubuntu,它马上就起作用了。
我的装置是这样的。
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。首先,我测试了欠压误差,发现一切正常.
SSD -> /dev/sda
HDD -> /dev/sdb然后,我在两个驱动器上创建一个分区,并创建bcache,如下所示。
make-bcache -B /dev/sdb1
make-bcache -C /dev/sda1然后在/datastore上挂载/dev/bcache0
然后,我按以下方式附加了缓存设备
echo MYUUID > /sys/block/bcache0/bcache/attach然后,我启用了回写缓存。
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设置为零
echo 0 > /sys/block/bcache0/bcache/sequential_cutoff在此之后,我可以立即看到SSD设备缓存点击量增加。同时我还在不停地运行iostat。我可以从iostat看到SSD被直接访问。但是几分钟后,我的filezilla客户端挂起,我无法重新启动FTP上传流。当我尝试访问bcache0挂载时,它真的很慢。缓存状态显示为“脏”。
然后我重新启动pi并重新连接设备。并设置在以下
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类型的设置。
发布于 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
lsusb然后,我必须编辑cmdline.txt并添加文件的下面一行。其中aaaa等于VID,bbbb等于PID。
usb-storage.quirks=aaaa:bbbb:u然后重新启动pi。重新启动后,我的SSD是稳定的,并且在我的kern.log中看不到任何有关UAS接口的错误。
除此之外,bcache设置在Raspberry pi 4中运行得非常完美。
https://unix.stackexchange.com/questions/556250
复制相似问题