一、基础环境准备
LVS调度器只作为web访问入口
web访问出口由各个节点服务器分别承担
(1)集群拓扑
(2)节点规划
主机名 | IP | 角色 | 备注 |
DS | 192.168.142.250 VIP:192.168.142.200 | LVS负载调度器 | VIP为LVS得浮动IP |
RS1 | 192.168.142.251 | 真实服务器1 | 提供WEB服务 |
RS2 | 192.168.142.252 | 真实服务器2 | 提供WEB服务 |
nfs-ser | 192.168.142.253 | 数据共享服务器 | 提供网页共享数据 |
(3)配置主机名
[root@localhost ~]# hostnamectl set-hostname ds
[root@localhost ~]# su -l
上一次登录:二 7月 7 17:43:18 CST 2020从 192.168.142.1pts/0 上
[root@localhost ~]# hostnamectl set-hostname rs1
[root@localhost ~]# su -l
上一次登录:二 7月 7 17:43:53 CST 2020从 192.168.142.1pts/0 上
[root@localhost ~]# hostnamectl set-hostname rs2
[root@localhost ~]# su -l
上一次登录:二 7月 7 17:44:20 CST 2020从 192.168.142.1pts/0 上
[root@localhost ~]# hostnamectl set-hostname nfs-ser
[root@localhost ~]# su -l
上一次登录:二 7月 7 17:44:58 CST 2020从 192.168.142.1pts/0 上
(4)配置防火墙
分别在四个节点上执行
[root@ds ~]# systemctl stop firewalld
[root@ds ~]# systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@ds ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
[root@ds ~]# setenforce 0
(5)同步时钟源
在四个节点上都要执行
[root@ds ~]# yum install ntpdate -y
[root@ds ~]# ntpdate cn.pool.ntp.org
7 Jul 17:55:04 ntpdate[8132]: adjust time server 119.28.183.184 offset -0.005111 sec
[root@ds ~]# hwclock --systohc
二、配置nfs数据共享服务器
(1)在nfs-ser上配置服务器
安装服务:
[root@nfs-ser ~]# yum -y install nfs-utils rpcbind
[root@nfs-ser ~]# rpm -qa nfs-utils rpcbind
rpcbind-0.2.0-49.el7.x86_64
nfs-utils-1.3.0-0.66.el7.x86_64
配置exports文件:
[root@nfs-ser ~]# cat /etc/exports
/data 192.168.142.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 7月 7 18:02 /data/
本地挂载并测试:
[root@nfs-ser ~]# mount 192.168.142.253:/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上配置客户端
安装软件
[root@rs1 ~]# yum install nfs-utils -y
本地测试:
[root@rs1 ~]# showmount -e 192.168.142.253
Export list for 192.168.142.253:
/data 192.168.142.0/24
在rs2上执行相同的操作
三、配置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.142.253:/data /var/www/html/
[root@rs1 ~]# vim /etc/fstab
192.168.142.253:/data /var/www/html/ nfs default 0 0
[root@rs1 ~]# mount -a
在rs2上执行相同的操作。
在nfs服务器上创建测试目录
[root@nfs-ser ~]# cat /data/index.html
<html>
<head>
<title>星云科技</title>
</head>
<body>
<h1>星云 make me happy!!!</h1>
</body>
</html>
网页测试:
四、配置LVS负载均衡调度服务器
(1)在DS节点配置LVS负载均衡
下载ipvs管理工具
[root@ds ~]# yum install ipvsadm -y
配置LVS
[root@ds ~]# nmcli con sh
NAME UUID TYPE DEVICE
ens32 0798b9ee-f9f3-4956-bea4-576e13a06471 ethernet ens32
[root@ds ~]# nmcli con mod ens32 +ipv4.addr 192.168.142.200/24
[root@ds ~]# systemctl restart network
[root@ds ~]# ipvsadm -A -t 192.168.142.200:80 -s rr
[root@ds ~]# ipvsadm -a -t 192.168.142.200:80 -r 192.168.142.251:80 -g
[root@ds ~]# ipvsadm -a -t 192.168.142.200:80 -r 192.168.142.252: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.142.251:http Route 1 0 0
-> 192.168.142.252:http Route 1 0 0
[root@ds ~]# ipvsadm --set 1 2 1
(2)在sr1,sr2上配置网络,绑定服务IP到回环网卡上
[root@rs1 network-scripts]# cat /etc/sysconfig/network-scripts/ifcfg-lo:10
DEVICE=lo:10
IPADDR=192.168.142.200
NETMASK=255.255.255.255
ONBOOT=yes
[root@rs1 network-scripts]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet 192.168.142.200/32 brd 192.168.142.200 scope global lo:10
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens32: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:22:bb:73 brd ff:ff:ff:ff:ff:ff
inet 192.168.142.251/24 brd 192.168.142.255 scope global noprefixroute ens32
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fe22:bb73/64 scope link
valid_lft forever preferred_lft forever
在RS2上做相同的配置
(3)调整内核参数,关闭arp响应
[root@rs1 ~]# 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上做相同配置
五、集群功能测试
使用浮动IP访问