keepalived高可用

keepalived實現wrrp熱網關備份:
keepalived配置文件如下
主:
! Configuration File for keepalived

global_defs {
  notification_email {
    acassen@firewall.loc
    failover@firewall.loc
    sysadmin@firewall.loc
  }
  notification_email_from root@node1.com     //管理員郵箱
  smtp_server 127.0.0.1            //郵箱服務器
  smtp_connect_timeout 30          //郵箱連接超時
  router_id CentOS7-node1          //本地主機名
  vrrp_mcast_vgroup4 224.0.100.100     //進行心跳測試的組播地址
}

vrrp_instance vr {     //定義一個網絡名字vr
   state MASTER            //此設備狀態為MASTER
   interface enp0s3         //端口
   virtual_router_id 55     //定義一個唯一的標識縞號
   priority 100             //定義此設備的優先級
   advert_int      //每一次進行組播的時間間隔
   authentication {    //認證方式
       auth_type PASS   //認證類型
       auth_pass 1111    //認證字符串
   } 
   virtual_ipaddress {    //虛擬地址
       172.18.35.111/16 dev enp0s3    虛擬地址與設備
   }
}
            備:
                ! Configuration File for keepalived

global_defs {
  notification_email {
    acassen@firewall.loc
    failover@firewall.loc
    sysadmin@firewall.loc高可用之keepalived            
    keepalived實現wrrp熱網關備份:
        配置網關上的keepalived,配置文件如下
            主:
                ! Configuration File for keepalived

global_defs {
  notification_email {
    acassen@f
  }
  notification_email_from root@node2.com
  smtp_server 127.0.0.1
  smtp_connect_timeout 30
  router_id CentOS6-node2
  vrrp_mcast_vgroup4 224.0.100.100
}

vrrp_instance vr {
   state BACKUP
   interface eth0
   virtual_router_id 55
   priority 98
   advert_int 1
   authentication {
       auth_type PASS
       auth_pass 1111
   }
   virtual_ipaddress {
       172.18.35.111/16 dev eth0
   }
} 配置含意同上
    keepalived的雙主模式:
        ! Configuration File for keepalived

global_defs {
  notification_email {
    acassen@firewall.loc
    failover@firewall.loc
    sysadmin@firewall.loc
  }
  notification_email_from root@node1.com
  smtp_server 127.0.0.1
  smtp_connect_timeout 30
  router_id CentOS7-node1
  vrrp_mcast_vgroup4 224.0.100.9
}

vrrp_instance vr {    //第一個vr主
   state MASTER
   interface enp0
   virtual_router_id 51   //第一個主的唯一縞號
   priority 100            //第一個主的優先級
   advert_int 1      //組播間隔時間
   authentication {
       auth_type PASS
       auth_pass 1111
   }
   virtual_ipaddress {
       172.18.35.111/16 dev enp0s3    //第一個熱備的地址與接口
   }
}

vrrp_instance vr1 {    //第二個從vr1
   state BACKUP     //定義了備
   interface enp0s3     //定義接口
   virtual_router_id 52   //定義第二個唯一值
   priority 98    //定義備份服務器的優先級
   advert_int 1    //定義組播廣播間隔時間
   authentication {
       auth_type PASS
       auth_pass 1235    //定義了第二個熱備的認證字符
   }
   virtual_ipaddress {
       172.18.35.112/16 dev enp0s3   //定義了第二個熱備的地址與接口
       }
}

keepalived實現LVS的高可用性

!/bin/bash

VIP=”172.18.35.103″
Device=”lo:0″
MASK=”255.255.255.255″
case $1 in
start)
   echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
   echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
   echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
   echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
   ifconfig $Device $VIP netmask $MASK broadcast $VIP up
   route add -host $VIP dev $Device
   ;;
stop)
   echo 0 > /proc/sys/net/ipv4/conf/all/arp_ignore
   echo 0 > /proc/sys/net/ipv4/conf/lo/arp_ignore
   echo 0 > /proc/sys/net/ipv4/conf/lo/arp_announce
   echo 0 > /proc/sys/net/ipv4/conf/all/arp_announce
   ifconfig $Device down
   route del -host $VIP dev $Device
   ;;
*)
   echo “Usage $(basename $0) {start|stop}”;;
esac
        配置VS的keepalived:配置文件內容如下
            keepalived主服務器配置 
           ! Configuration File for keepalived

global_defs {
  notification_email {
    acassen@firewall.loc
  }
  notification_email_from root@node1.com
  smtp_server 127.0.0.1
  smtp_connect_timeout 30
  router_id CentOS7-node1
  vrrp_mcast_vgroup4 224.0.100.9
}

vrrp_instance vr {
   state MASTER
   interface enp0s3
   virtual_router_id 51
   priority 100
   advert_int 1
   authentication {
       auth_type PASS
       auth_pass 1111
   }
   virtual_ipaddress {
       172.18.35.103/16 dev enp0s3
   }
}

virtual_server 172.18.35.103 80 {    //配置LVS的VIP與vprot
   delay_loop 3            //延遲時間
   lb_algo wrr             //采用wrr算法
   lb_kind DR              //使用LVS的DR模型
   #persistence_timeout 30  //這個是定義長連接時間的
   protocol TCP    //使用的傳輸層協議,目前只支持TCP協議
   sorry_server 127.0.0.1 80    //定義的sorry服務器的地址與端口
   real_server 172.18.250.38 80 {    //定義一個RS,此處說明地址與端口
       weight 2    //服務器性能參數,權重
       HTTP_GET {     //定義健康監測,此處為應用協議
           url {
               path /     //訪問的uri
               status_code 200    //反回響應狀態碼
           }
       }
   }
   real_server 172.18.250.24 80 {    //第二個RS
       weight 1
       HTTP_GET {
           url {
               path /
               status 200
           }
       }
   }
   connect_timeout 1
   ng_get_retry 3
   delay_before_retry 1
}
keepalived從服務器配置:
                同主的配置,只有vrrp略有差異,下面為vrrp段配置
                    vrrp_instance vr {
   state BACKUP
   interface eth0
   virtual_router_id 51
   priority 98
   advert_int 1
   authentication {
       auth_type PASS
       auth_pass 1111
   }
   virtual_ipaddress {
       172.18.35.103/16 dev eth0
   }
}
    keepalived實現LVS的雙主模式
        這里貼keepalive的主配置文件,其它配置與上一示例相同,配置內容如下
            ! Configuration File for keepalived

global_defs {
  notification_email {
    acassen@firewall.loc
  }
  notification_email_from root@node1.com
  smtp_server 127.0.0.1
  smtp_connect_timeout 30
  router_id CentOS7-node1
  vrrp_mcast_vgroup4 224.0.100.9
}

vrrp_instance vr {
   state MASTER
   interface enp0s3
   virtual_router_id 51
   priority 100
   advert_int 1
   authentication {
       auth_type PASS
       auth_pass 1111
   }
   virtual_ipaddress {
       172.18.35.103/16 dev enp0s3
   }
}

vrrp_instance vr1 {
   state BACKUP
   interface enp0s3
   virtual_router_id 52
   priority 98
   advert_int 1
   authentication {
       auth_type PASS
       auth_pass 1234
   }
   virtual_ipaddress {
       172.18.35.111/16 dev enp0s3
   }
}

virtual_server 172.18.35.103 80 {
   delay_loop 3
   lb_algo wrr
   lb_kind DR
   #persistence_timeout 30
   protocol TCP
   sorry_server 127.0.0.1 80
   real_server 172.18.250.38 80 {
       weight 2
       HTTP_GET {
           url {
               path /
               status 200
           }
       }
   }
   real_server 172.18.250.24 80 {
       weight 1
       HTTP_GET {
           url {
               path /
               status 200
           }
       }
   }
   connect_timeout 1
   ng_get_retry 3
   delay_before_retry 1
}

virtual_server 172.18.35.111 80 {
   delay_loop 3
   lb_algo wrr
   lb_kind DR
   #persistence_timeout 30
   protocol TCP
   sorry_server 127.0.0.1 80
   real_server 172.18.250.38 80 {
       weight 1
       HTTP_GET {
           url {
               path /
               status 200
           }
       }
   }
   connect_timeout 1
   ng_get_retry 3
   delay_before_retry 1
}

virtual_server 172.18.35.111 80 {
   delay_loop 3
   lb_algo wrr
   lb_kind DR
   #persistence_timeout 30
   protocol TCP
   sorry_server 127.0.0.1 80
   real_server 172.18.250.38 80 {
       weight 1
       HTTP_GET {
           url {
               path /
               status 200
           }
       }
   }
   real_server 172.18.250.24 80 {
       weight 1
       HTTP_GET {
           url {
               path /
               status 200
           }
       }
   }
   connect_timeout 1
   ng_get_retry 3
   delay_before_retry 1
}
        注:由于這個雙主需要的是兩VIP,所以備RS上必須建立兩個回環地址也就是lo:0與lo:1,兩次配置一樣,也需要添加路由
    使用keepalived配置nginx負載均衡的高可用性
        配置nginx,在http段加入如下內容,將所有的server全部注釋掉,兩個nginx配置相同
            upstream websrvs{
       ip_hash;
       server 172.18.250.38 weight=1;
       server 172.18.250.24 weight=2;
   }
   server {
       listen *:80;
       location / {
           proxy_pass http://websrvs;
       }
   }
        在master上配置keepalived
      ! Configuration File for keepalived

global_defs {
  notification_email {
    acassen@firewall.loc
 }
  notification_email_from root@node1.com
  smtp_server 127.0.0.1
  smtp_connect_timeout 30
  router_id CentOS7-node1
  vrrp_mcast_vgroup4 224.0.100.9
}

vrrp_script nginx_check {
   script “killall -0 nginx && exit 0 || exit 1”
   interval 1
   weight 5
   full 2
   rise 1
}

vrrp_instance vr {
   state MASTER
   interface enp0s3
   virtual_router_id 51
   priority 100
   advert_int 1
   authentication {
       auth_type PASS
       auth_pass 1111
   }
   track_script {
       nginx_check
   }
   virtual_ipaddress {
       172.18.35.103/16 dev enp0s3
   }

原創文章,作者:xiangx,如若轉載,請注明出處:http://www.www58058.com/75897

(0)
xiangxxiangx
上一篇 2017-05-15
下一篇 2017-05-16

相關推薦

  • 磁盤管理(1)

    1、磁盤結構(機械硬盤) (1)磁盤構成: 磁臂(機械手臂):連接并固定磁頭 馬達(電機):可以轉動盤片,讓磁臂上的磁頭可以在盤片上讀寫數據 扇區:最小的物理存儲單位,每個扇區為512bytes 磁頭:可以讀寫數據 盤片:主要記錄數據 柱面:將扇區組成一個圓就是柱面,柱面是分區的最小單位 (2)磁盤接口 并口:IDE  SCSI&nbsp…

    Linux干貨 2016-08-30
  • 基于Keepalived構建高可用集群配置實例(HA Cluster)

    什么是集群 簡單的講集群(cluster)就是一組計算機,它們作為一個整體向用戶提供一組網絡資源。這些單個的計算機系統就是集群的節點(node)。一個理想的集群是,用戶從來不會意識到集群系統底層的節點,在他/她們看來,集群是一個系統,而非多個計算機系統。并且集群系統的管理員可以隨意增加和刪改集群系統的節點。 關于更詳細的高可用集群我們在后面再做詳解…

    Linux干貨 2016-11-03
  • linux下VMware Tools安裝方法

    關于VMware Tools 是虛擬機里面的驅動,和各種實用工具,安裝了vmware tools,你的虛擬機就可以打開DX3D的支持,鼠標想移出虛擬機也不需要按組合鍵,文件可以從主機直接拖動復制到虛擬機里面,虛擬機的分辨率也會自動跟隨窗口調整而變化,還能解決圖形界面下的卡頓,總之就是拓展了虛擬機的功能,方便使用。     &nb…

    Linux干貨 2016-08-04
  • 第二周- -問題總結

    前言:這周學習了文件的基本操作、用戶和權限管理、重定向和管道。 1.在centos6.9當中,創建虛擬機的時候,網絡無法獲取地址,ping也不通,出現  device eth0 does not seem to be present, delaying initialization 答:(1).虛擬機啟動出錯,就把這個虛擬機刪除掉重新建立,系統虛擬…

    2017-07-23
  • echo命令的簡單用法和實例

        在CentOS 6.8版本下,通過實例的形式,展現選項和參數的靈活運用,可以簡明的了解echo的用法。 一、語法:echo [SHORT-OPTION]… [STRING]…??;echo [選項]…[參數]       作用:將需要的內容輸出到終端或者其他文件。 二、實例和選項參數的用法: (1)文本…

    Linux干貨 2017-03-27
  • Java中的Map List Set等集合類

    Map List Set等集合類: 一、概述 在JAVA的util包中有兩個所有集合的父接口Collection和Map,它們的父子關系: +Collection 這個接口extends自 –java.lang.Iterable接口 ├+List(接口 代表有序,可重復的集合。列表) │├ ArreyList   &…

    Linux干貨 2015-04-07
欧美性久久久久