linux下搭建HA高可用集群

HA 即 (high available)高可用,又被叫做双机热备,用于关键性业务。 简单理解就是,有两台机器A和B,正常是A提供服务,B待命闲置,当A宕机或服务宕掉,会切换至B机器继续提供服务。常用实现高可用的开源软件有heartbeat和keepalived,其中keepalived有负载均衡的功能。

实验前需准备的环境:

系统:两个CentOS  6.6系统

网卡:eth0、eth1 (本实验是在虚拟机上搭建需要提前给两个虚拟机系统各添加一块网卡)

给两个系统配置好网卡和IP后:

[email protected] ~]# ifconfig   //此为主机
eth0      Link encap:Ethernet  HWaddr 00:0C:29:E6:9E:DF 
          inet addr:192.168.1.111  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fee6:9edf/64 Scope:Link

eth1      Link encap:Ethernet  HWaddr 00:0C:29:E6:9E:E9 
          inet addr:192.168.217.111  Bcast:192.168.217.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fee6:9ee9/64 Scope:Link

[[email protected] ~]# ifconfig    //此为从机
eth0      Link encap:Ethernet  HWaddr 00:0C:29:77:83:2A 
          inet addr:192.168.1.119  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe77:832a/64 Scope:Link

eth1      Link encap:Ethernet  HWaddr 00:0C:29:77:83:34 
          inet addr:192.168.217.119  Bcast:192.168.217.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe77:8334/64 Scope:Link

搭建步骤:

  1. 关闭防火墙、selinux

    [[email protected] ~]# iptables -F
    [[email protected] ~]# setenforce 0
    setenforce: SELinux is disabled

    [[email protected] ~]# setenforce 0
    setenforce: SELinux is disabled
    [[email protected] ~]# iptables -F

  2. 添加hosts

    [[email protected] ~]# vi /etc/hosts  //添加以下内容

    192.168.1.111 webserver

    192.168.1.119 localhost

    [[email protected]localhost ~]# vi /etc/hosts  //添加以下内容

    192.168.1.111 webserver

    192.168.1.119 localhost

  3. 两台机同时安装epel扩展源

    [[email protected] ~]# yum install -y epel-release

    [[email protected] ~]# yum install -y epel-release

  4. 两个机器都安装heartbeat 、libnet   //本机代理为nginx服务,由于做LNMP时已安装过

    [[email protected] ~]# yum  install -y heartbeat*   libnet

    [[email protected] ~]#  yum  install -y heartbeat*   libnet

  5. 主上配置

    [[email protected] ~]# cd /usr/share/doc/heartbeat-3.0.4/
    [[email protected] heartbeat-3.0.4]# cp authkeys ha.cf haresources /etc/ha.d/
    [[email protected] heartbeat-3.0.4]# cd /etc/ha.d/
    [[email protected] ha.d]# vi authkeys   //按以下更改配置文件

    auth 3

    #1 crc

    #2 sha1 HI!

    3 md5 Hello!

    [[email protected] ha.d]# chmod 600 authkeys

    [[email protected] ha.d]# vi haresources   //添加以下内容,192.168.1.110 ip地址是流动ip,虚拟ip(vip);用来绑定服务的;子网掩码为24位;使用eth0:0绑定虚拟ip,并运行nginx进行测试;

    webserver 192.168.1.110/24/eth0:0 nginx

    [[email protected] ha.d]# vi ha.cf   //添加以下内容


    debugfile /var/log/ha-debug

    logfile /var/log/ha-log

    logfacility local0

    keepalive 2

    deadtime 30

    warntime 10

    initdead 60

    udpport 694

    ucast eth1 192.168.217.119

    auto_failback on

    node webserver

    node localhost

    ping192.168.217.1

    respawn hacluster /usr/lib/heartbeat/ipfail

  6. 从上配置

    [[email protected] ha.d]# scp ha.cf haresources authkeys localhost:/etc/ha.d/  //将主上配置文件复制到从

    [[email protected]ocalhost ha.d]# vi ha.cf   //另外两个文件不用更改


    debugfile /var/log/ha-debug

    logfile /var/log/ha-log

    logfacility     local0

    keepalive 2

    deadtime 30

    warntime 10

    initdead 60

    udpport 694

    ucast eth1 192.168.217.111

    auto_failback on

    node    webserver

    node    localhost

    ping 192.168.217.1

    respawn hacluster /usr/lib/heartbeat/ipfail

  7. 启动heartbeat,现主后从

    [[email protected] ha.d]# /etc/init.d/heartbeat start
    Starting High-Availability services: INFO:  Resource is stopped
    Done.

    [[email protected] ha.d]# /etc/init.d/heartbeat start
    Starting High-Availability services: INFO:  Resource is stopped
    Done.

  8. 检查测试

    [[email protected] ha.d]# ifconfig  
    eth0      Link encap:Ethernet  HWaddr 00:0C:29:E6:9E:DF  
              inet addr:192.168.1.111  Bcast:192.168.1.255  Mask:255.255.255.0
              inet6 addr: fe80::20c:29ff:fee6:9edf/64 Scope:Link

    eth0:0     Link encap:Ethernet HWaddr 00:0C:29:E6:9E:E9
             inet addr:192.168.1.110 Bcast:0.0.0.0 Mask:255.255.255.0
             UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
             Interrupt:19 Base address:0x2080

    eth1      Link encap:Ethernet  HWaddr 00:0C:29:E6:9E:E9  
              inet addr:192.168.217.111  Bcast:192.168.217.255  Mask:255.255.255.0
              inet6 addr: fe80::20c:29ff:fee6:9ee9/64 Scope:Link

    [[email protected] ha.d]# ps aux |grep nginx
    root     15707  0.0  0.1  15668  1216 ?        Ss   23:16   0:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf
    nginx    15709  0.0  0.1  15824  1796 ?        S    23:16   0:00 nginx: worker process                   
    root     15711  0.0  0.0   5980   748 pts/1    S+   23:16   0:00 grep nginx

  9. 测试1:故意禁ping

    [[email protected] ha.d]# iptables -I INPUT -p icmp -j DROP

    [[email protected] ha.d]# ifconfig 
    eth0      Link encap:Ethernet  HWaddr 00:0C:29:E6:9E:DF  
              inet addr:192.168.1.111  Bcast:192.168.1.255  Mask:255.255.255.0
              inet6 addr: fe80::20c:29ff:fee6:9edf/64 Scope:Link

    eth1      Link encap:Ethernet  HWaddr 00:0C:29:E6:9E:E9  
              inet addr:192.168.217.111  Bcast:192.168.217.255  Mask:255.255.255.0
              inet6 addr: fe80::20c:29ff:fee6:9ee9/64 Scope:Link

    [[email protected] ha.d]# ifconfig 
    eth0      Link encap:Ethernet  HWaddr 00:0C:29:77:83:2A  
              inet addr:192.168.1.119  Bcast:192.168.1.255  Mask:255.255.255.0
              inet6 addr: fe80::20c:29ff:fe77:832a/64 Scope:Link

    eth0:0   Link encap:Ethernet HWaddr 00:0C:29:77:83:34
              inet addr:192.168.1.110 Bcast:0.0.0.0 Mask:255.255.255.0
              UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
              Interrupt:19 Base address:0x2080

    eth1      Link encap:Ethernet  HWaddr 00:0C:29:77:83:34  
              inet addr:192.168.217.119  Bcast:192.168.217.255  Mask:255.255.255.0
              inet6 addr: fe80::20c:29ff:fe77:8334/64 Scope:Link

    [[email protected] ha.d]# ps aux |grep nginx
    root      5037  0.0  0.1  15668  1220 ?        Ss   23:48   0:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf
    nginx     5039  0.0  0.1  15824  1800 ?        S    23:48   0:00 nginx: worker process                   
    root      5042  0.0  0.0   5980   748 pts/0    S+   23:49   0:00 grep nginx

  10. 测试2:主上停止heartbeat服务

    [[email protected] ha.d]# service heartbeat stop 
    Stopping High-Availability services: Done.

    [[email protected] ha.d]# ifconfig 
    eth0      Link encap:Ethernet  HWaddr 00:0C:29:E6:9E:DF  
              inet addr:192.168.1.111  Bcast:192.168.1.255  Mask:255.255.255.0
              inet6 addr: fe80::20c:29ff:fee6:9edf/64 Scope:Link

    eth1      Link encap:Ethernet  HWaddr 00:0C:29:E6:9E:E9  
              inet addr:192.168.217.111  Bcast:192.168.217.255  Mask:255.255.255.0
              inet6 addr: fe80::20c:29ff:fee6:9ee9/64 Scope:Link

    [[email protected] ha.d]# ifconfig 
    eth0      Link encap:Ethernet  HWaddr 00:0C:29:77:83:2A  
              inet addr:192.168.1.119  Bcast:192.168.1.255  Mask:255.255.255.0
              inet6 addr: fe80::20c:29ff:fe77:832a/64 Scope:Link

    eth1:0   Link encap:Ethernet HWaddr 00:0C:29:77:83:34
              inet addr:192.168.1.110 Bcast:0.0.0.0 Mask:255.255.255.0
              UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
              Interrupt:19 Base address:0x2080 
       
    eth1      Link encap:Ethernet  HWaddr 00:0C:29:77:83:34  
              inet addr:192.168.217.119  Bcast:192.168.217.255  Mask:255.255.255.0
              inet6 addr: fe80::20c:29ff:fe77:8334/64 Scope:Link

    [[email protected] ha.d]# ps aux |grep nginx
    root      6044  0.0  0.1  15668  1460 ?        Ss   00:43   0:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf
    nginx     6046  0.0  0.1  15824  1908 ?        S    00:43   0:00 nginx: worker process                   
    root      6064  0.0  0.0   5980   744 pts/0    S+   00:44   0:00 grep nginx

    在主停掉heartbeat服务后从会接管服务。

  11. 测试脑裂:主和从上都down掉eth1网卡

    [[email protected] ha.d]# ifdown eth1

    [[email protected] ha.d]# ifdown eth1

    [[email protected] ha.d]# ifconfig 
    eth0      Link encap:Ethernet  HWaddr 00:0C:29:E6:9E:DF  
              inet addr:192.168.1.111  Bcast:192.168.1.255  Mask:255.255.255.0
              inet6 addr: fe80::20c:29ff:fee6:9edf/64 Scope:Link

    eth0:0    Link encap:Ethernet  HWaddr 00:0C:29:E6:9E:DF  
              inet addr:192.168.1.110  Bcast:192.168.1.255  Mask:255.255.255.0
              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
              Interrupt:19 Base address:0x2000

    [[email protected] ha.d]# ps aux |grep nginx
    root     17665  0.0  0.1  15668  1452 ?        Ss   00:28   0:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf
    nginx    17667  0.0  0.1  15824  1900 ?        S    00:28   0:00 nginx: worker process                   
    root     18146  0.0  0.0   5980   744 pts/1    S+   00:30   0:00 grep nginx

    [[email protected] ha.d]# ifconfig 
    eth0      Link encap:Ethernet  HWaddr 00:0C:29:77:83:2A  
              inet addr:192.168.1.119  Bcast:192.168.1.255  Mask:255.255.255.0
              inet6 addr: fe80::20c:29ff:fe77:832a/64 Scope:Link

    eth0:0    Link encap:Ethernet  HWaddr 00:0C:29:77:83:2A  
              inet addr:192.168.1.110  Bcast:192.168.1.255  Mask:255.255.255.0
              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
              Interrupt:19 Base address:0x2000

    [[email protected] ha.d]# ps aux |grep nginx
    root      7095  0.0  0.1  15668  1216 ?        Ss   00:53   0:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf
    nginx     7097  0.0  0.1  15824  1796 ?        S    00:53   0:00 nginx: worker process

    root      7141  0.0  0.0   5980   744 pts/0    S+   00:54   0:00 grep nginx

    down掉eth1网卡后主和从的心跳线断掉,会导致脑裂现象,而从会认为主已死掉从而接管服务。

    [[email protected] ha.d]# ifup eth1
    Determining if ip address 192.168.217.111 is already in use for device eth1..

    [[email protected] ha.d]# ifup eth1
    Determining if ip address 192.168.217.119 is already in use for device eth1...

    [[email protected] ha.d]# ifconfig 
    eth0      Link encap:Ethernet  HWaddr 00:0C:29:E6:9E:DF  
              inet addr:192.168.1.111  Bcast:192.168.1.255  Mask:255.255.255.0
              inet6 addr: fe80::20c:29ff:fee6:9edf/64 Scope:Link

    eth1      Link encap:Ethernet  HWaddr 00:0C:29:E6:9E:E9  
              inet addr:192.168.217.111  Bcast:192.168.217.255  Mask:255.255.255.0
              inet6 addr: fe80::20c:29ff:fee6:9ee9/64 Scope:Link

    [[email protected] ha.d]# ifconfig 
    eth0      Link encap:Ethernet  HWaddr 00:0C:29:77:83:2A  
              inet addr:192.168.1.119  Bcast:192.168.1.255  Mask:255.255.255.0
              inet6 addr: fe80::20c:29ff:fe77:832a/64 Scope:Link

    eth1      Link encap:Ethernet  HWaddr 00:0C:29:77:83:34  
              inet addr:192.168.217.119  Bcast:192.168.217.255  Mask:255.255.255.0
              inet6 addr: fe80::20c:29ff:fe77:8334/64 Scope:Link

    [[email protected] ha.d]# /etc/init.d/heartbeat restart
    Stopping High-Availability services: Done.

    Waiting to allow resource takeover to complete:Done.

    Starting High-Availability services: INFO:  Resource is stopped
    Done.

    [[email protected] ha.d]# ifconfig 
    eth0      Link encap:Ethernet  HWaddr 00:0C:29:E6:9E:DF  
              inet addr:192.168.1.111  Bcast:192.168.1.255  Mask:255.255.255.0
              inet6 addr: fe80::20c:29ff:fee6:9edf/64 Scope:Link

    eth0:0    Link encap:Ethernet  HWaddr 00:0C:29:E6:9E:DF  
              inet addr:192.168.1.110  Bcast:192.168.1.255  Mask:255.255.255.0
              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
              Interrupt:19 Base address:0x2000

    eth1      Link encap:Ethernet  HWaddr 00:0C:29:E6:9E:E9  
              inet addr:192.168.217.111  Bcast:192.168.217.255  Mask:255.255.255.0
              inet6 addr: fe80::20c:29ff:fee6:9ee9/64 Scope:Link

    [[email protected] ha.d]# ifconfig
    eth0      Link encap:Ethernet  HWaddr 00:0C:29:77:83:2A 
              inet addr:192.168.1.119  Bcast:192.168.1.255  Mask:255.255.255.0
              inet6 addr: fe80::20c:29ff:fe77:832a/64 Scope:Link

    eth1      Link encap:Ethernet  HWaddr 00:0C:29:77:83:34 
              inet addr:192.168.217.119  Bcast:192.168.217.255  Mask:255.255.255.0
              inet6 addr: fe80::20c:29ff:fe77:8334/64 Scope:Link

    打开两网卡后不能立即恢复服务,还需要重启heartbeat服务才能恢复正常运行。

时间: 2024-10-09 13:58:58

linux下搭建HA高可用集群的相关文章

搭建HA高可用集群

搭建HA高可用集群 一.搭建集群的准备环境 有三台机器,两台上装ricci,另外一台装luci Luci管理机:172.25.47.6 Ricci节点:172.25.47.4   172.25.47.5 Yum仓库: Yum仓库中要指向其他的一些包 注意:yum仓库一般是从Server目录中下载包,但是也有一些其他的包在其他的目录下,因此此次yum 源的配置会和以往不一样 Yum源中配置的是这几个模块: 防火墙方面: 永久关闭防火墙 Selinux方面: 由于这些套件是redhat自带的,所以可

linux 下heartbeat简单高可用集群搭建

Heartbeat 项目是 Linux-HA 工程的一个组成部分,它实现了一个高可用集群系统.通过Heartbeat我们可以实现双机热备,以实现服务的持续性. linux下基于heartbeat的简单web服务的高可用集群搭建 首先规划好两台主机作为heartbeat的双机热备,命名为node1.lvni.cc(主) ;node2.lvni.cc, node1的eth0IP :192.168.157.148  Vip eth0:0:192.168.157.149 node2的eth0IP :19

AIX下的ha高可用集群cluster

安装ha软件 一.安装软件 最稳定的版本是5.4.0,优先安装稳定版本5.4 安装依赖于包base.data, cluster的man包安装失败原因是缺少base.data包 安装所有cluster.开头的包,可以不安装cluster.man 包 二.打ha补丁 打补丁之前先执行指令:inutoc生成  .toc文件,然后smitty  update_all升级cluster      到5.4.1.0版本 ha环境的搭建注意事项 一.ha配置为主备模式或者互备模式应该根据应用系统的要求选择,在

Heartbeat学习笔记--HA高可用集群实现

一.部署环境: 服务器版本:CentOS6.5 双主热备模式: VIP:192.168.3.30(MASTER上) VIP:192.168.3.32(BACKUP上) 主机网络参数: 接口 MASTER BACKUP 说明 eth1 192.168.3.23 192.168.3.24 内网管理IP eth2 192.168.5.23 192.168.5.24 心跳线 eth3 192.168.2.23 192.168.2.24 外网(临时下载文件用) 网络拓扑: 二.需求分析: 通过Heartb

红帽436——HA高可用集群之安装篇

红帽436--HA高可用集群的安装 图释: 1-  su - :真实机切换至root用户 2-  virt-manager :打开KVM管理工具 3-  从Desktop开启虚拟机:classroom(充当服务器的作用)和三台节点机 图释:在每台节点中操作 1-  通过ssh以节点root远程登录三个节点进行操作: ssh [email protected] 2-  安装pcs服务 3-  关闭firewall,并永久启用pcs服务 4-  设置用户hacluster密码:redhat    -

HA 高可用集群概述及其原理解析

HA 高可用集群概述及其原理解析 1. 概述 1)所谓HA(High Available),即高可用(7*24小时不中断服务). 2)实现高可用最关键的策略是消除单点故障.HA严格来说应该分成各个组件的HA机制:HDFS 的HA和YARN的HA. 3)Hadoop2.0之前,在HDFS集群中NameNode存在单点故障(SPOF). 4)NameNode主要在以下两个方面影响HDFS集群: ? NameNode机器发生意外,如宕机,集群将无法使用,直到管理员重启 ? NameNode机器需要升级

红帽436——HA高可用集群之概念

一.集群概念: 集群:提高性能,降低成本,提高可扩展性,增强可靠性,任务调度室集群中的核心技术. 集群作用:保证业务不断 集群三种网络:业务网络,集群网络,存储网络 二.集群三种类型: HA:高可用集群     -->正在学习的集群 LP:负载均衡集群 HPC:分布式集群 三.HA模型架构图:(图一.图二) (图一) (图二)

红帽436——HA高可用集群之概念篇

一.集群概念: 集群:提高性能,降低成本,提高可扩展性,增强可靠性,任务调度室集群中的核心技术. 集群作用:保证业务不断 集群三种网络:业务网络,集群网络,存储网络 二.集群三种类型: HA:高可用集群     -->正在学习的集群 LP:负载均衡集群 HPC:分布式集群 三.HA模型架构图:(图一.图二) (图一) (图二)

conga下HA高可用集群的搭建(redhat6.5)

实验环境 redhat6.5虚拟机三台,各1G内存,时间同步 server1  172.25.44.1 server2  172.25.44.2 server3  172.25.44.3 火墙和selinux均处于关闭状态 编辑/etc/hosts文件,加入解析 不支持在集群节点中使用 NetworkManager.如果已经在集群节点中安装了 NetworkManager,应该删除或者禁用该程序. server1  server2 ricci节点 (1).yum源配置 vim /etc/yum.