我有一个现有的raid5设备,我使用Linux上的mdadm创build。
当我创build设备时,我将块大小设置为64,但我想testing各种大小的性能,但我不想重build我的整个系统来这样做。
如果无法实现,那么是否可以通过使用救援磁盘启动?
任何意见的步骤如何做到这一点,无论是现场或与救援盘,将不胜感激。
这个问题是相当古老的,wzzrd的回答在写作时是正确的。 但是,同时增加了对MDarrays进行整形的支持。
现在,可以通过运行来更改现有RAIDarrays的块大小
mdadm --grow --chunk=128 /dev/md0
在这个例子中, /dev/md0
的块大小将被改为128 KiB。 请注意,更改块大小是一个非常缓慢的过程,因为这涉及重写存储在RAIDarrays中的所有数据。 因为即使在系统崩溃的情况下,也可以确保数据安全,所以实际上每个数据都必须被写两次。 因此,您应该期待这个过程需要相当长一段时间(以天为单位)。
“块”是写入单个磁盘的条带的一部分。 你当前的设置是写在磁盘上的,就像这样(假定是三块磁盘RAID5):
| data | data | parity | | parity | data | data | | data | parity | data |
在你的情况下,每个'数据'或'奇偶'部分(即“块”)是64KiB,这给你一个192KiB的条带宽度,这是相当正常的。
在这一点上,我不认为你可以切换块的大小。
你可以做什么,是找出你的系统的最佳块大小,而不必testing所有可能的选项。 如果你用sar监视你的系统一段时间,你应该能够find所谓的“平均请求大小”。 这个数字(sar以512字节扇区显示,iirc)是条带组合“数据”部分的最佳大小。
所以,作为一个例子,如果你的平均请求大小是64KiB(这是512个字节的128个扇区),你会想把你的条带64KiB的“数据”部分的大小合并在一起。 如果是三块硬盘的RAID5,32K的块大小将是最好的。