我已将位图放在外部 EXT4 驱动器 (1xHDD) 上,但我希望每当 RAID10 阵列上的数据发生更改时也会写入该文件,对吗?
我什至对位图文件进行了校验和,它肯定没有改变。
文件大小仅为 2KB(位图块大小设置为 64MB)
- 我尝试停止并启动数组,没有改变,没有写入文件
- 如果在数组启动时无法访问该文件,我会收到错误消息,
mdadm: Could not open bitmap file /mnt/1xHDD/R10_bitmap.dat
这很好
数组详细信息mdadm --detail /dev/md127
:
检查位图文件mdadm -X /mnt/1xHDD/R10_bitmap.dat
Filename : /mnt/1xHDD/R10_bitmap.dat
Magic : 6d746962
Version : 4
UUID : 39f863d1:4d247162:c3672454:1765abe2
Events : 2914
Events Cleared : 2914
State : OK
Chunksize : 64 MB
Daemon : 5s flush period
Write Mode : Normal
Sync Size : 624877568 (595.93 GiB 639.87 GB)
Bitmap : 9535 bits (chunks), 0 dirty (0.0%)
我的 mdadm.conf 的内容:
HOMEHOST <system>
MAILADDR root
ARRAY /dev/md/SRV01:R10_HDD metadata=1.2 bitmap=/mnt/1xHDD/R10_bitmap.dat name=SRV01:R10_HDD UUID=39f863d1:4d247162:c3672454:1765abe2
顺便问一下,关于将位图文件放置在单个硬盘上有什么意见吗?尝试重命名它,数组继续没有问题,尽管mdadm --details...
会告诉位图已被删除。
附加说明:转移到外部位图后,该 RAID10 阵列上的写入性能从 135MB/s 提高到 370MB/s! (使用直接 IO,即未使用页面缓存)。
答案1
我看来外部位图文件毕竟可以工作。
正如 Stephen Kitt 在评论中指出的那样,该文件通常非常小,特别是当您使用大位图块大小时。 (我预计它会大得多)。
为什么我没有观察到位图文件的更改是因为我忘记了我使用 EXT4 选项安装了文件系统noatime
(不会更新修改日期时间),并且当我对文件进行 MD5 校验和时,数组位于时间同步,所以没有变化。
其次,关于将外部位图放置在“不安全”1x驱动器上的稳定性/风险:
在运行时取下位图文件所在的驱动器不会给正在运行和受影响的阵列带来任何不稳定。 mdadm 只是报告位图文件已被“删除”,但阵列继续正常工作。尽管在重新启动阵列时(例如重新启动时)不会联机,直到您重新配置位图(到none
或internal
另一个位external
图文件)。
总而言之,我发现将其放置在非镜像磁盘上是安全的。
mdadm 文档和所有 mdadm 指南中都低估了使用默认内部位图对性能的影响有多大,至少在 RAID10 和 RAID5 上是如此。
刚刚在 R5 上做了一个快速基准测试:
位图:内部,写入:267MB
位图:无,写入:434MB
(总测试大小 20G,块大小 512K,启用页面缓存)