背景
不能访问互联网的环境离线部署glusterfs集群
集群配置
名称 | ip |
node01 | 192.168.101.91 |
node02 | 192.168.101.92 |
node03 | 192.168.101.93 |
所需软件包下载
本文使用的是centos7环境,安装gluster9可以在这里下载相关安装包到本地:软件包下载
所需软件包截图
一下几个依赖包需要单独下载,libibverbs-22.4-5.el7.x86_64.rpm,librdmacm-22.4-5.el7.x86_64.rpm,userspace-rcu-0.7.16-1.el7.x86_64.rpm,rpcbind-0.2.0-49.el7.x86_64.rpm,下载网址:https://centos.pkgs.org/7/centos-x86_64/
若提示缺liburcu-bp.so.6相关的lib文件,下载地址,可自行下载lib文件放到/usr/lib64/目录下
编写安装脚本setup.sh
#!/bin/bash
rpm -ivh libibverbs-22.4-5.el7.x86_64.rpm --nodeps --force
rpm -ivh librdmacm-22.4-5.el7.x86_64.rpm --nodeps --force
rpm -ivh userspace-rcu-0.7.16-1.el7.x86_64.rpm --nodeps --force
rpm -ivh rpcbind-0.2.0-49.el7.x86_64.rpm --nodeps --force
rpm -ivh libgfapi-devel-9.5-1.el7.x86_64.rpm --nodeps --force
rpm -ivh libgfapi0-9.5-1.el7.x86_64.rpm --nodeps --force
rpm -ivh libgfchangelog-devel-9.5-1.el7.x86_64.rpm --nodeps --force
rpm -ivh libgfchangelog0-9.5-1.el7.x86_64.rpm --nodeps --force
rpm -ivh libgfrpc-devel-9.5-1.el7.x86_64.rpm --nodeps --force
rpm -ivh libgfrpc0-9.5-1.el7.x86_64.rpm --nodeps --force
rpm -ivh libgfxdr-devel-9.5-1.el7.x86_64.rpm --nodeps --force
rpm -ivh libgfxdr0-9.5-1.el7.x86_64.rpm --nodeps --force
rpm -ivh libglusterd0-9.5-1.el7.x86_64.rpm --nodeps --force
rpm -ivh libglusterfs-devel-9.5-1.el7.x86_64.rpm --nodeps --force
rpm -ivh libglusterfs0-9.5-1.el7.x86_64.rpm --nodeps --force
rpm -ivh libtcmu-devel-1.3.0-0.2rc4.el7.x86_64.rpm --nodeps --force
rpm -ivh libtcmu-1.3.0-0.2rc4.el7.x86_64.rpm --nodeps --force
rpm -ivh glusterfs-9.5-1.el7.x86_64.rpm --nodeps --force
rpm -ivh glusterfs-cli-9.5-1.el7.x86_64.rpm --nodeps --force
rpm -ivh glusterfs-client-xlators-9.5-1.el7.x86_64.rpm --nodeps --force
rpm -ivh glusterfs-cloudsync-plugins-9.5-1.el7.x86_64.rpm --nodeps --force
rpm -ivh glusterfs-coreutils-0.3.1-3.el7.x86_64.rpm --nodeps --force
rpm -ivh glusterfs-events-9.5-1.el7.x86_64.rpm --nodeps --force
rpm -ivh glusterfs-extra-xlators-9.5-1.el7.x86_64.rpm --nodeps --force
rpm -ivh glusterfs-fuse-9.5-1.el7.x86_64.rpm --nodeps --force
rpm -ivh glusterfs-ganesha-9.5-1.el7.x86_64.rpm --nodeps --force
rpm -ivh glusterfs-geo-replication-9.5-1.el7.x86_64.rpm --nodeps --force
rpm -ivh glusterfs-resource-agents-9.5-1.el7.noarch.rpm --nodeps --force
rpm -ivh glusterfs-thin-arbiter-9.5-1.el7.x86_64.rpm --nodeps --force
rpm -ivh glusterfs-server-9.5-1.el7.x86_64.rpm --nodeps --force
执行setup脚本安装完成后启动服务,查看服务状态
systemctl start glusterd
systemctl status glusterd
三个节点都安装好gluster服务后开始配置节点
配置节点
编辑每台服务器的/etc/hosts文件,将3台服务器的主机名和IP的映射写进去:
192.168.101.91 node01
192.168.101.92 node02
192.168.101.93 node03
注意防火墙,如果有防火墙,需要关闭防火墙或者开放glusterd服务的端口:
firewall-cmd --add-port=24007-24011/tcp --permanent
firewall-cmd --add-port=38465-38485/tcp --permanent
firewall-cmd --add-port=111/tcp --permanent
firewall-cmd --add-port=111/udp --permanent
firewall-cmd --reload
# systemctl stop firewalld
关联节点:
# from node01,在node01上执行
gluster peer probe node02
gluster peer probe node03
可以通过`gluster peer status`命令查看节点状态。
[root@node01 ~]# gluster peer status
Number of Peers: 2
Hostname: node02
Uuid: 47f5c276-4684-4d6c-82d1-b9c7aeac0689
State: Peer in Cluster (Connected)
Hostname: node03
Uuid: 01bc8bf0-6f74-48a7-bbb0-2569ee1fd638
State: Peer in Cluster (Connected)
[root@node01 ~]# gluster peer status
Number of Peers: 2
Hostname: node02
Uuid: 47f5c276-4684-4d6c-82d1-b9c7aeac0689
State: Peer in Cluster (Connected)
Hostname: node03
Uuid: 01bc8bf0-6f74-48a7-bbb0-2569ee1fd638
State: Peer in Cluster (Connected)
配置Volume
我们将`/brick`目录作为存放gluster所有volume brick的目录,每个volume都会在`/brick`目录下有个单独的子目录。
# 在所有服务器执行
mkdir /brick
# 只需要在一台服务器执行
gluster volume create demo-data replica 3 \
node01:/brick/demo-data \
node02:/brick/demo-data \
node03:/brick/demo-data \
force
gluster volume start demo-data
gluster volume info
挂载目录到共享存储:
# from server01:
mkdir -p /gluster/demo-data
mount -t glusterfs node01:/demo-data /gluster/demo-data
# from server02:
mkdir -p /gluster/demo-data
mount -t glusterfs node02:/demo-data /gluster/demo-data
# from server03:
mkdir -p /gluster/demo-data
mount -t glusterfs node03:/demo-data /gluster/demo-data
在每台服务器的`/gluster/demo-data`目录下就可以看到共享存储的文件了。
测试
# 在node01执行:
touch /gluster/demo-data/123
# 在node02查看:
ls /gluster/demo-data/
# 在node02节点能看到123文件,说明共享存储搭建成功了。
至此安装完成