高可用集群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. ...
随机推荐
- 暑期java(面向对象设计)学习第一阶段总结
0.前言 本次博客针对的是暑假学习java(面向对象设计)的前三次作业的小结,第一次作业:7-1 对三个整数排序 7-2 对四个整数排序 7-3 对十个整数进行排序 7-4 对多个整数进行排序 第二次 ...
- 初学者都在坑里!不要在Python中使用“+”来连接字符串
很多初学者都像我一样,最开始使用Python时,会不自觉地使用“+”来连接字符串,就像在许多其他编程语言(比如Java)中那样,因为这样既直观又容易. 但我很快意识到成熟的开发人员似乎更喜欢使用.jo ...
- C#设计模式之2-抽象工厂模式
抽象工厂模式(Abstract Factory Pattern) 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/391 ...
- 制作qq简易聊天框
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- JavaScript基础-06-正则表达式
正则表达式 1. 正则表达式用于定义一些字符串的规则:计算机可以根据正则表达式,来检查一个字符串是否符合规则,将字符串中符合规则的内容提取出来. 2. 创建正则表达式对象: var reg=new R ...
- 碰到 Json_CSRF 怎么办?
前言 在最近挖洞的时候,老是碰到 POST 传参采用 JSON 格式,而不是传统的parameter=value的格式,之前也没接触过,所以也不知道该怎么搞,所以打算学习一下,此文作为一个笔记梳理. ...
- Socket原理及实践(Java/C/C++)
原理 基本概念 什么是TCP/IP.UDP? 详细的可以看一下这个:学习计算机网络知识只要一篇就够了! TCP/IP(Transmission Control Protocol/Internet Pr ...
- 尾递归(java)
一般递归: 一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多 ...
- StructuredStreaming简单的例子(NewAPI)
StructuredStreaming简单的例子(NewAPI)(wordCount) package com.briup.streaming.structed import org.apache.l ...
- dcoker 小应用(一)
docker 创建Ubuntu系统 1.创建Dockerfile #ubuntu:14.04 image FROM ubuntu:14.04 MAINTAINER XXX, xxx@xxx.com R ...