环境准备:

一准备三个虚拟机,把/etc/hosts/文件配置好

                             192.168.43.9 node0
                             192.168.43.10 node1
                             192.168.43.11 node2

配置ssh免密码登入(在node0上操作)(为了避免ssh登入是需要输入yes,可以笨办法可以先在各个节点上使用ssh先登入其他的节点)

ssh-keygen -t rsa -P ""
cd .ssh
mv id_rsa.pub authorized_keys
rm -f known_hosts
cd ../
scp -rp .ssh/ node1:/root/
scp -rp .ssh/ node2:/root/

node0,node1,node2上配置时间同步服务器

1:在node0上安装配置chrony服务,同步国内互联网时间服务器的时间

yum install -y chrony
 

2:编辑配置文件/etc/chrony.conf

修改默认的centos时间同步服务器地址为国内时间同步服务器地址,且允许192.168.43.0/24网段的主机同步时间
server s1a.time.edu.cn iburst
server s1b.time.edu.cn iburst
server s1c.time.edu.cn iburst
server s1d.time.edu.cn iburst
allow 192.168.43.0/24
 

3:启动chrony

systemctl enable chronyd.service
systemctl start chronyd.service
 

4:在node1和node2上分别安装chrony,且修改配置文件/etc/chrony.conf,将时间同步指向node0节点

yum install -y chrony
server node0 iburst(配置文件里面修改)
systemctl enable chronyd.service
systemctl start chronyd.service
 
 

5:node1,node2验证时间同步

[root@node1 ~]# chronyc sources
210 Number of sources = 1
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^* node0 3 6 17 6 -5684ns[-1595ns] +/- 401ms
 

高可用集群(服务配置)

pacemaker提供的管理程序有:(rpm -ql pacemaker)
/usr/libexec/pacemaker/cib(集群信息中心 cluster infomation base)
/usr/libexec/pacemaker/crmd(集群管理器)
/usr/libexec/pacemaker/lrmd(本地管理器)

 


  • 在node1和node2节点安装corosync、pacemaker
安装pacemaker( corosync将会被作为依赖安装)
yum install -y pacemaker
  • 在node1上操作
cd /etc/corosync/
cp corosync.conf.example corosync.conf
  • 关于/etc/corosync/corosync.conf配置文件的介绍
1:totem { }:设置节点间的通信方式,通信协议,加密,通信的多播地址,且至少需要定义一个interface{}接口用来传递集群心跳信息

2:loggin { }:设置格式,存储路径,记录的级别

3:quorum { }: 设置投票信息

4:nodelist { }:设置节点个数
  • 由于在message layer层传递心跳信息需要加密,因此先必须生成加密文件
corosync-keygen
  • 编辑配置文件/etc/corosync/corosync.conf,修改配置文件(man corosync.conf 查看配置选项)
totem {
version: 2 # 指定版本号
cluster_name: uplookingcluster # 指定集群名称
crypto_cipher: aes256 # 指定对称加密算法
crypto_hash: sha1 # 指定单向加密算法
interface {
ringnumber: 0 # 指定心跳信息传递的环路id
bindnetaddr: 192.168.43.0 # 指定环路中的网络地址
mcastaddr: 239.255.1.1 # 指定心跳信息通过多播的方式传递的IP通道
mcastport: 5405 # 指定多播的端口
ttl: 1 # 指定多播报文信息的生命周期
}
} logging {
fileline: off
to_stderr: no
to_logfile: yes # 指定开启日志文件
logfile: /var/log/cluster/corosync.log # 指定日志文件保存的位置
to_syslog: no # 指定不使用系统日志保存日志信息
debug: off
timestamp: on
logger_subsys { # 指定启用仲裁机制
subsys: QUORUM
debug: off
}
} quorum { # 指定仲裁机制是corosync投票系统
provider: corosync_votequorum
} nodelist { # 指定节点列表
node {
ring0_addr: 192.168.43.10
nodeid: 1
}
node {
ring0_addr: 192.168.43.11
nodeid: 2
}
}
  • 将corosync.conf配置文件和生成的authkey文件复制到node2节点,注意authkey文件的权限必须是400才能启动corosync
scp authkey corosync.conf node2:/etc/corosync/
  • 在node1和node2上分别启动corosync
systemctl enable corosync.service
systemctl start corosync.service
  • 在node1和node2上分别启动pacemaker
systemctl enable pacemaker.service
systemctl start pacemaker.service
  • 在node1节点上查看,当前集群中谁是DC(DC:Designated Coordinator 指定的协调员 负责管理集群的事务信息)
crm_mon
  • 在node1和node2上配置crmsh的yum仓库,此仓库的RPM包有openSUSE提供,将这个network:ha-clustering:Stable.repo文件直接下载到本地并且命名为crmsh.repo
wget -O /etc/yum.repos.d/crmsh.repo http://download.opensuse.org/repositories/network:/ha-clustering:/Stable/CentOS_CentOS-7/network:ha-clustering:Stable.repo
  • 在node1和node2上通过yum安装crmsh(crmsh是pacemaker的命令行接口工具,执行help命令,可以查看shell接口所有的一级命令和二级命令,使用cd 可以切换到二级子命令的目录中去,可以执行二级子命令)
yum repolist
yum install -y crmsh
 
 
  • 在此可以使用crm命令进入交互式接口,实现对集群的管理操作
 https://www.cnblogs.com/liu1026/p/10149701.html   (crmsh基本的命令解释)

配置高可用集群(实验) corosyne+pacemaker的更多相关文章

  1. Linux集群介绍、keepalived介绍及配置高可用集群

    7月3日任务 18.1 集群介绍18.2 keepalived介绍18.3/18.4/18.5 用keepalived配置高可用集群扩展heartbeat和keepalived比较http://blo ...

  2. Linux centosVMware 集群介绍、keepalived介绍、用keepalived配置高可用集群

    一.集群介绍 根据功能划分为两大类:高可用和负载均衡 高可用集群通常为两台服务器,一台工作,另外一台作为冗余,当提供服务的机器宕机,冗余将接替继续提供服务 实现高可用的开源软件有:heartbeat. ...

  3. 集群相关、用keepalived配置高可用集群

    1.集群相关 2.keepalived相关 3.用keepalived配置高可用集群 安装:yum install keepalived -y   高可用,主要是针对于服务器硬件或服务器上的应用服务而 ...

  4. 高可用集群之corosync+pacemaker

    1.概念 在传统Linux集群种类,主要分了三类,一类是LB集群,这类集群主要作用是对用户的流量做负载均衡,让其后端每个server都能均衡的处理一部分请求:这类集群有一个特点就是前端调度器通常是单点 ...

  5. 集群介绍 keepalived介绍 用keepalived配置高可用集群

    集群介绍 • 根据功能划分为两大类:高可用和负载均衡 • 高可用集群通常为两台服务器,一台工作,另外一台作为冗余,当提供服务的机器宕机,冗余将接替继续提供服务 • 实现高可用的开源软件有:heartb ...

  6. Keepalived 配置高可用集群

    一.Keepalived 简介 (1) Keepalived 能实现高可用也能实现负载均衡,Keepalived 是通过 VRRP 协议 ( Virtual Router Redundancy Pro ...

  7. Spring Cloud Config 配置高可用集群

    详细参考:<Sprin Cloud 与 Docker 微服务架构实战>p163-9.10节 spring cloud config 与 eureka 配合使用 我就不写了,请参见本书章节.

  8. 配置drbd高可用集群

    前期准备: 同步时间 (两个节点) 节点一(172.16.21.6) [root@stu21 heartbeat2]# ntpdate 172.16.0.1 31 Dec 20:59:25 ntpda ...

  9. MongoDB高可用集群配置的方案

    >>高可用集群的解决方案 高可用性即HA(High Availability)指的是通过尽量缩短因日常维护操作(计划)和突发的系统崩溃(非计划)所导致的停机时间,以提高系统和应用的可用性. ...

随机推荐

  1. Hexo+Github博客搭建

    一.准备 1.安装git 点击下载:链接:https://pan.baidu.com/s/1eToStns 密码:r93r 安装参考之前随笔:http://www.cnblogs.com/jiangb ...

  2. https确实加密了。 抓包是一个中间人攻击过程

    https加密了为什么抓包还是明文 有客户已经正确部署了SSL证书,但是向我们提出了这个问题:我今天采用抓包工具进行抓包,但是我发现数据没有加密,请问是怎么回事?那采用证书加密有什么用?是不是很轻易的 ...

  3. Java线程和多线程(十四)——Synchronized关键字解析

    曾经有一个比较有趣的面试问题,那就是,关于使用synchronized关键字,是用在方法上面尾号,还是用在一个代码块上面为好? 答案就是使用锁定代码块为更好.因为这样不会锁定对象.当synchroni ...

  4. 使用bootstrap-select控件 搜索栏键入关键字动态获取后台数据

    bootstrap-select开源地址:https://github.com/silviomoreto/bootstrap-select bootstrap-select使用示例:http://si ...

  5. 【HNOI2015】菜肴制作

    题面 题解 这道题目首先可以想到拓扑排序,但是肯定不是字典序最小的排列. 比如说,有\(4\)种菜,限制为\(2 \to 4, 3 \to 1\),那么如果求字典序最小的排列会算出\((2, 3, 1 ...

  6. 4827: [Hnoi2017]礼物

    4827: [Hnoi2017]礼物 链接 分析: 求最小的$\sum_{i=1}^{n}(x_i-y_i)^2$ 设旋转了j位,每一位加上了c. $\sum\limits_{i=1}^{n}(x_{ ...

  7. Kubernetes学习之路(十三)之Pod控制器--DaemonSet

    一.什么是DaemonSet? DaemonSet 确保全部(或者一些)Node 上运行一个 Pod 的副本.当有 Node 加入集群时,也会为他们新增一个 Pod .当有 Node 从集群移除时,这 ...

  8. ubuntu下编译源码 make 出现 make: 'Makefile' is up to date.

    其实只需要 make就行了,不需要 make Makefile 当然,make的前提是,执行 ./configure 不报错

  9. python爬虫之requests库介绍(二)

    一.requests基于cookie操作 引言:有些时候,我们在使用爬虫程序去爬取一些用户相关信息的数据(爬取张三“人人网”个人主页数据)时,如果使用之前requests模块常规操作时,往往达不到我们 ...

  10. 初学者浅谈我对领域驱动设计(DDD)的理解

    一.为什么要学习领域驱动设计 如果你已经设计出了优雅而万能的软件架构,如果你只是想做一名高效的编码程序员,如果你负责的软件并不复杂,那你确实不需要学习领域驱动设计. 如果用领域驱动设计带来的收获: 能 ...