集群
-
集群(CLUSTER)概念
- 集群就是一组计算机,它们作为一个整体向用户提供一组网络资源
-
集群核心:任务调度
-
集群分类
-
LVS
LVS:Linux Virtual Server,Linux虚拟服务器
-
功能
- 实现高可用的、可伸缩的Web、Mail、Cache和Media等网络服务
-
目标
- 利用Linux操作系统和LVS集群软件实现一个高可用、高性能、低成本的服务器应用集
- 组成
-
- 工作在内核空间的IPVS模块
- 工作在用户空间的ipvsadm管理工具
-
术语:
- 调度器:LVS服务器
- 真实服务器Real Server:提供服务的服务器
- VIP:虚拟地址,提供给用户访问的地址
- DIP:指定地址,LVS服务器上与真实服务器通信的地址
- RIP:真实地址,真实服务器的地址
LVS的工作模式:
测试LVS-NAT拓扑网络通信情况
[root@lvs1 ~]# cat /proc/sys/net/ipv4/ip_forward #检查lvs1主机是否开启路由转发
1 #如果得到1则无需调整,如果得到0则执行下一步临时开启路由转发功能
[root@lvs1 ~]#
[root@lvs1 echo 1 > /proc/sys/net/ipv4/ip_forward
[root@lvs1 ~]# cat /proc/sys/net/ipv4/ip_forward
-
常见的调度算法,共10个,常用的有4个:
- 轮询rr:Real Server轮流提供服务
- 加权轮询wrr:根据服务器性能设置权重,权重大的得到的请求更多
- 最少连接lc:根据Real Server的连接数分配请求
- 加权最少连接wlc:类似于wrr,根据权重分配请求
LVS-NAT模式
-
实验环境准备
- pubserver:eth0->192.168.88.240,eth1->192.168.99.240
- client:eth0->192.168.88.10,网关192.168.88.5
- lvs1: eth0 -> 192.168.88.5;eth1->192.168.99.5
- web1:eth1->192.168.99.100;网关192.168.99.5
- web2:eth1->192.168.99.200;网关192.168.99.5
- web1 与web2设置
-
[root@web1 ~]# nmcli connection modify "System eth0" ipv4.method disabled autoconnect no
[root@web1 ~]# nmcli connection down "System eth0"
[root@web1 ~]# nmcli connection modify "System eth1" ipv4.gateway 192.168.99.5
[root@web1 ~]# nmcli connection up "System eth1"
-
route -n 查看网关
-
测试LVS-NAT拓扑网络通信情况
- Ansible配置
-
配置web服务器组 安装nginx lbs安装ipvsamd
-
配置LVS服务器 在lbs#持久开启Linux路由转发功能
- 安装ipvsadm
# 配置LVS-NAT模式规则
测试访问,必须使用LVS集群之外的主机作为客户端
ipvsadm命令常用选项
-A: 添加虚拟服务器
-E: 编辑虚拟服务器
-D: 删除虚拟服务器
-C: 删除所有虚拟服务器
-t: 添加tcp服务器
-u: 添加udp服务器
-s: 指定调度算法。如轮询rr/加权轮询wrr/最少连接lc/加权最少连接wlc
-a: 添加虚拟服务器后,向虚拟服务器中加入真实服务器
-r: 指定真实服务器
-w: 设置权重
-m: 指定工作模式为NAT
-g: 指定工作模式为DR
ipvsadm -D -t 192.168.88.15:80 删除虚拟服务器
ipvsadm -d -r 192.168.88.200:80 -t 192.168.88.15:80 删除真实虚拟服务
LVS-DR模式
-
-
LVS DR模式,LVS主机和web服务器都是单网卡,它们连在同一网络中
-
实验环境
- client1:eth0-> 192.168.88.10
- lvs1:eth0->192.168.88.5,删除eth1的IP
- web1:eth0->192.168.88.100
- web2:eth0->192.168.88.200
-
ipvsadm -C #清理已有的所有LVS规则
-
配置webservers主机内主机web服务
-
- 配置测试DR模式
-
配置虚拟IP地址(VIP) #安装network-scripts软件 #配置lvs1主机eth0网卡虚拟接口IP地址
-
#配置webservers主机lo虚拟接口IP地址 #生成ifcfg-lo:0配置文件
ansible lbs,webservers -m shell -a "ip a s | grep 192.168"查看ipaddress信息
配置web服务器内核参数
#刷新sysctl.conf文件配置
ansible webservers -m shell -a "tail -6 /etc/sysctl.conf"web服务器内核参数查看
配置LVS-DR模式规则
访问测试,必须使用LVS集群之外的主机作为客户端