高可用集群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. ...
随机推荐
- Linux学习笔记之配置网络
1.打开VMware Workstation虚拟机 2.在VMware下安装虚拟ubunt系统后配置网络,如图所示配置,即可. 3.检查笔记本所使用的网段 ①按 “win + R ”键,并输入“cmd ...
- Vue组件注册
全局注册方法 Vue.component('my-component-name', { // ... 选项 ... }) Vue.component('component-a', { /* ... * ...
- 2020-07-26:如何用 socket 编程实现 ftp 协议?
福哥答案2020-07-26: 功能用户输入user username.pass password注册,注册后输入dir查看服务器文件列表,输入get filename path下载文件到指定路径. ...
- C#LeetCode刷题之#20-有效的括号(Valid Parentheses)
问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/4018 访问. 给定一个只包括 '(',')','{','}',' ...
- C#LeetCode刷题之#119-杨辉三角 II(Pascal‘s Triangle II)
问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/3690 访问. 给定一个非负索引 k,其中 k ≤ 33,返回杨辉 ...
- 01 树莓派4B—C语言编程——GPIO
#include <stdio.h>#include <wiringPi.h> int main( void){ int LED1 = 1; int LED4 = 4; wir ...
- Java基于SSM的个人博客系统(源码 包含前后台)
@ 目录 系统简介 系统运行截图 核心代码 写在最后 系统简介 技术点:Java.JSP.SSM框架,实现了个人博客系统 用户角色分为:普通用户.管理员.系统管理员 功能:发博客.博客分类.博客删除. ...
- google protocol buffer——protobuf的基本使用和模型分析
这一系列文章主要是对protocol buffer这种编码格式的使用方式.特点.使用技巧进行说明,并在原生protobuf的基础上进行扩展和优化,使得它能更好地为我们服务. 1.什么是protobuf ...
- 多线程的指令重排问题:as-if-serial语义,happens-before语义;volatile关键字,volatile和synchronized的区别
一.指令重排问题 你写的代码有可能,根本没有按照你期望的顺序执行,因为编译器和 CPU 会尝试指令重排来让代码运行更高效,这就是指令重排. 1.1 虚拟机层面 我们都知道CPU执行指令的时候,访问内存 ...
- ansible实现批量建立互信
Ansible:自动化运维工具 为什么要建立互信:ansible批量配置管理的前提是管理机和被管理机ssh互信,即通过将管理主机的公钥(id_rsa.pub)添加到目标主机上,实现管理机不通过交互式输 ...