HA Cluster-主备模型(项目实战)

主机环境:主机A和主机B使用的是CentOS7.2的系统:
    主机A IP地址为:192.168.1.103
    主机B IP地址为:192.168.1.106
    向外界提供的服务的地址为:192.168.1.100

配置过程:
    (1)基础配置过程:
        a.在主机B上同步主机A的时间:
            vim /etc/chrony.conf
            注释掉以server开头的行,添加下面的行;
            server 192.168.1.103 iburst
            systemctl restart chronyd.service
            chronyc sources
        b.关闭主机A和主机B的防火墙和SELinux
            iptables -F
            setenforce 0
        c.各节点之间的root用户可以基于密钥认证的ssh服务完成互相通信(非必须)      
            主机A:ssh-keygen -t rsa -P ''
            主机B:ssh-copy-id -i .ssh/id_rsa.pub root@192.168.1.106
            用主机A测试连接主机B:ssh 'root@192.168.1.106'
    (2)主机A配置为主主机:

        yum -y install keepalived
        mv /etc/keepalived/keepalived.conf{,.bak}
        vim /etc/keepalived/keepalived.conf
            ! Configuration File for keepalived
            global_defs {
                notification_email {
                    root@localhost :设置主机的email的收件人为root,真实生产中用的是公司的管理员的邮箱账号;
                }
                notification_email_from keepalived@localhost:设置报警服务的发件人为keepalived;
                smtp_server 127.0.0.1
                smtp_connect_timeout 30
                router_id node1
                vrrp_mcast_group4 224.0.100.19
            }
            vrrp_instance VI_1 {
                state MASTER :设置主机A模式为MASTER
                interface eno16777736
                virtual_router_id 14 :给出一个指定的ID,应该和周围所有的人的不一样
                priority 100:设置主机的优先级为100
                advert_int 1
                authentication {
                    auth_type PASS :设置认证机制为PASS
                    auth_pass 571f97b2 :设置密钥,应该是一串随机的密码
                }
                virtual_ipaddress {
                    192.168.1.100/24 dev eno16777736        
                }  网络响应的IP为192.168.1.100/24

            }

        systemctl start keepalived.service
    (3)主机B配置为备用主机:(可以直接远程复制主机A的配置文件,修改即可)
        yum -y install keepalived
        mv /etc/keepalived/keepalived.conf{,.bak}
        vim /etc/keepalived/keepalived.conf
            ! Configuration File for keepalived
            global_defs {
                notification_email {
                    root@localhost
                }
                notification_email_from keepalived@localhost
                smtp_server 127.0.0.1
                smtp_connect_timeout 30
                router_id node1
                vrrp_mcast_group4 224.0.100.19
            }
            vrrp_instance VI_1 {
                state BACKUP :设置主机B模式为BACKUP,备用主机
                interface eno16777736
                virtual_router_id 14 :给出一个指定的ID,应该和周围所有的人的不一样,但应该和MASTER主机的相同;
                priority 98 :设置主机B的优先级应该小于主机A的优先级,以98为例;
                advert_int 1
                authentication {
                    auth_type PASS :设置认证机制为PASS
                    auth_pass 571f97b2 :设置密钥,应该是一串随机的密码,应该和MASTER主机的PASS相同        
                }
                virtual_ipaddress {
                    192.168.1.100/24 dev eno16777736                
                }  网络响应的IP为192.168.1.100/24        
            }  
        systemctl start keepalived.service  
测试过程:
    (1)同时启用主机A和主机B,然后观察日志的输出:
        systemctl start keepalived.service
        主机A的日志:(主机A已经监听在192.168.1.100)

        blob.png

        blob.png

         主机B的日志:(主机B由于是备用主机,所以显示BACKUP模式)

        blob.png

        blob.png   

    (2)将主机A的keepalived的服务down掉,然后观察主机A和主机B的日志信息
        在主机A上面执行的命令:systemctl stop keepalived.service
        主机A的日志信息:(发现主机A已经将192.168.1.100 IP地址已经移除)

        blob.png

        blob.png

        主机B的日志信息:(主机B发现主机A已经down掉,自己接手192.168.1.100 IP地址)

        blob.png

        blob.png

    (3)将主机A的keepalived服务启动起来,观察日志的输出:
        主机A执行的操作:systemctl start keepalived.service
        主机A的日志信息:(由于主机A的优先级比主机B的优先级高,所以主机A应该取回192.168.1.100的IP)

        blob.png

        blob.png

        主机B的日志信息:(主机B发现比自己级别高的主机A已经运行,所以将自己的IP交出,自己回到BACKUP模式)

        blob.png

        blob.png

    (4)扩展,要是主机A和主机B的优先级同样高,在主机Adown掉,主机B接手IP,之后,启动主机A的keepalived的服务,主机B还会将自己的IP交出,将自己的恢复成BACKUP模式么?
        实验步骤:
            修改主机B的/etc/keepalved/keepalived.conf配置文件中的:priority的值修改为100                    
        实验的现象:
        a.将主机Adown掉之后的两台主机的日志:
            主机A的日志信息:

            blob.png

            blob.png

            主机B的日志信息:

            blob.png

            blob.png            

        b.将down掉的主机A重新启动服务,观察现象:
            主机A的日志信息:

            blob.png

            blob.png

            主机B的日志信息:    

            blob.png

            blob.png

        结果总结:虽然将主机A和主机B的优先级调到同样高的级别,但是主机A因为是MASTER身份,所以还是在重新启动的时候,请求主机B交出自己的IP,让主机B恢复为BACKUP的模式;即使在同样的级别下,MASTER的主机就是比BACKUP的主机的响应程度高。

原创文章,作者:sjsir,如若转载,请注明出处:http://www.178linux.com/56639

(0)
sjsirsjsir
上一篇 2016-11-01 14:02
下一篇 2016-11-01 14:35

相关推荐

  • Linux 环境 SSD(固态硬盘)使用指南

    原文链接:http://www.jinbuguo.com/storage/ssd_usage.html 前言 因为SSD有着诸多与传统机械式硬盘不同的特点,而且这些特点导致了SSD在实际使用中的性能和寿命与其使用方法紧密相关。所以并不是说买来一块非常牛X的SSD就万事大吉了。另一方面,SSD的性能并不像机械式硬盘那样比较稳定(浮动范围小),而是呈现出一种离散…

    Linux干货 2015-04-08
  • N22期-第五周博客作业

    1、显示当前系统上root、fedora或user1用户的默认shell; [root@localhost jimmy]# egrep '^(root|fedora|user1)\>' /etc/passwd | cut -d: -f7 /bin/bas…

    Linux干货 2016-09-10
  • 【原创】Tengine+LUA+Nginx-GridFS+jemalloc编译安装

    操作系统 ubuntu 14.04 LTS Nginx-GridFS为nginx直接访问mongoDB的扩展模块,目前只支持到mongodb2.6.12 mongodb安装请自己百度 #安装依赖包保平安 apt-get install root-system-bin autoconf automake gcc c++ libgeoip-devlibxml++…

    Linux干货 2016-11-30
  • 用户及权限管理

     今天是学习马哥教育第四天,也是第一个博客作业,写一篇关于用户及权限管理的简介型的博客文章,作文水品有限,所以写出来有可能有病句或者意境有问题,请大家多多包涵。  首先,用户及权限管理,需要从2方面入手来说,首先来说用户管理。  何谓用户,这是马哥一上来就提到的问题,我简单的理解,用户其实就是一个人机交互的接口,人机交互的接口是…

    Linux干货 2016-09-15
  • 第九周

    1、写一个脚本,判断当前系统上所有用户的shell是否为可登录shell(即用户的shell不是/sbin/nologin);分别这两类用户的个数;通过字符串比较来实现;   1 #!/bib/bash   2 #   3 a=0   4 x=0   5 y=…

    Linux干货 2017-05-25
  • btrfs文件系统常用命令使用

    Btrfs,也可称为B-tree,Butter FS,Better FS,是CentOS7中一种新型的文件系统。 核心特性: 1.多物理卷支持,可由多个物理卷(pv)组成,支持raid,以联机添加删除 2.支持写实复制(Copy on Write,Cow) 复制一份修改,改好之后用指针替换,出错时指回原本文件。而不是就地修改 3.数据及元数据校验码:chec…

    Linux干货 2016-03-07