精读笔记(RHCA 英文教材)· RH436 Chapter 13 Comprehensive Review
精读笔记(RHCA 英文教材)· RH436 Chapter 13 Comprehensive Review
教材原文:RHCA 官方英文教材(PDF 第 413~446 页)(OCR 整书版已从本站移除,本页为章节精读) 定位:全书收尾章——先按 Ch1~12 过一遍能力清单,再给 3 个综合 Lab(4 节点建群 / 双节点+QDevice+Web 双资源组 / iSCSI→multipath→共享VG→GFS2 全栈)。 结构:Comprehensive Review 复习清单 + Lab 1(lab: compreview-hacluster)+ Lab 2(lab: compreview-twonode)+ Lab 3(lab: compreview-gfs2)。
Chapter Goal / Objectives(原文+译)
- GOAL: Review tasks from Red Hat High Availability Clustering.(复习 RHCA 高可用集群全部技能。)
- OBJECTIVES: Review tasks from Red Hat High Availability Clustering.
复习清单(Ch1~12 能力自检)
- Ch1 建群:说清 HA 集群是什么/何时用;认出 RHEL HA 组件;装并起一个小集群。
- Ch2 节点与 quorum:增删节点;quorum 如何防错;调 quorum 算法(wait_for_all/last_man_standing/auto_tie_breaker/QDevice)。
- Ch3 fencing:fencing 是什么、如何保护数据;识别/测试受支持 fence 设备;按需配隔离。
- Ch4 资源:资源/资源组/约束(order、colocation、location)控制资源跑在哪。
- Ch5 排障:看/配集群日志;关键事件告警通知;失败资源的常规排障步骤;集群网络通信问题诊断。
- Ch6 自动化:Ansible 部署 HA 集群;Ansible 部署资源与资源组。
- Ch7 双节点:双节点集群特有问题与规避;配双节点集群;配 quorum 设备打破平票。
- Ch8 iSCSI:解释 iSCSI/术语/对集群存储的价值(→见 Ch9 multipath、Ch10 共享 VG)。
- Ch9 multipath:多路径弹性访问(→教材该章)。
- Ch10 集群 LVM:HA-LVM 一次一节点;共享 VG 全节点同用。
- Ch11 GFS2:概念与场景;创建;扩容与加 journal。
- Ch12 消除 SPOF:集群通信多链路;多级 fencing。
Lab 1:Configuring a High Availability Cluster(lab: compreview-hacluster)
目标:4 节点 active-passive 集群 prod1,带 fencing、双网络链路。
- 四节点准备:
firewall-cmd --permanent --add-service=high-availability+ reload;yum install pcs fence-agents-ipmilan;systemctl enable --now pcsd;echo redhat | passwd --stdin hacluster。 - nodea:
pcs host auth四节点(hacluster/redhat)→pcs cluster setup prod1 <node> addr=192.168.0.10 addr=192.168.2.10 …(每节点双链路)→pcs cluster enable --all。 pcs quorum update wait_for_all=1 last_man_standing=1→pcs cluster start --all→pcs status看 4 Online(此时有 WARNINGS: No stonith devices)。- fence:每节点
pcs stonith create fence_nodeX fence_ipmilan pcmk_host_list=<node> ip=192.168.0.10X username=admin password=password lanplus=1 power_timeout=180。 pcs status:4 fence 资源 Started →lab grade compreview-hacluster。
Lab 2:Configuring Cluster Resources on a Two-node Cluster(lab: compreview-twonode)
目标:双节点+QDevice 集群 webfarm;Ansible 部署应用;手写 playbook 建资源;负向 colocation 把两组资源拆开。
- nodea/nodeb:防火墙放行 high-availability、装 pcs、
passwd hacluster=redhat、启 pcsd → nodeapcs host auth两节点 →pcs cluster setup webfarm nodea… nodeb…→pcs cluster start --all、pcs cluster enable --all。 - QDevice 部署(noded 当仲裁机):noded 装
pcs corosync-qnetd、启 pcsd →pcs qdevice setup model net --enable --start→pcs qdevice status net(Connected clients: 0)。两节点各装corosync-qdevice→ nodeapcs host auth noded.san01.example.com→pcs quorum device add model net host=noded.san01.example.com algorithm=ffsplit→pcs quorum config核对(votes: 1 / model net / ffsplit)。 - 跑现成 playbook:
ansible-playbook fencing.yml(建 fence 资源)、apache.yml、haproxy.yml(全节点装 Apache/HAProxy)。 - 补全并跑
cluster_apache.yml(幂等:先pcs resource config收集 → 不存在才建):pcs resource create server apache --group=web --wait=60;pcs resource create ip IPaddr2 ip=172.25.250.88 cidr_netmask=24 --group=web --wait=60。 - nodea 手工建第二个组:
pcs resource create proxy systemd:haproxy --group=termination;pcs resource create frontIP IPaddr2 ip=172.25.250.80 cidr_netmask=24 --group=termination。 - 两组永不跑同一节点:
pcs constraint colocation add termination with web -INFINITY(负无穷=反亲和)。pcs status:web 组(server+ip)在 nodea、termination 组(proxy+frontIP)在 nodeb。 - workstation
curl www.lab.example.com验证(HAProxy frontIP 收流量)→lab grade compreview-twonode。
Lab 3:Deploying a GFS2 File System(lab: compreview-gfs2)
目标:已有 3 节点集群(nodea/b/c,target store-prod)全栈打通:iSCSI → multipath → 共享 VG/LV → 全节点激活资源 → GFS2。
- iSCSI:三节点装
iscsi-initiator-utils;IQN=iqn.2021-04.com.example:<短主机名>(改后systemctl restart iscsid);对 192.168.1.15 与 192.168.2.15 两个 portal 各 discovery+login 一次。 - multipath:装
device-mapper-multipath→mpathconf --enable→udevadm info /dev/sda | grep ID_SERIAL=取 WWID → multipath.conf 加multipaths{ multipath{ wwid 36… alias diska } }→ 分发 conf(Ansible playbook.yml)→systemctl enable --now multipathd→multipath -ll见diska。 - DLM/lvmlockd:三节点
yum install dlm lvm2-lockd→ 建locking组(dlmocf:pacemaker:controld +lvmlockdocf💓lvmlockd,monitor interval=30s on-fail=fence)→pcs resource clone locking interleave=true。 - 共享 VG:nodea
pvcreate /dev/mapper/diska→vgcreate --shared vg1 /dev/mapper/diska(自动起 dlm lockspace)→ nodeb/nodecvgchange --lock-start vg1→lvcreate --activate sy -L4G -n lv1 vg1。 - 激活资源:
pcs resource create sharedlv LVM-activate vgname=vg1 lvname=lv1 activation_mode=shared vg_access_mode=lvmlockd --group=gfsres→pcs resource clone gfsres interleave=true→ 约束pcs constraint order start locking-clone then gfsres-clone+pcs constraint colocation add gfsres-clone with locking-clone→ 三节点lvs都见lv1 -wi-a----- 4.00g。 - GFS2:nodea
mkfs.gfs2 -j 3 -J 128 -t cluster1:gfsdata /dev/vg1/lv1(3 journal=每节点 1 个,128MiB)→ 建clusterfsFilesystem 资源(device=/dev/vg1/lv1 directory=/srv/data fstype=gfs2)加入 gfsres 组 → 三节点自动挂载 /srv/data →lab grade compreview-gfs2。
命令速查表
| 阶段 | 命令 | | 节点准备 | firewall-cmd --permanent --add-service=high-availability+--reload;yum install pcs;systemctl enable --now pcsd;passwd hacluster | | 认证+建群 | pcs host auth <nodes>;pcs cluster setup <名> <node> addr=<ip> addr=<ip>… | | 启动+自启 | pcs cluster start --all;pcs cluster enable --all | | quorum 调优 | pcs quorum update wait_for_all=1 last_man_standing=1 | | fence | pcs stonith create <r> fence_ipmilan pcmk_host_list=<node> ip=<ip> username=admin password=password lanplus=1 power_timeout=180 | | QDevice 服务端 | yum install corosync-qnetd;pcs qdevice setup model net --enable --start;pcs qdevice status net | | QDevice 客户端 | yum install corosync-qdevice;pcs quorum device add model net host=<qnetd> algorithm=ffsplit;pcs quorum config | | 资源组 | pcs resource create <r> apache\|IPaddr2 ip=… cidr_netmask=… \|systemd:haproxy --group=<g> [--wait=60] | | 反亲和 | pcs constraint colocation add termination with web -INFINITY | | GFS2 全栈 | 见 Lab 3:iscsiadm 双网登录 → multipath alias → dlm/lvmlockd 克隆组 → vgcreate --shared → lvcreate --activate sy → LVM-activate 克隆组 → mkfs.gfs2 -t <集群>:gfsdata → Filesystem 资源 | | 实验/评分 | lab start compreview-hacluster\|compreview-twonode\|compreview-gfs2;lab grade compreview-* |
词汇表
| 英文 | 中文 | 速记 |
|---|---|---|
| comprehensive review | 综合复习 | 能力清单+3 个串联大 Lab |
| prod1 / webfarm | 两个集群名 | 4 节点群 / 双节点 Web 群 |
| QDevice (qnetd) | 仲裁设备 | ffsplit 算法;帮双节点破平票 |
| active-passive | 主备 | 资源一次在一台跑 |
| colocation -INFINITY | 反亲和 | 两资源组永不共节点 |
| systemd:haproxy | systemd 资源代理 | 用系统服务当资源 |
| floating IP | 浮动 IP | IPaddr2 资源 |
| diska | multipath 别名 | 各 Lab 统一的盘名 |
| gfsres | GFS2 资源组 | LVM-activate+Filesystem 克隆组 |
| store-prod | iSCSI target 名 | 综合 Lab 3 的目标 |
自测 10 题
- 4 节点集群 fencing 用什么代理/参数?(fence_ipmilan;pcmk_host_list、ip、lanplus=1、power_timeout=180)
- 双节点+仲裁:qnetd 与 qdevice 装在哪?(qnetd 在独立仲裁机 noded;qdevice 客户端在各集群节点)
- QDevice 加进集群的算法参数?(algorithm=ffsplit)
- web 与 termination 两个资源组怎么强制分开?(pcs constraint colocation add termination with web -INFINITY)
- Lab2 里两个浮动 IP 分别是?(web 组 ip=172.25.250.88/24;termination 组 frontIP=172.25.250.80/24)
- 幂等 playbook 建资源的常用套路?(先 pcs resource config 收集 → when 判断不存在才 create)
- GFS2 Lab 三节点各需要几个 journal?(3 个,-j 3 -J 128,lock space 名 gfsdata)
- 综合 Lab3 中共享 VG 注册到其他节点的命令?(vgchange --lock-start vg1)
- LVM-activate 激活共享 LV 的参数?(activation_mode=shared vg_access_mode=lvmlockd,放克隆组)
- 复习清单覆盖哪几大块?(建群/quorum/fencing/资源/排障/自动化/双节点/iSCSI/multipath/集群LVM/GFS2/SPOF)
