当前位置: 首页 > 技术教程

高可用集群搭建详细步骤?高可用集群的工作原理

  高可用集群是以减少服务中断时间为目标的服务器集群技术,通过冗余节点实现故障自动切换以确保业务连续性。高可用集群通过多节点冗余设计消除单点故障,核心组件包括心跳检测、资源管理和数据同步。主节点处理请求时,备节点实时监控其状态,若检测到故障,备节点立即接管服务,确保业务连续性。

  高可用集群搭建详细步骤

  一、基础环境准备

  服务器规划

  节点数量:至少2台物理/虚拟机,例如:

  Node1: 192.168.1.10

  Node2: 192.168.1.11

  VIP(虚拟IP): 192.168.1.100

  系统初始化:

  关闭防火墙:systemctl stop firewalld && systemctl disable firewalld

  禁用SELinux:setenforce 0 && sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

  时间同步:安装NTP服务(如ntpdate pool.ntp.org)或Chrony。

  SSH互信配置

  所有节点生成密钥并互相分发:

  bashssh-keygen -t rsassh-copy-id -i ~/.ssh/id_rsa.pub root@node1ssh-copy-id -i ~/.ssh/id_rsa.pub root@node2

  二、Web服务器高可用方案

  负载均衡器高可用

  安装Keepalived:yum install -y keepalived

  主节点配置(/etc/keepalived/keepalived.conf):

  confglobal_defs { router_id LVS_MASTER }vrrp_instance VI_1 {state MASTERinterface eth0virtual_router_id 51priority 100advert_int 1authentication { auth_type PASS auth_pass 1111 }virtual_ipaddress { 192.168.1.100/24 dev eth0 }}

  备节点配置:修改state为BACKUP,priority为90。

  启动服务:

  bashsystemctl enable keepalived && systemctl start keepalived

  负载均衡配置(HAProxy示例)

  安装HAProxy:yum install -y haproxy

  配置文件(/etc/haproxy/haproxy.cfg):

  conffrontend http_frontbind 192.168.1.100:80default_backend http_backbackend http_backbalance roundrobinserver web1 192.168.1.10:80 checkserver web2 192.168.1.11:80 check

  三、数据库高可用方案

  安装Galera Cluster

  所有节点执行:

  bashyum install -y mariadb-server galera

  配置文件(/etc/my.cnf.d/galera.cnf):

  conf[galera]wsrep_on=ONwsrep_provider=/usr/lib64/galera/libgalera_smm.sowsrep_cluster_address="gcomm://node1,node2"binlog_format=rowdefault_storage_engine=InnoDB

  初始化集群

  在第一个节点启动:galera_new_cluster

  其他节点加入:systemctl start mariadb

  验证集群状态:

  sqlSHOW STATUS LIKE 'wsrep_cluster_size';

  四、通用应用高可用

  安装集群组件

  安装Pacemaker、Corosync和PCS:

  bashyum install -y pacemaker corosync pcssystemctl enable pcsd && systemctl start pcsdpasswd hacluster # 设置集群认证密码(所有节点一致)

  配置Corosync

  认证节点:pcs cluster auth node1 node2

  创建集群:

  bashpcs cluster setup --name my_cluster node1 node2pcs cluster start --allpcs cluster enable --all

  配置资源

  创建虚拟IP资源:

  bashpcs resource create Virtual_IP ocf:heartbeat:IPaddr2 ip=192.168.1.100 cidr_netmask=24 op monitor interval=30s

  创建Apache服务资源:

  bashpcs resource create Web_Server systemd:httpd op monitor interval=60s

  绑定资源组:

  bashpcs resource group add Web_Group Virtual_IP Web_Server

  五、存储高可用

  安装DRBD

  安装DRBD和内核模块:

  bashyum install -y drbd kmod-drbd84

  配置文件(/etc/drbd.d/global_common.conf):

  confresource r0 {protocol C;disk { on-io-error detach; }on node1 {device /dev/drbd0;disk /dev/sdb1;address 192.168.1.10:7788;}on node2 {device /dev/drbd0;disk /dev/sdb1;address 192.168.1.11:7788;}}

  初始化并启用DRBD

  初始化资源:drbdadm create-md r0

  启动服务:

  bashsystemctl enable drbd && systemctl start drbd

  主节点初始化:

  bashdrbdadm primary r0 --forcemkfs.xfs /dev/drbd0

  六、验证与测试

  故障转移测试

  手动触发主节点故障:

  bashpcs node standby node1 # Pacemaker集群systemctl stop keepalived # Keepalived测试

  脑裂防护配置

  在Pacemaker中配置Quorum:

  bashpcs property set no-quorum-policy=freeze

高可用集群搭建详细步骤.jpg

  高可用集群的工作原理

  一、核心机制

  心跳检测

  节点间周期性交换心跳包,通过私网或公网传输。若主节点心跳超时,备用节点立即接管资源。

  资源约束管理

  位置约束:指定资源运行节点。

  顺序约束:控制服务启动次序。

  排列约束:协调资源依赖关系。

  数据同步

  共享磁盘:通过SAN/iSCSI存储架构确保所有节点访问同一数据副本。

  数据库复制:MySQL主从复制或Galera多节点同步复制,防止脑裂导致的数据损坏。

  分布式文件系统:如Ceph提供对象存储、块存储和文件系统接口,支持多节点冗余和自动故障恢复。

  透明切换

  通过IP漂移或资源代理实现用户无感知的系统切换,典型切换时间可控制在秒级。

  二、典型架构

  双机热备

  两台服务器互相备份,主节点处理请求,备节点实时同步数据。当主节点故障时,备节点自动接管服务。

  适用场景:中小企业Web服务、文件服务器等。

  多节点集群

  支持3个以上节点,提供比双机热备更多、更高级的功能,如负载均衡、分布式存储等。

  示例:Hadoop HDFS通过备用NameNode解决元数据服务单点问题,支持PB级数据存储。

  共享存储架构

  所有节点连接共享存储设备,确保数据一致性。当某个节点故障时,其他节点可立即挂载存储并继续提供服务。

  优势:数据同步效率高,适合读写频繁的场景。

  分布式存储架构

  通过多节点冗余和自动故障恢复实现高可用。数据分片存储在不同节点上,即使部分节点故障,数据仍可完整读取。

  优势:扩展性强,适合大规模数据存储场景。

  三、关键技术组件

  Heartbeat

  三层架构,支持资源级故障转移。

  适用场景:传统Linux高可用集群。

  Keepalived

  基于VRRP协议实现IP地址漂移,广泛用于LVS负载均衡集群。

  优势:轻量级、配置简单,适合快速搭建Web服务器高可用集群。

  Pacemaker + Corosync

  Pacemaker:新一代集群管理器,支持节点级和资源级的高可用配置,兼容物理机、虚拟机及云环境。

  Corosync:提供稳定的消息传递和成员管理功能,常与Pacemaker搭配使用,支持Quorum机制防止脑裂。

  适用场景:企业级核心业务系统。

  Zookeeper

  提供分布式协调服务,基于类似Paxos算法的投票机制保证集群高可用性和数据一致性。

  应用:Hadoop、Kafka等分布式系统的服务注册、配置维护和命名服务。

  其工作原理依赖分布式协调机制,节点间通过私网交换心跳包,结合Quorum投票防止脑裂。资源管理器按约束规则调度服务,确保资源单一运行。数据层通过共享存储或同步复制保持一致,切换时间通常在秒级,用户无感知。


猜你喜欢