如何在Linux系统上进行高可用性配置?

  • Post category:Linux

在Linux系统上进行高可用性配置,可以使用多种方案,比如Pacemaker、keepalived等。这里以Pacemaker作为示例,详细讲解如何在Linux系统上进行高可用性配置。

1. 安装Pacemaker

在CentOS系统上,可以使用yum命令进行安装Pacemaker及相关组件:

yum install pacemaker pcs fence-agents-all

2. 创建cluster

在其中一台服务器上执行如下命令:

pcs cluster auth node1 node2 -u hacluster -p password

其中node1和node2为需要创建cluster的两个节点,hacluster和password为认证用户和密码。

接着执行:

pcs cluster setup --start --name mycluster node1 node2

其中mycluster为创建的cluster名称。

3. 配置服务

假设我们需要配置高可用的Nginx服务,先在主节点node1上启动Nginx服务,并关联一个资源组。

pcs resource create nginx systemd:nginx op monitor interval=30s --group nginx-group

其中nginx为服务名称,nginx-group为资源组名称,systemd:nginx表示启动命令为systemd下的nginx服务。

接着将资源组迁移到备份节点node2上:

pcs resource move nginx-group node2

4. 测试

在node1上停止Nginx服务,然后检查node2上服务是否启动。

systemctl stop nginx
systemctl status nginx  # 确认服务在node2上启动

5. 其他操作

可以使用如下命令查看cluster信息:

pcs cluster status

使用如下命令关闭cluster:

pcs cluster stop --all

用以上的操作可以在两个节点上创建高可用的Nginx服务,确保在主节点故障时自动切换到备份节点。类似配置方式还可用于其他服务如Mysql、Tomcat等。

另一个示例是使用keepalived实现高可用性配置。keepalived可以实现VRRP(虚拟路由冗余协议)来实现故障切换。

1. 安装keepalived

在CentOS系统上,可以使用yum命令进行安装keepalived:

yum install keepalived -y

2. 配置keepalived

在两台服务器上都进行以下配置文件创建:

vi /etc/keepalived/keepalived.conf

在keepalived.conf中写入如下内容:

! Configuration File for keepalived
global_defs {
   router_id NGINX01      # 两台服务器的标识
}

vrrp_script chk_service {
        script "/etc/keepalived/check_nginx.sh"   # 检查服务脚本
        weight 10
}

vrrp_instance VI_1 {
        state MASTER         # 主节点状态
        interface ens160     # 所在网卡
        virtual_router_id 33 
        track_script {
            chk_service
            # ... 可以添加其他检查脚本
        }
        priority 101         # 当前节点的权重,主节点为101,备份节点为100
        virtual_ipaddress {
            192.168.0.100     # 虚IP地址
        }
}

然后在主节点上创建/etc/keepalived/check_nginx.sh:

#!/bin/bash
service nginx status > /dev/null
if [ $? -ne 0 ];then
    exit 1
else
    exit 0
fi

并执行chmod +x /etc/keepalived/check_nginx.sh。keepalived会根据上述配置文件执行check_nginx.sh脚本来检查服务状态,以决定是否进行故障切换。

3. 测试

在主节点上停止Nginx服务,然后检查备份节点是否启动该服务:

systemctl stop nginx
systemctl status nginx  # 确认服务在备份节点上启动

以上就是使用keepalived实现高可用性配置的示例,keepalived也能够配置其他服务如Mysql等。

总之,上述两种方案都可以实现在Linux系统上高可用性配置,可以根据实际使用场景选择合适的方案。