1.1 LVS-DR的配置及运用
1.1.1 基础环境准备
LVS调度器只作为WEB访问入口
Web访问出口由各个节点服务器分别承担
(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。
(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)处理防火墙
分别在四个节点上执行
systemctl stop firewalld
systemctl disable firewalld
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
setenforce 0
(5)同步时钟源
分别在四个节点上执行
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
本地测试
[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上动态打印的日志如下
由此可见,这个轮询效果。