在我的本地文件服务器上,我在 7x 个 HDD 驱动器上安装了 raid-6。
dd if=/dev/zero of=tempfile bs=1M count=2048 conv=fdatasync
本地速度测试结果为 349 MB/s。
从 SSD 远程写入 Samba(读取速度 >2Gb/s)可获得 259 MB/s 的写入速度。但远程写入 iSCSI 驱动器(在 Win10 iSCSI 启动器上)仅可获得 151 Mb/s 的写入速度。
raid6 配置 - 128K 块大小,stripe_cache_size = 8191
使用以下选项安装阵列:rw、noatime、nobarrier、commit=999、stripe=128、data=writeback
open-iscsi 设置:磁盘基于 4Tb 文件。
有没有提示为什么 iSCSI 写入速度比 Samba 慢?有没有提示如何提高 iSCSI 写入速度?
我猜想这与 open-iscsi 希望在每次操作后将写入刷新到磁盘有关,这会增加 raid6 上的写入放大,因为过多的奇偶校验重写。但我不确定如何修复它。速度比断电时当前写入数据的安全性更重要。
答案1
在没有电池备份的情况下将存储阵列安装为写回模式是鲁莽的。在电压下降期间(最糟糕的情况是电源反弹),您将得到应有的后果,包括不完整的写入。
在没有电池备份的情况下,直写模式是正确的选择。
在断电的情况下,速度比当前写入的数据的安全性更重要。
如果您的银行对您的薪水这样做,那么您能拿回多少存款与您能多快拿回存款之间的比较。世界上有什么借口可以证明他们的立场,即您辛苦赚来的部分或全部钱永远消失了?
您应当以受托人负责任的态度看待数据存储。
你不能同时实现两种情况。
文件系统缓存然后写回,或者您调用 sync()。直到数据物理提交到磁盘后,硬盘才能调用 IO 操作完成。将磁盘设置为写回模式可以放宽该限制,以牺牲安全性换取速度。
无论如何,RAID 6 的写入放大率都是要付费的,只是您是现在付费还是几毫秒后付费的问题。RAID 6 是 SSD 的最终死机点,这就是它的本质。为了多几个小时的服务而玩弄它,不值得以数据丢失为代价。
缓解这种情况的唯一方法是使用维护和监控程序,该程序查看磁盘上的智能数据(在下班时间每天或每周检查一次,因为它会阻止 IO),并在磁盘达到其写入寿命的 80% 时发送更换警报。
因此,如果您真正关心的是性能,那么条带镜像(即 RAID 10)就是您想要的。这还将大大减少与 RAID 5/6 相关的写入放大率。
https://searchstorage.techtarget.com/definition/RAID-10-redundant-array-of-independent-disks
如果您想要拥有一个安全且快速的工业强度存储阵列,您应该探索通过 PMEM 向您的存储阵列构建中添加 NVDIMM 或 Crosspoint。
http://www.admin-magazine.com/HPC/Articles/NVDIMM-Persistent-Memory
清单 3:基准测试
$ dd if=/dev/zero of=/mnt/test.dat oflag=direct bs=4k count=$((1024*1024)) 1048576+0 条记录输入 1048576+0 条记录输出 4294967296 字节 (4.3 GB, 4.0 GiB) 已复制, 4.55899 秒, 942 MB/s
它正在慢慢进入内核的硬存储部分。
https://pmem.io/2018/05/15/using_persistent_memory_devices_with_the_linux_device_mapper.html
希望这可以帮助。
编辑:没有 RAID 阵列可以替代定期验证的备份程序。