1.1 LVS-DR的配置及運用
1.1.1 基礎環境準備
LVS調度器只做爲WEB訪問入口
Web訪問出口由各個節點服務器分別承擔
html
(1)集羣拓樸
(2) 節點規劃
主機名 | IP | 角色 | 備註 |
---|---|---|---|
DS | 192.168.79.157 VIP:192.168.79.200 | LVS負載調度器 | VIP爲LVS的浮動IP |
RS1 | 192.168.79.161 | 真實服務器1 | 提供WEB服務 |
RS2 | 192.168.79.162 | 真實服務器2 | 提供WEB服務 |
NFS-SER | 192.168.79.162 | 數據共享服務器 | 提供網頁共享數據 |
此案例WEB服務器選用apache,數據共享服務器選用NFS。linux
(3)配置主機名
[root@localhost ~]# hostnamectl set-hostname DS [root@localhost ~]# su -l [root@localhost ~]# hostnamectl set-hostname RS1 [root@localhost ~]# su -l [root@localhost ~]# hostnamectl set-hostname RS2 [root@localhost ~]# su -l [root@localhost ~]# hostnamectl set-hostname NFS-SER [root@localhost ~]# su -l
(4)處理防火牆
分別在四個節點上執行apache
systemctl stop firewalld systemctl disable firewalld sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config setenforce 0
(5)同步時鐘源
分別在四個節點上執行vim
yum -y install ntp ntpdate ntpdate cn.pool.ntp.org hwclock --systohc
1.1.2 配置NFS數據共享服務器
(1)在nfs-ser上配置服務端
安裝服務:服務器
[root@net-ser ~]# yum -y install nfs-utils rpcbind [root@net-ser ~]# rpm -qa nfs-utils rpcbind nfs-utils-1.3.0-0.65.el7.x86_64 rpcbind-0.2.0-48.el7.x86_64
配置 exports文件網絡
[root@nfs-ser ~]# cat /etc/exports /data 192.168.79.0/24(rw,sync)
啓動服務負載均衡
[root@nfs-ser ~]# systemctl restart nfs [root@nfs-ser ~]# grep nfs /etc/passwd rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin [root@nfs-ser ~]# mkdir /data [root@nfs-ser ~]# chown -R nfsnobody:nfsnobody /data [root@nfs-ser ~]# ll -d /data/ drwxr-xr-x 2 nfsnobody nfsnobody 6 8月 2 15:25 /data/
本地掛載測試工具
[root@nfs-ser ~]# mount 192.168.79.156:/data/ /mnt [root@nfs-ser ~]# ls /data/ [root@nfs-ser ~]# ls /mnt/ [root@nfs-ser ~]# touch /data/a [root@nfs-ser ~]# ls /data/ a [root@nfs-ser ~]# ls /mnt/ a [root@nfs-ser ~]# touch /mnt/b [root@nfs-ser ~]# ls /data/ a b [root@nfs-ser ~]# ls /mnt/ a b
(2)在rs1,rs2上配置nfs客戶端
安裝軟件測試
[root@rs1 ~]# yum install nfs-utils -y
本地測試spa
[root@rs1 ~]# showmount -e 192.168.79.156 Export list for 192.168.79.156: /data 192.168.79.0/24
在rs2上執行相同的操做
1.1.3 配置WEB服務器
安裝服務
[root@rs1 ~]# yum install httpd -y
啓動服務
[root@rs1 ~]# systemctl start httpd [root@rs1 ~]# systemctl enable httpd Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.
掛載網頁共享目錄
[root@rs1 ~]# mount -t nfs 192.168.79.156:/data /var/www/html/ [root@rs1 ~]# vim /etc/fstab [root@rs1 ~]# mount -a
在sr2上一樣執行以上命令。
在nfs服務器上建立測試目錄
[root@nfs-ser ~]# vim /data/index.html [root@nfs-ser data]# cat index.html <HTML> <head> <title>測試</title> </head> <body> <h1>每一發的努力的背後,都有加倍的賞賜!!!</h1> </body> </HTML>
網頁測試
1.1.4 配置LVS負載調度服務器
(1)在DS節點上配置LVS負載均衡
下載ipvs管理工具
[root@ds ~]# yum install ipvsadm -y
配置LVS
綁定浮動IP [root@ds ~]# nmcli con sh NAME UUID TYPE DEVICE ens32 9af3f520-6854-4f68-a7ec-b2e9864064be ethernet ens32 [root@ds ~]# nmcli con mod ens32 +ipv4.addr 192.168.79.200/24 [root@ds ~]# systemctl restart network [root@ds ~]# ipvsadm -A -t 192.168.79.200:80 -s rr [root@ds ~]# ipvsadm -a -t 192.168.79.200:80 -r 192.168.79.161:80 -g [root@ds ~]# ipvsadm -a -t 192.168.79.200:80 -r 192.168.79.162:80 -g [root@ds ~]# ipvsadm -l IP Virtual Server version 1.2.1 (size=4096) Prot LocalAddress:Port Scheduler Flags -> RemoteAddress:Port Forward Weight ActiveConn InActConn TCP ds:http rr -> 192.168.79.161:http Route 1 0 0 -> 192.168.79.162:http Route 1 0 0 調整會話保持 [root@ds ~]# ipvsadm --set 1 2 1
(2)在sr1,sr2上配置網絡,綁定服務IP到迴環網卡上
[root@rs1 html]# cd /etc/sysconfig/network-scripts/ [root@rs1 network-scripts]# vim ifcfg-lo:10 DEVICE=lo:10 IPADDR=192.168.79.200 NETMASK=255.255.255.255 ONBOOT=yes [root@rs1 network-scripts]# systemctl restart network
在rs2上作相同的配置
(3)調整內核參數,關閉arp響應
[root@rs1 network-scripts]# vim /etc/sysctl.conf net.ipv4.conf.lo.arp_ignore = 1 net.ipv4.conf.lo.arp_announce = 2 net.ipv4.conf.all.arp_ignore = 1 net.ipv4.conf.all.arp_announce = 2
在rs2上作相同配置
1.1.5 集羣功能測試
使用浮動IP訪問
重啓一個linux客戶端測試(192.168.79.160)
執行訪問兩次
在rs1,rs2上動態打印的日誌以下
因而可知,這個輪詢效果。