高可用集群corosync+pacemaker之pcs安装使用
前文我们介绍了高可用集群corosync+pacemaker的集群管理工具crmsh的常用命令的使用,回顾请参考https://www.cnblogs.com/qiuhom-1874/tag/crmsh/;今天我们来简单介绍另一款集群管理工具pcs;
一、环境准备
1、集群各节点同步时间和配置hosts文件解析各节点主机名;

提示:各节点都要去验证,是否时间同步了,hosts主机名解析;做了以上几步以后,如果有需要可把各节点的ssh互信也配置起来,方便各主机间互相拷贝文件;
2、在集群各节点安装程序包
yum install pacemaker pcs psmisc policycoreutils-python -y
提示:在集群各节点执行以上命令安装程序包;
3、程序包安装完成以后,在各节点启动pcsd,并把pcsd设置为开机自动启动
systemctl enable pcsd --now
提示:到此pcsd安装和启动就完成了;
二、利用pcs来快速创建启动集群
1、在集群各节点上给hacluster用户设定相同的密码
echo "you password" |passwd --stdin hacluster
提示:也可以不用这个用户,新建一个用户也行,总之在集群各节点上有一个一模一样的账号,并且密码也必须相同;建议使用hacluster用户;
2、认证各节点的用户名和密码

提示:如果集群主机特别多可以用shell的大括号展开特性;这个不需要在每个节点上做,在当前pcs所在节点上做就行了;
3、创建集群

4、启动集群

好了,到此一个3节点的corosync+pacemaker集群就创建启动好了;
验证:在各节点查看corosync pacemaker是否都启动了?
node01

node02

node03

提示:在node03上查看pacemaker时,它这里告诉我们我配置了stonith选项,却没有发现stonith设备;
三、pcs管理集群
1、查看集群状态

验证集群配置信息

2、关闭stonith选项

提示:可以看到我们关闭了stonith选项以后,再次验证集群配置就没有报任何错误了;
验证:在node03上查看pacemaker的状态,看看是否还会有stonith的错误?

提示:可以看到在集群的DC(node03)节点上查看pacemaker的状态,没有发现stonith相关错误;
3、查看pcs的帮助信息
[root@node01 ~]# pcs Usage: pcs [-f file] [-h] [commands]...
Control and configure pacemaker and corosync. Options:
-h, --help Display usage and exit.
-f file Perform actions on file instead of active CIB.
--debug Print all network traffic and external commands run.
--version Print pcs version information. List pcs capabilities if
--full is specified.
--request-timeout Timeout for each outgoing request to another node in
seconds. Default is 60s.
--force Override checks and errors, the exact behavior depends on
the command. WARNING: Using the --force option is
strongly discouraged unless you know what you are doing. Commands:
cluster Configure cluster options and nodes.
resource Manage cluster resources.
stonith Manage fence devices.
constraint Manage resource constraints.
property Manage pacemaker properties.
acl Manage pacemaker access control lists.
qdevice Manage quorum device provider on the local host.
quorum Manage cluster quorum settings.
booth Manage booth (cluster ticket manager).
status View cluster status.
config View and manage cluster configuration.
pcsd Manage pcs daemon.
node Manage cluster nodes.
alert Manage pacemaker alerts.
client Manage pcsd client configuration. [root@node01 ~]#
提示:pcs命令的用法很简单,就是pcs + 选线 +子命令,其中一个子命令对应一个对象的管理,比如cluster就是对集群配置相关管理,resource就是资源相关配置;如果我们要查看一个子命令的详细用法,可以使用pcs + 子命令 --help来查看;
4、列出资源代理

5、查看指定资源代理的帮助

提示:这个帮助信息和我们之前用crmsh的帮助信息类似,如果对应参数后面有required就表示这个参数是必选参数;
示例:利用ocf:heartbeat:IPaddr定义一个vip资源
[root@node01 ~]# pcs resource create webip ocf:heartbeat:IPaddr ip="192.168.0.199" nic="ens33" cidr_netmask="24"
[root@node01 ~]# pcs resource
webip (ocf::heartbeat:IPaddr): Started node01.test.org
[root@node01 ~]# pcs status
Cluster name: mycluster
Stack: corosync
Current DC: node03.test.org (version 1.1.21-4.el7-f14e36fd43) - partition with quorum
Last updated: Sat Sep 5 11:58:49 2020
Last change: Sat Sep 5 11:58:40 2020 by root via cibadmin on node01.test.org 3 nodes configured
1 resource configured Online: [ node01.test.org node02.test.org node03.test.org ] Full list of resources: webip (ocf::heartbeat:IPaddr): Started node01.test.org Daemon Status:
corosync: active/disabled
pacemaker: active/disabled
pcsd: active/enabled
[root@node01 ~]#
提示:创建资源的方式和crmsh的方式很类似,只是命令不同而已,都是要给资源取一个名称,然后指定资源代理,然后给定参数直接创建即可;使用pcs resource命令可以列出资源列表;
创建一个web资源

把webip和webserver归并为一个组

查看集群配置

将节点node02设置为standby状态

提示:可以看到node02设置为standby状态以后,运行在node02上的资源也随之迁往其他节点;
将node02上线

提示:上线不再是crmsh里的online命令,而是unstandby;
手动迁移资源到其他节点

提示:前边crmsh里执行手动迁移资源,它默认会在配置界面给我们添加一条位置约束,pcs也是一样的套路,它也会给配置界面添加一条位置约束;
查看配置信息中位置约束配置

提示:pcs constraint 是查看集群所有约束;后面跟location表示只查看位置约束;
创建位置约束

提示:我们创建了一条位置约束,让webservice对node01的倾向性为正无穷,但是对应node03的资源并没有迁往node01,这其中的原因是webservice目前对node03的倾向性也是正无穷;
验证:修改webservice对node03的倾向性为100,看看webservice是否会迁往node01呢?

提示:可以看到把webservice对node03的倾向性改为100以后,运行在node03上的webservice就迁往node01上去了;
显示资源对集群各节点的倾向性分数

提示:crm_simulate -sL这个命令可以打印出当前集群各资源对各节点的倾向性的分数;好了,有关pcs的其他命令用法,自己可以查看帮助去慢慢实践;我个人觉得使用corosync+pacemaker高可用集群,手动管理集群用crmsh更好;pcs更适合用脚本的方式去管理部署集群;初学建议从crmsh入手比较好,它可以让我们很好的去理解corosync+pacemaker高可用集群架构;
高可用集群corosync+pacemaker之pcs安装使用的更多相关文章
- 高可用集群corosync+pacemaker之crmsh使用(一)
上一篇博客我们聊了下高可用集群corosync+pacemaker的相关概念以及corosync的配置,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/13585 ...
- 高可用集群corosync+pacemaker之crmsh使用(二)
上一篇博客我们聊到了crmsh的安装以及配置一个资源到corosync+pacemaker高可用集群上的相关命令的用法,回顾请参考https://www.cnblogs.com/qiuhom-1874 ...
- [ Openstack ] Openstack-Mitaka 高可用之 Pacemaker+corosync+pcs 高可用集群
目录 Openstack-Mitaka 高可用之 概述 Openstack-Mitaka 高可用之 环境初始化 Openstack-Mitaka 高可用之 Mariadb-Galera集群 ...
- corosync+pacemaker and drbd实现mysql高可用集群
DRBD:Distributed Replicated Block Device 分布式复制块设备,原理图如下 DRBD 有主双架构和双主架构的,当处于主从架构时,这个设备一定只有一个节点是可以读写的 ...
- Corosync+Pacemaker+crmsh构建Web高可用集群
一.概述: 1.1 AIS和OpenAIS简介 AIS应用接口规范,是用来定义应用程序接口(API)的开放性规范的集合,这些应用程序作为中间件为应用服务提供一种开放.高移植性的程序接口.是在实现高可用 ...
- CentOS7/RHEL7 pacemaker+corosync高可用集群搭建
TOC \o "1-3" \h \z \u 一.集群信息... PAGEREF _Toc502099174 \h 4 08D0C9EA79F9BACE118C8200AA004B ...
- corosync+pacemaker高可用集群
高可用集群,是指以减少服务中断(如因服务器宕机等引起的服务中断)时间为目的的服务器集群技术.简单的说,集群就是一组计算机,它们作为一个整体向用户提供一组网络资源.这些单个的计算机系统就是集群的节点. ...
- 高可用集群之corosync+pacemaker
1.概念 在传统Linux集群种类,主要分了三类,一类是LB集群,这类集群主要作用是对用户的流量做负载均衡,让其后端每个server都能均衡的处理一部分请求:这类集群有一个特点就是前端调度器通常是单点 ...
- http高可用+负载均衡 corosync + pacemaker + pcs
http高可用+负载均衡 corosync + pacemaker + pcsopenstack pike 部署 目录汇总 http://www.cnblogs.com/elvi/p/7613861. ...
随机推荐
- 久等了,你要的 Python 书籍推荐,来了
前言 很多人学习python,不知道从何学起.很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手.很多已经做案例的人,却不知道如何去学习更加高深的知识.那么针对这三类人,我给大家提供 ...
- 20行Python代码检测人脸是否佩戴口罩
最近,口罩成为绝对热门的话题,在疫情之下,出门不戴口罩不仅对自己不负责,对他人而言也是一种潜在的威胁.所以许多小区都有保安在门口守着,谁要是不戴口罩就吼回去(吓死我了). 很多人学习python,不知 ...
- VSFTP问题解决
支持 root 登录 在 /etc/vsftpd/{ftpusers,user_list} 中注释掉 root 添加 allow_writeable_chroot=YES, 允许在只读文件登录, 否则 ...
- 商品描述(动画)--- jQuery
本文章实现是基于jQuery展示商品描述的一个功能 (1)鼠标移入显示描述内容,鼠标移开内容隐藏.先来看看一个先后效果. (2)jQuery所以的文件可以自行下载,也可以在我主页找到文件,右键文件名复 ...
- .NET Core 微服务—API网关(Ocelot) 教程 [三]
前言: 前一篇文章<.NET Core 微服务—API网关(Ocelot) 教程 [二]>已经让Ocelot和目录api(Api.Catalog).订单api(Api.Ordering)通 ...
- [leetcode/lintcode 题解] 前序遍历和中序遍历树构造二叉树
[题目描述] 根据前序遍历和中序遍历树构造二叉树. 在线评测地址: https://www.jiuzhang.com/solution/construct-binary-tree-from-preor ...
- spring时遇到的小问题
最近在学习spring的时候遇到了两个小问题,在此总结一下 1.少导了所需要的包 运行测试程序,报出以下错误. 初步分析,得知是dataSource数据源没有创建成功,以为dataSource配置文件 ...
- js 打开新窗体
function nw(repId,formulaId){ if(!repId){ repId='0' } if(!formulaId){ formulaId='0' } var url='/slsi ...
- Markdown基本语法及生成目录结构的方法
Markdown是一种纯文本格式的标记语言.通过简单的标记语法,它可以使普通文本内容具有一定的格式. 一.标题 在想要设置为标题的文字前面加#来表示一个#是一级标题,二个#是二级标题,以此类推.支持六 ...
- Spring,SpringMVC,MyBatis,Hibernate,Servlet的生命周期,jsp有哪些内置对象,Tomcat,Cookie和Session的作用以及区别,oracle,MYSQL等面试题总结
1. 什么是Spring,谈谈你对Spring的理解 Spring是我们JAVA开发人员在搭建后台时选用的一个轻量级的开源框架,Spring框架目前也是功能丰富,十分优秀企业级采用最多的一个框架. S ...