RHCA436-基于CentOS8pacemaker+corosync 集群资源管理

一、管理资源命令
| 1.列出资源 |
| pcs resource list |
| pcs resource config [myweb] |
| |
| 2.查看资源帮助 |
| pcs resource describe Filesystem |
| |
| 3.查看已经创建的资源 |
| pcs status resources |
| pcs resource |
| pcs resource show myweb |
| |
| 4.创建资源,指定资源组 |
| pcs resource create myfs Filesystem device=storage.san01.example.com:/myweb directory=/var/www/html fstype=nfs --group=mygroup |
| |
| 5.查看资源配置参数 |
| pcs resource config |
| pcs resource show myfs |
| |
| 6.删除资源参数 |
| pcs resource op remove myfs minotor |
| |
| 7.添加资源参数 |
| pcs resource op add myfs monitor interval=10s timeout=20s |
| |
| 8.修改资源控制参数 |
| pcs resource update myfs op monitor interval=10s timeout=20s on-fail=fence |
| |
| 测试: |
| [root@nodec ~] |
| on-fail=fence 卸载挂载点会被fence掉,fence的默认策略是reboot |
| |
| 9.添加资源到资源组 |
| pcs resource group add mygroup myweb |
| pcs resource group add mygroup myip |
| |
| 10.从资源组中移除资源 |
| pcs resource group remove mygroup myip |
| |
| 11.启动资源组中的资源 |
| [root@nodea ~] |
| [root@nodea ~] |
| * Resource Group: mygroup: |
| * myfs (ocf::heartbeat:Filesystem): Started nodeb.private.example.com |
| * myip (ocf::heartbeat:IPaddr2): Started nodeb.private.example.com |
| * myweb (systemd:httpd): Starting nodeb.private.example.com |
| |
| 12.关闭资源组中的资源 |
| [root@nodea ~] |
| [root@nodea ~] |
| * Resource Group: mygroup: |
| * myfs (ocf::heartbeat:Filesystem): Started nodeb.private.example.com |
| * myip (ocf::heartbeat:IPaddr2): Started nodeb.private.example.com |
| * myweb (systemd:httpd): Stopped (disabled) |
| |
| pcs resource disable mygroup 停止资源组 |
| pcs resource enable mygroup 启动资源组 |
| |
| 13.清空资源报错信息 |
| pcs resource cleanup |
二、实验:创建文件系统资源,并加入资源组
1.在存储节点配置NFS共享存储
| [root@storage ~] |
| [root@storage ~] |
| [root@storage ~] |
| /myweb *(rw) |
| [root@storage ~] |
| [root@storage ~] |
| [root@storage ~] |
| [root@storage ~] |
| [root@storage ~] |
| [root@storage ~] |
2.创建文件系统资源
| [root@nodea ~] |
| |
| [root@nodea ~] |
| * Resource Group: mygroup: |
| * myfs (ocf::heartbeat:Filesystem): Started nodea.private.example.com |
3.将资源移动到其他节点
| pcs resource move myfs 将资源自动到其他任意节点,当前节点会变成负无穷 |
| pcs resource move myfs nodec.private.example.com 将资源移动到nodec节点,nodec节点会变成正无穷 |
| pcs resource ban myweb nodea.private.example.com 将某个节点设置为负无穷 |
| |
| 查看限制规则: |
| [root@nodeb ~] |
| Location Constraints: |
| Resource: myfs |
| Enabled on: |
| Node: nodec.private.example.com (score:INFINITY) (role:Started) |
| Disabled on: |
| Node: nodea.private.example.com (score:-INFINITY) (role:Started) |
| Ordering Constraints: |
| Colocation Constraints: |
| Ticket Constraints: |
| |
| 清除规则: |
| pcs resource clear myfs |
| |
| 说明:如果nodec故障,则会自动移动到nodeb节点,处于负无穷状态的节点是不会运行该资源的,即使没有其他节点可以使用,如果只有处于负无穷状态的主机存活,那么该资源会停止运行。 |
三、资源操作参数,修改参数可以对资源进行调优
| |
| [root@nodea ~] |
| |
| |
| [root@nodea ~] |
| |
| |
| [root@nodea ~] |
| [root@nodea ~] |
| Group: mygroup |
| Resource: myfs (class=ocf provider=heartbeat type=Filesystem) |
| Attributes: device=storage.san01.example.com:/myweb directory=/var/www/html fstype=nfs |
| Operations: monitor interval=10s on-fail=fence timeout=20s (myfs-monitor-interval-10s) |
| start interval=0s timeout=60s (myfs-start-interval-0s) |
| stop interval=0s timeout=60s (myfs-stop-interval-0s) |
| |
| |
| |
| 1.name=value,value等于start,stop或者monitor |
| start:启动时的配置 |
| stop:停止时的配置 |
| |
| 2.interval=value,资源检测的间隔时间,默认是60s |
| |
| 3.timeout=value,检测到资源故障时的等待时间,超时后如果没有恢复再处理 |
| |
| 4.on-fail=action,action等于ignore,block,stop,restart,fence,standby |
| ignore:忽略故障,资源不做任何处理,仍然显示正常启动,手动恢复故障后,资源依然可用 |
| * myweb (systemd:httpd): Started nodea.private.example.com |
| |
| block:如果集群没有配置fence,那么资源会停止 |
| * myweb (systemd:httpd): FAILED nodea.private.example.com (blocked) |
| |
| stop:停止该节点的资源,资源组不会切换,手动恢复服务后,资源仍然不会运行 |
| * myweb (systemd:httpd): Stopped |
| pcs resource refresh 会重新启动该资源 |
| |
| restart:重启该节点的服务,尝试在该节点恢复,这是默认策略,如果不能恢复,则资源组会切换 |
| systemctl mask httpd; systemctl stop httpd |
| 说明:演示服务无法恢复的场景,资源组会切换 |
| |
| fence:如果节点故障,并且配置了fence,则会按照fence的策略执行重启节点,则资源组会切换到其他节点 |
| |
| standby:让节点进入standby模式。这个模式下的节点可以继续运行corosync和pacemaker但是无法运行资源。任何原本在此节点激活的资源都会被转移。这个特性在执行系统管理任务比如更新资源所需的packages时会非常有用。 |
四、实验一、添加ip,文件系统和http服务,并加入资源组
1.共享存储已经配置好
2.在所有节点安装http软件包
| yum -y install httpd |
| 说明:不需要启动服务,也不需要设置开机自启 |
3.在所有节点放行http服务
| firewall-cmd --permanent --add-service=http |
| firewall-cmd --reload |
4.在所有节点设置selinux
| setsebool -P httpd_use_nfs=1 |
5.创建文件系统,ip和http资源
| 1.创建文件系统 |
| pcs resource create myfs Filesystem device=storage.san01.example.com:/myweb directory=/var/www/html fstype=nfs --group=mygroup |
| |
| 2.创建ip |
| pcs resource create myip IPaddr2 ip=172.25.250.99 cidr_netmask=24 --group mygroup |
| |
| 3.创建http服务 |
| pcs resource create myweb systemd:httpd --group=mygroup |
| |
| 4.查看集群状态 |
| [root@nodea ~] |
| * Resource Group: mygroup: |
| * myfs (ocf::heartbeat:Filesystem): Started nodec.private.example.com |
| * myip (ocf::heartbeat:IPaddr2): Started nodec.private.example.com |
| * myweb (systemd:httpd): Started nodec.private.example.com |
| |
| 5.测试 |
| curl 172.25.250.99 |
| |
| [root@nodec ~] |
| [root@nodec ~] |
五、控制资源迁移
1.查看限制规则:
| [root@nodeb ~] |
| Location Constraints: |
| Resource: myfs |
| Enabled on: |
| Node: nodec.private.example.com (score:INFINITY) (role:Started) |
| Disabled on: |
| Node: nodea.private.example.com (score:-INFINITY) (role:Started) |
| Ordering Constraints: |
| Colocation Constraints: |
| Ticket Constraints: |
| |
| INFINITY:正无穷,更倾向于运行在该节点 |
| -INFINITY:负无穷,不会运行在该节点,即使没有节点可以运行 |
2.手动移动集群资源
| pcs resource move myfs 将资源自动到其他任意节点,当前节点会变成负无穷 |
| pcs resource move myfs nodec.private.example.com 将资源移动到nodec节点,nodec节点会变成正无穷 |
| |
| |
| pcs resource clear myfs |
| |
| |
| pcs constraint location myweb prefers nodea.private.example.com 将某个节点设置为正无穷 |
| pcs constraint location myweb avoids nodec.private.example.com 将某个节点设置为负无穷 |
| |
| |
| pcs constraint location delete location-myftp-nodec.private.example.com-INFINITY |
3.管理节点的优先级
| 1.设置优先级,数值越大优先级越高 |
| pcs constraint location myweb prefers nodea.private.example.com=200 |
| pcs constraint location myweb prefers nodeb.private.example.com=500 |
| |
| [root@nodea ~] |
| * Resource Group: mygroup: |
| * myfs (ocf::heartbeat:Filesystem): Started nodeb.private.example.com |
| * myip (ocf::heartbeat:IPaddr2): Started nodeb.private.example.com |
| * myweb (systemd:httpd): Started nodeb.private.example.com |
| |
| |
| 2.查看规则,--full可以查看规则的id |
| [root@nodea ~] |
| Location Constraints: |
| Resource: myftp |
| Enabled on: |
| Node: nodec.private.example.com (score:INFINITY) (id:location-myftp-nodec.private.example.com-INFINITY) |
| Resource: myweb |
| Enabled on: |
| Node: nodea.private.example.com (score:200) (id:location-myweb-nodea.private.example.com-200) |
| Node: nodeb.private.example.com (score:500) (id:location-myweb-nodeb.private.example.com-500) |
| Disabled on: |
| Node: nodec.private.example.com (score:-INFINITY) (id:location-myweb-nodec.private.example.com--INFINITY) |
| Ordering Constraints: |
| Colocation Constraints: |
| Ticket Constraints: |
| |
| 3.删除优先级 |
| pcs constraint delete 规则id |
| pcs constraint delete location-myweb-nodea.private.example.com-200 |
| pcs constraint delete location-myweb-nodeb.private.example.com-500 |
六、实验:添加另一组资源ip,文件系统和ftp服务,并加入资源组
| 1.存储端 |
| mkdir /ftp |
| chmod 777 |
| cat /etc/exports |
| /ftp *(rw) |
| systemctl restart nfs-server |
| |
| 2.集群 |
| |
| yum -y install vsftpd |
| firewall-cmd --permanent --add-service=ftp |
| firewall-cmd --reload |
| setsebool -P ftpd_use_nfs=1 |
| |
| |
| pcs resource create myftpfs Filesystem device=storage.san01.example.com:/ftp directory=/var/ftp/pub fstype=nfs --group=myftp |
| |
| pcs resource create myftpip IPaddr2 ip=172.25.250.100 cidr_netmask=24 --group myftp |
| |
| pcs resource create myftpservice systemd:vsftpd --group=myftp |
| |
| 3.查看集群状态 |
| [root@nodea pub] |
| * Resource Group: mygroup: |
| * myfs (ocf::heartbeat:Filesystem): Started nodea.private.example.com |
| * myip (ocf::heartbeat:IPaddr2): Started nodea.private.example.com |
| * myweb (systemd:httpd): Started nodea.private.example.com |
| * Resource Group: myftp: |
| * myftpfs (ocf::heartbeat:Filesystem): Started nodeb.private.example.com |
| * myftpip (ocf::heartbeat:IPaddr2): Started nodeb.private.example.com |
| * myftpservice (systemd:vsftpd): Started nodeb.private.example.com |
| |
| |
| 4.一个集群运行两个资源组 |
| |
| 资源组nygroup优先运行在nodea上 |
| 资源组myftp 优先运行在nodec上 |
| |
| [root@nodea pub] |
| [root@nodea pub] |
| Location Constraints: |
| Resource: myftp |
| Enabled on: |
| Node: nodec.private.example.com (score:INFINITY) |
| Resource: myweb |
| Enabled on: |
| Node: nodea.private.example.com (score:INFINITY) |
| Disabled on: |
| Node: nodec.private.example.com (score:-INFINITY) |
| Ordering Constraints: |
| Colocation Constraints: |
| Ticket Constraints: |
| [root@nodea pub] |
| * Resource Group: mygroup: |
| * myfs (ocf::heartbeat:Filesystem): Started nodea.private.example.com |
| * myip (ocf::heartbeat:IPaddr2): Started nodea.private.example.com |
| * myweb (systemd:httpd): Started nodea.private.example.com |
| * Resource Group: myftp: |
| * myftpfs (ocf::heartbeat:Filesystem): Started nodec.private.example.com |
| * myftpip (ocf::heartbeat:IPaddr2): Started nodec.private.example.com |
| * myftpservice (systemd:vsftpd): Started nodec.private.example.com |