理論+実験-LVS + Keepalived高可用性クラスター

1つは、Keepalivedがホットスタンバイの基本的な知識をダブルクリックする

1.1 Keepalivedケース分析

  • エンタープライズアプリケーションでは、単一のサーバーがアプリケーションの単一障害点のリスクを負います
  • 単一障害点が発生すると、エンタープライズサービスが中断され、大きな損害が発生します

ここに画像の説明を挿入

1.2 Keepalivedツールの概要

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

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

ここに画像の説明を挿入

1.3 Keepalived実装原理の分析

ここに画像の説明を挿入
KeepalivedはVRRPホットバックアッププロトコルを採用

  • Linuxサーバーのマルチマシンホットバックアップ機能を実現

VRRP(Virtual Routing Redundancy Protocol)は、ルーターのバックアップソリューションです。

  • 複数のルーターがホットバックアップグループを形成し、共有仮想IPアドレスを介して外部にサービスを提供します
  • 各ホットスタンバイグループには、同時にサービスを提供するメインルータが1つだけあり、他のルータは冗長状態です。
  • 現在オンラインのルーターに障害が発生した場合、他のルーターは設定された優先順位に従って仮想IPアドレスを自動的に引き継ぎ、サービスを提供し続けます

第二に、Keepalivedの展開

2.1 Keepalivedケースの説明

ここに画像の説明を挿入

  • Keepalivedはマルチマシンホットバックアップを実現できます。各ホットバックアップグループには複数のサーバーがあります
  • ダブルクリックホットスタンバイのフェイルオーバーは、さまざまなアプリケーションサーバーに適した仮想IPアドレスのドリフトによって実現されます。
  • Webサービスに基づくデュアルシステムのホットバックアップを実現

2.2 Keepalivedのインストールと起動

  • LVSクラスター環境に適用する場合、ipvsadm管理ツールも必要です
  • YUMはKeepalivedをインストールします
  • Keepalivedサービスを有効にする

2.3 Keepalivedマスターサーバーの設定

  • Keepalived構成ディレクトリーは/ etc / keepalived /にあります
  • keepalived.confはメイン構成ファイルです。
    ◆global_defs {…}セクションはグローバルパラメータを指定します
    ◆vrrp_instanceインスタンス名{…}セクションはVRRPホットスタンバイパラメータを指定します
    ◆コメントテキストは「!」記号で始まります
    ディレクトリサンプルは多くの構成サンプルを提供します参考例
  • 共通の構成オプション:
    ◆router_id HA_TEST_R1:ルーター(サーバー)の名前
    ◆vrrp_instance VI_1:VRRPホットスタンバイインスタンスを定義
    ◆状態MASTER:マスターサーバーを表すMASTER
    ◆インターフェースens33:VIPアドレスを伝送する物理インターフェース
    ◆virtual_router_ip 1:仮想ルーターのID番号、各ホットバックアップグループで同じ
    ◆優先度100:優先度、値が大きいほど、優先度が高くなります
    ◆advert_int 1:通知間の秒数(ハートビート頻度)
    ◆auth_type PASS:認証タイプ
    ◆auth_pass 123456:パスワードサブストリング
    ◆virtual_ipaddress {vip}:ドリフトアドレス(VIP)を指定します。

2.4 Keepalivedスレーブサーバーの設定


  • Keepalived バックアップサーバー構成とマスター構成には3つのオプションがあります。◆router_id:独自の名前に
    設定◆状態:BACKUPに設定
    ◆優先度:値がマスターサーバーよりも低い
  • 他のオプションはマスターと同じです

3、実験

3.1実験準備

IPアドレス計画:
ドリフトアドレス(VIP):192.168.100.100
プライマリスケジューラ:192.168.100.21
セカンダリスケジューラ:192.168.100.25
WEBサーバー1:192.168.100.22
WEBサーバー2:192.168.100.23
ストレージサーバー:192.168.100.24

3.2ステップ

3.2.1メインスケジューラを構成する(192168.100.21)

'【1】调整/proc响应参数'
[root@localhost network-scripts]# 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
[root@localhost network-scripts]# sysctl -p                            ###生效
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0
'【2】清除负载分配策略'
[root@localhost /]# ipvsadm -C
'【3】调整keepalived参数'
[root@localhost ~]# yum -y install keepalived ipvsadm
[root@localhost ~]# cd /etc/keepalived/
[root@localhost keepalived]# cp keepalived.conf keepalived.conf.bak
[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.22 80 {
    
    
        weight 1
        TCP_CHECK {
    
    
	    connect_port 80
	    connect_timeout 3
	    nb_get_retry 3
	    delay_before_retry 4
	}
    }
    real_server 192.168.100.23 80 {
    
    
        weight 1
        TCP_CHECK {
    
    
	    connect_port 80
	    connect_timeout 3
	    nb_get_retry 3
	    delay_before_retry 4
	}
    }
}
[root@localhost keepalived]# systemctl start keepalived                  ####启动keepalived
[root@localhost keepalived]# systemctl enable keepalived                 ####开机启动keepalived
[root@localhost keepalived]# ip addr show dev ens33                         ####查看主控制IP地址和漂移地址

ここに画像の説明を挿入

3.2.2補助スケジューラーの構成(192.168.100.25)

'【1】调整/proc响应参数'
[root@localhost network-scripts]# 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
[root@localhost network-scripts]# sysctl -p             ###生效
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0       
'【2】清除负载分配策略'
[root@localhost /]# ipvsadm -C
'【3】调整keepalived参数'
[root@localhost ~]# yum -y install keepalived ipvsadm
[root@localhost ~]# cd /etc/keepalived/
[root@localhost keepalived]# cp keepalived.conf keepalived.conf.bak
[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.22 80 {
    
    
        weight 1
        TCP_CHECK {
    
    
	    connect_port 80
	    connect_timeout 3
	    nb_get_retry 3
	    delay_before_retry 4
	}
    }
    real_server 192.168.100.23 80 {
    
    
        weight 1
        TCP_CHECK {
    
    
	    connect_port 80
	    connect_timeout 3
	    nb_get_retry 3
	    delay_before_retry 4
	}
    }
}
[root@localhost keepalived]# systemctl start keepalived                  ####启动keepalived
[root@localhost keepalived]# systemctl enable keepalived                 ####开机启动keepalived
[root@localhost keepalived]# ip addr show dev ens33                         ####查看主控制IP地址和漂移地址

ここに画像の説明を挿入

3.2.3ストレージサーバーの構成(192.168.100.24)

rpm -q nfs-utils               ###如果没装,yum -y install nfs-utils
rpm -q rpcbind                 ###如果没装,yum -y install rpcbind
[root@localhost ~]# systemctl start nfs
[root@localhost ~]# systemctl start rpcbind
[root@localhost ~]# vi /etc/exports
/opt/51xit 192.168.100.0/24 (rw,sync)
/opt/52xit 192.168.100.0/24 (rw,sync)
[root@localhost ~]# systemctl restart nfs
[root@localhost ~]# systemctl restart rpcbind
[root@localhost ~]# systemctl enable nfs
[root@localhost ~]# systemctl enable rpcbind
[root@localhost ~]# mkdir /opt/51xit /opt/52xit
[root@localhost ~]# echo "this is 51xit" >/opt/51xit/index.html
[root@localhost ~]# echo "this is 52xit" >/opt/52xit/index.html

3.2.4ノードサーバーの構成(192.168.100.22)

'【1】配置虚拟IP地址'
[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
[root@localhost network-scripts]# ifup lo:0
[root@localhost network-scripts]# ifconfig

ここに画像の説明を挿入

[root@localhost network-scripts]# vi /etc/rc.local 
/sbin/route add -host 192.168.100.100 dev lo:0
[root@localhost network-scripts]# route add -host 192.168.100.100 dev lo:0
'【2】调整/proc响应参数'
[root@localhost network-scripts]# vi /etc/sysctl.conf 
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.default.arp_ignore = 1
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
[root@localhost network-scripts]# sysctl -p
'【3】安装httpd 挂载测试页'
[root@localhost ~]# showmount -e 192.168.100.24                   ####如果还没发布,请到存储服务器发布下,exportfs -rv
Export list for 192.168.100.44:
/opt/51xit  (everyone)
/opt/52xit (everyone)
[root@localhost ~]# yum -y install httpd
[root@localhost ~]# mount 192.168.100.24:/opt/51xit /var/www/html/
[root@localhost ~]# vi /etc/fstab 
192.168.100.24:/opt/51xit/ /var/www/html/        nfs     rw,tcp,intr     0 1         ###开机自动挂载,注意格式对齐
[root@localhost ~]# systemctl start httpd
[root@localhost ~]# systemctl enable httpd

3.2.5ノードサーバーの構成(192.168.100.23)

192.168.100.22の設定については、3.2.4を参照してください

3.3テスト

:次のページを入力
192.168.100.22を
ここに画像の説明を挿入
ページ上で、次のように入力します。
192.168.100.23
ここに画像の説明を挿入
ページで、次のように入力します。
192.168.100.100
ここに画像の説明を挿入
ここに画像の説明を挿入
オープンパケットキャプチャツールを、あなたは192.168.100.21マスタースケジューラを見つけるだろう、VRRPパケット送信されてきた
ここに画像の説明を挿入
、オープンパケットキャプチャツールを意志を192.168.100.25スレーブスケジューラがVRRPパケットを送信していることがわかりました
ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/ZG_66/article/details/108749566