我在一台 1.3 GHz AMD Neo 36L 双核机器上用 mdadm 设置了一个软件 raid 5,使用了 3 个 1.5 TB Seagate Barracude Green 硬盘(4k 扇区)。raid 的块大小为 512 KB。在 raid 的顶部有一个用 ext4 格式化的 lvm 卷(块大小=4096,步长=128 块,条带宽度=256 块)。raid 和 lvm 都正确对齐。运行 bonnie++ 时,我得到以下结果:
VVersion 1.96 ------Sequential Output------ --Sequential Input- --Random-
Concurrency 1 -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP /sec %CP
4G 362 97 69738 15 52826 16 1732 94 248671 31 539.0 32
Latency 92293us 3276ms 4274ms 22450us 38749us 111ms
有人能告诉我我的设置是否能达到我期望的性能吗?尤其是顺序输出和每个 chr 访问对我来说似乎有点太慢了。
答案1
是的。您可以从 bonnie 输出中看到它受 CPU 限制(在相对较慢的内核上),正如软件 raid 所预期的那样。在 RAID 5 阵列中将数据存储在何处的计算最好留给专用 XOR ASIC 而不是 CPU。有关更多信息,请访问此处:
http://www.dell.com/content/topics/global.aspx/power/en/ps2q03_luse?c=us&l=en
如果担心性能,那么你最好花点钱买第四个驱动器并做 RAID 10。
答案2
你优化的 I/O 块大小是多少?RAID5 对于部分写入非常慢,因此你需要确保针对应用程序将写入大部分数据的块大小对其进行优化。我写了一篇文章优化存储堆栈对齐您可能会觉得它很有用。请注意,由于奇数长度的标头,LVM 可能会丢弃对齐。