1. 首页 > Linux教程 > 正文

Linux教程FG329-集群多站点部署

内容简介:本文风哥教程参考Linux官方文档、Red Hat Enterprise Linux官方文档、Ansible Automation Platform官方文档、Docker官方文档、Kubernetes官方文档和Podman官方文档等内容,详细介绍了相关技术的配置和使用方法。

风哥提示:

文档详细介绍集群多站点(跨数据中心)部署的方法。

Part01-多站点架构规划

1.1 查看站点配置

# 查看当前集群配置
[root@site1-node1 ~]# pcs status
Cluster name: multisite-cluster
Cluster Summary:
* Stack: corosync
* Current DC: site1-node1 (version 2.1.7-1.el9)
* Last updated: Fri Apr 4 13:10:00 2026
* Last change: Fri Apr 4 13:05:00 2026
* 4 nodes configured
* 3 resource instances configured

Node List:
* Online: [ site1-node1 site1-node2 site2-node1 site2-node2 ]

Full List of Resources:
* vip-site1 (ocf::heartbeat:IPaddr2): Started site1-node1
* vip-site2 (ocf::heartbeat:IPaddr2): Started site2-node1
* storage-rep (ocf::linbit:drbd): Master site1-node1

# 查看站点节点属性
[root@site1-node1 ~]# pcs node attribute
Node Attributes:
site1-node1: site=site1
site1-node2: site=site1
site2-node1: site=site2
site2-node2: site=site2

Part02-配学习交流加群风哥QQ113257174置站点属性

2.1 设置节点站点属性

# 为节点设置站点属性
[root@site1-node1 ~]# pcs node attribute site1-node1 site=site1
[root@site1-node1 ~]# pcs node attribute site1-node2 site=site1
[root@site1-node1 ~]# pcs node attribute site2-node1 site=site2
[root@site1-node1 ~]# pcs node attribute site2-node2 site=site2

# 验证站点属性
[root@site1-node1 ~]# pcs node attribute
Node Attributes:
site1-node1: site=site1
site1-node2: site=site1
site2-node1: site=site2
site2-node2: site=site2

# 设置站点优先级
[root@site1-node1 ~]# pcs node attribute site1-node1 site-priority=100
[root@site1-node1 ~]# pcs node attribute site1-node2 site-priority=100
[root@site1-node1 ~]# pcs node attribute site2-node1 site-priority=50
[root@site1-node1 ~]# pcs node attribute site2-node2 site-priority=50

# 验证优先级
[root@site1-node1 ~]# pcs node attribute
Node Attributes:
site1-node1: site=site1 site-priority=100
site1-node2: site=site1 site-priority=100
site2-node1: site=site2 site-priority=50
site2-node2: site=site2 site-priority=50

Part03-配置站点资源

3.1 创建站点VIP资源

# 创建站点1 VIP资源
[root@site1-node1 ~]# pcs resource create vip-site1 ocf:heartbeat:IPaddr2 \
ip=192.168.1.100 cidr_netmask=24 \
op monitor interval=30s

# 创建站点2 VIP资源
[root@site1-node1 ~]# pcs resource create vip-site2 ocf:heartbeat:IPaddr2 \
ip=192.168.2.100 cidr_netmask=24 \
op monitor interval=30s

# 设置VIP资源位置约束
[root@site1-node1 ~]# pcs constraint location vip-site1 rule score=INFINITY site eq site1
[root@site1-node1 ~]# pcs constraint location vip-site2 rule score=INFINITY site eq site2

# 查看约束
[root@site1-node1 ~]# pcs constraint location
Location Constraints:
Resource: vip-site1
Rule: score=INFINITY
Expression: site eq site1
Resource: vip-site2
Rule: score=INFINITY
Expression: site eq site2

# 验证资源状态
[root@site1-node1 ~]# pcs status resources
* vip-site1 (ocf::heartbeat:IPaddr2): Started site1-node1
* vip-site2 (ocf::heartbeat:IPaddr2): Started site2-node1

3.2 配置存储复制

# 创建DRBD资源
[root@site1-node1 ~]# pcs resource create drbd-data ocf:linbit:drbd \
drbd_resource=r0 \
op monitor interval=30s role=Master \
op monitor interval=31s role=Slave

# 创建主从资源
[root@site1-node1 ~]# pcs resource master drbd-ms drbd-data \
master-max=1 master-node-max=1

# 设置DRBD位置约束
[root@site1-node1 ~]# pcs constraint location drbd-ms rule score=100 site eq site1
[root@site1-node1 ~]# pcs constraint location drbd-ms rule score=50 site eq site2

# 查看约束
[root@site1-node1 ~]# pcs constraint location
Location Constraints:
Resource: vip-site1
Rule: score=INFINITY
Expression: site eq site1
Resource: vip-site2
Rule: score=INFINITY
Expression: site eq site2
Resource: drbd-ms
Rule: score=100
Expression: site eq site1
Rule: score=50
Expression: site eq site2

# 验证DRBD状态
[root@site1-node1 ~]# pcs status resources
* vip-site1 (ocf::heartbeat:IPaddr2): Started site1-node1
* vip-site2 (ocf::heartbeat:IPaddr2): Started site2-node1
* Master/Slave Set: drbd-ms [drbd-data]
* Masters: [ site1-node1 ]
* Slaves: [ site1-node2 site2-node1 site2-node2 ]

Part04-配置站点故障转移

4.1 配置站点故障转移策略

# 创建站点故障转移脚本
[root@site1-node1 ~]# cat > /usr/local/bin/site_failover.sh << 'EOF' #!/bin/bash CURRENT_SITE=$1 TARGET_SITE=$2 echo "Starting site failover from $CURRENT_SITE to $TARGET_SITE" # 停止当前站点资源 if [ "$CURRENT_SITE" == "site1" ]; then pcs resource disable vip-site1 pcs resource move drbd-ms site2-node1 else pcs resource disable vip-site2 pcs resource move drbd-ms site1-node1 fi # 等待资源转移 sleep 10 # 启动目标站点资源 if [ "$TARGET_SITE" == "site1" ]; then pcs resource enable vip-site1 else pcs resource enable vip-site2 fi echo "Site failover completed" EOF # 添加执行权限 [root@site1-node1 ~]# chmod +x /usr/local/bin/site_failover.sh # 测试站点故障转移 [root@site1-node1 ~]# /usr/local/bin/site_failover.sh site1 site2 Starting site failover from site1 to site2 Site failover completed # 验证故障转移 [root@site1-node1 ~]# pcs status resources * vip-site1 (ocf::heartbeat:IPaddr2): Stopped (disabled) * vip-site2 (ocf::heartbeat:IPaddr2): Started site2-node1 * Master/Slave Set: drbd-ms [drbd-data] * Masters: [ site2-node1 ] * Slaves: [ site1-node1 site1-node2 site2-node2 ]

4.2 配置站点仲裁

# 查看仲裁状态
[root@site1-node1 ~]# pcs quorum status
Quorum information
——————
Date: Fri Apr 4 13:15:00 2026
Quorum provider: corosync_votequorum
Nodes: 4
Node ID: 1
Quorate: Yes

Votequorum information
———————-
Expected votes: 4
Highest expected: 4
Total votes: 4
Quorum: 3
Flags: Quorate

Membership information
———————-
Nodeid Votes Name
1 1 site1-node1 (local)
2 1 site1-node2
3 1 site2-node1
4 1 site2-node2

# 配置仲裁设备
[root@site1-node1 ~]# pcs quorum device add model net host=qdevice.fgedu.net.cn algorithm=lms
Setting up qdevice qnetd…
qdevice.fgedu.net.cn: Setting up corosync-qnetd…
qdevice.fgedu.net.cn: corosync-qnetd started
Sending cluster configuration to all nodes…
site1-node1: Succeeded
site1-node2: Succeeded
site2-node1: Succeeded
site2-node2: Succeeded

# 验证仲裁设备
[root@site1-node1 ~]# pcs quorum device status
Qdevice information
——————-
Model: Net
Configuration: host=qdevice.fgedu.net.cn algorithm=lms
Runtime configuration: host=qdevice.fgedu.net.cn algorithm=lms

# 设置仲裁策略
[root@site1-node1 ~]# pcs property set no-quorum-policy=stop

# 验证设置
[root@site1-node1 ~]# pcs property list no-quorum-policy
no-quorum-policy: stop

风哥针对多站点部署建议:

  • 合理规划站点架构
  • 配置站点节点属性
  • 设置站点资源约束
  • 配置存储复制
  • 测试站点故障转移

本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html

联系我们

在线咨询:点击这里给我发消息

微信号:itpux-com

工作日:9:30-18:30,节假日休息