GlusterFS集群安装

GlusterFS集群安装

GlusterFS

参考链接:https://zhuanlan.zhihu.com/p/586419358

实现效果

GFS1和GFS2为复制关系,两者数据保持一致。

挂载GFS时仅挂载1个IP即可。当GFS1出现问题时,自动切换到GFS2。从而实现双活,不影响GFS的挂载使用。

GlusterFS集群安装,实现两者复制关系

安装环境准备

服务器编号 OS IP
GFS1 CentOS7.9-2009 192.168.1.15
GFS2 CentOS7.9-2009 192.168.1.16

安装GlusterFS

在GFS1、GFS2上安装GlusterFS

yum install -y centos-release-gluster # 配置 gluster 源
yum install -y glusterfs-server

启动GlusterFS,并配置为开机自启动

在GFS1、GFS2上启动GlusterFS,并配置为开机自启动

systemctl start glusterd.service
systemctl status glusterd.service # 查看运行状态
systemctl enable glusterd.service

打开 GlusterFS 所使用的端口(默认为 TCP 24007 和 24008)

firewall-cmd --add-port=24007-24008/tcp --permanent
firewall-cmd --reload

配置 GlusterFS 集群

在任意一台服务器上将两个节点加入集群(这里选用的是GFS1):

gluster peer probe 192.168.1.15
gluster peer probe 192.168.1.16
gluster peer status ###查看集群状态

操作前确认防火墙对应端口已经打开否则会报错

peer probe: failed: Probe returned with Transport endpoint is not connected

创建数据存储目录

在GFS1、GFS2上

mkdir -p /data/gluster

创建GlusterFS磁盘

在任意一台服务器上创建GlusterFS磁盘(这里选用的是GFS1):

gluster volume create wwwroot replica 2 192.168.1.15:/data/gluster 192.168.1.16:/data/gluster force
gluster volume info  ###查看volume状态

在这里,wwwroot 是创建的 GlusterFS 卷的名称,replica 2 意味着使用两个节点进行数据复制,192.168.1.15:/data/gluster 和 192.168.1.16:/data/gluster 是两个节点的数据目录。确保在所有节点上路径一致。

启动volume

在任意一台服务器上启动volume(这里选用的是GFS1):

gluster volume start wwwroot
gluster volume list

Keepalived安装,实现主从热备

Keepalived 是一个用于实现高可用性的开源软件,它提供了虚拟IP地址和健康检查,以确保在主服务器故障时自动切换到备份服务器。在结合 Keepalived 和 GlusterFS 使用时,你可以在服务器之间实现高可用性,确保服务的连续性。

安装环境准备

服务器编号 OS IP
vip - 192.168.1.132
以下是使用 Keepalived 实现 GlusterFS 高可用性的基本步骤:

在 GFS1 和 GFS2 上安装 Keepalived

yum install keepalived

在 GFS1 和 GFS2 上配置 Keepalived

在 GFS1 上创建 keepalived.conf 配置文件:

vi /etc/keepalived/keepalived.conf

配置文件示例:

vrrp_script chk_gluster {
    script "/usr/bin/systemctl is-active glusterd"
    interval 2
    weight -2
}

vrrp_instance VI_1 {
    state MASTER
    interface eth0
    virtual_router_id 51
    priority 101
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass YourAuthenticationPassword
    }
    virtual_ipaddress {
        10.158.16.150
    }
    track_script {
        chk_gluster
    }
}

在 GFS2 上创建相同的配置文件,但将 state 改为 BACKUP 和 priority 改为 100

启动 Keepalived 并配置为开机自启动

在 GFS1 和 GFS2 上执行以下命令:

sudo systemctl start keepalived
sudo systemctl enable keepalived

测试

现在,可以在 10.158.16.150 上看到虚拟IP地址。这个IP地址将在 GFS1 出现故障时自动迁移到 GFS2。

确保在测试之前在所有节点上启动了 glusterd 和 keepalived 服务。

这样,通过使用 Keepalived,你可以实现 GlusterFS 的高可用性,并在主服务器发生故障时自动切换到备份服务器。请根据实际环境进行适当的配置调整。

Nginx安装,实现主从负载

安装环境准备

服务器编号 OS IP
Nginx1-GFS CentOS7.9-2009 192.168.1.131

安装Nginx

# 在Nginx服务器上安装Nginx,并设置为开机自启
yum install -y nginx
systemctl enable keepalived

配置Nginx

修改 Nginx 配置文件以添加 GlusterFS 节点的反向代理。

http {
    upstream glusterfs_cluster {
        server 192.168.1.15; # 替换为你的域名或 IP 地址
        server 192.168.1.16; # 替换为你的域名或 IP 地址
    }

    server {
        listen 80;
        server_name 192.168.1.131; # 替换为你的域名或 IP 地址

        location / {
            proxy_pass http://glusterfs_cluster;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
        }
        # 可以添加其他配置,如 SSL 配置等
    }
}

重启 Nginx:

systemctl restart nginx

挂载 GlusterFS 卷测试

在客户端系统上挂载 GlusterFS 卷。确保使用的是 Nginx 服务器的地址作为挂载点。

glusterfs --volfile-server=192.168.1.131  --volfile-id=wwwroot /web/wwwroot_release

Nginx+Keepalived安装,实现高可用主从负载

安装环境准备

服务器编号 OS IP
Nginx1-GFS CentOS7.9-2009 192.168.1.131
Nginx2-GFS CentOS7.9-2009 192.168.1.132
vip - 192.168.1.130

安装Nginx

在Nginx1-GFS、Nginx2-GFS上安装Nginx

# 在Nginx服务器上安装Nginx,并设置为开机自启
yum install -y nginx
systemctl enable keepalived

安装 Keepalived

在 Nginx1-GFS、Nginx2-GFS上安装 Keepalived

yum install keepalived

配置Nginx

在Nginx1-GFS、Nginx2-GFS上修改 Nginx 配置文件以添加 GlusterFS 节点的反向代理。

配置样例:

http {
    upstream glusterfs_cluster {
        server 192.168.1.15; # 替换为你的域名或 IP 地址
        server 192.168.1.16; # 替换为你的域名或 IP 地址
    }

    server {
        listen 80;
        server_name 192.168.1.130; # 替换为你的域名或 虚拟 IP 地址

        location / {
            proxy_pass http://glusterfs_cluster;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
        }
        # 可以添加其他配置,如 SSL 配置等
    }
}

配置 Keepalived

在 Nginx1-GFS 上创建 keepalived.conf 配置文件:

vi /etc/keepalived/keepalived.conf

配置文件示例:

# /etc/keepalived/keepalived.conf

vrrp_script chk_nginx {
    script "pidof nginx"
    interval 2
}

vrrp_instance VI_1 {
    state MASTER # 在一台服务器上设置为 MASTER,另一台设置为 BACKUP
    interface eth0
    virtual_router_id 51
    priority 101 # 在 MASTER 上设置为更高的优先级,BACKUP 设置为较低的优先级
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass YourAuthenticationPassword # 替换 YourAuthenticationPassword 为你的认证密码。
    }
    virtual_ipaddress {
        192.168.1.130 # 替换为你的虚拟 IP 地址
    }
    track_script {
        chk_nginx
    }
}

在 Nginx1-GFS上创建相同的配置文件,但将 state 改为 BACKUP 和 priority 改为 100

重启 Nginx:

systemctl restart nginx

启动 Keepalived 并配置为开机自启动

在 GFS1 和 GFS2 上执行以下命令:

sudo systemctl start keepalived
sudo systemctl enable keepalived

测试

现在,可以在 10.158.16.150 上看到虚拟IP地址。这个IP地址将在 GFS1 出现故障时自动迁移到 GFS2。

确保在测试之前在所有节点上启动了 glusterd 和 keepalived 服务。

这样,通过使用 Keepalived,你可以实现 GlusterFS 的高可用性,并在主服务器发生故障时自动切换到备份服务器。请根据实际环境进行适当的配置调整。

挂载 GlusterFS 卷测试

在客户端系统上挂载 GlusterFS 卷。确保使用的是 Nginx 服务器的地址作为挂载点。

glusterfs --volfile-server=192.168.1.131  --volfile-id=wwwroot /web/wwwroot_release
posted @ 2023-12-26 10:17  zdtiio  阅读(91)  评论(0编辑  收藏  举报