按照业务系统的数据量大小、压缩算法的选择、集群副本数的选择进行GBase集群存储空间需求的计算。
业务系统数据量通常包括以下几个方面:
- 历史数据量;
- 增量周期及每周期的增量大小;
- 数据存储周期,及全周期的数据总量;
- 数据量增长率及存储空间预留;
充分考虑上述几个方面的情况,假设某业务系统的全周期的总数据量为30TB。
GBase集群物理磁盘容量的计算方法为:
最小磁盘空间需求MDSR (Minimum Disk Space Requirements) = 总数据量×数据库及相关工作空间因子×副本选项因子×RAID因子×操作系统和文件系统因子×数据库压缩因子。其中:
- 总数据量:(历史数据+增量数据)*(1+数据增长率),数据生命周期内假设总数据量估算值为30TB。
- 数据库及相关工作空间因子:需要考虑系统缓冲区、工作空间、流水、次索引、临时表等因素。对于不同的应用而言,此因子要求不同,一般为1.2~2.0,即为100GB的用户数据空间保留20GB~100GB的数据库管理和工作空间。这里根据工程经验选取该因子的值为1.5。
- 副本选项因子。副本是GBase集群的数据高可用机制的基础。当采用副本时,GBase集群将自动为每条数据记录在不同节点所管理的物理磁盘上保持多份拷贝,这样,当某节点的磁盘系统(含RAID保护)发生故障时,客户应用程序仍能通过访问故障磁盘所包含的数据所对应的副本继续工作。GBase集群最多允许使用2个副本,即同一份数据在整个集群中有3份拷贝。使用2个副本时,副本选项因子为3,使用1个副本时,副本选项因子为2,不使用副本时,副本选项因子为1。考虑到系统数据可靠性要求,建议选择副本因子为2。
- RAID因子,根据实项目工程经验,建议:
操作系统使用独立的raid,如两块600GB的10K SAS盘做raid1用于安装操作系统;
1) 在raid5配置下,建议在磁盘数量n大于10情况下,采用raid50方式,即建立两个raid5后再将两个raid5做成raid0;
2) 在raid5配置下,建议设置热备盘,使用同规格的一块硬盘作为raid5的热备;
举例,13块600GB 15K SAS硬盘,每6块硬盘做成一个raid5,然后两个raid5做raid0;一块单独硬盘作为热盘。
不考虑操作系统的磁盘开销及热盘,GBase集群的RAID因子:
1) 一个RAID5情况下,RAID因子等于n/(n-1);
2) 两个RAID5情况下,RAID因子等于n/(n-2)。
假设系统选用n=12的RAID50方案,RAID因子为12/10。
- 操作系统和文件系统因子,Linux操作系统需要的软件安装和工作存储空间,以及GBase集群在管理用户数据时在Linux文件系统中需开销一部分磁盘空间。根据GBase实际使用经验,此因子为1.2。
- 数据库压缩因子,GBase集群提供数据压缩技术,可以对用户数据进行压缩存储,从而减少所需要的物理存储空间,同时可以减少数据库工作时的I/O次数,进一步提高性能。此压缩因子的经验值为10%~70%。通常使用55压缩 算法的压缩比为1:3至1:5之间,这里取下限,因此压缩因子为33%
这样,系统最小磁盘空间需求的计算公式可以归纳为:
最小磁盘空间需求MDSR (Minimum Disk Space Requirements)
= 总数据量 ×1.5×2×12/10×1.2×33%
= 总数据量 × 1.4256。
综合描述计算方法,总数据量为30TB的系统需要配置的磁盘容量为:
MDSR = 30TB * 1.4256 = 42.768TB。