1.7 GlusterFS的卷类型
GlusterFS 支持七种卷,即分布式卷、条带卷、复制卷、分布式条带卷、分布式复制卷、条带复制卷和分布式条带复制卷。
1.7.1 分布式卷(Distribute volume)
文件通过 HASH 算法分布到所有 Brick Server 上,这种卷是 GlusterFS 的默认卷;以文件为单位根据 HASH 算法散列到不同的 Brick,其实只是扩大了磁盘空间,如果有一块磁盘损坏,数据也将丢失,属于文件级的 RAID0, 不具有容错能力。
在该模式下,并没有对文件进行分块处理,文件直接存储在某个 Server 节点上。 由于直接使用本地文件系统进行文件存储,所以存取效率并没有提高,反而会因为网络通信的原因而有所降低。
示例原理:
File1 和 File2 存放在 Server1,而 File3 存放在 Server2,文件都是随机存储,一个文件(如 File1)要么在 Server1 上,要么在 Server2 上,不能分块同时存放在 Server1和 Server2 上。
分布式卷具有如下特点:
1.文件分布在不同的服务器,不具备冗余性。
2.更容易和廉价地扩展卷的大小。
3.单点故障会造成数据丢失。
4.依赖底层的数据保护。
#创建一个名为dis-volume的分布式卷,文件将根据HASH分布在server1:/dir1、server2:/dir2和server3:/dir3中 gluster volume create dis-volume server1:/dir1 server2:/dir2 server3:/dir3
1.7.2 条带卷(Stripe volume)
类似 RAID0,文件被分成数据块并以轮询的方式分布到多个 Brick Server 上,文件存储以数据块为单位,支持大文件存储, 文件越大,读取效率越高,但是不具备冗余性。
示例原理:
File 被分割为 6 段,1、3、5 放在 Server1,2、4、6 放在 Server2。
条带卷特点:
1.数据被分割成更小块分布到块服务器群中的不同条带区。
2.分布减少了负载且更小的文件加速了存取的速度。
3.没有数据冗余。
#创建了一个名为stripe-volume的条带卷,文件将被分块轮询的存储在Server1:/dir1和Server2:/dir2两个Brick中 gluster volume create stripe-volume stripe 2 transport tcp server1:/dir1 server2:/dir2
1.7.3 复制卷(Replica volume)
将文件同步到多个 Brick 上,使其具备多个文件副本,属于文件级 RAID 1,具有容错能力。因为数据分散在多个 Brick 中,所以读性能得到很大提升,但写性能下降。
复制卷具备冗余性,即使一个节点损坏,也不影响数据的正常使用。但因为要保存副本,所以磁盘利用率较低。
若多个节点上的存储空间不一致,将按照木桶效应取最低节点的容量作为该卷的总容量
示例原理:
File1 同时存在 Server1 和 Server2,File2 也是如此,相当于 Server2 中的文件是 Server1 中文件的副本。
复制卷特点:
1.卷中所有的服务器均保存一个完整的副本。
卷的副本数量可由客户创建的时候决定,但复制数必须等于卷中 Brick 所包含的存储服务2.器数。
至少由两个块服务器或更多服务器。
3.具备冗余性。
#创建名为rep-volume的复制卷,文件将同时存储两个副本,分别在Server1:/dir1和Server2:/dir2两个Brick中 gluster volume create rep-volume replica 2 transport tcp server1:/dir1 server2:/dir2
1.7.4 分布式条带卷(Distribute Stripe volume)
Brick Server 数量是条带数(数据块分布的 Brick 数量)的倍数,兼具分布式卷和条带卷的特点。 主要用于大文件访问处理,创建一个分布式条带卷最少需要 4 台服务器。
示例原理:
File1 和 File2 通过分布式卷的功能分别定位到Server1和 Server2。在 Server1 中,File1 被分割成 4 段,其中 1、3 在 Server1 中的 exp1 目录中,2、4 在 Server1 中的 exp2 目录中。在 Server2 中,File2 也被分割成 4 段,其中 1、3 在 Server2 中的 exp3 目录中,2、4 在 Server2 中的 exp4 目录中。
#创建一个名为dis-stripe的分布式条带卷,配置分布式的条带卷时,卷中Brick所包含的存储服务器数必须是条带数的倍数(>=2倍)。 Brick 的数量是 4(Server1:/dir1、Server2:/dir2、Server3:/dir3 和 Server4:/dir4),条带数为 2(stripe 2) gluster volume create dis-stripe stripe 2 transport tcp server1:/dir1 server2:/dir2 server3:/dir3 server4:/dir4
创建卷时,存储服务器的数量如果等于条带或复制数,那么创建的是条带卷或者复制卷;如果存储服务器的数量是条带或复制数的 2 倍甚至更多,那么将创建的是分布式条带卷或分布式复制卷。
1.7.5 分布式复制卷(Distribute Replica volume)
Brick Server 数量是镜像数(数据副本数量)的倍数,兼具分布式卷和复制卷的特点。主要用于需要冗余的情况下。
示例原理:
File1 和 File2 通过分布式卷的功能分别定位到 Server1 和 Server2。在存放 File1 时,File1 根据复制卷的特性,将存在两个相同的副本,分别是 Server1 中的exp1 目录和 Server2 中的 exp2 目录。在存放 File2 时,File2 根据复制卷的特性,也将存在两个相同的副本,分别是 Server3 中的 exp3 目录和 Server4 中的 exp4 目录。
#创建一个名为dis-rep的分布式复制卷,配置分布式的复制卷时,卷中Brick所包含的存储服务器数必须是复制数的倍数(>=2倍)。Brick 的数量是 4(Server1:/dir1、Server2:/dir2、Server3:/dir3 和 Server4:/dir4),复制数为 2(replica 2) gluster volume create dis-rep replica 2 transport tcp server1:/dir1 server2:/dir2 server3:/dir3 server4:/dir4
1.7.6 条带复制卷(Stripe Replica volume)
类似 RAID 10,同时具有条带卷和复制卷的特点。
1.7.7 分布式条带复制卷(Distribute Stripe Replicavolume)
三种基本卷的复合卷,通常用于类 Map Reduce 应用。