エンタープライズの高可用性展開----------- LVS + Keepalived(個人的な仕上げ)

一、Keepalived

アプリケーションの単一障害点を持つ単一サーバーの危険を解決します

前書き

LVSおよびHA用に特別に設計されたヘルスチェックツール

  • 自動フェイルオーバーをサポート
  • サポートノードのヘルスチェック
  • 公式サイト:http://www.keepalived.org/

ここに画像の説明を挿入

次に、LVS + Keepalivedをビルドします

  • VRRP(Virtual Routing Redundancy Protocol)は、ルーターのバックアップソリューションです。
  • Keepalivedはマルチマシンホットバックアップを実現でき、各ホットバックアップグループは複数のサーバーを持つことができます
  • デュアルシステムホットバックアップですが、デュアルシステムホットバックアップのフェイルオーバーは、仮想IPアドレスのドリフトにより実現されており、各種アプリケーションサーバーに適しています。

環境を準備します。

LVS-DRの運用をもとに、待機スケジューラを追加し、構成を変更しました。

マスタースケジューラ: 192.168.100.25 VIPアドレス:ens33:0 192.168.100.100
スタンバイスケジューラ: 192.168.100.29
web1: 192.168.100.26 VIPアドレス:lo:0 192.168.100.100
web2: 192.168.100.27 VIPアドレス:lo:0 192.168.100.100
NFSストレージ: 192.168.100.28

メインスケジューラの構成:

1. Keepalived ipvsadmをインストールします

root @ localhost〜]#yum -y install keepalived ipvsadm

2. keepalived.conf構成ファイルを構成します

[root@localhost ~]# cd /etc/keepalived/
[root@localhost keepalived]# cp keepalived.conf keepalived.conf.bakup
[root@localhost keepalived]# vi keepalived.conf
global_defs {
    
    
   router_id HA_TEST_R1
}
vrrp_instance VI_1 {
    
    
   state MASTER
   interface ens33
   virtual_router_id 1
   priority 100
   advert_int 1
   authentication {
    
    
      auth_type PASS
      auth_pass 123456
   }
   virtual_ipaddress {
    
    
      192.168.100.100
   }
}

virtual_server 192.168.100.100 80 {
    
    
    delay_loop 15
    lb_algo rr
    lb_kind DR
    persistence 60
    protocol TCP

    real_server 192.168.100.26 80 {
    
    
        weight 1
        TCP_CHECK {
    
    
            connect_port 80
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 4
        }
    }
    real_server 192.168.100.27 80 {
    
    
        weight 1
        TCP_CHECK {
    
    
            connect_port 80
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 4
        }
    }

地域構成モジュールの説明:
global_defs {:define the router_id of this router
vrrp_instance VI_1 {:define the VRRP hot standby
virtual_ipaddress {:define thedrift address(VIP)、it can multiple
virtual_server 192.168.100.10 80 {:define the virtual server address( VIP)、ポート
real_server 192.168.100.26 80 {:WEBサイトのアドレスとポートを定義します

3. keepalivedを起動し、ブート後に自動起動します。ipvsadm

systemctl start keepalived    
systemctl enable keepalived
systemctl enable ipvsadm

4. VIPアドレス192.168.100.100を構成します

[root@localhost ~]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# cp ifcfg-lo ifcfg-lo:0
[root@localhost network-scripts]# vi ifcfg-lo:0
DEVICE=lo:0
IPADDR=192.168.100.100
NETMASK=255.255.255.255
ONBOOT=yes

ifup lo:0     #开启lo:0
ifconfig   

5.構成中の負荷戦略を表示する

[root@localhost ]# ipvsadm -ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.100.100:80 rr
  -> 192.168.100.26:80            Route   1      0          0         
  -> 192.168.100.27:80            Route   1      0          0     

6. VIP情報を表示する

ip addr show

 ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:da:8c:3c brd ff:ff:ff:ff:ff:ff
    inet 《192.168.100.25/24》 brd 192.168.100.255 scope global noprefixroute ens33
       valid_lft forever preferred_lft forever
    inet 《192.168.100.100/32》scope global ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::a33e:6402:8d1:c2aa/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

7. / proc応答パラメーター(最適化されたカーネルパラメーター)を調整します。

vi /etc/sysctl.conf 

net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0

sysctl  -p

バックアップスケジューラの構成:

アップグレードの優先順位を設定するには、キープアライブ構成ファイルを構成するだけです。router_id、bakup(バックアップ)
LVSスケジューリングルールも、直接生成できるkeepalived.conf構成ファイルにあります。

1. Keepalived ipvsadmをインストールします

root@localhost ~]# yum -y install keepalived ipvsadm

2. keepalived.conf構成ファイルを構成します

[root@localhost ~]# cd /etc/keepalived/
[root@localhost keepalived]# cp keepalived.conf keepalived.conf.bakup
[root@localhost keepalived]# vi keepalived.conf

global_defs {
    
    
   router_id HA_TEST_R2
}
vrrp_instance VI_1 {
    
    
   state BACKUP
   interface ens33
   virtual_router_id 1
   priority 99
   advert_int 1
   authentication {
    
    
      auth_type PASS
      auth_pass 123456
   }
   virtual_ipaddress {
    
    
      192.168.100.100
   }
}

virtual_server 192.168.100.100 80 {
    
    
    delay_loop 15
    lb_algo rr
    lb_kind DR
    persistence 60
    protocol TCP

    real_server 192.168.100.26 80 {
    
    
        weight 1
        TCP_CHECK {
    
    
            connect_port 80
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 4
        }
    }
    real_server 192.168.100.27 80 {
    
    
        weight 1
        TCP_CHECK {
    
    
            connect_port 80
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 4
        }
    }
}       

3. keepalivedを起動し、ブート後に自動起動します。ipvsadm

systemctl start keepalived    
systemctl enable keepalived
systemctl enable ipvsadm


4.構成中の負荷戦略を表示する

[root@localhost ]# ipvsadm -ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.100.100:80 rr
  -> 192.168.100.26:80            Route   1      0          0         
  -> 192.168.100.27:80            Route   1      0          0     

3つのハイパーリンク(ビルドWeb、NFS)

まだ構成されていない3つのサーバー(web1、web2、nfsストレージ)
Webサーバーとnfsストレージサービスがあります。ブロガー分類ロードクラスターのLVS-DRモードの展開を
参照してください。手順のwebとnfsの部分を参照してください。ここにハイパーリンクがあります:
リンク:Webを参照、 NFSストレージを構築する手順...

4番目に、LVS + Keepalivedを確認します

cmdで確認した後、フェイルオーバーするかどうか、VIPアドレス転送!

1.まずそれが正常であることを確認し
ここに画像の説明を挿入
ます。2. vipアドレスにpingを送信し続け、メインスケジューラを切断して、macアドレスが変更され、vipアドレスがドリフトするかどうかを確認します。ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入

3. VIPアドレスがスタンバイスケジューラにドリフトするかどうかを確認します。

ip addr show


 ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:9e:cf:4e brd ff:ff:ff:ff:ff:ff
    inet   <192.168.100.29/24>    brd 192.168.100.255 scope global noprefixroute ens33
       valid_lft forever preferred_lft forever
    inet    <192.168.100.100/32>   scope global ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::f50a:6f87:cda8:5a2d/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

おすすめ

転載: blog.csdn.net/weixin_47320286/article/details/108751918