插件窝 干货文章 如何在Linux中部署高可用架构

如何在Linux中部署高可用架构

可用 节点 Keepalived 服务器 670    来源:    2025-04-18

在Linux系统中部署高可用(High Availability, HA)架构需要综合考虑负载均衡、故障转移、数据同步等多个环节。以下是分步骤的详细方案:


一、架构设计核心组件

  1. 负载均衡层
    • 软件:Nginx/HAProxy/LVS
    • 作用:分发流量到后端多台应用服务器
  2. 应用服务器集群
    • 多台无状态服务器(如Web服务)
    • 通过容器化(Docker/Kubernetes)或虚拟机实现横向扩展
  3. 高可用中间件
    • Pacemaker + Corosync:管理资源故障转移
    • Keepalived:实现VIP(虚拟IP)漂移
  4. 数据层高可用
    • 数据库:MySQL主从/MGR、PostgreSQL流复制、Redis Sentinel/Cluster
    • 分布式存储:Ceph/GlusterFS(避免单点存储故障)

二、详细部署步骤

1. 负载均衡层高可用

方案A:Keepalived + Nginx/HAProxy

# 在两台LB服务器上安装Keepalived和Nginx
apt-get install keepalived nginx

# 配置Keepalived(主节点)
vim /etc/keepalived/keepalived.conf
vrrp_instance VI_1 {
    state MASTER    # 备用机改为BACKUP
    interface eth0
    virtual_router_id 51
    priority 100    # 备用机设为更低值(如90)
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.1.100/24  # VIP
    }
}

验证VIP漂移

ip addr show eth0  # 查看VIP归属

2. 应用层高可用

方案A:容器化部署(Kubernetes)

# 使用kubeadm部署K8s集群(至少3个节点)
kubeadm init --control-plane-endpoint "LOAD_BALANCER_DNS:6443"
kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml

方案B:传统服务器+Pacemaker

# 在所有节点安装Pacemaker/Corosync
apt-get install pacemaker corosync pcs
pcs cluster auth node1 node2 -u hacluster -p password
pcs cluster setup --name my_cluster node1 node2
pcs cluster start --all

3. 数据库高可用

MySQL Group Replication(MGR)示例

-- 在每个节点执行
SET SQL_LOG_BIN=0;
CREATE USER repl@'%' IDENTIFIED BY 'password';
GRANT REPLICATION SLAVE ON *.* TO repl@'%';
FLUSH PRIVILEGES;
SET SQL_LOG_BIN=1;

-- 初始化组复制
CHANGE MASTER TO MASTER_USER='repl', MASTER_PASSWORD='password' FOR CHANNEL 'group_replication_recovery';
START GROUP_REPLICATION;

4. 监控与告警

  • Prometheus + Grafana:监控服务器/服务状态
  • Alertmanager:配置邮件/短信告警规则
# Prometheus告警规则示例
groups:
- name: HA-Alerts
  rules:
  - alert: InstanceDown
    expr: up{job="nginx"} == 0
    for: 1m
    labels:
      severity: critical

三、关键验证点

  1. 故障模拟测试
    • 断掉主负载均衡器电源,VIP应在秒级切换到备用机
    • 终止数据库主节点,从节点应自动提升为主
  2. 性能基准测试
    • 使用abwrk模拟高并发流量 bash ab -n 10000 -c 100 http://192.168.1.100/
  3. 数据一致性检查
    • 数据库主从延迟监控:SHOW SLAVE STATUS\G

四、进阶优化方向

  1. 多地域容灾
    • 使用DNS轮询或Anycast实现跨机房高可用
  2. 自动化故障恢复
    • 结合Ansible/Terraform实现基础设施自愈
  3. 服务网格
    • 引入Istio/Linkerd实现细粒度流量管理

常见问题解决

  • 脑裂问题:配置Pacemaker的stonith设备或仲裁磁盘
  • VIP不漂移:检查防火墙是否阻止VRRP协议(协议号112)
  • 数据同步延迟:优化数据库并行复制线程

通过以上步骤,可构建一个99.99%可用性的Linux高可用架构。实际部署时需根据业务需求调整组件选型(如替换HAProxy为Traefik,或使用云厂商的托管服务如AWS ALB+RDS)。