文章目录
一、群集的含义1.1 概念1.2 问题1.3. 解决方法二、集群的分类2.1 负载均衡群集:聚合和负载均衡2.2 高可用群集(High Availability Cluster)2.3 性能运算群集(High Performance Computer Cluster)三、负载均衡群集架构3.1 负载均衡的结构3.2 负载均衡群集工作模式分析3.2.1、地址转换(NAT模式)3.2.2、IP隧道(TUN模式)2.3、 直接路由(DR模式)四、关于LVS虚拟服务器4.1 LVS简述4.2 负载调度算法4.2.1、基于请求控制4.2.2 基于连接数五、LVS群集创建与管理5.1 步骤5.2 LVS的管理工具–ipvsadm5.3 实际案例六:实操——NAT工作模式6. 2 部署共享存储6.3、配置负载调度器LVS(ens33:192.168.35.40 ens36:192.168.10.100)6.3.1 配置SNAT转发规则6.3.2 加载LVS内核模块#6.4安装ipvsadm管理工具6.4.1 配置负载分配策略6.5台服务器(lvs/)时间同步6.6台节点服务器6.7 虚拟windows测试一、群集的含义
1.1 概念
由多台主机构成,但对外只表现为一个整体,只提供一个访问入口(域名与IP地址),相当于一台大型计算机1.2 问题
主要来源于市场需求(企业需求),以及企业管理维护人员的合理性和效率;为了解决互联网应用中,随着站点对硬件性能、响应速度、服务稳定性、数据可靠性等要求越来越高,单台服务器已经无法满足负载均衡及高可用性的要求
1.3. 解决方法
主要是:增强单体和集群化使用价格昂贵的小型机、大型机使用多台相对廉价的普通服务器构建服务集群二、集群的分类
根据功能性角度、决绝问题的角度可以分为三种类型① 负载均衡群集:LVS实现
② 高可用群集:MHA manager实现,LVS的HA是由keepalive实现的
高性能运算群集
2.1 负载均衡群集:聚合和负载均衡
服务器集群:压力的均衡、合理性集群作为整体,提高整体的抗压、负载能力依赖的机制:LB的负载分配依赖于主节点的分流算法
2.2 高可用群集(High Availability Cluster)
提高应用系统的可靠性、尽可能地减少中断时间为目标,确保服务的连续性,达到高可用(HA) 的容错效果HA的工作方式包括双工
和主从
两种模式2.3 性能运算群集(High Performance Computer Cluster)
提高应用系统的CPU运算速度、扩展硬件资源和分析能力为目标,获得相当于大型、超级计算机的高性能运算(HPC) 能力高性能依赖于”分布式运算”、”并行计算”,通过专用硬件和软件将多个服务器的CPU、内存等资源整合在一起,实现只有大型、超级计算机才具备的计算能力三、负载均衡群集架构
3.1 负载均衡的结构
第一层:负载调度器(Load Balancer或Director)第二层:服务器池(Server Pool)第三层:共享存储(Share Storage)3.2 负载均衡群集工作模式分析
负载均衡群集是目前企业用得最多的群集类型群集的负载调度技术有3种工作模式3.2.1、地址转换(NAT模式)
类似于防火墙的私有网络结构,请求的出和入均有调度器服务控制(LVS)所有服务器在同一个物理网络内,安全性要优于其他两种方式3.2.2、IP隧道(TUN模式)
real servers在公网环境(公网IP)Ivs只接收请求,响应请求由对应接收请求的real server以隧道形式直接响应
2.3、 直接路由(DR模式)
接受请求由LVS处理,响应请求也是由real server处理他们在同一物理网络(内部网) ,响应请求(不同网段的),需要通过公共路由器实现四、关于LVS虚拟服务器
4.1 LVS简述
针对Linux内核开发的负载均衡解决方案,1998年5月,由我国的章文嵩博士创建LVS 实际上相当于基于IP地址的虚拟化应用, 为基于IP地和内容请求分发的负载均衡提出了一种高效的解决方法4.2 负载调度算法
4.2.1、基于请求控制
轮询:简单来说就是按照顺序一个个来;将收到的访问请求按照顺序轮流分配给群集中的各节点(真实服务器) ,均等地对待每一台服务器 ,而不管服务器实际的连接数和系统负载加权轮询:根据调度器设置的权重值来分发请求,权重值高的节点优先获得任务,分配的请求数越多,保证性能强的服务器承担更多的访问流量4.2.2 基于连接数
首先看最少连接数,若连接数一样的情况下,看权重的优先级高
最少连接:根据真实服务器已建立的连接数进行分配,将收到的访问请求优先分配给连接数最少的节点加权最小连接:在服务器节点的性能差异较大时,可以为真实服务器自动调整权重,性能较高的节点将承担更大比例的活动连接负载以接近实时连接的请求数(连接数)做为基础以权重的方式,决定在real servers中连接数相同的情况下,该如何分配请求(以权重的方式判断)
五、LVS群集创建与管理
5.1 步骤
创建虚拟服务器添加、删除服务器节点查看群集及节点情况保存负载分配策略5.2 LVS的管理工具–ipvsadm
ipvsadm工具选项说明
5.3 实际案例
环境:LVS调度器作为Web 服务器池的网关,LVS具有两块网卡,分别连接内外网,使用轮询(rr)调度算法
六:实操——NAT工作模式
6. 2 部署共享存储
①查看/dev下的新加磁盘是否被识别②然后重启一下,让磁盘被系统识别[root@localhost ~]# init 6
查看/dev下的新加磁盘是否被识别
[root@localhost ~]# hostnamectl set-hostname nfs[root@localhost ~]# su[root@nfs ~]# ls /devsdasda1 sda2sda3sda4sda5sdb sdc
③初始化两块新增的磁盘——在线网环境中,新加的磁盘是需要做raid
的
[root@nfs ~]# fdisk /dev/sdbCommand (m for help): nPartition type:p primary (0 primary, 0 extended, 4 free)e extendedSelect (default p): Using default response pPartition number (1-4, default 1): First sector (2048-41943039, default 2048): Using default value 2048Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039): Using default value 41943039Partition 1 of type Linux and of size 20 GiB is setCommand (m for help): wThe partition table has been altered![root@nfs ~]# mkfs.xfs /dev/sdb1[root@nfs ~]# mkdir /opt/kgc /opt/accp[root@nfs ~]# fdisk /dev/sdcCommand (m for help): nPartition type:p primary (0 primary, 0 extended, 4 free)e extendedSelect (default p): Using default response pPartition number (1-4, default 1): First sector (2048-41943039, default 2048): Using default value 2048Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039): Using default value 41943039Partition 1 of type Linux and of size 20 GiB is setCommand (m for help): w[root@nfs ~]# mkfs.xfs /dev/sdc1
④修改配置文件进行挂载
[root@nfs ~]# vim /etc/fstab /dev/sdb1 /opt/kgc xfsdefaults 0 0/dev/sdc1 /opt/accp xfsdefaults 0 0
⑤重载挂载点
[root@nfs ~]# mount -a[root@nfs ~]# df -ThFilesystemTypeSize Used Avail Use% Mounted on/dev/sdb1xfs 20G 33M 20G 1% /opt/kgc/dev/sdc1xfs 20G 33M 20G 1% /opt/accp
⑥关闭防火墙,查看NFS服务器的两个组件nfs-utils
和rpcbind
是否安装,修改配置文件
systemctl stop firewalld.service systemctl disable firewalld.service setenforce 0yum install -y nfs-utils rpcbindsystemctl start nfs.service systemctl start rpcbind.servicesystemctl enable nfs.service systemctl enable rpcbind.servicemkdir /opt/klkl /opt/zwzytchmod 777 /opt/klkl /opt/zwzytvim /etc/exports/opt/klkl 192.168.35.10/24(rw,sync,no_root_squash)/opt/zwzyt 192.168.35.20/24(rw,sync,no_root_squash)exportfs -rv##验证共享
⑦设置网卡IP地址为静态IP,网卡设为仅主机模式,开启rpc和nfs服务、配置负载调度器LVS(ens33:192.168.35.40 ens36:192.168.10.100)
systemctl stop firewalld.service systemctl disable firewalld.service setenforce 0
#ifconfig ens36 192.168.10.100
##临时虚拟网卡,也可以使用此种方法增加网卡,方法自选
配置SNAT转发规则
vim /etc/sysctl.confnet.ipv4.ip_forward=1sysctl -p##刷新生效或者:echo '1' > /proc/sys/net/ipv4/ip_forwardsystemctl start firewalld##开启防火墙iptables -F##全部清空规则iptables -t nat -F##清空nat表内的规则[root@lvs ~]# iptables -t nat -nLChain PREROUTING (policy ACCEPT)targetprot opt sourcedestination Chain INPUT (policy ACCEPT)targetprot opt sourcedestination Chain OUTPUT (policy ACCEPT)targetprot opt sourcedestination Chain POSTROUTING (policy ACCEPT)targetprot opt sourcedestination iptables -t nat -A POSTROUTING -s 192.168.35.0/24 -o ens37 -j SNAT --to-source 192.168.10.100http服务器的流量通过ens37接口,把192.168.35.0网段通过LVS映射192168.10.100nat表:修改数据包中的源、目标IP地址或端口POSTROUTING: 在进行路由判断之"后"所要进行的规则(SNAT/MASQUERADE)PREROUTING: 在进行路由判断之"前"所要进行的规则(DNAT/REDIRECT)-A: 在规则链的末尾加入新规则-s:匹配来源地址IP/MASK.-o 网卡名称匹配从这块网卡流出的数据-i 网卡名称匹配从这块网卡流入的数据-j 控制类型
6.3、配置负载调度器LVS(ens33:192.168.35.40 ens36:192.168.10.100)
systemctl stop firewalld.service systemctl disable firewalld.service setenforce 0#ifconfig ens36 192.168.10.147 ##临时虚拟网卡,也可以使用此种方法增加网卡,方法自选
6.3.1 配置SNAT转发规则
vim /etc/sysctl.confnet.ipv4.ip_forward=1sysctl -p##刷新生效或者:echo '1' > /proc/sys/net/ipv4/ip_forwardsystemctl start firewalld##开启防火墙iptables -F##全部清空规则iptables -t nat -F##清空nat表内的规则[root@lvs ~]# iptables -t nat -nLChain PREROUTING (policy ACCEPT)targetprot opt sourcedestination Chain INPUT (policy ACCEPT)targetprot opt sourcedestination Chain OUTPUT (policy ACCEPT)targetprot opt sourcedestination Chain POSTROUTING (policy ACCEPT)targetprot opt sourcedestination iptables -t nat -A POSTROUTING -s 192.168.35.0/24 -o ens37 -j SNAT --to-source 192.168.10.100http服务器的流量通过ens37接口,把192.168.35.0网段通过LVS映射192168.10.100nat表:修改数据包中的源、目标IP地址或端口POSTROUTING: 在进行路由判断之"后"所要进行的规则(SNAT/MASQUERADE)PREROUTING: 在进行路由判断之"前"所要进行的规则(DNAT/REDIRECT)-A: 在规则链的末尾加入新规则-s:匹配来源地址IP/MASK.-o 网卡名称匹配从这块网卡流出的数据-i 网卡名称匹配从这块网卡流入的数据-j 控制类型
6.3.2 加载LVS内核模块#
ll /proc/nat##查询没有ip_vs模块modprobe ip_vs ##手动加载ip_vs模块cat /proc/net/ip_vs ##查看ip_vs版本信息
6.4安装ipvsadm管理工具
yum install -y ipvsadm#注意:启动服务前必须保存负载分配策略,否则将会报错ipvsadm-save > /etc/sysconfig/ipvsadm##ipvsadm-save:策略保存;>:覆盖或者ipvsadm --save > /etc/sysconfig/ipvsadm或者touch /etc/sysconfig/ipvsadmsystemctl start ipvsadm##开启管理工具cd /etc/sysconfig systemctl status ipvsadm ##查看状态
6.4.1 配置负载分配策略
NAT模式只要在服务器上配置,节点服务器不需要特殊配置ipvsadm -C#清除原有策略ipvsadm -A -t 192.168.10.100:80 -s rr##指定分流算法是rr轮询ipvsadm -a -t 192.168.100.100:80 -r 192.168.10.142:80 -m -w 1ipvsadm -a -t 192.168.100.100:80 -r 192.168.10.146:80 -m -w 1-A##添加虚拟服务器-s##指定负载调度算法 (轮询:rr、加权轮询: wrr、最少连接: lc、加权最少连接: wlc )-a##表示添加真实服务器 (后端节点服务器)-t##指定 VIP地址及 TCP端口-m##表示使用 NAT群集模式-w##设置权重 (权重为 0 时表示暂停节点)ipvsadm -a -t 192.168.10.100:80 -r 192.168.35.10:80 -m -w 1ipvsadm -a -t 192.168.10.100:80 -r 192.168.35.20:80 -m -w 1-r ##real server-m##mode;模式-w##weight;权重ipvsadm#启动策略ipvsadm -ln #查看节点状态,Masq代表 NAT模式ipvsadm-save > /etc/sysconfig/ipvsadm #保存策略
6.5台服务器(lvs/)时间同步
ntpdate
6.6台节点服务器
vim /etc/reslove.conf##地址映射nameserver 114.114.114.114
systemctl stop firewalld.service systemctl disable firewalld.service setenforce 0yum install -y httpd##下载http服务systemctl start httpd.service ##开启http服务systemctl enable httpd.serviceyum install -y nfs-utils rpcbind##下载nfs服务systemctl start rpcbind.servicesystemctl enable rpcbind.serviceshowmount -e 192.168.35.30
web1:192.168.10.142
mount.nfs 192.168.35.30:/opt/klkl /var/www/html/echo 'this is klkl' > /var/www/html/index.htmlvim /etc/fstab ##永久挂载192.168.35.30:/opt/klkl /var/www/html nfs defaults,_netdev 0 0mount -a
web2:192.168.10.146
mount.nfs 192.168.35.30:/opt/zwzyt /var/www/html/echo 'this is zwzyt' > /var/www/html/index.htmlvim /etc/fstab 192.168.35.30:/opt/zwzyt /var/www/html nfs defaults,_netdev 0 0mount -a
6.7 虚拟windows测试
在win10上使用浏览器访问192.168.10.100,刷新浏览器测试负载均衡
刷新出来网页之后最好清除一下浏览记录,再次刷新网页轮询
此时更改虚拟win的配置