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.www58058.com/56639

(0)
sjsirsjsir
上一篇 2016-11-01
下一篇 2016-11-01

相關推薦

  • Elasticsearch 5.0 集群

    IT運維 www.chinasa.net 下載地址:https://www.elastic.co/downloads/elasticsearch 1、JDK 安裝略過 node1 部署 2、Elasticsearch安裝 #tar zxvf elasticsearch-5.0.0.tar.gz -C /opt/ #cd /opt #mv elast…

    系統運維 2016-12-27
  • linux上安全軟件SElinux

    selinux簡介 SELinux(Security-Enhanced Linux) 是美國國家安全局(NSA)對于強制訪問控制的 實現,是 Linux歷史上最杰出的新安全子系統。NSA是在Linux社區的幫助下開發了一種訪問控制體系,在這種訪問控制體系的限制下,進程只能訪問那些在他的 任務中所需要文件。SELinux 默認安裝在 Fedora 和 Red …

    系統運維 2016-09-19
  • iptables/netfilter從入門到進階(Blog 17)

    博客作業:iptables/netfilter入門到進階;

    2017-12-20
  • 文件權限特殊管理之ACL

    ACL:access control list 權限訪問列表 應用范圍:所屬主和所屬組和其他用戶之外的他叔用戶 ACL是Linux系統權限額外支持的一項功能,需要文件系統的支持,例如:ReiserFS , EXT2 , EXT3 , EXT4 , JFS , XFS等都支持ACL功能 centos7 中:安裝系統分區和裝完系統之后自己手動添加的分區自動支持a…

    Linux干貨 2016-08-05
  • linux的終端類型

    1、什么是終端 終端(Terminal)也稱終端設備,是計算機網絡中處于網絡最外圍的設備,主要用于用戶信息的輸入以及處理結果的輸出等。 在早期計算機系統中,由于計算機主機昂貴,因此一個主機(IBM大型計算機)一般會配置多個終端,這些終端本身不具備計算能力,僅僅承擔信息輸入輸出的工作,運算和處理均由主機來完成。 在個人計算機時代,個人計算機可以運行稱為終端仿真…

    Linux干貨 2016-10-19
  • linux三劍客之awk

    awk             簡介:是一個優良的文本處理工具,Linux及Unix環境中現有的功能最強大的數據處理引擎之一。這種編程及數據操作語言的最大功能         &n…

    Linux干貨 2016-12-05
欧美性久久久久