




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于corosync+pacemaker实现主从高可用集群本实验由两个节点组成高可用主从集群,在实际中不常用,目的是通过实验来加深对corosync的认识和理解。环境设置:
node1:
ip
0
node2:
ip
1
VIP
一:准备工作
1、DNS域名解析
用uname
-n的结果来识别对方的名字
使node1,node2的uname
-n分别为:
node1:
#
sed
-i
's@\(HOSTNAME=\).*@\1@g'
/etc/sysconfig/network
#
hostname
node2:
#
sed
-i
's@\(HOSTNAME=\).*@\1@g'
/etc/sysconfig/network
#
hostname
m
在/etc/hosts添加:
0
node1
1
node2
2、node1,node2可以远程通信在node1上:
ssh-keygen
-t
rsa
-P
''
ssh-copy-id
-i
~/.ssh/id_rsa
root@node2
命令测试:
ssh
node2
'ifconfig'
然后再实现node2对node1的通信
3、两个节点时间同步[root@node2
~]#
date
112822022012;ssh
node1
'date
112822022012'
Fri
Nov
28
22:02:00
CST
2012
Fri
Nov
28
22:02:00
CST
2012
4、在node1,node2上安装httpd#
yum
-y
install
httpd
建立测试页面,为了便于区分,将页面结果设置为不同内容
node1上:
编辑/var/www/html/index.html写入:
<h1>node1</h1>
node2:
编辑/var/www/html/index.html写入:
<h1>node2</h1>
测试完成后;将两个节点的httpd服务关闭,并使之开机不能自动启动service
httpd
stop
chkconfig
httpd
off
关闭selinux
setenforce
0
二:安装配置corosync
1、安装以下rpm包:cluster-glue
cluster-glue-libs
heartbeat
openaislib
resource-agentsyyu
corosync
heartbeat-libs
pacemaker
corosynclib
libesmtp
pacemaker-libs
下载至本地/root后安装:#
yum
-y
--nogpgcheck
localinstall
*.rpm
2、配置corosync(以下命令在上执行)
#
cd
/etc/corosync
#
cp
corosync.conf.example
corosync.conf
#
vim
corosync.conf
作如下修改:
version:
2
##版本
secauth:
on
threads:
1
##线程数
bindnetaddr:
##绑定的网段
mcastaddr:
4
##使用的组播地址
to_syslog:
no
##是否将日志发送到日志文件系统
//添加这个service可以实现pacemaker随corosync的启动而自动启动
service
{
ver:
0
name:
pacemaker
}
//定义ais的辅助运行用户和组的
aisexec
{
name:
root
group:
root
}
3、生成节点间通信时用到的认证密钥文件:
#
corosync-keygen
将corosync和authkey复制至node2:
#
scp
-p
corosync.conf
authkey
node2:/etc/corosync/
分别为两个节点创建corosync生成的日志所在的目录:
#
mkdir
/var/log/cluster
#
ssh
node2
'mkdir
/var/log/cluste
4、启动corosync#
service
corosync
start
#tail
-50
/var/log/messages
##查看日志信息
#
ssh
node2
--
/etc/init.d/corosync
start
##启动node2
5、查看状态:[root@node1
corosync]#
crm
crm(live)#
status
Current
DC:
-
partition
with
quorum
Version:
1.1.5-1.1.el5-01e86afaaa6d4a8c4836f68df80ababd6ca3902f
2
Nodes
configured,
2
expected
votes
0
Resources
configured.
============
Online:
[
]
三:crm用法--crm是一个交互式的shell接口[root@node1
~]#
crm
crm(live)#
help
This
is
the
CRM
command
line
interface
program.
Available
commands:
##crm使用的子命令
cib
manage
shadow
CIBs
##集群信息库
resource
resources
management
##资源管理
configure
CRM
cluster
configuration
##集群配置
node
nodes
management
##节点管理
options
user
preferences
ra
resource
agents
information
center
##资源代理
status
show
cluster
status
##显示集群状态信息
quit,bye,exit
exit
the
program
##退出程序
help
show
help
##帮助信息
end,cd,up
go
back
one
level
##返回上一层
最常用的有:
1、集群的配置用configure:
crm(live)#
configure
##进入资源配置命令
crm(live)configure#
help
primitive
define
a
resource
##定义资源
group
define
a
group
##定义组
location
a
location
preference
##位置约束
colocation
colocate
resources
##排列约束
order
order
resources
##顺序约束
show
display
CIB
objects
##显示信息
edit
edit
CIB
objects
##进入编辑模式
delete
delete
CIB
objects
##删除cib对象
commit
commit
the
changes
to
the
CIB
##提交信息
verify
verify
the
CIB
with
crm_verify
##检查语法错误
2、资源代理RA的信息:
crm(live)configure#
cd
crm(live)#
ra
crm(live)ra#
help
Available
commands:
classes
list
classes
and
providers
##资源代理的类别
list
list
RA
for
a
class
(and
provider)
##显示每个类别的所有RA
meta
show
meta
data
for
a
RA
##资源代理的元数据
providers
show
providers
for
a
RA
and
a
class
##资源代理的提供者
quit
exit
the
program
help
show
help
end
go
back
one
level
crm(live)ra#
classes
##显示四种资源代理类别
heartbeat
##heartbaet
V1版本
lsb
##
linux标准库
ocf
/
heartbeat
pacemaker
##Open
cluster
Framework
开放集群架构
stonith
##专为配置stonith设备而用
crm(live)ra#
list
lsb
##用list可以查看每个类别的
crm(live)ra#
list
ocf
AoEtarget
AudibleAlarm
CTDB
ClusterMon
Delay
Dummy
crm(live)ra#
list
ocf
heartbeat
##查看ocf下的子类别
AoEtarget
AudibleAlarm
CTDB
ClusterMon
Delay
Dummy
EvmsSCC
Evmsd
Filesystem
ICP
IPaddr
IPaddr2
//只显示部分;IPaddr是ocf类别下heartbeat子类别的资源代理;用于IP的代理;下面我们将用到
crm(live)ra#
meta
ocf:heartbeat:IPaddr
##用meta查看某个具体资源代理的属性
##使用方式
类别:子类别:资源代理
Parameters
(*
denotes
required,
[]
the
default):
##*表示必选的,[]表示默认值
ip*
(string):
IPv4
address
##使用的参数;*表示必选的
The
IPv4
address
to
be
configured
in
dotted
quad
notation,
for
example
"".
...............
Operations'
defaults
(advisory
minimum):
##默认的操作
start
timeout=20s
##启动超时时间
stop
timeout=20s
##停止超时时间
monitor
interval=5s
timeout=20s
##每隔5s监视一次,20s是超时时间
配置1个全局属性:
crm
configure
property
stonith-enabled=false
##是否启用stonish设备
verify
##检查语法
commit
##提交
接下来开始配置资源了:
定义资源用primitive,help一下:
crm(live)configure#
help
primitive
Usage:
...............
primitive
<rsc>
[<class>:[<provider>:]]<type>
资源
RA类别:提供者:哪个类型的RA
[params
attr_list]
##params是关键字,指定参数
[meta
attr_list]
##元数据属性
[utilization
attr_list]
[operations
id_spec]
##操作
[op
op_type
[<attribute>=<value>...]
...]
##指定额外的属性;如超时时长
四:集群资源配置:
1、下面来配置一个webIP的集群资源:crm(live)configure#
primitive
WebIP
ocf:heartbeat:IPaddr
params
ip=""
crm(live)configure#
verify
crm(live)configure#
commit
crm(live)configure#
show
node
node
primitive
WebIP
ocf:heartbeat:IPaddr
\
params
ip=""
property
$id="cib-bootstrap-options"
\
dc-version="1.1.5-1.1.el5-01e86afaaa6d4a8c4836f68df80ababd6ca3902f"
\
cluster-infrastructure="openais"
\
expected-quorum-votes="2"
\
stonith-enabled="false"
crm(live)configure#
cd
crm(live)#
status
##状态查看
============
Last
updated:
Sat
Dec
1
11:12:19
2012
Stack:
openais
Current
DC:
-
partition
with
quorum
Version:
1.1.5-1.1.el5-01e86afaaa6d4a8c4836f68df80ababd6ca3902f
2
Nodes
configured,
2
expected
votes
1
Resources
configured.
============
Online:
[
]
WebIP
(ocf::heartbeat:IPaddr):
Started
//发现WebIP运行在node1上
//ifconfig查看;在node1上
[root@node1
~]#
ifconfig
eth0:0
Link
encap:Ethernet
HWaddr
00:0C:29:76:E9:56
inet
addr:
Bcast:55
Mask:
UP
BROADCAST
RUNNING
MULTICAST
MTU:1500
Metric:1
Interrupt:67
Base
address:0x2000
2、添加WebServe资源:crm(live)configure#
primitive
WebServer
lsb:httpd
crm(live)configure#
verify
crm(live)configure#
commit
crm(live)configure#
show
node
node
primitive
WebIP
ocf:heartbeat:IPaddr
\
params
ip=""
primitive
WebServer
lsb:httpd
##显示WebServe
property
$id="cib-bootstrap-options"
\
dc-version="1.1.5-1.1.el5-01e86afaaa6d4a8c4836f68df80ababd6ca3902f"
\
cluster-infrastructure="openais"
\
expected-quorum-votes="2"
\
stonith-enabled="false"
crm(live)configure#
cd
crm(live)#
status
WebIP
(ocf::heartbeat:IPaddr):
Started
WebServer
(lsb:httpd):
Started
//发现WebServer在node2上;默认资源是负载均衡模式的。多个
资源运行在多个节点上的,我们要想把资源运作在一个节点上;
可以通过定义组来实现:
下面将WebIP,WebServer定义在一个Webservice组中;
crm(live)configure#
group
Webservice
WebIP
WebServer
crm(live)configure#
cd
crm(live)#
status
Resource
Group:
Webservice
##发现Webservice
WebIP
(ocf::heartbeat:IPaddr):
Started
WebServer
(lsb:httpd):
Started
//有上面得知,定义组后WebIP,
WebServer都运行在node1上了
//通过访问,只显示node1的页面内容;
把node1为standby:
[root@node1
~]#
crm
node
standby
[root@node1
~]#
crm
status
============
Last
updated:
Sat
Dec
1
11:46:27
2012
Stack:
openais
Current
DC:
-
partition
with
quorum
Version:
1.1.5-1.1.el5-01e86afaaa6d4a8c4836f68df80ababd6ca3902f
2
Nodes
configured,
2
expected
votes
1
Resources
configured.
============
Node
:
standby
##node1已为standby
Online:
[
]
Resource
Group:
Webservice
WebIP
(ocf::heartbeat:IPaddr):
Started
WebServer
(lsb:httpd):
Started
//说明资源都转移到node2上面了
//此时页面也显示为node2的测试内容了
这样就完成了角色转换了
下面让node2为standby:node1为online:
[root@node1
~]#
crm
node
online
[root@node1
~]#
crm
status
============
Last
updated:
Sat
Dec
1
12:12:56
2012
Stack:
openais
Current
DC:
-
partition
with
quorum
##没有达到法定票数
Version:
1.1.5-1.1.el5-01e86afaaa6d4a8c4836f68df80ababd6ca3902f
2
Nodes
configured,
2
expected
votes
1
Resources
configured.
============
Node
:
standby
Online:
[
]
Resource
Group:
Webservice
WebIP
(ocf::heartbeat:IPaddr):
Started
WebServer
(lsb:httpd):
Started
//对于两个节点的集群,不具备法定票数也允许运行;有以下措施:
crm(live)configure#
property
no-quorum-policy=ignore
##不具备法定票数忽略
crm(live)configure#
verify
crm(live)configure#
commit
3、下面通过约束关系来管理资源;这需要删除前面定义的组:
需先停止资源运行,再删除组
crm(live)resource#
stop
Webservice
##停止资源运行crm(live)resource#
cd
crm(live)#
configure
crm(live)configure#
delete
Webservice
提交查看结果;
WebIP,WebServer又以独立资源运行起来了
1)、定义排序约束;(两个资源必须在一起或不在一起)
crm(live)configure#
colocation
WebServer_with_WebIP
inf:
WebServer
WebIP
提交后查看:
crm(live)configure#
show
xml
<rsc_colocation
id="WebServer_with_WebIP"
rsc="WebServer"
score="INFINITY"
with-rsc="WebIP"/>
//说明这两个资源必须在一起
crm(live)#
status
Online:
[
]
WebIP
(ocf::heartbeat:IPaddr):
Started
WebServer
(lsb:httpd):
Started
//
两个资源在一个节点运行
//通过浏览去访问为node1的页面
让节点1为standby:
crm(live)#
node
standby
crm(live)#
status
WebIP
(ocf::heartbeat:IPaddr):
Started
WebServer
(lsb:httpd):
Started
//资源转移到node2上
2)、用顺序约束可以让资源按一前一后顺序启动:
crm(live)configure#
order
WebServer_after_webIP
mandatory:
WebIP
WebServer
crm(live)configure#
verify
crm(live)configure#
commit
crm(live)configure
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 在挫折中奋起教学设计高中心理健康北师大版浙江专版高中三年级全一册-北师大版浙江专版
- 第5课 三大改造 教学设计-统编版八年级历史下册
- 基于人工智能的2025年高速公路智能交通系统智能调度报告
- 2025-2032年新能源汽车出口至菲律宾市场增长潜力分析报告
- 第15课 瞧这一家子说课稿小学美术苏少版六年级上册-苏少版
- 2025年新能源电动车智能化市场机遇与产品升级报告
- 2025年5G网络技术在智慧农业中的应用报告
- 氢能基础设施2025年投资成本分析及技术创新路径研究
- 第5课 分分合合有规划-管理工作表 说课稿-辽师大版(2015)初中信息技术七年级上册
- 2025年中国高密度聚乙烯管行业市场分析及投资价值评估前景预测报告
- 2025河南省文化旅游投资集团有限公司权属企业社会招聘52人笔试备考题库及答案解析
- 2025年河北水利发展集团有限公司公开招聘工作人员41名笔试参考题库附带答案详解
- 胰岛素泵护理查房
- 2025年资格考试-WSET二级认证历年参考题库含答案解析(5套典型题)
- 安徽省皖豫名校联盟2024-2025学年高三上学期10月月考历史试题
- 护理突发事件的应急处理和风险防范
- 装配机器人及其操作应用-课件
- 高中日语宣讲 试听课件
- 生态学群落演替课件
- TCTCA 13-2023 凉感织物席规程
- GB/T 17194-1997电气导管电气安装用导管的外径和导管与配件的螺纹
评论
0/150
提交评论