使用 GlusterFS创建复制卷.note
一、两台存储服务器(不加仲裁):
不加仲裁,正常情况能用,但是当网络抖动或一些意外情况,容易发生脑裂
·拓扑:
# 环境:
## 服务端:
storage1:10.50.10.41
storage2:10.50.10.42
## 客户端(只有一台客户端也行):
web1:10.50.10.31
web2:10.50.10.32
web3:10.50.10.331、配置 存储服务器:
两台服务器各加一块磁盘,也可以不加,直接使用本地目录也可以,反正看题目要求,题没让加就别加
glusterfs的brick路径必须是真实的目录
(1)安装 glusterfs-server(两台机都配置):
apt install -y glusterfs-server(2)启动 glusterd服务,并设置为开机自启(两台机都配置):
systemctl enable glusterd --now
systemctl status glusterd
(3)将磁盘格式化并挂载到目录下(两台机都配置):
建议使用 xfs格式,ext4格式也行,对于100G以内大小的磁盘没区别
其实这里不用加磁盘也行,直接像NFS一样使用本地目录也可以
mkfs.xfs /dev/sdb
mkdir /test
vim /etc/fstab

(4)组建集群(只在其中一台配置):
4.1、组建集群:
只在其中一台机器上执行即可,指定另一台机器的IP地址
# 将另一台机器加入集群:
gluster peer probe 10.50.10.42
# 查看连接状态:
gluster peer status

查看命令参考:
gluster help
gluster peer help

4.2、创建 复制卷:
使用前面挂载的目录创建复制卷
# gluster volume create [卷名称] replica [节点数量] [节点1:目录] [节点2:目录] force
gluster volume create volume_test replica 2 10.50.10.41:test 10.50.10.42:/test force
查看命令参考:
gluster --help
gluster volume help

# 启动卷:
gluster volume start volume_test
查看命令参考:
gluster --help
gluster volume help

# 查看卷信息:
gluster volume info volume_test
gluster volume status volume_test
2、客户端挂载:
此时无论多少个客户端都能挂载,地址就写其中任意一台机器的IP即可,都能写的
挂载点要使用复制卷的名称,而不是复制卷的本地路径
apt install -y glusterfs-client
vim /etc/fstab
# 挂载点要写 glusterfs磁盘的名称,而不是本地路径
# 格式使用 glusterfs

如果有其他客户端,也是同样的方式挂载,内容会在 所有客户端、所有服务器中同步
二、两台存储服务器,一台仲裁服务器(加仲裁):
·拓扑:
# 环境:
## 服务端:
storage1:10.50.10.41
storage2:10.50.10.42
## 客户端(只有一台客户端也行):
web1:10.50.10.31 //这台同时作为仲裁机器,这里就不额外加仲裁机器了
web2:10.50.10.32
web3:10.50.10.331、配置服务端、仲裁机器(与前面类似,只是在加入集群、创建磁盘时加上仲裁):
这里使用本地磁盘(不挂载额外磁盘来创建复制卷)
# 安装 glusterfs-server(服务端、仲裁机器都要配置):
apt install -y glusterfs-server
# 启动 glusterd服务,并设置为开机自启(服务端、仲裁机器都要配置):
systemctl enable glusterd --now
# 将另一台服务器和仲裁机器加入集群:
gluster peer probe 10.50.10.42
gluster peer probe 10.50.10.31 //仲裁机器
# 在服务端和仲裁上创建目录(名称随意):
mkdir /server_path
mkdir /path //仲裁机器上创建(不参与数据同步,只用于仲裁)
# 创建复制卷:
## 会将最后一个节点作为仲裁磁盘:
gluster volume create [卷名称] replica [节点数量(包含仲裁节点)] arbiter [仲裁节点数量] [节点1:目录] [节点2:目录] [仲裁节点:目录] force
gluster volume create volume_test replica 3 arbiter 1 10.50.10.41:/server_path 10.50.10.42:/server_path 10.50.10.31:/path force
# 启动卷:
gluster volume start volume_test
查看命令参考:
gluster --help
gluster volume help

# 查看卷信息:
gluster volume info volume_test
gluster volume status volume_test显示 arbiter的就是仲裁节点

2、客户端挂载:
此时无论多少个客户端都能挂载,地址就写其中任意一台机器的IP即可,都能写的
哪怕此时web1作为仲裁节点,也是能够进行正常挂载的
挂载点要使用复制卷的名称,而不是复制卷的本地路径
apt install -y glusterfs-client
vim /etc/fstab
# 挂载点要写 glusterfs磁盘的名称,而不是本地路径
# 格式使用 glusterfs

如果有其他客户端,也是同样的方式挂载,内容会在 所有客户端、所有服务器中同步
三、停止、删除 集群、复制卷:
# 停止复制卷:
gluster volume stop volume_test
## 在后面加个 force可以强制停止(只在另一节点不在线时)

# 删除复制卷(不会删除本地目录中的数据):
gluster volume delete volume_test
# 将对端从集群中移除(在一台机器上执行,指定另一端IP):
gluster peer detach 10.50.10.42