标签:存储空间 windows server
存储空间冗余度在存储控制器服务器高可用结构中,使用不同数量的JBOD或者不同方式的存储空间布局,达到的冗余程度也有差别。如果使用两个存储箱则无法开启存储箱感知能力,从而无法实现JBOD存储箱级别的冗余,所以要实现JBOD存储箱级别的冗余必须要使用三个JBOD。如果存储空间使用双重镜像布局,存储空间最多允许一块硬盘故障,,如果同时发生两块硬盘故障,那么存储将失效;而使用三重镜像布局,那么同时最多允许两块硬盘故障。Windows Server 第一代SDS结构中,存储空间冗余矩阵总结如下。
冗余类型
3 JBOD 存储箱
4 JBOD 存储箱
简单
不支持
不支持
双重镜像
一个存储箱或者一块磁盘
一个存储箱或者一块磁盘
三重镜像
一个存储箱和一块磁盘;
两块磁盘
一个存储箱和一块磁盘;
两块磁盘
单奇偶校验
不支持
不支持
双奇偶校验
不支持
一个存储箱和一块磁盘;
两块磁盘
存储空间可用性详述
在JBOD级别,三个JBOD能提供JBOD存储箱级别的冗余,因为存储控制器在数据条带化后,在底层为列选择写入的硬盘时,存储箱感知的目的是为数据写入列时为列选择不在同一个JBOD里的硬盘。存储空间数据条带后,每一份条带的数据通过I/O镜像一式两份或三份,每一份先写入列,由列把数据最终写入到硬盘。在镜像布局的存储空间里,不同的列里包含两块或三块硬盘,这些硬盘来自于一个JBOD或者不同JBOD将直接决定存储空间的JBOD级别的冗余性。
在硬盘级别,虚拟磁盘的镜像和RAID1在为数据存储时选择磁盘的原理相似,但是和RAID1/RAID10对称式的结构允许的最大硬盘故障数不同,RAID1/RAID10可以在发生一半的硬盘故障时存储依然可用。存储空间列并不会将硬盘对称地分为固定的两组或者三组然后写入数据的各个副本,列选择硬盘时遵循随机性和平均原则,随机性说明列每次为条带的数据的副本选择的写入的硬盘是变化的,平均原则说明列在选择硬盘时所有硬盘被选中的概率是一样的,而且数据条带越多越接*均。以双重镜像的虚拟磁盘为例,复制一个100GB大小的文件到存储空间,换算成KB的单位为104857600KB,默认的Interleave为256K,先后要写409600个列,意味着要写409600对硬盘,就要产生409600对随机硬盘组合,那么每个参与数据写入的硬盘次数达到平均就成了一个必然事件。因此双重镜像的虚拟磁盘即使包含多个硬盘,每个硬盘必然都保存有这100GB文件的数据块副本,一块硬盘故障数据仍然完整,但是再有第二块硬盘同时故障,必然有数据块丢失而导致文件不完整,所以只能承受一块硬盘损坏的故障。同理,虚拟磁盘的三重镜像将会把一份数据被复制成三份写在三个不同的硬盘里,虚拟磁盘可以承受两块硬盘损坏的故障。
接下来我们列举不同的JBOD数量和存储空间布局矩阵关系的例子来阐述存储空间如何达到预期的可用性目标。
两个JBOD存储箱
系统默认设计为两个JBOD不支持存储箱感知,所以两个JBOD不是推荐的配置,除非用于测试环境,或者对数据有额外的保护,否则难以满足数据的可靠性要求。因为两个JBOD不支持存储箱感知,那么为列选择关联硬盘时,随着写入的数据增多,列选择两块(双重镜像)或者三块硬盘(三重镜像)来自同一个JBOD一定是个必然事件,这样一个JBOD故障,数据会丢失所有副本导致数据不完整,如图1所示。