集群控制:Pacemaker集群资源管理全攻略
立即解锁
发布时间: 2025-08-21 02:23:08 阅读量: 1 订阅数: 5 


PostgreSQL高可用性架构与优化实践
# 集群控制:Pacemaker 集群资源管理全攻略
## 1. 集群基础配置
### 1.1 配置环境
我们将使用两个 PostgreSQL 节点:pg1 和 pg2。以 root 用户身份在任意一台服务器上执行以下步骤。
### 1.2 具体操作步骤
1. **禁用 STONITH**:使用以下 crm 命令禁用 STONITH:
```bash
crm configure property stonith-enabled=false
```
2. **忽略仲裁投票**:使用 crm 命令忽略仲裁投票:
```bash
crm configure property no-quorum-policy=ignore
```
3. **增加默认资源粘性**:使用 crm 命令增加默认资源粘性:
```bash
crm configure property default-resource-stickiness=100
```
4. **查看集群配置状态**:使用以下命令查看当前集群配置状态:
```bash
crm configure show
```
### 1.3 工作原理
这些步骤可在任意服务器上执行,因为 crm 实用程序发出的命令会发送到集群本身。
- **禁用 STONITH**:STONITH 是一种隔离节点的设备,Pacemaker 默认会与之交互。由于我们没有该设备,所以告诉 Pacemaker 不要期望此功能。
- **忽略仲裁投票**:我们只有两个节点,投票总是会平局,无法达成仲裁。设置 `no - quorum - policy = ignore` 意味着节点会继续投票,但除非达成仲裁,否则我们不关心投票结果。
- **增加默认资源粘性**:Pacemaker 适用于临时服务,但 PostgreSQL 不适合频繁迁移。将 `default - resource - stickiness` 设置为 100,让资源固定在启动的服务器上,除非崩溃或强制迁移。
- **查看配置状态**:Pacemaker 将配置存储为 XML,通过 `crm configure show` 可查看配置情况。
### 1.4 更多信息
crm 命令实际上是一个功能齐全的伪 shell。如果不带参数执行,它会显示一个提示符并等待有效的 crm 命令。例如,在 crm shell 中输入 `node help standby` 可查看将节点置于备用状态的可用选项,输入 `node standby pg1 reboot` 可将节点 pg1 置于备用状态直到重新启动并启动 Corosync。
## 2. 添加 DRBD 到集群管理
### 2.1 准备工作
继续配置 Pacemaker 时,请确保已完成之前的所有步骤。
### 2.2 操作步骤
1. **创建 DRBD 基本原语**:使用以下命令为 DRBD 创建基本的 Pacemaker 原语:
```bash
crm configure primitive drbd_pg ocf:linbit:drbd \
params drbd_resource="pg" \
op monitor interval="15" role="Master" \
op monitor interval="20" role="Slave" \
op start interval="0" timeout="240" \
op stop interval="0" timeout="120"
```
2. **创建主/从资源**:使用以下命令创建主/从资源:
```bash
crm configure ms ms_drbd_pg drbd_pg \
meta master-max="1" master-node-max="1" \
clone-max="2" clone-node-max="1" notify="true"
```
3. **清理错误**:使用以下命令清理可能累积的错误:
```bash
crm resource cleanup drbd_pg
```
4. **显示资源状态**:使用以下命令显示新资源的状态:
```bash
crm resource status
```
### 2.3 工作原理
- **创建原语**:大多数资源是原语,是 Pacemaker 控制的基本资源元素。我们为 DRBD 服务创建原语 `drbd_pg`,并指定 `ocf:linbit:drbd` 资源代理。
- **配置资源代理**:通过 `params` 指定选项,设置主服务器和从服务器的监控间隔,以及启动和停止超时时间。
- **创建主/从资源**:配置主/从资源 `ms_drbd_pg`,指定 `drbd_pg` 为要作为主/从服务处理的原语。设置 `master - max = 1` 表示集群中只有一个节点可提升为主节点;`master - node - max = 1` 限制每台服务器只有一个资源副本;`clone - max = 2` 表示资源的活动副本数量;`clone - node - max = 1` 防止潜在的 Pacemaker 错误;`notify = true` 通知所有节点资源的新状态。
- **清理错误**:添加新资源时,Pacemaker 可能进入未定义状态并列出无效错误,使用 `resource cleanup` 清理。
- **查看状态**:虽然创建了两个原语资源,但只看到一个条目 `ms_drbd_pg`,它代表 `drbd_pg` 资源。
#
0
0
复制全文