页面树结构

版本比较

标识

  • 该行被添加。
  • 该行被删除。
  • 格式已经改变。

GlusterFS 是一个开源的分布式文件系统,如果没有云存储或nfs,可采用glusterfs。

1.安装环境要求

1.1. 集群系统环境

集群地址:

IP

主机名

角色

10.10.35.162

10-10-35-162

Leader

10.10.35.163

10-10-35-163

work

10.10.35.16410-10-35-164

work

1.2.环境检查

安装权限要求:
安装时用root用户运行或使用具有 sudo权限的用户执行。推荐使用root用户安装

1.2 防火墙配置

所有集群内的主机均需进行防火墙配置。

为了便于安装,建议在安装前关闭防火墙。使用过程中,为了系统安全可以选择启用防火墙,但必须启用Smartbi mpp使用到的相关端口。

1.2.1 关闭防火墙

临时关闭防火墙(立即生效)

1

systemctl stop firewalld

...

1

systemctl status firewalld

1.2.2 开启防火墙

相关服务及端口对照表

服务名

开放端口

AIChat

9060、9081

Docker Swarm

2377、2376、5000、7946、4789、5001

GlusterFs

24007、24008、24009、49152、49153、49154、49155、49156、38465、38466、38467、111

...

查看防火墙的配置信息

1

firewall-cmd --list-all

1.2.3 CPU架构以及指令集确认

输入查看系统的指令

代码块
uname -a|grep x86

...

出现如下信息则在Smartbi服务器访问NLA服务是正常的。

1.3 设置系统环境

所有集群内的主机均需设置系统环境

1.3.1 关闭selinux

临时关闭selinux,立即生效,不需要重启服务器。

...

1
2
3

10.10.35.162 10-10-35-162
10.10.35.163 10-10-35-163
10.10.35.164 10-10-35-164

部署(AIChat、Nginx、

...

docker swarm、GlusterFs

2.安装AIChat

具体安装也可以参考单节点部署

  (1) 解压安装包

代码块
languagebash
linenumberstrue
cd /<安装包路径>
tar -xvf nla-setup.tar.gz

...

在各个AIChat集群节点上安装完AIChat服务后执行sudo bash stop.sh停止服务;

3.安装dockaer swarm

3.1 查看已经安装docker环境

# docker version

3.2 创建Swarm集群并且添加节点

1、Leader主机上初始化swarm。执行 docker swarm init 命令的节点自动成为管理节点

...

docker swarm join-token manager

3.3 查看集群信息

# docker info

# docker node ls

3.4 关闭docker swarm集群

#docker node ls 找到leader节点并在leader节点上执行:

...

docker swarm leave --force

4 搭建GlusterFs集群

如果有nfs网络存储,则直接使用nfs,不需要本步骤。

4.1 安装GlusterFs

4.1.1 在所有节点上安装GlusterFS

sudo yum install -y glusterfs-server

4.1.2 在所有节点上启动并使GlusterFS服务

sudo systemctl start glusterd

sudo systemctl enable glusterd

4.1.3 在所有节点上配置防火墙允许GlusterFS通信

sudo firewall-cmd --permanent --add-service=glusterfs

sudo firewall-cmd --reload

4.1.4 在每个节点上,将其它节点的IP地址添加到信任池中:

sudo gluster peer probe <其它节点的IP地址>

4.1.5 查看集群状态

sudo gluster peer status

4.1.6 在任意node上创建复制卷(卷名:gfs-volume)

例如,创建一个名为gfs-volume的复制卷,副本数为3:

...

node2-ip:/data/gfs \

node3-ip:/data/gfs \

force

4.1.7 启动卷

sudo gluster volume start gfs-volume

4.1.8 在每个节点上将卷挂载成同样的目录(挂载路径:glusterfs)

sudo mount -t glusterfs <节点IP>:<卷名> /data/glusterfs

4.1.9 检查卷状态

sudo gluster volume info gfs-volume

注意:替换上述脚本中的 node1node2node3为你自己环境中的实际节点名或者IP;替换/data/gfs (物理存储路径)为磁盘空间充足的文件路径

4.2 GlusterFs集群同步验证

4.2.1. 测试同步

在任一节点上在/data/glusterfs目录下创建、写入或修改文件,可以在另一节点上看到这些更改

4.2.2. 容错测试

停止2个节点的GlusterFS服务:

#sudo systemctl stop glusterd

...

在停止了GlusterFS服务的2节点中仍然能保持数据同步

4.3 GlusterFs共享配置

复制NLA目录到共享存储(具体以实际安装目录)

cp -r /data/admin/smartbi-nla/config/   /data/glusterfs/admin/smartbi-nla/config

cp -r /data/admin/smartbi-nla/scripts    /data/glusterfs/admin/smartbi-nla/scripts

cp -r /data/admin/smartbi-nla/data      /data/glusterfs/admin/smartbi-nla/data

cp -r /data/admin/smartbi-nla/services   /data/glusterfs/admin/smartbi-nla/services

sudo chmod 777 -R /data/glusterfs

4.4 GlusterFs命令

4.4.1. 查看GlusterFS卷

gluster volume list

4.4.2. 查看所有卷的信息

gluster volume info

4.4.3. 查看所有卷的状态

gluster volume status

4.4.4. 停止一个卷

gluster volume stop dis-stripe

4.5 配置相关信息

4.5.1 修改docker-compose.yml配置文件

cd /data/admin/smartbi-nla/services

vim docker-compose.yml

可参考以下配置文件来修改,具体修改为glusterfs共享目录的路径

docker-stack.yml

4.6. 启动AIChat集群

在Leader节点上启动AIChat集群

启动集群:

...

docker stack rm smartbi-nla

4.7 部署Nginx

参考Nginx官方文档 http://nginx.org/en/docs/ 使用源码或者YUM方式部署Nginx。

4.7.1 使用yum方式安装Nginx

# yum install -y nginx

通过如下命令,启动、重启与关闭nginx

...

# vi /etc/log/nginx/access.log     #访问日志

# vi /etc/log/nginx/error.log      #错误日志

4.7.1 Nginx 配置

在 /etc/nginx 路径下修改nginx.conf配置文件,可参考以下配置文件

...