Pacemaker是一个 集群资源管理器。它利用你喜欢的 集群基础构件(OpenAIS 或 heartbeat)提供的消息和成员管理能力来探测并从 节点或资源级别的故障中恢复,以实现群集服务(亦称资源)的最大可用性。 它可以做几乎任何规模的 集群,并带有一个强大的依赖模式,让管理员能够准确地表达的群集资源之间的关系(包括顺序和位置)。 几乎任何可以编写的脚本,都可以作为管理 起搏器集群的一部分。 尤为重要的是Pacemaker不是一个 heartbeat的工具,可能有人存在这样的误解。Pacemaker是一个延续 CRM(亦称V2资源管理器)的项目
Heartbeat项目是Linux-HA工程的一个组成部分,它实现了一个高可用集群系统。heartbeat最核心的包括两个部分,心跳监测部分和资源接管部分,心跳监测可以通过网络链路和串口进行,而且支持冗 余链路,它们之间相互发送报文来告诉对方自己当前的状态,如果在指定的时间内未收到对方发送的报文,那么就认为对方失效,这时需启动资源接管模块来接管运 行在对方主机上的资源或者服务。
pacemaker
关掉所有进程
chkconfig --list cman
chkconfig --list modcluster
chkconfig --list modclusterd
/etc/init.d/modclusterd stop
chkconfig --list modclusterd
chkconfig modclusterd off
lvs
/etc/init.d/clvmd status
lvs
/etc/init.d/iscsi stop
chkconfig iscsi off
/etc/init.d/ricci stop
chkconfig ricci off
yum install pacemaker -y
cd /etc/corosync/
ls
/etc/init.d/cman status
cp corosync.conf.example corosync.conf
vim corosync.conf
【
totem {
version: 2
secauth: off
threads: 0
interface {
ringnumber: 0
bindnetaddr: 172.25.19.0 广播地址为自己的网段
mcastaddr: 226.94.1.1
mcastport: 19
ttl: 1
}
}
最后面加就可以
service {
name:pacemaker
ver:0
}
】
/etc/init.d/pacemaker start
scp corosync.conf 172.25.19.2:/etc/corosync/
/etc/init.d/corosync start
cd
yum install crmsh-1.2.6-0.rc2.2.1.x86_64.rpm pssh-2.3.1-2.1.x86_64.rpm -y
crm
crm(live)configure# primitive vmfence stonith:fence_xvm params pcmk_host_map="server1.examlple.com:fanan1;server2.examlple.com:fanan2" op monitor interval=lmin 创建fence
commit 确定保存
property no-quorum-policy=ignore 忽略节点数同时存在
commit 确定保存
primitive vip ocf:heartbeat:IPaddr2 params ip=172.25.19.100 cidr_netmask=32 op monitor interval=10s 创建vip
commit 确定保存
crm_mon 监控
检测
server2 and server1 都要做:
添加apache
cd /etc/httpd/conf
vim httpd.conf
【
<Location /server-status> 921行
SetHandler server-status
Order deny,allow
Deny from all
Allow from 127.0.0.1
</Location>
】 加了这个本地就可以检测到, 才可以添加,测试
crm(live)configure# primitive website ocf:heartbeat:apache params configfile=/etc/httpd/conf/httpd.conf op monitor interval=30s
commint
crm(live)configure# colocation website-with-vip inf:(空格) website vip 绑定
commint
crm node standby 离开
crm node online
server1/2
确定 iscsi 关闭
server3
确定 scsi/tgtd 关闭
( dd if=/dev/zero of=/dev/vol0/demo bs=512 count=1 破坏ricci做的网络磁共享)
dd if=/dev/zero of=/dev/sda bs=1024 count=1 破坏分区,
tgt-admin -s 查看 /etc/tgt/tgtd.conf相关内容
server1/2
/etc/init.d/iscsi start
server3
/etc/init.d/tgtd start
在server1
fdisk -cu /dev/sda system=Linux
mkfs.ext4 /dev/sda1 格式化完 有lost+found生成 修复文件系统时用到
server1
yum install -y mysql-server
mount /dev/sda1 /var/lib/mysq1
chown mysql.mysql /var/lib/mysql
/etc/init.d/mysqld start
在server2 挂在时需要 partprobe 同步
mount /dev/sda1 /var/lib/mysq1
/etc/init.d/mysql start
server1
mysql 进入
mysql_secure_installation 修改root密码安全度
mysql>grant select on *.* to fanan@'172.25.19.%' identified by 'westos'
mysql>flush privileges
/etc/init.d/mysqld stop 因为mysql.sock这个文件记录了你在登陆,关掉后,server2的mysql 才能登陆
server2
mysql -predhat
crm(live)configure# primitive dbdata ocf:heartbeat:Filesystem params device=/dev/sda1 directory=/var/lib/mysql fstype=ext4 op monitor interval=lmin
commit
crm(live)configure# primitive db lsb:mysqld op monitor interval=20s
crm(live)configure# group dbserver vip dbdata db
commit
heartbeat
server1/2
关掉 /etc/init.d/iscsi stop
/etc/init.d/corosync stop
/etc/init.d/mysqld stop
df
netstat -anpetl
yum install -y heartbeat-3.0.4-2.el6.x86_64.rpm heartbeat-libs-3.0.4-2.el6.x86_64.rpm heartbeat-devel-3.0.4-2.el6.x86_64.rpm ldirectord-3.9.5-3.1.x86_64.rpm
cd /usr/share/doc/heartbeat-3.0.4/
cp ha.cf haresources authkeys /etc/ha.d/
cd /etc/ha.d/
vim ha.cf
【
keepalive 2 表示heartbeat之间间隔为两秒
deadtime 30 在30秒后宣布节点死亡
warntime 10 在日志发出late heartbeat 警告之前等待两秒
initdead 60 重起网络需要一定时间才能正常动作 至少是deadtime 2倍
udpport 19 udp端口
bcast eth0 # Linux 在此网卡接口上使用广播
auto_failback on 节点恢复后自动切回
node server1.example.com
node server2.example.com
ping 172.25.19.250
respawn hacluster /usr/lib64/heartbeat/ipfail 用hacluster用户身份来执行并监视该进程执行情况,若死亡,重起该进程
apiauth ipfail gid=haclient uid=hacluster
】
vim haresource
【
server1.example.com IPaddr::172.25.19.100/24/eth0 httpd
】
vim authkeys
【
auth 1
1 crc
#2 sha1 HI!
#3 md5 Hello
】
chmod 600 authkeys
/etc/init.d/heartbeat start server1/2 都要开起
scp authkeys haresources ha.cf 172.25.9.2:/etc/ha.d/
没有健康检测, 只有关掉heartbeat,才能切换节点 关掉httpd 删掉vip都不能切换
安装 drbd是一个用软件实现的,无共享,服务器之间镜像块设备内容的储存复制解决方案
tar zxf drbd-8.4.3.tar.gz
ls
cd drbd-8.4.3
vim 1.spec
./configure --enable-spec --with-km
yum install -y flex
./configure --enable-spec --with-km
yum install -y rpm-build
./configure --enable-spec --with-km
cd
cp drbd-8.4.3.tar.gz rpmbuild/SOURCES/
cd drbd-8.4.3
rpmbuild drbd.spec
cd
ls
cp drbd-8.4.3.tar.gz rpmbuild/SOURCES/
cd drbd-8.4.3
rpmbuild drbd.spec
rpmbuild -bb drbd.spec
rpmbuild -bb drbd-km.spec
yum install -y kernel-devel
rpmbuild -bb drbd-km.spec
cd
cd rpmbuild/
cd RPMS/
ls
cd x86_64/r
ls
yum install -y *
scp * 172.25.19.2:/root
server1/2 加virtl0 4G 磁盘
fdisk -l
cd /etc/drbd.d/
vim dbdata.res
[
resource dbdata {
meta-disk internal;
device /dev/drbd1;
syncer {
verify-alg sha1;
}
on server1.example.com {
disk /dev/vdb; server1 加的/dev/vdb
address 172.25.19.1:7789;
}
on server2.example.com {
disk /dev/vdb; server2 加的/dev/vdb
address 172.25.19.2:7789;
}
}
]
scp dbdata.res 172.25.19.2:/etc/drbd.d/
drbdadm create-md dbdata 初始化 两边都要server1/2
/etc/init.d/drbd start
server1 :
drbdadm primary dbdata --force 两边同步 强制 主
cat /proc/drbd 查看
mkfs.ext4 /dev/drbd1 格式一下
mount /dev/drbd1 /mnt/
cd /mnt 建立一些
cd
umount /mnt/
drbdadm secondary dbdata
server2:
drbdadm primary dbdata
mount /dev/drbd1 /mnt/
cd /mnt 查看
cd
umount /mnt/
drbdadm secondary dbdata
umount /mnt/
server1:
yum install mysql-server -y
drbdadm primary dbdata
mount /dev/drbd1 /var/lib/mysql/
chown mysql.mysql /var/lib/mysql/
/etc/init.d/mysqld start
cd /var/lib/mysql/
ll -d
mysql
/etc/init.d/mysqld stop
umount /dev/drbd1
drbdadm seconddary dbdata
drbdadm secondary dbdata
server2:
yum install mysql-server -y
drbdadm primary dbdata
mount /dev/drbd1 /var/lib/mysql/
cd /var/lib/mysql/
ll -d
/etc/init.d/mysqld start
mysql
umount /dev/drbd1
/etc/init.d/heartbeat stop
server1
/etc/init.d/heartbeat stop
cd /etc/ha.d/
vim haresources
【
server1.example.com IPaddr::172.25.19.100/24/eth0 drbddisk::dbdata Filesystem::/dev/drbd1::/var/lib/mysql::ext4 mysqld
】
scp haresources root@172.25.19.2:/etc/ha.d/
server1/2
/etc/init.d/heartbeat start
tail -f /var/log/messages
ip addr show
arp -an |grep 172.25.19.100 物理机