Glusterfs复制卷的配置

时间:2024-04-03 20:57:35

1. 复制卷

复制卷(Replicated Glusterfs Volume,又称AFR(Auto File Replication)),特点如下:

  1. 每个文件同步复制镜像到多个brick,相当于文件级raid1;
  2. 副本数量通常设置为2或3,设置的副本数量需要是brick数量(至少为2)的倍数(如2台brick server,可设置副本数为2/4/6/…;如3台brick server,可设置副本数为3/6/9/…;依次类推),且每个brick的容量相等;
  3. 读性能提升,写性能下降,因为glusterfs的复制是同步事务操作,即写文件时,先把这个文件锁住,然后同时写两个或多个副本,写完后解锁,操作结束(ceph采用异步写副本,即写到一个主OSD便返回,这个OSD再通过内部网络异步写到其余OSD);
  4. 通常与分布式卷或条带卷组合使用,解决前两者的冗余问题;
  5. 提升数据可靠性,但磁盘利用率低;
  6. 副本数设置为2时,可能会有脑裂(Split-brain)的风险(风险提示,但可配置),主要因在两个副本不一致时,无法仲裁以哪个副本为准,解决方案是加入仲裁或者设置3副本。

Glusterfs复制卷的配置

1)创建复制卷

# 命令:gluster volume create NEW-VOLNAME [replica COUNT] [transport [tcp | rdma | tcp,rdma]] NEW-BRICK...
# 以上命令在任意server节点操作均可,以glusterfs01节点为例;
# 创建名为”replica-volume”的逻辑卷;
# 必须指定卷类型(默认为分布式卷)与对应的副本数量,数量需要与后续使用brick server数量对等;
# “transport tcp”指定集群通信方式;
# 副本数为2时,有脑裂风险提示,提示采用3副本或仲裁机制,验证环境略过即可
[[email protected] ~]# gluster volume create replica-volume replica 2 transport tcp glusterfs01:/brick1/repl_volume glusterfs02:/brick2/repl_volume 

Glusterfs复制卷的配置

2)启动卷

[[email protected] ~]# gluster volume start replica-volume
[[email protected] ~]# gluster volume info replica-volume

Glusterfs复制卷的配置

3)client挂载

[[email protected] ~]# mkdir /mnt/replica
[[email protected] ~]# mount.glusterfs 172.30.200.51:replica-volume /mnt/replica/

4)查看挂载情况

# 已挂载卷的容量是1个brick的容量
[[email protected] ~]# df -Th

Glusterfs复制卷的配置

5)存储测试

# 在client的挂载目录下创建若干文件
[[email protected] ~]# cd /mnt/replica/
[[email protected] replica]# touch replica{1..4}.txt

# 向replica1.txt文件写入内容
[[email protected] replica]# echo "this is replica1.txt" >> replica1.txt
# glusterfs01节点
[[email protected] ~]# tree /brick1/repl_volume/
[[email protected] ~]# cat /brick1/repl_volume/replica1.txt

Glusterfs复制卷的配置

# glusterfs02节点
[[email protected] ~]# tree /brick2/repl_volume/
[[email protected] ~]# cat /brick2/repl_volume/replica1.txt

Glusterfs复制卷的配置

结论:复制卷将1个文件同步镜像到多个brick server,数据有冗余备份。