GlusterFS Dispersed Volume(纠错卷)总结

一、概念

Dispersed Volume是基于ErasureCodes(纠错码)的一种新类型的Volume(3.6版本正式发布该特性),类似于RAID5/6。通过配置Redundancy(冗余)级别提高可靠性,在保证较高的可靠性同时,可以提升物理存储空间的利用率。

文件是被分割成大小相同的Chunk(块),而每个Chunk又被分割成fragment,而冗余信息的Fragment也随之生成,且同一个Fragment只会保存一个Brick上。

Redundancy是均匀分布存储在所有的Brick,磁盘的有效空间是Brick-Redundancy。

在数据恢复时,只要Brick-Redundancy个Fragment(可以是数据,也可以是冗余信息)可用,就能正常恢复数据,如下图所示。

GlusterFS Dispersed Volume(纠错卷)总结_第1张图片

二、特性

1、可配置的Redundancy

若Redundancy设置为0时,DispersedVolume等同于分布式卷;若Redundancy设置为brick/2时,DispersedVolume等同于复制卷。具体Redundancy的配置,根据具体的应用场景,在存储利用和可靠性做均衡选择。

官方经典的配置为:6个Brick配置2个Redundancy。

GlusterFS Dispersed Volume(纠错卷)总结_第2张图片

2、读写开销

读时,在数据未丢失下,一般不会去读取冗余信息,而是直接读取有效数据,额外开销为0。

      写时,需要访问每一个可用的Brick,并且需要读取冗余信息,开销如下图所示。

GlusterFS Dispersed Volume(纠错卷)总结_第3张图片

三、创建disperse卷

创建规则1,同一个peer,只允许存在onebrick of a disperse set

1、创建disperse卷

#glustervolume create [disperse []] [redundancy ] [transporttcp | rdma | tcp,rdma]

disperse至少配置为2,redundancy配置至少为1,所以配置disperse卷最少需要3brick。

如果不指定disperse的数量,所有的volume被认为就是一个disperse集合。如果不指定redundancy数量,系统将根据disperse计算出最佳的redundancycount。

例1:以下这个命令,未具体配置disperse和redundancy数量,系统会提示用户,并计算出最佳配置(4  brick配置1  redundancy)。

#gluster volume create test-volume disperse 4 server{1..4}:/bricks/test-volume

例2:系统计算得到6  brick配置2  redundancy

#gluster volume create test-volume disperse 4 server{1..4}:/bricks/test-volume

2、创建Distributed Dispersed Volumes

#glustervolume create disperse [redundancy ] [transport tcp| rdma | tcp,rdma]

要求disperse必填,redundancy 数量和dispersedvolume相同。

四、Volume性能分析

根据官方文档的例子,对比经典分布式EC卷和分布式复制卷的几项性能。

硬盘环境如下:6台服务器,每台配置4个4TB的SATA磁盘(总容量为96TB),每个磁盘的IOPS为90,且每个磁盘只配置一个brick

1、【场景1】分布式+  Replica 2 卷

GlusterFS Dispersed Volume(纠错卷)总结_第4张图片

磁盘可利用空间:48TB

读IOPS:2160(6*4*90)

写IOPS:1080

Maximum failedbricks: 1

Maximum failedservers: 1

2、【场景2】分布式+ EC 6.2卷

经典模式,6个Brick中2个做冗余,如下图所示

GlusterFS Dispersed Volume(纠错卷)总结_第5张图片

磁盘可利用空间:64TB(96*4/6)

读IOPS:540

写IOPS:360

Maximum failedbricks: 2

Maximum failedservers: 2

五、个人总结

从上述的性能分析示例中,可以得到,相对于分布式复制卷,经典分布式EC卷的优点是较高的磁盘利用率和容错性,但是其IOPS性能下降较多。

若用户对磁盘利用率有较高期望的时,我们可以采用分布式EC集群搭建GlusterFS服务。

若用户对IOPS要求较高时,分布式复制GlusterFS集群是最优选择。

你可能感兴趣的:(GlusterFs)