宜宾网站开发公司北京十大营销策划公司
系列文章目录
`
文章目录
- 系列文章目录
- 一、集群
- 1.集群
- 2.
- 二、LVS
- 1.LVS简介
- 2.负载均衡的结构
- 3.Lvs调度算法
- 总结
一、集群
1.集群
集群群集 cluster由多台主机构成的一个整体,提供一个放问入口(IP或域名),集群中的多台主机都干一件事提供一样的服务
负载均衡群集 IB)提高系统响应能力,处理更多的访问请问,减少延迟,获得高并发、高负载的性能高可用群集 (HA)提高系统的可靠性,尽可能的减少中断时间,确保业务的连续性通过整合多台主机的硬件资源,使用分布式/并行运算方法来获取高性能计算能力,云计算就是它的具体体现高性能运输群集 (HPC )
LVS的三种工作模式NAT模式调度器会作为所有节点服务器的网关,既作为客户端的访问入口,也是节点服务器回应响应报文的出口,那么调度器将会成为整个群集的性能瓶颈调度器会通过NAT实现地址转换,处于内网中的节点安全性会较好些
负载均衡群集
提高应用系统的响应能力,尽可能处理更多的访问请求,减少延迟为目标,获得高并发,高负载(LB )的整体性能
LB的负载分配依赖于主节点的分流算法,将来自客户机的访问请求分担给多个服务器节点,从而缓解整个系统的负载压力,例如“DNS轮询”,“反向代理”等
高可用群集
提高应用系统的可靠性,尽可能的减少中断时间为目标,确保服务的连续性,达到高可用(HA)的容错效果。
HA的工作方式包括双工和主从两种模式,双工即所有节点同时在线,主从则只有主节点在线,但当出现故障时从节点能自动切换为主节点,例如“故障切换”“双机热备”等
高性能运算群集
以提高应用系统的CPU运算速度,扩展硬件资源和分析能力为目标,获得相当于大型,超级计算机的高性能运算(HPC)能力
高性能依赖于“分布式运算”“并行计算”,通过专用硬件和软件将多个服务器的CPU,内存等资源整合在一起,实现只有大型,超级计算机才具备的计算能力,例如“云计算”“网络计算”等
2.
二、LVS
1.LVS简介
LVS(Linux Virtual Server)即Linux虚拟服务器,是由章文嵩博士主导的开源负载均衡项目,目前LVS已经被集成到Linux内核模块中。该项目在Linux内核中实现了基于IP的数据请求负载均衡调度方案,其体系结构如图1所示,终端互联网用户从外部访问公司的外部负载均衡服务器,终端用户的Web请求会发送给LVS调度器,调度器根据自己预设的算法决定将该请求发送给后端的某台Web服务器,比如,轮询算法可以将外部的请求平均分发给后端的所有服务器,终端用户访问LVS调度器虽然会被转发到后端真实的服务器,但如果真实服务器连接的是相同的存储,提供的服务也是相同的服务,最终用户不管是访问哪台真实服务器,得到的服务内容都是一样的,整个集群对用户而言都是透明的。最后根据LVS工作模式的不同,真实服务器会选择不同的方式将用户需要的数据发送到终端用户,LVS工作模式分为NAT模式、TUN模式、以及DR模式。
负载均衡群集工作模式
NAT模式(地址转换)
类似于防火墙的私有网络结构,负载调度器作为所有服务器节点的网关,即作为客户机的访问入口,也是各节点回应客户机的访问出口,服务器节点使用私有ip地址,与负载调度器位于同一个物理网络,安全性要优于其他两种方式
IP隧道模式(TUN模式)
调度器仅作为客户端的访问入口,节点服务器是直接回应给客户端,不会经过调度器节点服务器需要分布在互联网各地,具有独立的公网IP,成本较高调度器转发请求给节点服务器需要通过专用的IP隧道,会多一次数据封装/解封装的过程,性能会有所损耗
DR模式
调度器仅作为客户端的访问入口,节点服务器是直接回应给客户端,不会经过调度器节点服务器与调度器是在同一个局域网内,不需要建立专用的IP隧道和公网IPDR模式是生产环境的首选
[root@localhost ~]# modprobe ip_vs
#手动加载
[root@localhost ~]# cat /proc/net/ip_vs
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags-> RemoteAddress:Port Forward Weight ActiveConn InActConn #确认内核对LVS的支持
[root@localhost ~]# cd /usr/lib/modules/3.10.0-693.el7.x86_64/kernel/net/netfilter/ipvs/
[root@localhost ipvs]# ls
ip_vs_dh.ko.xz ip_vs.ko.xz ip_vs_lblcr.ko.xz ip_vs_nq.ko.xz ip_vs_rr.ko.xz ip_vs_sh.ko.xz ip_vs_wrr.ko.xz
ip_vs_ftp.ko.xz ip_vs_lblc.ko.xz ip_vs_lc.ko.xz ip_vs_pe_sip.ko.xz ip_vs_sed.ko.xz ip_vs_wlc.ko.xz
[root@localhost ipvs]# ls |grep -o "^[^.]*"
ip_vs_dh
ip_vs_ftp
ip_vs
ip_vs_lblc
ip_vs_lblcr
ip_vs_lc
ip_vs_nq
ip_vs_pe_sip
ip_vs_rr
ip_vs_sed
ip_vs_sh
ip_vs_wlc
ip_vs_wrr[root@localhost ipvs]# for i in $(ls |grep -o "^[^.]*")
> do
> echo $i
> modprobe $i
#使用for循环,一次性加载
2.负载均衡的结构
第一层,负载调度器
访问整个群集系统的唯一入口,对外使用所有服务器共有的vip地址,也称为群集IP地址,通常会配置主备两台调度器实现热备份,当主调度器失效以后能够平滑替换至备用调度器,确保高可用性
第二层,服务器池
群集所提供的应用服务,由服务器池承担,其中每个节点具有独立的RIP地址(真实ip),只处理调度器分发过来的客户机请求,当某个节点暂时失效时,负载调度器的容错机制会将其隔离,等待错误排除以后再重新纳入服务器池
第三层,共享存储
为服务器池中的所以节点提供稳定,一致的文件存取服务,确保整个群集的统一性。共享存储可以使用NAS设备,或者提供NFS共享服务的专用服务器
3.Lvs调度算法
①RR:轮询,每个服务器分配一次反复轮询。
②LC:最小连接数轮询,查看那个服务器处理的请求最少则处理,以此类推。
③WRR:加权轮询,根据管理员给每个服务器添加的weight权重分配用户请求任务,默认全部是1。
④SH:session或者源地址hash分配,通过用户来源地址hash算法将分配给固定的服务器处理。
⑤DH:模板地址hash,通过用户访问目的地址hash算法将,分配给固定的服务器处理。
⑥WLC:加权最小连接数
负载均衡
ipvasdm工具选项
-A:添加虚拟服务器
-D:删除整个虚拟fuwq
-s:指定负载调度算法(轮询,加权轮询,最少连接,加权最少连接,wlc)
-a:表示添加真实服务器(节点服务器)
-d:删除某一个节点
-t:指定VIP地址及TCP端口
-r:指定RIP地址及TCP端口
-m:表示使用NAT群集模式
-g:表示使用DR模式
-i:表示使用TUN模式
-w:设置权重(权重为0时表示暂停节点)
-p60:表示保持长连接60秒
-l:列表查看LVS虚拟服务器(默认为查看所有)
-n:以数字形式显示地址,端口等信息,常与“-l”选项组合使用
LVS-NAT部署实操
准备四台虚拟机
192.168.169.20做LVS调度器
192.168.169.30做nginx
192.168.169.50做nginx
192.168.169.60做nfs共享存储
第一步先部署192.168.169.30(先来安装nginx服务)
cd /etc/yum.repo.d/
将nginx的包拉进去
yum -y install nginx
cd /etc/nginx/
vim nginx.conf
可以发现默认server块在conf.d配置文件中
cd conf.d/
vim default.conf
找到它的网页根目录在/usr/share/nginx/html
用远程复制把网页内容复制过去
将网页根目录下的所有东西,复制到共享存储服务器中
scp * 192.168.169.60:/opt
等共享存储服务器完成操作后
showmount -e 192.168.169.60
#挂载到共享服务器(临时挂载)
mount 192.168.169.60:/opt/html /usr/share/nginx/html/
#到指定目录查看是否已经共享
cd /usr/share/nginx/html/
NFS共享存储服务
1.使用NFS发布共享资源
安装nfs-utils,rpcbind软件包
yum -y install nfs-utils rpcbind
systemctl enable nfs
systemctl enable rpcbind
设置共享目录
mkdir -p /opt/wwwroot
vim /etc/exports
/opt/wwwroot 192.168.1.1/24(rw,sync,no_root_squash)
注:客户机地址可以是主机名,IP地址,网段地址,允许使用*,?通配符;权限选项中的rw表示允许读写(ro为只读),sync表示同步写入,no_root_squash表示当客户机以root身份访问时赋予本地root权限(默认是root_squash,将作为nfsnobody用户降权对待)。
启动NFS服务程序
systemctl start rpcbind
systemctl start nfs
netstat -napt | grep rpcbind
查看本机发布的NFS共享目录
showmount -e
2.在客户机中访问NFS共享资源
安装rpcbind软件包,并启动rpcbind服务
yum -y install rpcbind nfs-utils
systemctl enable rpcbind
systemclt start rpcbind
查询NFS服务器共享了那些目录
showmount -e 192.168.2.1
手动挂载NFS共享目录
mount 192.168.2.1:/opt/wwwroot /var/www/html
tail -l /etc/mtab
fatab自动挂载设置
vim /etc/fstab
192.168.2.1:/opt/wwwroot /var/www/html nfs defaults,_netdev 0 0