利用keepalived和haproxy搭建高可靠rgw集群

    科技2022-07-20  102

    安装keepalived(集群中的所有主机都安装)

    ​ keepalived: 一种高性能的服务器高可用或热备解决方案

    yum install keepalived -y

    修改配置文件(master节点) ! Configuration File for keepalived global_defs { notification_email { acassen@firewall.loc failover@firewall.loc sysadmin@firewall.loc } notification_email_from Alexandre.Cassen@firewall.loc smtp_server 192.168.200.1 smtp_connect_timeout 30 router_id LVS_DEVEL vrrp_skip_check_adv_addr # vrrp_strict #此处需要修改,否则可以会出现端口无法访问的情况 vrrp_garp_interval 0 vrrp_gna_interval 0 } # 切换脚本 如果haproxy服务掉线,会将该主机的权重-2,使得backup成为master vrrp_script chk_haproxy { script "killall -0 haproxy" interval 2 weight -2 } vrrp_instance RGW { state MASTER interface ens37 #vip配置的网卡 这个必须要真实存在 (也就是从现有的网卡中挑选一块) virtual_router_id 51 priority 100 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.100.104/24 #vip地址,虚拟ip地址,配置之后自动在interface选择的网卡中生成 } track_script { chk_haproxy #脚本 } } 备用节点其他都一样,就是将 state MASTER字段改为state BACKUP

    启动服务

    systemctl restart keepalived

    查看日志(报错正常,因为我们haproxy未启动)

    安装haproxy(集群中的主机都安装)

    haproxy:提供高可用性、负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费、快速并且可靠的一种解决方案

    yum install haproxy -y

    修改配置文件(主要修改frontend和backend内容)

    frontend我是和ceph中的rgw集成,因此使用htpp协议,代理端口设置为80。

    backend是设置rgw的ip地址和暴露的端口号(rgw默认端口为7480,在ceph.conf中我修改为了81)

    这样就完成了代理。

    启动haproxy服务

    systemctl restart haproxy

    查看状态

    systemctl status haproxy

    检查

    我们可以看到虚拟ip已经添加到ens37网卡上了

    s3客户端也可以进行访问

    如果我们此时停止node1(Keepalived初始的master节点)的haproxy服务

    systemctl stop haproxy

    我们可以看到当前node1的ens37中已经没有192.168.100.104(vip)了

    node2我们可以看到vip已经转移到此节点

    至此完成了vip漂移

    如果配置了s3客户端,我们需要对其配置文件进行修改,使其指向我们配置的keepalived配置的vip

    完成高可用rgw集群的搭建

    Processed: 0.012, SQL: 8