Linux系统高可用集群软件之Keepalived

Keepalived 集群软件是一个基于VRRP协议来实现的LVS(四层协议)服务高可用方案,可以利用避免单节点故障.LVS服务需要有2台服务器运行Keepalived服务,一台为主服务器(MASTER),一台为备份服务器(BACKUP),但是对外只有一个虚拟IP,主服务器会发送特定的消息给备份服务器,当备份服务器收不到这个消息的时候,备份服务器认为主服务器宕机并会接管虚拟IP提供服务,从而保证了服务的高可用性.

1.环境说明

系统:Centos 6.5 64位

软件:Keepalived ipvsadm

服务:apache

网络:

node1:192.168.1.100

node2:192.168.1.102

vip:192.168.1.105

2.配置本地时间和网络

(1)两台服务器时间必须一至

[[email protected] ~]# date                       --节点2的时间
Thu Nov 13 15:11:09 CST 2014
[[email protected] ~]#

[[email protected] ~]# date                       --节点1的时间
Thu Nov 13 15:11:13 CST 2014
[[email protected] ~]#

(2)配置本地网络

node1节点:

[[email protected] ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0
HWADDR=08:00:27:EE:3D:F6
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.1.100
NETMASK=255.255.255.0
GATEWAY=192.168.1.1

[[email protected] ~]# vim /etc/hosts                 --两台服务器相互解析

192.168.1.100 node1
192.168.1.102 node2

[[email protected] ~]#

node2节点:

[[email protected] ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0
HWADDR=08:00:27:A5:94:4C
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.1.102
NETMASK=255.255.255.0
GATEWAY=192.168.1.1

[[email protected] ~]# vim /etc/hosts

192.168.1.100 node1
192.168.1.102 node2

[[email protected] ~]#

3.安装所需要的软件包,配置httpd服务

node1节点:

[[email protected] ~]# yum install httpd keepalived ipvsadm -y          --安装所需的软件

[[email protected] ~]# vim /etc/httpd/conf/httpd.conf

ServerName 127.0.0.1

[[email protected] ~]# echo "node1" > /var/www/html/index.html           --定义web首页

[[email protected] ~]# /etc/init.d/httpd restart
Stopping httpd:                                            [FAILED]
Starting httpd:                                            [  OK  ]

[[email protected] ~]# chkconfig httpd on                    --重启web服务

[[email protected] ~]#

node2节点:

[[email protected] ~]# yum install httpd keepalived ipvsadm -y

[[email protected] ~]# vim /etc/httpd/conf/httpd.conf

ServerName 127.0.0.1

[[email protected] ~]# echo "node2" > /var/www/html/index.html

[[email protected] ~]# /etc/init.d/httpd restart
Stopping httpd:                                            [FAILED]
Starting httpd:                                            [  OK  ]

[[email protected] ~]# chkconfig httpd on

4.配置keepalived集群服务

node1节点:

[[email protected] ~]# echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore
[[email protected] ~]# echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore
[[email protected] ~]# echo "2" > /proc/sys/net/ipv4/conf/all/arp_ignore
[[email protected] ~]# echo "2" > /proc/sys/net/ipv4/conf/lo/arp_ignore

[[email protected] ~]# ifconfig eth0:1 192.168.1.105 broadcast 192.168.1.105 netmask 255.255.255.255 up
[[email protected] ~]# route add -host 192.168.1.105 dev eth0:1

[[email protected] ~]# ifconfig
eth0      Link encap:Ethernet  HWaddr 08:00:27:EE:3D:F6 
          inet addr:192.168.1.100  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:feee:3df6/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1600615 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1574022 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:106099219 (101.1 MiB)  TX bytes:102403193 (97.6 MiB)

eth0:1    Link encap:Ethernet  HWaddr 08:00:27:EE:3D:F6 
          inet addr:192.168.1.105  Bcast:192.168.1.105  Mask:255.255.255.255
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

lo        Link encap:Local Loopback 
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:5087 errors:0 dropped:0 overruns:0 frame:0
          TX packets:5087 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:403339 (393.8 KiB)  TX bytes:403339 (393.8 KiB)

[[email protected] ~]# route  -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.1.105   0.0.0.0         255.255.255.255 UH    0      0        0 eth0
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1002   0        0 eth0
0.0.0.0         192.168.1.1     0.0.0.0         UG    0      0        0 eth0

[[email protected] ~]# cd /etc/keepalived/
[[email protected] keepalived]# vim keepalived.conf          --配置keepalived文件

! Configuration File for keepalived

global_defs {
   notification_email {
     [email protected]            --宕机后邮件报警
   }
   notification_email_from root       --从哪个用户发出
   smtp_server localhost                --邮件服务器
   smtp_connect_timeout 30
   router_id LVS_DEVEL
}

vrrp_instance VI_1 {
    state MASTER                   --主节点
    interface eth1                     --监听的网卡
    virtual_router_id 51            --虚拟路由ID号
    priority 100                         --配置优先级
    advert_int 1
    authentication {
        auth_type PASS         --认证类型
        auth_pass keep          --认证密码
    }
    virtual_ipaddress {
        192.168.1.105           --虚拟IP地址
    }
}

virtual_server 192.168.1.105 80 {        --虚拟IP和端口设置
    delay_loop 6
    lb_algo rr       
    lb_kind DR
    nat_mask 255.255.255.0
    protocol TCP

real_server 192.168.1.100 80 {        --主服务器的IP和端口
        weight 1                   --权重
        HTTP_GET {           --启用HTTP服务
            url {
              path /
              status_code 200          --监控状态码为200,如果返回不是200表示宕机
            }
            connect_timeout 3

nb_get_retry 3

delay_before_retry 3
         }
    }
    real_server 192.168.1.102 80 {              --从服务器的IP和端口
         weight 1                        --权重
         HTTP_GET {
             url {
               path /
               status_code 200
             }
             connect_timeout 3
             nb_get_retry 3
             delay_before_retry 3
         }
     }

}
[[email protected] keepalived]#

node2节点:

[[email protected] ~]# echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore
[[email protected] ~]# echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore
[[email protected] ~]# echo "2" > /proc/sys/net/ipv4/conf/all/arp_ignore
[[email protected] ~]# echo "2" > /proc/sys/net/ipv4/conf/lo/arp_ignore

[[email protected] ~]# ifconfig eth0:1 192.168.1.105 broadcast 192.168.1.105 netmask 255.255.255.255 up
[[email protected] ~]# route add -host 192.168.1.105 dev eth0:1

[[email protected] ~]# ifconfig
eth0      Link encap:Ethernet  HWaddr 08:00:27:A5:94:4C 
          inet addr:192.168.1.102  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fea5:944c/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1601817 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1574326 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:104324952 (99.4 MiB)  TX bytes:104338539 (99.5 MiB)

eth0:1    Link encap:Ethernet  HWaddr 08:00:27:A5:94:4C 
          inet addr:192.168.1.105  Bcast:192.168.1.105  Mask:255.255.255.255
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

lo        Link encap:Local Loopback 
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:6824 errors:0 dropped:0 overruns:0 frame:0
          TX packets:6824 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:2407997 (2.2 MiB)  TX bytes:2407997 (2.2 MiB)

[[email protected] ~]# cd /etc/keepalived/
[[email protected] keepalived]# vim keepalived.conf

! Configuration File for keepalived

global_defs {
   notification_email {
     [email protected]
   }
   notification_email_from root
   smtp_server localhost
   smtp_connect_timeout 30
   router_id LVS_DEVEL
}

vrrp_instance VI_1 {
    state BACKUP                --备用节点
    interface eth1
    virtual_router_id 51
    priority 101                  
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass keep
    }
    virtual_ipaddress {
        192.168.1.105
    }
}

virtual_server 192.168.1.105 80 {
    delay_loop 6
    lb_algo rr
    lb_kind DR
    nat_mask 255.255.255.0
    protocol TCP

real_server 192.168.1.100 80 {
        weight 1
        HTTP_GET {
            url {
              path /
              status_code 200
            }
            connect_timeout 3

nb_get_retry 3

delay_before_retry 3
         }
    }
   real_server 192.168.1.102 80 {
         weight 1
         HTTP_GET {
             url {
               path /
               status_code 200
             }
             connect_timeout 3
             nb_get_retry 3
             delay_before_retry 3
         }
     }

}
[[email protected] keepalived]#

5.启动keepalived服务和ipvsadm的状态

node1和node2启动服务:

[[email protected] keepalived]# /etc/init.d/keepalived restart
Stopping keepalived:                                       [  OK  ]
Starting keepalived:                                       [  OK  ]
[[email protected] keepalived]#

[[email protected] ~]# /etc/init.d/keepalived restart
Stopping keepalived:                                       [  OK  ]
Starting keepalived:                                       [  OK  ]
[[email protected] ~]#

[[email protected] keepalived]# ipvsadm -L -n
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.1.105:80 rr
  -> 192.168.1.100:80             Local   1      0          0        
  -> 192.168.1.102:80             Route   1      0          0        
[[email protected] keepalived]#

6.测试是否正常

时间: 2024-08-10 21:16:49

Linux系统高可用集群软件之Keepalived的相关文章

Linux系统高可用集群软件之HeartBeat

服务器环境: node1:192.168.1.100    10.0.0.1 node2:192.168.1.102    10.0.0.2 服务:apache 1.配置系统的网络环境 node1节点: (1)配置IP地址 [[email protected] yum.repos.d]# cd /etc/sysconfig/network-scripts/[[email protected] network-scripts]# vim ifcfg-eth0 DEVICE=eth0HWADDR=0

NEC高可用集群软件NEC EXPRESSCLUSTER是一款专业的高可用集群软件产品(双机热备软件)

NEC高可用集群软件NEC EXPRESSCLUSTER是一款专业的高可用集群软件产品(双机热备软件)商务qq1912078946 ,可为您提供Windows和Linux平台上完整的高可用性解决方案.当集群中的某个节点由于软件或硬件原因发生故障时,集群系统可以把IP.客户业务等资源切换到其他健康的节点上,使整个系统能连续不间断的对外提供服务,并且可以通过对系统资源的使用情况进行分析来预防故障,自动判断出最适合运行业务的服务器,并进行切换,从而为机构24x365的关键业务提供了可靠的保障,达到了系

高可用集群软件Heartbeat介绍

一.Heartbeat的定义 Heartbeat 项目是 Linux-HA 工程的一个组成部分,也是目前开源HA项目中最成功的一个例子,Linux-HA的全称是High-Availability Linux,这个开源项目的目标是:通过社区开发者的共同努力,提供一个增强linux可靠性(reliability).可用性(availability)和可服务性(serviceability)(RAS)的群集解决方案,它实现了一个高可用集群系统.心跳服务和集群通信是高可用集群的两个关键组件,在 Hear

linux下高可用集群详解

1.高可用集群简单效果图 1.1.Messaging Layer:主要收集节点间的事务资源心跳等信息,分别有以下几种: heartbeatV1 heartbeatV2 heartbeatV3 corosync cman keepalived ultramokey 1.2.CRM:cluster resourse manager,对Messaging Layer收集到的资源进行管理,分别有以下几种: Heartbeat v1 自带的资源管理器:haresources Heartbeat v2 自带

keepalived for linux(HA 高可用集群)

高可用集群的实现是由基于vrrp协议(虚拟冗余路由协议)的keepalived软件实现的: VRRP协议: 下面开始配置keepalived 实现高可用集群操作 首先准备好2台调度器(DR1,DR2),2台RS服务器(RS1,RS2),1台客户机: 要做高可用的前提需要注意: 1.各个节点之间时间必须同步:需要使用时间服务器: 2.各个节点之间可以通过主机名互相通信: 3.确保iptables和selinux不会阻碍各个节点之间的数据通信 4.为了安全考虑,各个节点之间的root用户可以基于密钥

RCS高可用集群软件

RCS系列产品能够实现业务工作的无缝连接.通过备用服务器连续服务,大大地减少了停机时间.通过友好的GUI界面可以实现所有的设定.操作,大大地降低了运营成本. 导入简单利用对话框方式简单的实现安装配置,即使没有专业知识,也可以完成应用程序的高可用配置. 运行管理简单通过可以清楚观察到容错集群系统状态GUI界面,直观操作,减轻管理员负担. 低成本由于RCS支持多种系统环境,实现系统的高可用性,不需要重新架构系统,不改变现有系统的配置,即可实现系统的高可用性,降低了实施成本. 直观的GUI界面 双机热

linux下高可用集群之DRBD详解

1.DRBD:Disrtributed Replicated Block Device,分布式复制块设备 DRBD:主要是在不同服务器之间硬盘或分区同步数据,通过网络,按位同步,即镜像! Raid1主要是将同一服务器硬盘或分区同步数据,通过主板总线,按位同步.即镜像! DRBD区别于DAS,NAS,SAN,也区别于Raid1 DRBD是primary/secondary,主从设备,主从角色可以互换 primary:可读写执行操作,但secondary不能挂载文件系统 DRBD也是Dual pri

linux下高可用集群之RHCS详解

1.RHCS: RedHat Cluster Suite,红帽集群套件 RHCS必备基础包:cman rgmanager system-cluster-config 2.RHCS集群部署基本前提: 2.1.时间同步:建议使用ntp服务 2.2.跳板机与各节点名称解析且每个主机的主机名与其'uname -n'保持一致: 2.3.跳板机与各节点之间ssh实现密钥认证 2.4.配置好每个节点的Yum; 3.本实验使用3个节点主机实现RHCS集群,GW主机作为跳板主机,IP分布如下: 1.1.1.18

linux下高可用集群之corosync详解

1.corosync相当于heartbeat功能,提供Messaging Layer,收集节点之间心跳等信息 pacemaker相当于haresources,提供crm管理资源信息 2.实验:双集群节点为node1.willow.com,IP为1.1.1.18 node2.willow.com,IP为1.1.1.19 在node1.willow.com主机配置如下:(与node2.willow.com集群配置全部相同) 2.1.安装corosync和pacemaker等需要安装的包 cluste