整个互联网建立在下一跳的模式下
–IP是逻辑上的两个端点
–MAC是物理上连接的两个节点
•端点间TCP传输过程中
–确认机制
–状态机制
–不可分割
•解析数据包需要成本
–交换机:二层,只关心MAC地址
–路由器:三层,只关心IP和路由表
–LVS服务器:四层,只关心PORT,状态
lvs架构图
1、可伸缩网络服务是指网络服务能随着用户数目的增长而扩展其性能,如在系统中增加服务器、内存或硬盘等;整个系统很容易被扩展,无需重新设置整个系统,无需中断服务。
2、可伸缩系统通常是高可用的系统。在部分硬件(如硬盘、服务器、子网络)和部分软件(如操作系统、服务进程)的失效情况下,系统可以继续提供服务
3、实现可伸缩网络服务的方法一般是通过一对多的映射机制,将服务请求流分而治之(Divide and Conquer)到多个结点上处理。
4、网络服务的需求
· 可伸缩性(Scalability),当服务的负载增长时,系统能被扩展来满足需求,且不降低服务质量。
· 高可用性(Availability),尽管部分硬件和软件会发生故障,整个系统的服务必须是每天24小时每星期7天可用的。
· 可管理性(Manageability),整个系统可能在物理上很大,但应该容易管理。
· 价格有效性(Cost-effectiveness),整个系统实现是经济的、易支付的。
5、Linux虚拟服务器(Linux Virtual Server):基于IP层和基于内容请求分发的负载平衡调度解决方法
数据报结构
LVS集群采用IP负载均衡技术和基于内容请求分发技术。调度器具有很好的吞吐率,将请求均衡地转移到不同的服务器上执行,且调度器自动屏蔽掉服务器的故障,从而将一组服务器构成一个高性能的、高可用的虚拟服务器
6、lvs的组成部分
· 负载调度器(load balancer),它是整个集群对外面的前端机,负责将客户的请求发送到一组服务器上执行,而客户认为服务是来自一个IP地址上的。它可以是用IP负载均衡技术的负载调度器,也可以是基于内容请求分发的负载调度器,还可以是两者的结合。
· 服务器池(server pool),是一组真正执行客户请求的服务器,执行的服务有WEB、MAIL、FTP和DNS等。
· 后端存储(backend storage),它为服务器池提供一个共享的存储区,这样很容易使得服务器池拥有相同的内容,提供相同的服务。
7、调度器的两种方式(都全部具有调度开销小,有很高的吞吐率的特点)
IP负载均衡(效率最高):需要服务器池拥有相同的内容提供相同的服务。当客户请求 到达时,调度器只根据负载情况从服务器池中选出一个服务器,将该请求转发到选出的服务器,并记录这个调度;当这个请求的其他报文到达,也会被转发到前面选 出的服务器。
内容请求转发:服务器可以提供不同的服务,当客户请求到达时,调度器可根据请求的内容和服务器的情况选择服务器执行请求。
8、共享存储的必要性
共享存储如分布式文件系统在这个LVS集群系统是可选项。当网络服务需要有相同的内容,共享存储是很好的选择,否则每台服务器需要将相同的内容复制 到本地硬盘上。当系统存储的内容越多,这种不共享结构(Shared-nothing Structure)的代价越大,因为每台服务器需要一样大的存储空间,所有的更新需要涉及到每台服务器,系统的维护代价也很高。
9、如何实现高可用性
设立调度器的备份。两个心跳进程 (Heartbeat Daemon)分别在主、从调度器上运行,它们通过串口线和UDP等心跳线来相互汇报各自的健康情况。
当从调度器不能听得主调度器的心跳时,从调度器会接 管主调度器的工作来提供负载调度服务。这里,一般通过ARP欺骗(Gratuitous ARP)来接管集群的Virtual IP Address。
当主调度器恢复时,这里有两种方法,一是主调度器自动变成从调度器,二是从调度器释放Virtual IP Address,主调度器收回Virtual IP Address并提供负载调度服务。然而,当主调度器故障后或者接管后,会导致已有的调度信息丢失,这需要客户程序重新发送请求。
10、lvs上可以应用于建立很多可伸缩网络服务,如Web、Cache、Mail和Media等服务。
领取专属 10元无门槛券
私享最新 技术干货