打造极致性能数据库中间件丨LVS+Keepalive+华为云DDM之理论篇

背景说明html

华为云分布式数据库中间件(Distributed Database Middleware,简称DDM),专一于解决数据库分布式扩展问题,突破了传统数据库的容量和性能瓶颈,实现海量数据高并发访问。linux

DDM使用华为关系型数据库(RDS)做为存储引擎,具有自动部署、分库分表、弹性伸缩、高可用等全生命周期运维管控能力。数据库

上边几句话是从华为云官网的帮助手册摘录出来的[1],简单介绍了DDM服务。从我这个使用者的角度看来,DDM主要优势有:高性能[2]、海量数据支持、数据平滑扩容和业务无感知的读写分离。这些特色正是公司当前须要的。改用DDM服务以后,各方面的性能都有很大的提高。可是,公司一部分代码使用的是PHP语言,而PHP语言对长链接和客户端负载均衡的支持不是很好[3]。为了解决这个问题,打算是用LVS作一个负载均衡,经过LVS链接DDM服务。花了将近一周的时间将LVS相关背景了解清楚,并搭建成功,业务运行正常。这篇文章详细介绍了搭建过程,而且对LVS+keepalive从我的理解的角度作了介绍,但愿对同辈中人能略有帮助。后端

 

LVS+Keeplive理论知识安全

1、LVS理论基础服务器

1.LVS是什么并发

The Linux Virtual Server(LVS) is a highly scalable and highly available server built on a cluster of real servers, with the load balancer running on the Linux operating system. The architecture of the server cluster is fully transparent to end users, and the users interact as if it were a single high-performance virtual server. For more information, click here.负载均衡

LVS官网的介绍[4],我的理解,LVS提供一种从Linux内核态支持的高可用、高转发效率的负载均衡。自己源码是开源的GPL协议。值得一提的,LVS是是国人章文嵩发起的一个开源项目。运维

【问】LVS工做在TCP/IP的哪一层?分布式

【答】LVS有多种工做模式,不能严格的说工做在哪一层。简单说,LVS-NAT工做在IP层,LVS-DR工做在数据链路层,LVS-TUN工做在IP层。

【问】LVS能负载多少RealServer?

【答】不一样的工做模式转发性能不同,LVS-DR号称能够支持200+以上节点。

 

以下对LVS的几种工做模式作个简单的介绍,内容均来自“简书”“酱油菠菜”的一篇文章:https://www.jianshu.com/p/8a61de3f8be9。目前是看到的最简清晰的介绍了:

LVS的3种工做模式,各自有本身的适用场景,目前用的比较可能是LVS-DR模式,DR模式也是3中模式中性能最高的。

 

2.LVS-NAT

原理:

基于ip假装MASQUERADES,原理是多目标DNAT。

因此请求和响应都经由Director调度器。

优势:

●支持端口映射

●RS可使用任意操做系统

●节省公有IP地址。

RIP和DIP都应该使用同一网段私有地址,并且RS的网关要指向DIP。

使用nat另一个好处就是后端的主机相对比较安全。

缺点:

请求和响应报文都要通过Director转发;极高负载时,Director可能成为系统瓶颈。

就是效率低的意思。

 

3.LVS-TUN

原理:

基于隧道封装技术。在IP报文的外面再包一层IP报文。

当Director接收到请求的时候,选举出调度的RealServer

当接受到从Director而来的请求时,RealServer则会使用lo接口上的VIP直接响应CIP。

这样CIP请求VIP的资源,收到的也是VIP响应。

优势:

●RIP、VIP、DIP都应该使用公网地址,且RS网关不指向DIP;

●只接受进站请求,解决了LVS-NAT时的问题,减小负载。

●请求报文经由Director调度,可是响应报文不需经由Director。

缺点:

●不指向Director因此不支持端口映射。

●RS的OS必须支持隧道功能。

●隧道技术会额外花费性能,增大开销。

 

3.LVS-DR

原理:

当Director接收到请求以后,经过调度方法选举出RealServer。

讲目标地址的MAC地址改成RealServer的MAC地址。

RealServer接受到转发而来的请求,发现目标地址是VIP。RealServer配置在lo接口上。

处理请求以后则使用lo接口上的VIP响应CIP。

优势:

●RIP可使用私有地址,也可使用公网地址。

●只要求DIP和RIP的地址在同一个网段内。

●请求报文经由Director调度,可是响应报文不经由Director。

●RS可使用大多数OS

缺点:

●不支持端口映射。

●不能跨局域网。

 

2、Keepalive简介

Keepalive的官网介绍以下:

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. Keepalived frameworks can be used independently or all together to provide resilient infrastructures.

 

简单归纳以下:

●Keepalive是C语言写的

●Keepalive被普遍应用于和LVS一块儿提供4层的负载均衡

● Keepalive能够探测负载均衡节点的健康状态,管理负载均衡节点

●经过VRRP协议提供高可靠

 

从上文的介绍能够看出,使用LVS+Keepalive能够搭建一个具有故障自动迁移的高可用负载均衡。本篇主要介绍了一些基础理论知识,下一篇会详细的说明怎么样一步步使用LVS+Keepalive+DDM搭建高性能的数据库中间件,敬请期待。

 

参考文献

[1].  华为云DDM官网帮助文档:https://support.huaweicloud.com/productdesc-ddm/zh-cn_topic_0063320859.html

[2].  华为云DDM性能指标:https://support.huaweicloud.com/bestpractice-ddm/zh-cn_topic_0062151536.html

[3].  如何链接华为云DDM实例:https://support.huaweicloud.com/usermanual-ddm/zh-cn_topic_0055087669.html

[4].  LVS官网:http://www.linuxvirtualserver.org/

[5].  Linux服务器集群系统(一):http://www.linuxvirtualserver.org/zh/lvs1.html

[6].  Keepalive官网:http://www.keepalived.org/

相关文章
相关标签/搜索