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上动态打印的日志以下
因而可知,这个轮询效果。