|
想到一个解决软RAID5性能问题的方法:
简单的说,RAID5的数据大至按下面的方法存储,根据设备和配置的不同,细节上有些差别:
DISK1 DISK2 DISK3 DISK4 DISK5
chunk0 chunk1 chunk2 chunk3 CHECKSUM
chunk4 chunk5 chunk6 CHECKSUM chunk7
chunk8 chunk9 CHECKSUM chunk10 chunk11
. . . .
如果按照上面的方式,使用五块硬盘组建RAID5,将chunk size设置为8K,那么任何时候系统都需要至少读取32K(4个chunk)的数据才能够计算checksum.
如果能够将文件系统的block size设置为32k,那么每次对文件的读写都将横跨所有硬盘,这对于外部存储设备(NAS,SAN),数据库系统来说将会有很大的性能提升,而且不需要很大的RAID cache.
上网搜寻了许久,发现通常这个block size不能大于page size,而page size在X86架构上是固定为4K的,很郁闷。尝试打开了huge page,仍然无法挂载block size > 4k的文件系统。
我找的信息显示这个问题在07年热乎了一段时间,按说现在应该有成熟的解决方案,不知道哪位高人有这方面的经验,介绍一下。 |
|