GFS分布式文件系统
关于GFS分布式文件系统详解
文章目录
GFS分布式文件系统
一、关于GFS分布式文件系统
1、GFS概述
GFS是一个分布式的文件系统,指在扩展存储容量,提高性能,并且可以通过多个互联网络存储的数据进行冗余,确保数据的可用性和一致性
- 开源的分布式文件系统
- 由存储服务器、客户端以及NFS/Samba存储网关(可选,根据需要选择使用)组成
- 无元数据服务器,有助于提升整个系统的性能、可靠性和稳定性
组成部分
- 存储服务器
- 客户端NFS/Samba存储网关组成
- 无元数据服务器:保存数据的存放地点,数据横向扩展能力强,具备较高的可靠性及存储效率
2、GFS特点
2.1 扩展性和高性能(分布式的特性)
- Scale-Out架构允许通过简单地增加存储节点的方式来提高存储容量和性能(磁盘、计算和I/O资源都可以独立增加),支持10GbE和 InfiniBand等高速网络互联。
- Gluster弹性哈希(ElasticHash)解决了GlusterFS对元数据服务器的依赖,改善了单点故障和性能瓶颈,真正实现了并行化数据访问。GlusterFS采用弹性哈希算法在存储池中可以智能地定位任意数据分片(将数据分片存储在不同节点上),不需要查看索引或者向元数据服务器查询。
2.2 高可用性(冗余、容灾的能力)
- GlusterFS可以对文件进行自动复制,如镜像或多次复制,从而确保数据总是可以访问,甚至是在硬件故障的情况下也能正常访问。
- 当数据出现不一致时,自我修复功能能够把数据恢复到正确的状态,数据的修复是以增量的方式在后台执行,几乎不会产生性能负载。
- GlusterFS可以支持所有的存储,因为它没有设计自己的私有数据文件格式,而是采用操作系统中主流标准的磁盘文件系统(如EXT3、XFS等)来存储文件,因此数据可以使用传统访问磁盘的方式被访问。
2.3 全局统一命名的空间
- 分布式存储中,将所有节点的命名空间整合为统一命名空间,将整个系统的所有节点的存储容量组成一个大的虚拟存储池,供前端主机访问这些节点完成数据读写操作。
2.4 弹性卷管理(类似于raid)
- GlusterFS通过将数据储存在逻辑卷中,逻辑卷从逻辑存储池进行独立逻辑划分而得到。
- 逻辑存储池可以在线进行增加和移除,不会导致业务中断。逻辑卷可以根据需求在线增长和缩减,并可以在多个节点中实现负载均衡。
文件系统配置也可以实时在线进行更改并应用,从而可以适应工作负载条件变化或在线性能调优。
2.5 基于标准协议
- Gluster 存储服务支持 NFS、CIFS、HTTP、FTP、SMB 及 Gluster原生协议,完全与 POSIX 标准(可移植操作系统接口)兼容。
- 现有应用程序不需要做任何修改就可以对Gluster 中的数据进行访问,也可以使用专用 API 进行访问。
3、GFS专业术语
3.1 Brick(存储块)
- 指可信主机池中由主机提供的用于物理存储的专用分区,是GlusterFS中的基本存储单元,同时也是可信存储池中服务器上对外提供的存储目录。
- 存储目录的格式由服务器的绝对路径构成,表示方法为SERVER:EXPORT,如192.168.1.1:/data/mydir/
3.2 Volume(逻辑卷)
- 一个逻辑卷是一组Brick的集合。卷是数据存储的逻辑设备,类似于LVM中的逻辑卷。大部分Gluster管理操作是在卷上进行的。
3.3 FUSE
-
伪文件系统
-
是一个内核模块,允许用户创建自己的文件系统,无需修改内核代码。
3.4 VFS
-
虚拟端口
-
内核空间对用户空间提供的访问磁盘的接口。
3.5 Glusterd(后台管理进程)
- 在存储集群中的每个节点上都要运行。
4、GFS工作原理
4.1 GFS工作流程

- 客户端或应用程序通过GlusterFS的挂载点访问数据。
- Linux系统内核通过VFS API收到请求并处理。
- VFS将数据递交给FUSE内核文件系统,并向系统注册一个实际的文件系统FUSE,而FUSE文件系统则是将数据通过/dev/fuse设备文件递交给了GlusterFS Client端。(可以将FUSE文件系统理解为一个代理)
- GlusterFS Client收到数据后,Client根据配置文件的配置对数据进行处理。
- 经过GlusterFS Client处理后,通过网络将数据传递至远端的GlusterFS Server,并且将数据写入到服务器存储设备上。
4.2 弹性Hash算法
4.2.1 弹性Hash算法的概念
- 弹性HASH算法是Davies-meyer算法的具体实现,通过Hash算法可以得到一个32位的整数范围的Hash值,假设逻辑卷中有N个存储单位Brick,则32位的整数范围将划分为N个连续的子空间,每个空间对应一个Brick。
- 当用户或应用程序访问某一个命名空间时,同对该命名空间计算Hash值,根据该Hash值所对应的的32位整数空间定位数据所在的Brick。
4.2.2 弹性Hash算法的优点
- 保证数据平均分布在每一个Brick中。
- 解决了对元数据服务器的依赖,进而解决了单点故障以及访问瓶颈。
5、GFS卷的类型(七个)
- GlusterFS支持七种卷,即分布式卷、条带卷、复制卷、分布式条带卷、分布式复制卷、条带复制卷和分布式条带复制卷
5.1 分布式巻
5.1.1 分布式卷概述
文件通过Hash算法分布到所有Brick Server上,这种卷是ClusterFS的默认卷,以文件为单位分局Hash算法散列到不同的Brick,其实只是扩大了磁盘空间,如果有一块磁盘损坏,数据也将丢失,属于文件级的RAID 0,不具有容灾能力。
在该模式下,并没有对文件进行分块处理,文件直接存储在某个Server节点上。由于直接使用本地文件系统进行文件存储,所以存取效率并没有提高,反而会因为网络通信的原因而有所降低。
- 没有对文件进行分块处理
- 通过扩展文件属性保存Hash值
- 支持的底层文件系统有EXT3、EXT4、ZFS、XFS等
5.1.2 示例原理

File1 和 File2 存放在 Server1,而 File3 存放在 Server2,文件都是随机存储,一个文件(如 File1)要么在 Server1 上,要么在 Server2 上,不能分块同时存放在 Server1和 Server2 上。
5.1.3 分布式卷的特点
-
文件分布在不同的服务器,不具备冗余性
-
更容易和廉价地扩展卷的大小
-
单点故障会造成数据丢失
-
依赖底层的数据保护
5.1.4 创建方法
gluster volume create dis-volume server1:/dir1 server2:/dir2 server3:/dir3
#创建一个名为dis-volume的分布式卷,文件将根据HASH分布在server1:/dir1、server2:/dir2和server3:/dir3中
5.2 条带卷
5.2.1 条带卷概述
- 类似RAID 0,文件被分成数据块并以轮询的方式分布到多个Brick Server上,文件存储以数据块为单位,支持大文件存储,文件越大,读取效率越高,但是不具备冗余性。
5.2.2 示例原理

File 被分割为 6 段,1、3、5 放在 Server1,2、4、6 放在 Server2。
5.2.3 条带卷特点
-
数据被分割成更小块分布到块服务器集群中的不同条带区
-
分布减少了负载且更小的文件加速了存取的速度
-
没有数据冗余
5.2.4 创建方法
gluster volume create stripe 2 transport tcp server1:/dir1 server2:/dir2
#创建一个名为stripe-volume的条带卷,文件将被分块轮询的存储在Server1:/dir1和Server2:/dir2两个Brick中
#stripe 2 表示条带数为2
#transport tcp 表示使用tcp协议
5.3 复制卷
5.3.1 复制卷概述
- 将文件同步到多个 Brick 上,使其具备多个文件副本,属于文件级 RAID 1,具有容错能力。因为数据分散在多个 Brick 中,所以读性能得到很大提升,但写性能下降。
- 复制卷具备冗余性,即使一个节点损坏,也不影响数据的正常使用。但因为要保存副本,所以磁盘利用率较低。
5.3.2 示例原理

File1同时存在Server1和Server2中,File2也是如此,相当于Server2中的文件时Server1中文件的副本。
5.3.3 复制卷特点
- 卷中所有的服务器均保存一个完整的副本。
- 卷的副本数量可由客户创建的时候决定,但复制数必须等于卷中 Brick 所包含的存储服务器数。
5.3.4 创建方法
gluster volume create rep-volume replica 2 transport tcp server1:/dir1 server2:/dir2
#创建名为rep-volume的复制卷,文件将同时存储两个副本,分别在Server1:/dir1和Server2:/dir2两个Brick中
#replica 2 表示2个副本
#transport tcp 表示使用tcp协议
5.4 分布式条带卷
5.4.1 分布式条带卷概述
- Brick Server 数量是条带数(数据块分布的 Brick 数量)的倍数,兼具分布式卷和条带卷的特点。 主要用于大文件访问处理,创建一个分布式条带卷最少需要 4 台服务器。
5.4.2 示例原理

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 目录中。
5.4.3 创建方法
gluster volume create dis-stripe stripe 2 transport tcp server1:/dir1 server2:/dir2 server3:/dir3 server4:/dir4
#创建一个名为dis-stripe的分布式条带卷,配置分布式的条带卷时,卷中Brick所包含的存储服务器数必须是条带数的倍数(>=2倍)。Brick 的数量是 4(Server1:/dir1、Server2:/dir2、Server3:/dir3 和 Server4:/dir4),条带数为 2(stripe 2)
#stripe 2 表示条带数为2
#transport tcp 表示使用tcp协议
注意:创建卷时,存储服务器的数量如果等于条带或复制数,那么创建的是条带卷或者复制卷;如果存储服务器的数量是条带或复制数的 2 倍甚至更多,那么将创建的是分布式条带卷或分布式复制卷。
5.5 分布式复制卷
5.5.1 分布式复制卷概述
- Brick Server 数量是镜像数(数据副本数量)的倍数,兼具分布式卷和复制卷的特点。主要用于需要冗余的情况下。
5.5.2 示例原理

File1 和 File2 通过分布式卷的功能分别定位到 Server1 和 Server2。在存放 File1 时,File1 根据复制卷的特性,将存在两个相同的副本,分别是 Server1 中的exp1 目录和 Server2 中的 exp2 目录。在存放 File2 时,File2 根据复制卷的特性,也将存在两个相同的副本,分别是 Server3 中的 exp3 目录和 Server4 中的 exp4 目录。
5.5.3 创建方法
gluster volume create dis-rep replica 2 transport tcp server1:/dir1 server2:/dir2 server3:/dir3 server4:/dir4
#创建一个名为dis-rep的分布式复制卷,配置分布式的复制卷时,卷中Brick所包含的存储服务器数必须是复制数的倍数(>=2倍)。Brick 的数量是 4(Server1:/dir1、Server2:/dir2、Server3:/dir3 和 Server4:/dir4),复制数为 2(replica 2)
#replica 2 表示副本的数量是2
5.6 条带复制卷
- 类似 RAID 10,同时具有条带卷和复制卷的特点。
5.7 分布式条带复制卷
- 三种基本卷的复合卷,通常用于类 Map Reduce 应用。
二、部署GFS集群
1、服务器节点分配
| 服务器节点 | ip地址 | 主机名 | 磁盘部署 | 对应挂载点 |
|---|---|---|---|---|
| Node1节点 | 192.168.10.11 | node1 | /dev/sdc1 /dev/sdd1 /dev/sde1 |
/data/sdc1 /data/sdd1 /data/sde1 |
| Node2节点 | 192.168.10.12 | node2 | /dev/sdc1 /dev/sdd1 /dev/sde1 |
/data/sdc1 /data/sdd1 /data/sde1 |
| Node3节点 | 192.168.10.13 | node3 | /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1 |
/data/sdb1 /data/sdc1 /data/sdd1 /data/sde1 |
| Node4节点 | 192.168.10.14 | node4 | /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1 |
/data/sdb1 /data/sdc1 /data/sdd1 /data/sde1 |
| 客户端节点 | 192.168.10.15 | client | — | — |
2、服务器环境(所有node节点操作)
2.1 关闭防火墙
systemctl stop firewalld
setenforce 0
#关闭防火墙和核心防护
2.2 磁盘分区,挂载
#刷新磁盘
lsblk
#查看磁盘信息
cd /opt/
#切换目录
#编写脚本,进行磁盘分区和挂载
vim /opt/fdisk.sh
#!/bin/bash
NEWDEV=`ls /dev/sd* | grep -o 'sd[b-z]' | uniq`
#设置变量,"查看磁盘,筛选显示'sd[b-z]'的磁盘,去重"
#此处由于我已经用掉了一台设备的sdb磁盘,所以该设备筛选为范围'sd[c-z]'
for VAR in $NEWDEV
do
echo -e "n\np\n\n\n\nw\n" | fdisk /dev/$VAR &> /dev/null
#建立磁盘分区,并将输出结果导入回收站
mkfs.xfs /dev/${VAR}"1" &> /dev/null
#格式化,并将输出结果导入回收站
mkdir -p /data/${VAR}"1" &> /dev/null
#新建文件夹,并将输出结果导入回收站
echo "/dev/${VAR}"1" /data/${VAR}"1" xfs defaults 0 0" >> /etc/fstab
#永久挂载,并将输出结果导入回收站
done
mount -a &> /dev/null
#重新挂载,并将输出结果导入回收站
chmod +x /opt/fdisk.sh
#添加执行权限
./fdisk.sh
#执行脚本
df -h
#查看挂载情况
- ip:192.168.10.11


- ip:192.168.10.12


- ip:192.168.10.13


- ip:192.168.10.14


2.3 修改主机名,配置/etc/hosts文件
hostnamectl set-hostname 主机名
bash
#修改主机名
#修改配置文件
vim /etc/hosts
192.168.10.11 node1
192.168.10.12 node2
192.168.10.13 node3
192.168.10.14 node4
#添加ip配置
- ip:192.168.10.11

- ip:192.168.10.12

- ip:192.168.10.13

- ip:192.168.10.14

3、安装、启动GFS(所有节点上操作)
cd /opt
#切换目录
#将需要的安装包gfsrepo上传
unzip gfsrepo.zip
#解压
cd /etc/yum.repos.d/
#切换目录
mkdir repo.bak
#新建备份文件
mv *.repo repo.bak
#移动所有以repo结尾的文件到备份文件中
#编辑配置文件
vim glfs.repo
[glfs]
name=glfs
baseurl=file:///opt/gfsrepo
gpgcheck=0
enabled=1
yum clean all
#清除缓存
yum makecache
#重新下载元数据
yum install -y glusterfs glusterfs-server glusterfs-fuse glusterfs-rdma
#安装
yum remove glusterfs-api.x86_64 glusterfs-cli.x86_64 glusterfs.x86_64 glusterfs-libs.x86_64 glusterfs-client-xlators.x86_64 glusterfs-fuse.x86_64 -y
#若安装时报错,则删除干扰的软件,故障原因是版本过高导致,移除之后重新安装
systemctl start glusterd.service
#开启服务
systemctl enable glusterd.service
#自启动
systemctl status glusterd.service
#查看服务状态
- node1



- node2



- node3



- node4



4、添加节点到存储信任池(在其中一个node节点操作)
- 只要在一台node节点上添加其他节点即可,当前的节点不需要添加
gluster peer probe node2
gluster peer probe node3
gluster peer probe node4
#添加信任节点,在node1设备上添加
gluster peer status
#在每个node节点上查看群集状态




5、创建卷
| 卷名称 | 卷类型 | Brick |
|---|---|---|
| fenbushi | 分布式卷 | node1(/data/sdc1)、node2(/data/sdc1) |
| tiaodai | 条带卷 | node3(/data/sdb1)、node4(/data/sdb1) |
| fuzhi | 复制卷 | node3(/data/sdc1)、node4(/data/sdc1) |
| fbs-td | 分布式条带卷 | node1(/data/sdd1)、node2(/data/sdd1)、node3(/data/sdd1)、node4(/data/sdd1) |
| fbs-fz | 分布式复制卷 | node1(/data/sde1)、node2(/data/sde1)、node3(/data/sde1)、node4(/data/sde1) |
5.1 创建分布式
- 无需指定类型,默认创建的是分布式卷
gluster volume create fenbushi node1:/data/sdc1 node2:/data/sdc1 force
#创建分布式卷,没有指定类型,默认创建的是分布式卷
gluster volume list
#查看卷列表
gluster volume start fenbushi
#启动新建分布式卷
gluster volume info fenbushi
#查看创建分布式卷信息

5.2 创建条带卷
- 指定类型为stripe,数值为2,且后面跟了2个Brick Server,所以创建的是条带卷
gluster volume create tiaodai stripe 2 node3:/data/sdb1 node4:/data/sdb1 force
#指定类型为 stripe,数值为 2,且后面跟了 2 个 Brick Server,所以创建的是条带卷
gluster volume start tiaodai
#启动新建条带卷
gluster volume info tiaodai
#查看条带卷信息

5.3 创建复制卷
- 指定类型为replica,数值为2,且后面跟了2个Brick Server,所以创建的是复制卷
gluster volume create fuzhi replica 2 node3:/data/sdc1 node4:/data/sdc1 force
#指定类型为 replica,数值为 2,且后面跟了 2 个 Brick Server,所以创建的是复制卷
gluster volume start fuzhi
##启动新建复制卷
gluster volume info fuzhi
#查看新建复制卷信息

5.4 创建分布式条带卷
- 指定类型为stripe,数值为2,而且后面跟了4个Brick Server,是2的两倍,所以创建的是分布式条带卷
gluster volume create fbs-td stripe 2 node1:/data/sdd1 node2:/data/sdd1 node3:/data/sdd1 node4:/data/sdd1 force
#指定类型为 stripe,数值为 2,而且后面跟了 4 个 Brick Server,是 2 的两倍,所以创建的是分布式条带卷
gluster volume start fbs-td
#启动新建分布式条带卷
gluster volume info fbs-td
#查看分布式条带卷信息

5.5 创建分布式复制卷
- 指定类型为replica,数值为2,而且后面跟了4个Brick Server,是2的两倍,所以创建的是分布式复制卷
gluster volume create fbs-fz replica 4 node1:/data/sde1 node2:/data/sde1 node3:/data/sde1 node4:/data/sde1 force
#指定类型为 replica,数值为 4,而且后面跟了 4 个 Brick Server,是 2 的两倍,所以创建的是分布式复制卷
gluster volume start fbs-fz
#启动新建分布式复制卷
gluster volume info fbs-fz
#查看分布式复制卷信息
gluster volume list
#查看卷列表

三、部署Gluster客户端
1、修改主机名、配置/etc/hosts文件
hostnamectl set-hostname client
bash
#修改主机名
#修改配置文件
vim /etc/hosts
192.168.10.11 node1
192.168.10.12 node2
192.168.10.13 node3
192.168.10.14 node4
#添加ip配置

2、安装客户端软件
- 将gfsrepo软件上传到/opt目录下
cd /opt
#切换目录
#将需要的安装包gfsrepo上传
unzip gfsrepo.zip
#解压
cd /etc/yum.repos.d/
#切换目录
mkdir repo.bak
#新建备份文件
mv *.repo repo.bak
#移动所有以repo结尾的文件到备份文件中
#编辑配置文件
vim glfs.repo
[glfs]
name=glfs
baseurl=file:///opt/gfsrepo
gpgcheck=0
enabled=1
yum clean all
#清除缓存
yum makecache
#重新下载元数据
yum install -y glusterfs glusterfs-fuse
#安装


3、创建挂载目录
mkdir -p /test/{fenbushi,tiaodai,fuzhi,fbs_td,fbs_fz}
#递归创建挂载目录
ll /test
#查看新建的目录

4、挂载Gluster文件系统
4.1 临时挂载
mount.glusterfs node1:fenbushi /test/fenbushi
mount.glusterfs node1:tiaodai /test/tiaodai
mount.glusterfs node1:fuzhi /test/fuzhi
mount.glusterfs node1:fbs_td /test/fbs_td
mount.glusterfs node1:fbs_fz /test/fbs_fz
#临时挂载
df -h
#查看挂载信息

4.2 永久挂载
#永久挂载,写入配置文件
vim /etc/fstab
node1:fenbushi /test/fenbushi glusterfs defaults,_netdev 0 0
node1:tiaodai /test/tiaodai glusterfs defaults,_netdev 0 0
node1:fuzhi /test/fuzhi glusterfs defaults,_netdev 0 0
node1:fbs-td /test/fbs_td glusterfs defaults,_netdev 0 0
node1:fbs-fz /test/fbs_fz glusterfs defaults,_netdev 0 0
mount -a
#重新挂载
df -f
#查看挂载信息



四、测试Gluster文件系统
1、客户端操作,卷中写入文件
cd /opt
#切换目录
dd if=/dev/zero of=/opt/demo1.log bs=1M count=40
dd if=/dev/zero of=/opt/demo2.log bs=1M count=40
dd if=/dev/zero of=/opt/demo3.log bs=1M count=40
dd if=/dev/zero of=/opt/demo4.log bs=1M count=40
dd if=/dev/zero of=/opt/demo5.log bs=1M count=40
#写入文件
ll -h /opt
#查看目录信息
cp /opt/demo* /test/fenbushi/
cp /opt/demo* /test/tiaodai/
cp /opt/demo* /test/fuzhi/
cp /opt/demo* /test/fbs_td/
cp /opt/demo* /test/fbs_fz/
#将文件复制到挂载目录


2、查看文件分布
2.1 查看分布式文件分布
- node1
ll -h /data/sdc1
#数据没有被分片,但随机分布储存

- node2
ll -h /data/sdc1
#数据没有被分片,但随机分布储存

2.2 查看条带卷文件分布
- node3
ll -h /data/sdb1
#数据被分片50%,没副本,没冗余

- node4
ll -h /data/sdb1
#数据被分片50% 没副本 没冗余

2.3 查看复制卷分布
- node3
ll -h /data/sdc1
#数据没有被分片,有副本,有冗余

- node4
ll -h /data/sdc1
#数据没有被分片,有副本,有冗余

2.4 查看分布式条带卷分布
- node1
ll -h /data/sdd1
#数据被分片50% 没副本 没冗余

- node2
ll -h /data/sdd1
#数据被分片50% 没副本 没冗余

- node3
ll -h /data/sdd1
#数据被分片50% 没副本 没冗余

- node4
ll -h /data/sdd1
#数据被分片50% 没副本 没冗余

2.5 查看分布式复制卷分布
- node1
ll -h /data/sde1
#数据没有被分片,有副本,有冗余

- node2
ll -h /data/sde1
#数据没有被分片,有副本,有冗余

- node3
ll -h /data/sde1
#数据没有被分片,有副本,有冗余

- node4
ll -h /data/sde1
#数据没有被分片,有副本,有冗余

五、破坏性测试
- 挂起node3节点服务器
1、客户端查看文件是否正常
1.1 分布式卷
ll -h /test/fenbushi
#数据可以访问,因为分布式存储在node1节点和node2节点
#若此时挂起node2节点服务器
ll -h /test/fenbushi
#数据可以访问,但缺少demo5.log文件,这个文件存储在node2节点
#测试完后将node2节点服务器正常运行,测试下面文件


1.2 条带卷
ll -h /test/tiaodai
#无法访问,条带卷不具备冗余性

1.3 复制卷
ll -h /test/fuzhi
#数据可以访问,也没有缺失

1.4 分布式条带卷
ll -h /test/fbs-td
#可以访问,但是没有数据,没有冗余性

1.5 分布式复制卷
ll -h /test/fbs_fz

扩展
gluster volume list
#查看GlusterFS卷
gluster volume info
#查看所有卷的信息
gluster volume status
#查看所有卷的状态
gluster volume stop 卷名
#停止一个卷
gluster volume delete 卷名
#删除一个卷,
#注意:删除卷时,需要先停止卷,且信任池中不能有主机处于宕机状态,否则删除不成功
##设置卷的访问控制
gluster volume set 卷名 auth.deny 192.168.10.0
#仅拒绝192.168.10.0网段
gluster volume set 卷名 auth.allow 192.168.10.0
#仅允许
#设置192.168.10.0网段的所有IP地址都能访问上述卷名
总结
分布式卷
- 以文件为单位,通过hash散列,在各个brick中,不具备冗余能力
条带卷
- 把数据进行分块,以轮询的方式分布在各个brick中,不具备冗余能力
复制卷
- 把文件进行brick中做镜像存储,具备冗余能力
分布式条带卷
- 不具备冗余能力,至少需要4个(服务器)brick,brick>=2,条带的2倍
分布式复制卷
- 具备冗余能力,至少需要4个(服务器)brick,brick>=2,副本数的2倍
更多推荐

所有评论(0)