linux集群之LVS入门和企业级实战

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
云数据库 RDS MySQL Serverless,价值2615元额度,1个月
简介:

第一章、集群理论基础

1、集群产生的原因

随着互联网的飞速发展,WEB网页也早已经从单一的静态网页变成了可以实现更多功能的复杂网页了,这后面软件的支持也是相当的庞大,lnmp是最常见的一种动态网页实现方式。随着业务的扩大,承载程序的服务器必然随着业务量的增加而捉襟见肘,必然需要提升业务效率。要达到这样的目的,方法有这几种,第一、通过提升单个服务器的性能,比如增加CPU/内存、存储的读写速度。第二种方法就是讲分层化或者叫功能分离,将实现不同功能的应用放在不同的服务器上来分担负载和风险。第三种,其实也是在第二种的基础上,搭建多个实现相同功能的服务器,并进行负载分担。那如何选择用户在访问资源的时候访问那个具有相同功能的服务器呢,这里就需要使用“负载均衡器”,就是专门负责检查并配发用户请求到一组相同功能服务器的一个软件或者硬件设备。

这里单独说一下mysql数据库的负责均衡,这个需要实现mysql的主从功能,就是只有主服务器可以有读写功能,而从服务器只能有读的功能。所以当有多台从服务器的时候,在应用程序和数据库之间除了负责读写分离的调度器外,还需要一个负载多个读功能的调度器。

2、负责均衡器

按照工作在那个层次分类:

TCP/UDP负载均衡器:工作在内核空间,性能好。功能较少

应用层负责均衡器:工作在用户空间,相对差。功能丰富,可以直接处理应用层协议请求,比如http协议的请求。

3、常见应用在WEB功能上的负责均衡器

TCP/UDP负载均衡器:LVS、haproxy

应用层负载均衡器:haproxy、nginx、apache、lighttped,varnish、squid。

4、常见应用在应用程序功能上的负责均衡器

TCP/UDP负载均衡器:LVS

5、常见应用在MYSQL功能上的负责均衡器

TCP/UDP负载均衡器:LVS

实现MYSQL功能的读写分离,需要更专门的调度器,比如mysql-proxy、amoeba,haproxy。

CDN和智能DNS服务器

CDN全称内容分发网络,工作目的就是缩短客户访问资源的时间,实现最优资源的内容分发和调度。这种技术其实就是通过在不同区域,不同网络,设置多个缓存服务器,不同地区或使用不同网络的用户优先被CDN选择使用离自己最近的缓存服务器中去查询资源。这一技术依赖于智能DNS技术,也就是可以自动识别辨别用户所使用的网络属于哪里。

共享存储(数据)实现高可用的方法:

两台都有lnmap平台的服务器共享一台NFS或者iSCSI的存储设备,并将信息存储在里面,要实现高可用需要一台“电源交换机”,实现不同主机间的切换,简称fencing技术。

集群的类型:

负载均衡集群

高可用集群

高性能集群(实际应用不多,常见的是并行处理系统,hadoop)

监控工具:

cacti、nagios、opsview、icinga、zabbix、ganglia、opennms、zennos

系统部署工具:

pxe、cobbler

自动化运维工具(推送配置):

puppet、saltstack

批量运行命令:

func、fabric、ansible

第二章 负载均衡集群-LOAD BALANCE CLUSTER:LB

常见硬件类型的包括BIGip(F5公司),netscaler(citrix),A10。

HA(高可用集群)常见软件:

hearbeat

corosync

HRCS(red hat cluster suite):cman

keepalived

ultramokey

基本原则:

1、至少3个节点(奇数),用于仲裁。

2、使用协调集群的算法zookeeper。它可以推送配置文件

共享存储通常应用在mysql数据的数据存储上,常用的有NAS和SAN。

NAS文件级别的存储,常见文件系统类型有nfs、samba。

SAN块级别的存储,常见的通信包括以太网通信和光纤通信。如果有多个写同时进行,需要使用特殊的文件系统。

集群文件系统:GFS2,OCFS2

分布式文件锁

HPC(高性能集群):

hadoop:本身搭建比较困难,然后很多公司也依照hadoop研发了自己的软件。比如cloudera、hortomworkers、EMC、INTER。

一、LVS:linux virtual server


LVS功能的实现方法非常类似于linux防火墙netfilter的DNAT功能。lvs在负载均衡选择后端服务器的时候会有一套调度方法,共有10种,而服务器在接收到请求的时候也有不同的响应方式,这种方式成为lvs的工作类型。ipvsadm工作在用户空间,而ipvs工作在内核空间。由于转发依赖于ip:port的形式,所以也称为四层交换或者四层路由。

注意:使用ipvs应该关闭netfilter功能。

572399.tmp

LVS常见调度方法:

静态算法:

RR:轮询调度,依次调度所有可用realserver。

WRR:加权轮询调度,依照每台服务器的不同,设置不同的加权值

SH:源地址hash,相同用户的请求(ip)都使用相同的realserver进行响应,避免了选择不同realserver造成的访问内容的不同(用户cache信息),缺点是当访问的realserver宕机,会造成信息丢失。

DH:目标地址HASH,适用于有多个vip的情况。

870868.tmp

动态算法:

lc:最少连接数算法,依据活动连接数和非活动连接数来计算,公式=活动连接数*256+非活动连接数

wlc:加权lc,公式=(活动连接数*256+非活动连接数)/权重

sed:最短期望延迟算法,是对wlc的改进,公式=(活动连接数+1)*256/权重

nq:永不排队算法,就是开始先每人分一个任务,然后在按照sed算法执行。

lblc::基于本地的最少链接动态的dh算法,dh算法+lc

lblcr:基于本地的带复制的最少链接,

LVS的工作类型(工作架构):

NAT:由调度器处理服务器对客户端的响应,就是数据的来去都经过director调度器。缺点是调度器称为中心,大量访问存在瓶颈问题,优点是只需要一个公网ip地址用在VIP上即可。

1、realserver使用私有ip地址

2、DIP和RIP之间不能有路由器,也就是不能跨网,realserver的网关应该指向DIP。

3、进出报文都经过directory,在高负荷下成为性能瓶颈。

4、支持端口映射。

5、realserver可以使用任意系统。

6、实际应用并不多。

DR:

242344.tmp

客户机将发送请求报文送到路由器,路由器将报文转发到交换机,这时的源ip地址是客户端、目的地址是VIP。由于director和realsever都设置了vip,交换机这个时候就发送广播,由于通过linux内核特性设置了只有director可以接受广播,确认身份,所以当director收到mac地址广播后,它会依据协调算法选取realserver。并按照以下方式响应mac广播,源ip地址目的ip地址不变,修改源mac地址为路由器的mac地址,目的mac地址为指定realserver的mac地址,这样就实现了选择功能。然后通过在realserver设置指定路由来强制将 源ip设置为vip。

特点:

1、realserver可以使用私有地址,建议使用公网ip地址

2、realserver的网关不能指向DIP。

3、realserver和director要在同一个物理网络中,DIP和RIP要在同一个网段。

4、入站报文经过director,出站则由realserver直接响应client。

5、不能做端口映射

6、realserver的os没有限制

TUN :就是在DR基础上采用了隧道协议进行转发。

特点:

1、RIP不能是私有地址

2、realserver的网关不能指向DIP。

3、director和realserver不在同一个网段。

4、入站报文经过director,出站则由realserver直接响应client

5、不能做端口映射

6、realserver的os支持隧道协议。




本文转自 blackstome 51CTO博客,原文链接:http://blog.51cto.com/137783/1968765,如需转载请自行联系原作者

相关文章
|
2月前
|
监控 Java 大数据
bigdata-05-Linux实战
bigdata-05-Linux实战
21 0
|
2月前
|
存储 负载均衡 索引
linux7安装elasticsearch-7.4.0集群配置
linux7安装elasticsearch-7.4.0集群配置
113 0
|
2月前
|
运维 Linux Apache
Linux Apache服务详解——Apache虚拟目录与禁止显示目录列表实战
Linux Apache服务详解——Apache虚拟目录与禁止显示目录列表实战
24 2
|
2月前
|
域名解析 Linux Apache
Linux Apache服务详解——虚拟网站主机功能实战
Linux Apache服务详解——虚拟网站主机功能实战
42 5
|
2月前
|
Linux 数据安全/隐私保护 Windows
Linux vsFTPd服务详解——本地用户登录实战
Linux vsFTPd服务详解——本地用户登录实战
46 2
|
2月前
|
运维 监控 Linux
Linux Rsync服务详解(二)——Rsync服务实战
Linux Rsync服务详解(二)——Rsync服务实战
20 1
|
29天前
|
存储 算法 Linux
【实战项目】网络编程:在Linux环境下基于opencv和socket的人脸识别系统--C++实现
【实战项目】网络编程:在Linux环境下基于opencv和socket的人脸识别系统--C++实现
59 7
|
2天前
|
数据挖掘 Linux vr&ar
Linux命令实战:解决日常问题的利器
Linux命令实战:解决日常问题的利器
|
3天前
|
安全 Linux Shell
Linux常用命令详解与实战应用
【5月更文挑战第7天】本文详述了Linux常用命令,包括文件与目录操作(ls, cd, pwd, cp, mv, rm)、文本处理(cat, grep, sed)及系统管理(top, df, du)命令。通过实例演示了如何使用这些命令,帮助读者理解和掌握Linux操作,提升系统管理效率。学习和熟练运用这些基础命令,是高效使用Linux的关键。
|
9天前
|
运维 监控 Linux
提升系统稳定性:Linux内核参数调优实战
【5月更文挑战第1天】 在运维领域,保障服务器的高效稳定运行是核心任务之一。Linux操作系统因其开源、可靠和灵活的特点被广泛应用于服务器中。本文将深入探讨通过调整Linux内核参数来优化系统性能,提升服务器的稳定性和响应能力。文章首先介绍了内核参数调优的必要性和基本原则,然后详细阐述了调优过程中的关键步骤,包括如何监控当前系统状态,确定性能瓶颈,选择合适的参数进行调优,以及调优后的测试与验证。最后,文中提供了一些常见问题的解决策略和调优的最佳实践。
46 5