配置高可用集群(实验) corosyne+pacemaker

环境准备:

一准备三个虚拟机,把/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基本的命令解释)
posted @ 2017-11-04 14:18  ~小学生~  阅读(580)  评论(0编辑  收藏  举报