找人做网站维护多少钱,wordpress 当前分类文章数,惠州做网站电话,虚拟主机 wordpress引言
负载均衡这个概念对于一个IT老鸟来说再也熟悉不过了#xff0c;当听到此概念的第一反应是想到举世闻名的nginx#xff0c;但殊不知还有一个大名鼎鼎的负载均衡方案可能被忽略了#xff0c;因为对于一般系统来说#xff0c;很多应用场合中采用nginx基本已经满足需求当听到此概念的第一反应是想到举世闻名的nginx但殊不知还有一个大名鼎鼎的负载均衡方案可能被忽略了因为对于一般系统来说很多应用场合中采用nginx基本已经满足需求但对于大型机高性能系统掌握lvs负载均衡是非常有必要的接下来将小哥对lvs负载均衡进行初步探索。
lvs 简介
概念
LVS(Linux Virtual Server)顾名思义是linux 虚拟服务器的意思一个虚拟的服务器集群系统,使用负载均衡技术将多台服务器组成一个虚拟服务器。
LVS的由来
由于互联网用户的急剧增长用户对服务器的访问数量快速增加这就要求广大的互联网服务器需要具备较大的并发服务能力因此对于大负载的服务器来讲 CPU、I/O处理能力很快会成为瓶颈。由于单台服务器的性能总是有限的简单的提高硬件性能并不能真正解决这个问题。为此必须采用多服务器和负载均衡技术才能满足大量并发访问的需要。
LVS 的优势
1、LVS具有较高的带负载能力理论上来说首先LVS 工作在网络7层模型的第4层一般情况下越低的工作层次就代表其效率也会越高工作在低4层模型也就意味着不用和客户端建立连接不用握手不用付出因为建立连接或者握手而开辟的资源开销其次从操作系统层面来讲LVS是内核级别的功能对于有限核数的cpu来看内核级别的功能优先级远远高于用户级别功能的优先级其执行效率一般会计较高最后从系统资源层面来看 LVS只对数据进行转发不消耗操作系统的IO 资源因此LVS对操作系统资源的依赖是大大降低。根据小哥我查到的数据LVS 并发服务量大概在几十万这个级别。 2、LVS具有较高的可用LVS适合对所有的应用层软件做负载均衡解决方案。 3、可靠性较高LVS工作在7网络模型第四层他的运行只和网络协议栈和操作系统有关系因此和其他应用软件的冲突机率大大降低此外 LVS自身有完整的双机热备方案如LVSKeepalived和LVSHeartbeat这使得LVS的可靠性得到充分保障。
LVS 搭建高可靠负载均衡集群
集群负载均衡的三种模式
NAT
NATNetwork Address Translation意即网络地址转换允许一个整体机构以一个公用IP地址出现在Internet上即把内部私有网络地址翻译成合法网络IP地址的技术。通过网络地址转换调度器重写请求报文的目标地址根据预设的调度算法将请求分派给后端的真实服务器真实服务器的响应报文通过调度器时报文的源地址被重写再返回给客户完成整个负载调度过程。
IP Tunneling
采用NAT技术做负载均衡时自身网络带宽和cpu算力变成瓶颈为了解决这个问题调度器把请求报 文通过IP隧道转发至真实服务器而真实服务器将响应直接返回给客户所以调度器只处理请求报文。
Direct Routing
Direct Routing 也就是常说的DR模式此模式通过改写请求报文的MAC地址将请求发送到真实服务器而真实服务器将响应直接返回给客户。同TUN模式一样DR模式可提高集群系统的扩展性。DR模式下没有IP隧道的开销对集群中的真实服务器也没有必须支持IP隧道协议的要求但是要求LVS服务器和其他应用服务必须在同一物理网段上。其模型图如下所示 LVS 实战
LVS 高可靠负载均衡集群至少得准备四台虚拟机 按照本大猿的结构准备环境架构框图如下所示 从上图中可以看出我们需要将node1和node2的两台机子作为LVS负载均衡的主机和从机需要检查两台机器的环境。
所有节点关闭防火墙
systemctl stop firewalld
systemctl disable firewalldLVS 环境准备
从linux 2.4 开始已经自带LVS我们只需要安装ipvsadm 工具包即可。node1 和node2 分别安装ipvsadm 工具。
yum install ipvsadm -yLVS环境检查
查看LVS 环境配置是否污染如果污染需要清空
# 查看配置
ipvsadm -ln
# 清空配置
ipvsadm -C如果虚拟网卡(VIP)已经存在则需要先卸载网卡保持环境干净。
ifconfig down eth0:xxx down本文中LVS 主副节点均为新建无需其他清理操作。
keepalived环境准备
LVS 需要和keepalived结合
什么是keepalived
Keepalived is a routing software written in C. The main goal of this project is to provide simple and robust facilities for loadbalancing and high-availability to Linux system and Linux based infrastructures. Loadbalancing framework relies on well-known and widely used Linux Virtual Server (IPVS) kernel module providing Layer4 loadbalancing. Keepalived implements a set of checkers to dynamically and adaptively maintain and manage loadbalanced server pool according their health. On the other hand high-availability is achieved by VRRP protocol. VRRP is a fundamental brick for router failover. In addition, Keepalived implements a set of hooks to the VRRP finite state machine providing low-level and high-speed protocol interactions. In order to offer fastest network failure detection, Keepalived implements BFD protocol. VRRP state transition can take into account BFD hint to drive fast state transition. Keepalived frameworks can be used independently or all together to provide resilient infrastructures. 下面开始配置keepalived环境
yum install keepalived -ykeepalived配置文件设置
cp /etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf.bak
vim /etc/keepalived/keepalived.confmaster
vrrp_instance VI_1 {state MASTERinterface ens33virtual_router_id 51priority 100advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.150.100/24 dev ens33 label ens33:1}
}virtual_server 192.168.159.100 80 {delay_loop 6lb_algo rrlb_kind DRnat_mask 255.255.255.0persistence_timeout 0protocol TCPreal_server 192.168.159.32 80 {weight 1HTTP_GET {url {path /status_code 200}connect_timeout 3nb_get_retry 3delay_before_retry 3}}real_server 192.168.159.33 80 {weight 1HTTP_GET {url {path /status_code 200}connect_timeout 3nb_get_retry 3delay_before_retry 3}}
}slave
vrrp_instance VI_1 {state BACKUPinterface ens33virtual_router_id 51priority 500advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.150.100/24 dev ens33 label ens33:1}
}virtual_server 192.168.159.100 80 {delay_loop 6lb_algo rrlb_kind DRnat_mask 255.255.255.0persistence_timeout 0protocol TCPreal_server 192.168.159.32 80 {weight 1HTTP_GET {url {path /status_code 200}connect_timeout 3nb_get_retry 3delay_before_retry 3}}real_server 192.168.159.33 80 {weight 1HTTP_GET {url {path /status_code 200}connect_timeout 3nb_get_retry 3delay_before_retry 3}}
}在从机上不显示虚拟网卡但显示路由配置 需要注意的是副节点上并没有看到虚拟网卡信息因为这时候主节点无故障副节点中的虚拟网卡基本
应用服务器配置
修改内核配置
echo 1 /proc/sys/net/ipv4/conf/ens33/arp_ignore
echo 1 /proc/sys/net/ipv4/conf/all/arp_ignore
echo 2 /proc/sys/net/ipv4/conf/ens33/arp_announce
echo 2 /proc/sys/net/ipv4/conf/all/arp_announce 其他方式修改永久神效
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
sysctl -p设置隐藏ip
node3和node4为应用服务器我们需要在应用服务器上配置VIP
ifconfig lo:1 192.168.159.100 netmask 255.255.255.255安装httpd插件
node3和node4 首先安装httpd 插件 yum install httpd -ysystemctl start httpd 修改首页两个节点需要分别修改 vi /var/www/html/index.htmlfrom node3#重启systemctl restart httpd如上图将两个应用服务器节点的httpd服务配置完成。
数据转发失效
这里数据转发失效的最大可能原因是没有注释掉vrrp_strict这条配置。 测试负载均衡效果 经过测试本次探索的LVS负载均衡器基本达到试目标后续文章会继续探索这块的知识。
参考文章 https://blog.csdn.net/weixin_52813907/article/details/127074105 https://www.jianshu.com/p/a2190b6d4333