pecemaker+heartbeat高可用

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 物理机

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值