LVS-DRモード+ Keepalived展開実験、簡単!!!

序文

理論についてあまり知らない人は、私が以前に書いたブログの
リンクをチェックすることができますhttps : //blog.csdn.net/m0_47219942/article/details/108368922

ラボ環境

  • 会社のウェブサイトの負荷容量をさらに改善するために、会社は既存のウェブサイトプラットフォームを拡張し、LVSに基づく負荷分散クラスターを構築することを決定しました。クラスターのアクセス効率を考慮して、管理者はLVSクラスターのDRモードを採用し、共有ストレージデバイスは内部プライベートネットワークに格納されます

  • 5つのcentos7仮想マシン

    • LVS1:192.168.100.130
    • LVS2:192.168.100.129
    • Web1:192.168.100.201
    • Web2:192.168.100.202
    • VIP:192.168.100.10
    • 勝利7:192.168.100.100

実験トポロジー図

ここに画像の説明を挿入

目的

win7クライアントは、lvsスケジューラーのドリフトIPアドレスにアクセスすることにより、Webノードサーバーのコンテンツに正常にアクセスできます。

スケジューラ構成

  • 両方のLVSサーバーにツールキットをインストールする
 yum install keepalived ipvsadm -y	'keepalived:双机热备要用到的,ipvsadm:调度管理要用'
  • 両方のLVSサーバーがルーティングと転送をオンにし、リダイレクトをオフにします
vim /etc/sysctl.conf
'尾行插入下段配置'
net.ipv4.ip_forward=1
'proc响应关闭重定向功能'
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0
[root@localhost ~]# sysctl -p	'重载配置,立即生效'
net.ipv4.ip_forward = 1
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0
  • 両方のLVSサーバーがネットワークカードをホストオンリーモードに変更します

ここに画像の説明を挿入

  • 両方のLVSサーバーは、ens33のIPアドレスとens33:0のⅥPアドレスで構成されています
[root@localhost ~]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# cp -p ifcfg-ens33 ifcfg-ens33:0	
[root@localhost network-scripts]# vim ifcfg-ens33:0	'配置虚拟ip地址'
'删除原本内容,添加以下配置'
DEVICE=ens33:0
ONBOOT=yes
IPADDR=192.168.100.10
NETMASK=255.255.255.0
[root@localhost network-scripts]# vim ifcfg-ens33
'...省略内容,修改为static'
BOOTPROTO=static
'...省略内容,尾行添加内容'
IPADDR=192.168.100.130
NETMASK=255.255.255.0
GATEWAY=192.168.100.1
[root@localhost ~]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# cp -p ifcfg-ens33 ifcfg-ens33:0
[root@localhost network-scripts]# vim ifcfg-ens33:0	'配置虚拟ip地址'
'删除原本内容,添加以下配置'
DEVICE=ens33:0
ONBOOT=yes
IPADDR=192.168.100.10
NETMASK=255.255.255.0
[root@localhost network-scripts]# vim ifcfg-ens33
'...省略内容,修改为static'
BOOTPROTO=static
'...省略内容,尾行添加内容'
IPADDR=192.168.100.129
NETMASK=255.255.255.0
GATEWAY=192.168.100.1
  • 両方のLVSサーバーがサービス管理を容易にするスクリプトを作成します
cd /etc/init.d
vim dr.sh
#'编辑以下脚本内容'
#!/bin/bash
GW=192.168.100.1
VIP=192.168.100.10		#'虚拟IP'
RIP1=192.168.100.201	#'真实web服务器ip'
RIP2=192.168.100.202
case "$1" in
start)
  /sbin/ipvsadm --save > /etc/sysconfig/ipvsadm	#'保存配置'
  systemctl start ipvsadm		#'启动服务'
  /sbin/ifconfig ens33:0 $VIP broadcast $VIP netmask 255.255.255.255 broadcast $VIP up
  /sbin/route add -host $VIP dev ens33:0	#'添加路由网段信息'
  /sbin/ipvsadm -A -t $VIP:80 -s rr		#'指定虚拟服务访问入口,指定轮询算法'
  /sbin/ipvsadm -a -t $VIP:80 -r $RIP1:80 -g	#'指定真实服务器,-g表示dr模式'
  /sbin/ipvsadm -a -t $VIP:80 -r $RIP2:80 -g
  echo "ipvsadm starting [ok]"
  ;;
  stop)
  /sbin/ipvsadm -C		#'清空缓存'
  systemctl stop ipvsadm		#'关闭服务'
  ifconfig ens33:0 down		#'关闭接口'
  route del $VIP		#'删除路由信息'
  echo "ipvsadm stoped [ok]"
  ;;
  status)
  if [ ! -e /var/lock/subsys/ipvsadm ];then	#'判断文件存在与否决定状态'
  echo "ipvsadm stoped"
  exit 1
	else
	echo "ipvsadm Runing [ok]"
  fi
  ;;
  *)
  echo "Usage:$0 {start|stop|status}"
  exit 1
  esac
  exit 0
[root@localhost init.d]# chmod +x dr.sh
[root@localhost init.d]# service dr.sh start
ipvsadm starting [ok]
[root@localhost init.d]# systemctl stop firewalld.service 
[root@localhost init.d]# setenforce 0

2つのノードサーバーを構成する

  • 2つのノードサーバーにhttpdサービスをインストールして構成する
 yum install httpd -y
  • VIPをバインドする2つのノードIPアドレスを構成する
    • LVS-DRでは、2つのノードサーバーを構成してVIPアドレスをバインドする必要があります
    • VIPアドレスは、Web応答パケットの送信元アドレスとしてのみ使用され、クライアントのアクセス要求を監視しません
    • ホストオンリーモードに変更されます

[外部リンク画像の転送に失敗しました。ソースサイトにホットリンク防止メカニズムが含まれている可能性があります。画像を保存して直接アップロードすることをお勧めします(img-n0C8hbiY-1599011612983)(C:\ Users \ kevin \ AppData \ Roaming \ Typora \ typora-user-images \ image-20200901230131659.png)]

  • 2つのノードサーバーは、ens33のIPアドレスとlo:0のVIPアドレスを構成します。
cd /etc/sysconfig/network-scripts
cp -p ifcfg-lo ifcfg-lo:0
vim ifcfg-lo 0
DEVICE=lo:0
IPADDR=192.168.100.10
NETMASK=255.255.255.0
ONBOOT=yes
[root@localhost network-scripts]# vim ifcfg-ens33
'...省略内容,修改为static'
BOOTPROTO=static
'...省略内容,尾行添加内容'
IPADDR=192.168.100.201
NETMASK=255.255.255.0
GATEWAY=192.168.100.1
'其中web2服务器修改为192.168.100.202'
IPADDR=192.168.100.202
  • 2ノードのサーバー構成でARP応答が抑制される
'配置抑制ARP脚本'
[root@localhost network-scripts]# vim /etc/init.d/web.sh
#!/bin/bash
VIP=192.168.100.10
                case "$1" in
                start)
                                ifconfig lo:0 $VIP netmask 255.255.255.255 broadcast $VIP
                                /sbin/route add -host $VIP dev lo:0
                                echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore   'arp忽略'
                                echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce
                                echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore
                                echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce
                                sysctl -p >/dev/null 2>&1
                                echo "RealServer Start OK "
                                ;;
                stop)
                                ifconfig lo:0 down
                                route del $VIP /dev/null 2>&1
                                echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore 'arp开启'
                                echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce
                                echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore
                                echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce
                                echo "RealServer Stopd"
                                ;;
                *)
                                echo "Usage: $0 {start|stop}"
                                exit 1
                esac
                exit 0
[root@localhost network-scripts]# chmod +x /etc/init.d/web.sh 
  • 2ノードサーバー構成テストURL

テストWebページを個別に作成します。テストWebページのコンテンツは、異なるノードサーバーを区別するために異なる必要があります。

cd /var/www/html
echo "this is kevin web" > index.html
[root@wlocalhost ~]# vim /var/www/html/index.html
<h1>this is benet web</h1>
  • ネットワークカードを再起動し、仮想ポートを開き、LVSサービスを開き、ファイアウォールを閉じます
systemctl restart network
ifup ens33:0
service dr.sh start
systemctl start httpd
systemctl stop firewalld
setenforce  0

デュアルシステムホットバックアップキープアライブ構成

[root@localhost ~]# vim /etc/keepalived/keepalived.conf 
! Configuration File for keepalived

global_defs {
    
    
   notification_email {
    
    
     acassen@firewall.loc
     failover@firewall.loc
     sysadmin@firewall.loc
   }
   notification_email_from Alexandre.Cassen@firewall.loc
   smtp_server 127.0.0.1	'邮件协议指向自己'
   smtp_connect_timeout 30
   router_id LVS_01	    'router_id不能相同'
   vrrp_skip_check_adv_addr
   vrrp_strict
   vrrp_garp_interval 0
   vrrp_gna_interval 0
}

vrrp_instance VI_1 {
    
    
    state MASTER	'主服务器为MASTER,备服务器为BACKUP'
    interface ens33
    virtual_router_id 51	'主备组号要相同'
    priority 100	'优先级,备服务器的优先级要小于主'
    advert_int 1
    authentication {
    
    
        auth_type PASS
        auth_pass 1111	   '主备密码要相同'
    }
    virtual_ipaddress {
    
    
        192.168.100.10
    }
}
virtual_server 192.168.100.10 80 {
    
    
    delay_loop 6
    lb_algo rr	'轮询算法'
    lb_kind DR	'修改为DR模式'
    persistence_timeout 50
    protocol TCP

real_server 192.168.100.201 80 {
    
    	'节点1配置'
    weight 1
    TCP_CHECK {
    
    
        connect_port 80
        connect_timeout 3
        nb_get_retry 3
        delay_before_retry 3
    }
}

real_server 192.168.100.202 80 {
    
    		'节点2配置'
    weight 1
    TCP_CHECK {
    
    
        connect_port 80
        connect_timeout 3
        nb_get_retry 3
        delay_before_retry 3
    }
}

}
  • 2番目のlvsスケジューラと最初のスケジューラの違い
[root@localhost keepalived]# scp keepalived.conf root@192.168.100.130:/etc/keepalived/   '将keepalived.conf文件远程复制到130调度服务器上'
The authenticity of host '192.168.100.130 (192.168.100.130)' can't be established.
ECDSA key fingerprint is SHA256:W+MleaejDosjJJV1F2noJPAGWA/d2qESydwosqTqWWw.
ECDSA key fingerprint is MD5:68:5f:ee:e5:76:ca:96:01:5d:d8:b9:1f:4b:5a:58:91.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.100.130' (ECDSA) to the list of known hosts.
root@192.168.100.130's password: 
keepalived.conf                                      100% 1195     1.0MB/s   00:00 
[root@localhost ~]# vim /etc/keepalived/keepalived.conf 
'只需要修改三个地方'
...省略内容
router_id LVS_02    'router_id不能相同'
...省略内容
vrrp_instance VI_1 {
    
    
    state BACKUP	'此处选择为BACKUP备服务器'
    priority 90	   '优先级需要低于主服务器'
...省略内容
'其他配置都相同'
  • keepalivedサービスとネットワークカードサービスをオンにする
systemctl start keepalived
service network restart
  • ifconfigを介して2つのDRスケジューリングサーバーが表示される

ここに画像の説明を挿入

テスト

  • クライアント構成

ここに画像の説明を挿入

ここに画像の説明を挿入

ここに画像の説明を挿入

ここに画像の説明を挿入
最後のページのポイントに注意してください。同じWebページのコンテンツが常に更新されている場合は、キャッシュをクリアし、キャッシュの期限が切れるまで待ってから、

おすすめ

転載: blog.csdn.net/m0_47219942/article/details/108356350