环境准备
目前由于在做电信云项目,由于平台层承载是通过k8s 调度,其中文件系统用到gfs,所以目前先验证下gsf的ipv6的支持。
准备三台服务器,(本人使用的Centos 7.3)分配好ipv6的地址。
考虑到后期上生产环境内网的情况所以本人采用rpm包安装的方式。安装库的链接可以下载我提供的链接。
链接:https://pan.baidu.com/s/1Dour2mr29q8aAlvlLO99mg 密码:t3zq
安装步骤
由于目前是验证阶段,先未通过shell脚本去执行【在三台服务器上分别执行】。
1、安装rpm文件
yum localinstall *.rpm
2、开启服务
systemctl enable glusterd systemctl start glusterd
3、配置gfs支持 ipv6
volume management type mgmt/glusterd option working-directory /var/lib/glusterd option transport-type socket,rdma option transport.socket.keepalive-time 10 option transport.socket.keepalive-interval 2 option transport.socket.read-fail-log off option ping-timeout 0 option event-threads 1 # option lock-timer 180 option transport.address-family inet6 用于支持 ipv6 # option base-port 49152 end-volume
4、然后重启glusterd服务。
5、在三台节点上分别设置可信任的存储池,加入存储集群,在其中一台机器上执行如下步骤,本地机器无需再添加,只要加另外两台机器。
gluster peer probe host1ipv6address gluster peer probe host2ipv6address
5、查看存储池状态
$ gluster peer status gluster peer status Number of Peers: 2 Hostname: fd88:5110:a250:12:0:86:511:13 Uuid: d2e04533-0f6a-4059-b961-52e7e5240c58 State: Peer in Cluster (Connected) Hostname: FD88:5110:A250:12:0:97:0601:7 Uuid: 4141932b-3cbb-416f-8660-7ebd6f77b45b State: Peer in Cluster (Connected)
6、创建共享磁盘【此次为测试,挂载位置具体需求可自行决定】
- 在三台节点上分别创建磁盘目录:
mkdir -p /opt/volumes
- 在任意节点执行如下命令,创建磁盘:
[root@epic1 opt]# gluster volume create epic replica 3 FD88:5110:A250:12:0:86:0511:12:/opt/volumes FD88:5110:A250:12:0:86:0511:13:/opt/volumes FD88:5110:A250:12:0:97:0601:7:/opt/volumes force volume create: epic: success: please start the volume to access data
注:其中 replica 3代表三台节点同时保存副本,如果不写则代表三台节点组成一个大硬盘的方式
- 启动volume
[root@epic1 opt]# gluster volume start epic volume start: epic: success
备注:
gluster volume stop epic(停止) gluster volume delete epic(删除)
- 查看volume状态
[root@epic1 opt]# gluster volume info Volume Name: epic Type: Replicate Volume ID: 97f2a23d-3c88-4e6e-97f2-97795af03452 Status: Started Snapshot Count: 0 Number of Bricks: 1 x 3 = 3 Transport-type: tcp Bricks: Brick1: FD88:5110:A250:12:0:86:0511:12:/opt/volumes Brick2: FD88:5110:A250:12:0:86:0511:13:/opt/volumes Brick3: FD88:5110:A250:12:0:97:0601:7:/opt/volumes Options Reconfigured: transport.address-family: inet6 nfs.disable: on performance.client-io-threads: off
7、完成server端配置,client端可以挂载并使用了
- 在3台节点分别创建存储目录:
[root@epic1 opt]# mkdir -p /opt/data
- 在3台节点分别挂载该存储目录到glusterfs集群刚刚创建好的volume上:
[root@epic1 opt]# mount -t glusterfs -o rw FD88:5110:A250:12:0:86:0511:12:epic /opt/data
注意:另外两节点改为对应IP
同时,将上面挂载命令写入到/etc/sysconf/init中,保证服务器重启后能够自动挂载:
[root@epic1 opt]# echo "mount -t glusterfs -o rw FD88:5110:A250:12:0:86:0511:12:epic /opt/data" >> /etc/sysconfig/init
- 通过df命令查看挂载结果:
[root@epic1 opt]# df Filesystem 1K-blocks Used Available Use% Mounted on /dev/mapper/bel-root 801485304 5583044 755165904 1% / devtmpfs 197672832 0 197672832 0% /dev tmpfs 197683872 0 197683872 0% /dev/shm tmpfs 197683872 9404 197674468 1% /run tmpfs 197683872 0 197683872 0% /sys/fs/cgroup /dev/sda2 487634 137149 320789 30% /boot /dev/sda1 511720 9712 502008 2% /boot/efi tmpfs 39536776 0 39536776 0% /run/user/0 FD88:5110:A250:12:0:86:0511:12:epic 801485184 5582976 755165824 1% /opt/data
现在在任意client端对/opt/data目录进行文件的操作可以同时在所有client端起作用了。
8、验证
在任何一台服务器上/opt/data目录下写入文件,如:
[root@epic1 /opt/data]# echo "test gluster" > test [root@epic1 /opt/data]# cat test test gluster
然后在其他节点的/opt/data目录下查看是否有该文件,及内容是否正确:
[root@epic2 /opt/data]# ll total 2 -rw-r----- 1 root root 13 May 5 09:08 test [root@epic18 /opt/data]# cat test test gluster
碰到的问题:
1、如果出现挂载目录/opt/data 只读的情况,要检查iptables设置,或者手动放行如下端口:
iptables -I INPUT -p tcp --dport 49152 -j ACCEPT iptables -I INPUT -p tcp --dport 24007 -j ACCEPT
2、机器重启之后会报/opt/data目录挂载不了情况,
执行fusermount-glusterfs -u /opt/data之后 ,就可以挂上了;
df命令查看后无opt/data时重新挂载