keepalivedの可用性LVS

今RS1とRS2上記とのhttpdテストページをインストールする準備ができて

コードをコピー
[ルート@ RS1〜]#yumをインストールhttpdの-y 
[ルート@ RS1〜]#>は/var/www/html/index.html "これはR1である"エコー
[ルート@ RS1〜]#はHTTPDを起動systemctl 

[ルート@ RS2 〜]#yumをインストールhttpdの-y 
[ルート@ RS2〜]#は"これはR2である"エコー> /var/www/html/index.html 
[ルート@ RS2〜]#はHTTPDを起動systemctl
コードをコピー

 

そして、LVSとLvs2にkeepalivedのipvsadmの(使用しての効果をテストするにはを参照してください)(sorryserverを達成するために)HTTPDを取り付けます

[LVS @ルート〜]#yumをインストールipvsadmの-y 
[LVS @ルート〜]#yumをkeepalivedの-yインストール
[LVS @ルートを〜]#yumをインストールhttpdの-y
[ルート@ LVS〜]#は"これはlvs1ある"エコー> /var/www/html/index.html
[LVS @ルート〜]#はHTTPDを起動systemctl

#yumをインストールhttpdの-y [lvs2〜@ルート]
#は>は/ var / WWW "これはlvs2である"エコー[ルートlvs2〜@] /html/index.html
#はHTTPDを起動systemctl [lvs2〜@ルート]
#yumをインストールipvsadmの-y [lvs2〜@ルート]
#yumをインストールkeepalivedの-y [lvs2〜@ルート]

 

往路を開きます(ルータの外部ネットワークカードを追加し、2つのネットワークアドレスを追加します)、ルータ・サーバの設定

コードをコピー
[ルーターネットワークスクリプト@ルート]#cpはのifcfg-ens33のifcfg-eth1の
[ルーターネットワークスクリプト@ルート]#件のvimのifcfg-eth1の
NAME = "eth1の" 
DEVICE = "eth1の" 
ONBOOT = yesの
NetBootイメージ= yesの
BOOTPROTO =静的
IPADDR = 172.16.14.100 
NETMASK = 255.255.0.0 
TYPE =イーサネット

[ルートルーターネットワークスクリプト@]#は、ネットワークの再起動systemctl 
#1:これは一時的な増加である#1のIP AA 10.0.0.10/8のdevのeth0のは、[ルーターネットワークスクリプトは@ルート] 、あなたは永久たい場合は、設定ファイルに記述された

[ルートルータ〜@]#のvimの/etc/sysctl.confの
net.ipv4.ip_forward = 1 
[ルータ〜@ルート]#sysctlを-p
コードをコピー

 

クライアント・サーバ、ゲートウェイルーティングポイントの設定

コードをコピー
[ルートクライアント@〜]#のvimの/ etc / sysconfig / network-scriptsに/のifcfg-ens33の
NAME = "eth0の" 
DEVICE = "eth0の" 
ONBOOT = yesの
ネットブート= yesの
BOOTPROTO =静的
IPADDR = 172.16.14.200 
NETMASK = 255.255.0.0 
GATEWAY = 172.16.14.100の
TYPE =イーサネット
コードをコピー

 

ルータへのゲートウェイポイントのRS1とRS2の構成

コードをコピー
[ルート@ RS1〜]#VINET 
NAME = "eth0の" 
DEVICE = "eth0の" 
ONBOOT = yesの
ネットブート= yesの
UUID = "95b18552-6cc5-48c5-b29a-91ed73675c50" 
BOOTPROTO =静的
IPADDR = 192.168.37.24 
NETMASK = 255.255.255.0 
GATEWAY = 192.168.37.22 
[ルート@ RS1〜]#systemctlの再起動ネットワーク

[ルート@ RS2〜]#VINET 
NAME = "eth0の" 
DEVICE = "eth0の" 
ONBOOT = yesの
ネットブート= yesの
UUID = "cdd70dbc-1363-45da-9c7a- 0ae369f9aac3" 
BOOTPROTO =静的
IPADDR = 192.168.37.25 
NETMASK = 255.255.255.0 
GATEWAY = 192.168.37.22 
[ルート@ RS2〜]#systemctlの再起動ネットワーク
コードをコピー

 

LVSおよびルータlvs2にゲートウェイサーバーを設定します

コードをコピー
[ルートLVS @〜]#VINET 
NAME = "eth0の" 
DEVICE = "eth0の" 
ONBOOT = yesの
ネットブート= yesの
UUID = "15caec5a-6740-4a81-8c72-5fbcb6fb9d25" 
BOOTPROTO =静的
IPADDR = 192.168.37.23 
NETMASK = 255.255.255.0 
GATEWAY = 192.168.37.22 
TYPE =イーサネット
[ルート@ lvs2〜]#VINET
NAME = "eth0の"
DEVICE = "eth0の"
ONBOOT = yesの
ネットブート= yesの
UUIDは= "686fb723-2360-4683-bb81-8bc6a20778ff"
BOOTPROTO =静的
IPADDR = 192.168.37.26
NETMASK = 255.255.255.0
GATEWAY = 192.168.37.22
コードをコピー

 

VIPはRS1とRS2に追加され、ARP通知を閉じました

コードをコピー
[ルート@ RS1〜]#ifconfigコマンドのLO:1 10.0.0.100ネットマスク255.255.255.255 
[ルート@ RS1〜]#ルート-host 10.0.0.100のdevのLOを追加:1 
[ルート@ RS1〜]#件のvimに/etc/sysctl.conf 
net.ipv4.conf.all.arp_ignore = 1 
net.ipv4.conf.lo.arp_ignore = 1 
net.ipv4.conf.all.arp_announce = 2 
net.ipv4.conf.lo.arp_announce = 2 
[ルート@ RS1〜] #sysctlを-p 


[ルート@ RS2〜]#ifconfigコマンドのLO:1 10.0.0.100ネットマスク255.255.255.255 
[ルート@ RS2〜]#ルート-host 10.0.0.100のdevのLO追加:1 
[ルート@ RS2〜]#のvimのの/ etcを/sysctl.conf 
net.ipv4.conf.all.arp_ignore = 1 
net.ipv4.conf.lo.arp_ignore = 1 
net.ipv4.conf.all.arp_announce = 2 
net.ipv4.conf.lo.arp_announce = 2 
[ルート@ RS2〜]#sysctlを-p
コードをコピー

 

LVS設定サーバとLvs2にkeepalivedの 

[ルート@のLVS〜]#のVimの/etc/keepalived/keepalived.conf
global_defs {
   {notification_email
        ルート@ localhostを
   }
   notification_email_from Alexandre.Cassen@localhost
   SMTP_SERVER 127.0.0.1
   smtp_connect_timeout 30
   ROUTER_ID KA1
   vrrp_mcast_group4 224.100.100.99
}
vrrp_instance VI_1 {
    状態マスター
    インターフェースeth0は
    77 virtual_router_id
    優先度を100
    advert_int 1つの
    認証{
        AUTH_TYPEパス
        auth_pass 123456
    }
    virtual_ipaddress {
        10.0.0.100/8 devのeth0のlableはeth0:1
    }
}
10.0.0.100 80 {VIRTUAL_SERVER
    delay_loop 6
    lb_algo RR
    lb_kind DRの
    プロトコルTCP
    192.168.37.23 80 sorry_server
    real_server 192.168.37.24 80 {
        体重1
        HTTP_GET {
            URL {
              パス/
              = 200 STATUS_CODE
            }
            3 CONNECT_TIMEOUT
            nb_get_retry 3
            delay_before_retry 3
        }
    }
    real_server 192.168.37.25 80 {
        体重1
        HTTP_GET {
            URL {
              パス/
              = 200 STATUS_CODE
            }
            3 CONNECT_TIMEOUT
            nb_get_retry 3
            delay_before_retry 3
        }
    }
}
 
 
 
[ルート@のlvs2〜]#のVimの/etc/keepalived/keepalived.conf
global_defs {
   {notification_email
        ルート@ localhostを
   }
   notification_email_from Alexandre.Cassen@localhost
   SMTP_SERVER 127.0.0.1
   smtp_connect_timeout 30
   ROUTER_ID KA2
   vrrp_mcast_group4 224.100.100.99
}
VI_1 vrrp_instance {
    状態バックアップ
    インターフェースeth0は
    77 virtual_router_id
    優先90
    advert_int 1つの
    認証{
        AUTH_TYPEパス
        auth_pass 123456
    }
    virtual_ipaddress {
        10.0.0.100/8 devのeth0のlableはeth0:1
    }
}
10.0.0.100 80 {VIRTUAL_SERVER
    delay_loop 6
    lb_algo RR
    lb_kind DRの
    プロトコルTCP
    192.168.37.26 80 sorry_server
    real_server 192.168.37.24 80 {
        体重1
        HTTP_GET {
            URL {
              パス/
              = 200 STATUS_CODE
            }
            3 CONNECT_TIMEOUT
            nb_get_retry 3
            delay_before_retry 3
        }
    }
    real_server 192.168.37.25 80 {
        体重1
        HTTP_GET {
            URL {
              パス/
              = 200 STATUS_CODE
            }
            3 CONNECT_TIMEOUT
            nb_get_retry 3
            delay_before_retry 3
        }
    }
}
 

 

サーバーLVSそれぞれkeepalivedの開始

[ルート@ lvs2〜]#はkeepalivedの開始systemctl 
[ルート@ LVSを#はkeepalivedのを開始systemctl〜]

 

クライアントサーバテストで

 

以下はパラメータであり、keepalivedの

 

 

 

 

 

 

また、keepalivedの上、通知スクリプトを定義することができます

各サーバー構成スクリプトでLVS

[root@lvs keepalived]# vim notify.sh
#!/bin/bash
#
contact='root@localhost'
notify() {
mailsubject="$(hostname) to be $1, vip floating"
mailbody="$(date +'%F %T'): vrrp transition, $(hostname) changed to be $1"
echo "$mailbody" | mail -s "$mailsubject" $contact
}
case $1 in
master)
notify master
;;
backup)
notify backup
;;
fault)
notify fault
;;
*)
echo "Usage: $(basename $0) {master|backup|fault}"
exit 1
;;
esac

 

在各lvs服务器配置

[root@lvs keepalived]# vim keepalived.conf
vrrp_instance VI_1 {
    state MASTER
    interface eth0
    virtual_router_id 77
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 123456
    }
    virtual_ipaddress {
        10.0.0.100/8 dev eth0 lable eth0:1
    }
notify_master "/etc/keepalived/notify.sh master"
notify_backup "/etc/keepalived/notify.sh backup"
notify_fault "/etc/keepalived/notify.sh障害" 
}

 

 

 

 

おすすめ

転載: www.cnblogs.com/maxuebin/p/11314407.html