通常当数据库管理员提出需要更多存储空间的时候,他们还会指定必须要达到多少IOPS。现在有这样一个需求,20TB存储空间同时满足4500 IOPS+RAID 5,我应该如何计算?RAID 5或者RAID 1/0的时候分别需要多少块硬盘?

 


首先需要知道I/O中读操作(Read)与写操作(Write)所占的百分比。然后通过下列公式,将主机的IOPS需求转换成硬盘实际IOPS负载:

 

 

 

 

 

RAID类型 公式
RAID 5和3 Drive IOPS = Read IOPS + 4*Write IOPS
RAID 6 Drive IOPS = Read IOPS + 6*Write IOPS
RAID 1和1/0 Drive IOPS = Read IOPS + 2*Write IOPS

 

 

 

 

 

 

 

假定4500 IOPS中读/写比是2:1,则不同RAID类型Drive IOPS要求分别如下:

RAID 1/0: (2/3)*4500 + 2*(1/3)*4500 = 6000 IOPS

RAID 5: (2/3)*4500 + 4*(1/3)*4500 = 9000 IOPS

RAID 6: (2/3)*4500 + 6*(1/3)*4500 = 12000 IOPS

 

再参照下表中不同类型硬盘单块IOPS参数,得出需要多少块硬盘:

硬盘类型 IOPS
Fibre Channel 15k rpm 180
SAS 15k rpm 180
Fibre Channel 10k rpm 140
SATA 7.2k rpm 80
SATA 5.4k rpm 40
Flash drive 2500

 

假定选用FC 15K RPM硬盘,则:

RAID 1/0: 6000/180 = 34 块

RAID 5: 9000/180 = 50 块

RAID 6: 12000/180 = 67 块

 

注:实际情况下还需考虑Vault Drivers (共5块)以及Hot Spares (建议每30块硬盘一个)。

 

最后,如果选用600GB FC硬盘来实现20TB可用空间,则RAID 1/0需要78块,RAID 5需要42块。