RHEL6.6 上实现高可用director (linbit+corosync+lvs)

RHEL6.6

epel源

本地源

主Director server 192.168.1.3   主机名 node1.mingxiao.info  node1

备Director server 192.168.1.4   主机名 node2.mingxiao.info  node2

Real server1 192.168.1.5

Real server2 192.168.1.6

VIP 192.168.1.10

主备DS时间同步

主备DS双机互信

主备DS节点名称与 uname -n 相同

node1编辑/etc/hosts文件

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.1.3 node1.mingxiao.info node1
192.168.1.4 node2.mingxiao.info node2

# scp /etc/hosts   node2:/etc/

双机互信

node1
# ssh-keygen -t rsa -f ~/.ssh/id_rsa
# ssh-copy-id -i .ssh/id_rsa.pub node1
node2 
# ssh-keygen -t rsa -f  ~/.ssh/id_rsa
# ssh-copy-id -i .ssh/id_rsa.pub node2

时间同步

# ntpdate time.windows.com
# ssh node2 ‘ntpdate time.windows.com‘

安装ldirectord

# rpm -ivh ldirectord-3.9.5-3.1.x86_64.rpm
# ssh node2 ‘rpm -ivh /root/ldirectord-3.9.5-3.1.x86_64.rpm‘

# cp /usr/share/doc/ldirectord-3.9.5/ldirectord.cf /etc/ha.d/

vim /etc/ha.d/ldirectord.cf
# Global Directives
checktimeout=3
checkinterval=1
#fallback=127.0.0.1:80
#fallback6=[::1]:80
autoreload=no
#logfile="/var/log/ldirectord.log"
#logfile="local0"
#emailalert="[email protected]"
#emailalertfreq=3600
#emailalertstatus=all
quiescent=no
# Sample for an http virtual service
virtual=192.168.1.10:80
        real=192.168.1.5:80 gate
        real=192.168.1.6:80 gate
        fallback=127.0.0.1:80 gate
        service=http
        scheduler=rr
        #persistent=600
        #netmask=255.255.255.255
        protocol=tcp
        checktype=negotiate
        checkport=80
        request=".test.html"
        receive="OK"   #一定要与.test.html内容一样,否则有错
        virtualhost=www.x.y.z

# scp /etc/ha.d/ldirectord.cf node2:/etc/ha.d/

RS1

# yum -y install httpd
# echo RS1 > /var/www/html/index.html
# echo OK > /var/www/html/.test.html  
# service httpd start
# ifconfig lo:0 192.168.1.10 broadcast 192.168.1.10 netmask 255.255.255.255 up
# route add –host 192.168.1.10 dev lo:0
# echo 1 > /proc/sys/net/ipv4/conf/eth0/arp_ignore
# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
# echo 2 > /proc/sys/net/ipv4/conf/eth0/arp_announce
# echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce

RS2

同RS1

node1

# yum install corosync pacemaker 
红帽6去除了crmsh,因此需要另外安装
# yum localinstall crmsh-2.1-1.6.x86_64.rpm
# vim /etc/corosync.conf
compatibility: whitetank
totem {
        version: 2
        secauth: off
        threads: 0
        interface {
                ringnumber: 0
                bindnetaddr: 192.168.1.0
                mcastaddr: 239.255.1.1
                mcastport: 5405
                ttl: 1
        }
}
logging {
        fileline: off
        to_stderr: no
        to_logfile: yes
        logfile: /var/log/cluster/corosync.log
        to_syslog: yes
        debug: off
        timestamp: on
        logger_subsys {
                subsys: AMF
                debug: off
        }
}
service {
        ver: 0
        name: pacemaker
}
aisexec {
       user: root
        group: root
}

# service corosync start

node2 同node1

# crm status
Last updated: Mon May  4 18:25:16 2015
Last change: Mon May  4 18:25:14 2015
Stack: classic openais (with plugin)
Current DC: node2.mingxiao.info - partition with quorum
Version: 1.1.11-97629de
2 Nodes configured, 2 expected votes
2 Resources configured
Online: [ node1.mingxiao.info node2.mingxiao.info ]

配置资源

crm(live)configure# property no-quorum-policy=ignore
crm(live)configure# property stonith-enabled=false
crm(live)configure# porperty resource-stickiness=100
crm(live)configure# primitive webip IPaddr  params ip=192.168.1.10 nic=eth0 cidr_netmask=24
crm(live)configure# primitive ldirectord lsb:ldirectord op start timeout=15s interval=0 op stop timeout=15s interval=0
crm(live)configure# colocation webip_with_ldirectord inf: webip ldirectordcrm(live)configure#  order ldirectord_after_webip inf: webip ldirectord
crm(live)configure# verify
crm(live)configure# commit

配置文件贴出

crm(live)configure# show

node node1.mingxiao.info         attributes standby=off
node node2.mingxiao.info         attributes standby=on
primitive ldirectord lsb:ldirectord         op start timeout=15s interval=0         op stop timeout=15s interval=0
primitive webip IPaddr         params ip=192.168.1.10 nic=eth0 cidr_netmask=24
colocation webip_with_ldirectord inf: webip ldirectord
order ldirectord_after_webip inf: webip ldirectord
property cib-bootstrap-options:         dc-version=1.1.11-97629de         cluster-infrastructure="classic openais (with plugin)"         expected-quorum-votes=2         stonith-enabled=false         no-quorum-policy=ignore
rsc_defaults rsc-options:         resource-stickiness=100
#vim:set syntax=pcmk

查看状态:

# crm status
Last updated: Mon May  4 18:33:31 2015
Last change: Mon May  4 18:25:14 2015
Stack: classic openais (with plugin)
Current DC: node2.mingxiao.info - partition with quorum
Version: 1.1.11-97629de
2 Nodes configured, 2 expected votes
2 Resources configured
Online: [ node1.mingxiao.info node2.mingxiao.info ]
 webip(ocf::heartbeat:IPaddr):Started node1.mingxiao.info 
 ldirectord(lsb:ldirectord):Started node1.mingxiao.info

可看到VIP已配置成功

# ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:55:0d:82 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.3/24 brd 192.168.1.255 scope global eth0
    inet 192.168.1.10/24 brd 192.168.1.255 scope global secondary eth0
    inet6 fe80::20c:29ff:fe55:d82/64 scope link 
       valid_lft forever preferred_lft forever

查看LVS路由表信息,可看到两个 RS已上线

# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.1.10:80 rr
  -> 192.168.1.5:80               Route   1      0          0         
  -> 192.168.1.6:80               Route   1      0          0

现在是运行在主Director server上,可看到主节点故障,自动跳转到备用节点上

# crm node standby
# crm node online
# crm status
Last updated: Mon May  4 18:38:53 2015
Last change: Mon May  4 18:38:48 2015
Stack: classic openais (with plugin)
Current DC: node2.mingxiao.info - partition with quorum
Version: 1.1.11-97629de
2 Nodes configured, 2 expected votes
2 Resources configured
Online: [ node1.mingxiao.info node2.mingxiao.info ]
 webip(ocf::heartbeat:IPaddr):Started node2.mingxiao.info 
 ldirectord(lsb:ldirectord):Started node2.mingxiao.info

进RS1  192.168.1.5 模拟RS1故障

# service httpd stop

进node2,可看到RS1已被剔除
# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.1.10:80 rr
  -> 192.168.1.6:80               Route   1      0          0

进RS1 192.168.1.5 模拟故障回复

# service httpd start
进node2,可看到RS1已重新上线
# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.1.10:80 rr
  -> 192.168.1.5:80               Route   1      0          0         
  -> 192.168.1.6:80               Route   1      0          0
时间: 2024-08-26 10:40:58

RHEL6.6 上实现高可用director (linbit+corosync+lvs)的相关文章

线上测试高可用集群部署文档【我的技术我做主】

线上测试高可用集群部署文档 目录: 目录:1 项目需求:2 实现方式:2 拓扑图:3 系统及软件版本:3 安装步骤:4 IP分配:4 LVS和keepalived的安装和配置:4 LVS主配置:4 LVS2备 配置:7 web服务器配置9 Mysql-MHA高可用:13 Mysql主配置:13 manager管理端操作:15 VIP切换:16 测试:26 下面是centos5.6的系统环境,如果是centos6版本,只需改动少许地方即可,步骤一致 . ---- by 金戈铁马行飞燕 项目需求:

LINUX 高可用群集之 ~Corosync~

Corosync:它属于OpenAIS(开放式应用接口规范)中的一个项目corosync一版本中本身不具 备投票功能,到了corosync 2.0之后引入了votequorum子系统也具备了投票功能了,如果我们用的是1版本的,又需要用到票数做决策时那该如何是好呢:当然,在红帽上把 cman + corosync结合起来用,但是早期cman跟pacemaker没法结合起来,如果想用pacemaker又想用投票功能的话,那就把cman当成 corosync的插件来用,把cman当成corodync的

高可用分布式存储(Corosync+Pacemaker+DRBD+MooseFS)

========================================================================================= 一.服务器分布及相关说明 ========================================================================================= 1.服务器信息 2.总体架构   3.网络参数 4.元数据节点上需要额外部署的服务 Corosync + Pace

[ Openstack ] Openstack-Mitaka 高可用之 Pacemaker+corosync+pcs 高可用集群

目录 Openstack-Mitaka 高可用之 概述    Openstack-Mitaka 高可用之 环境初始化    Openstack-Mitaka 高可用之 Mariadb-Galera集群部署    Openstack-Mitaka 高可用之 memcache    Openstack-Mitaka 高可用之 Pacemaker+corosync+pcs高可用集群    Openstack-Mitaka 高可用之 认证服务(keystone)    Openstack-Mitaka

在Kubernetes上运行高可用的WordPress和MySQL

WordPress是用于编辑和发布Web内容的主流平台.在本教程中,我将逐步介绍如何使用Kubernetes来构建高可用性(HA)WordPress部署. WordPress由两个主要组件组成:WordPress PHP服务器和用于存储用户信息.帖子和网站数据的数据库.我们需要让整个应用程序中这两个组件在高可用的同时都具备容错能力. 在硬件和地址发生变化的时候,运行高可用服务可能会很困难:非常难维护.借助Kubernetes以及其强大的网络组件,我们可以部署高可用的WordPress站点和MyS

keepAlived+nginx实现高可用双主模型LVS

实验目的: 利用keepalived实现高可用反向代理的nginx.以及双主模型的ipvs 实验环境: node1:在nginx做代理时做反向代理节点,在keepalived实现LVS时做Director.VIP1:172.16.18.22 VIP2:172.16.18.23 node2:在nginx做代理时做反向代理节点,在keepalived实现LVS时做Director.VIP1:172.16.18.22 VIP2:172.16.18.23 node3:在nginx做代理时做web服务器.

高可用集群corosync+pacemaker+drbd+httpd----手动配置篇

共享存储高可用方案 -----DRBD Drbd  :Distributed Replicated Block Device 高可用集群中的文件共享方案之一 共享存储的常见实现方式 DAS:直接附加存储 Direct attached storage:通过专用线缆直接连接至主板存储控制器接口的设备成为直接附加存储.,如外置的raid阵列 并行口: IDE  SCSI 两种接口的区别: ide接口的存取过程: 首先将从文件的读取说起;当用户空间进程要读写文件时首先向内核发起系统调用,然后进程有用户

高可用集群 corosync 搭建步骤

实验环境:    OS :    CentOS 6.6     corosync: corosync-1.4.7-1.el6.x86_64    pacemaker:pacemaker-1.1.12-4.el6.x86_64    crmsh:crmsh-2.1-1.6.x86_64.rpm     pssh:    pssh-2.3.1-2.el6.x86_64.rpm node1:        hostname: node2.1inux.com        IP     :172.16.

keepalived+LVS高可用Director Server

RHEL6.6-x86-64 主要软件: keepalived-1.2.16.tar.gz ipvsadm-1.26-4.el6.x86_64.rpm Master Directory Server :192.168.1.5 Backup Directory Server:192.168.1.8 Real Server 1 :192.168.1.6 Real Server 2 : 192.168.1.7 VIP: 192.168.1.10 编译安装keepalived # tar xf keep