Internet 的飞速发展给网络带宽和服务器带来巨大的挑战。从网络技术的发展来看,网络带宽的增长远高于处理器速度和内存访问速度的增长,这是什么意思。数据出了小区门(计算机)在路途中已经可以上高速公路了,但是在小区内的行驶速度却成了难题,越来越多的瓶颈会出现在服务器端。互联网的海洋中对性能的不断提高,高可伸缩性、高可用性、可管理性、价格有效性的网络服务技术将成为网络服务技术的主导。各种平台下的技术方案应运而生。
三是 SMP 服务器是单一故障点(Single Point of Failure),一旦该服务器或应用软件失效,会导致整个服务的中断。
集群的起源
集群并不是一个全新的概念,其实早在七十年代计算机厂商和研究机构就开始了对集群系统的研究和开发。由于主要用于科学工程计算,所以这些系统并不为大家所熟知。直到 Linux 集群的出现,集群的概念才得以广为传播。对集群的研究起源于集群系统的良好的性能可扩展性(scalability)。提高 CPU 主频和总线带宽是最初提供计算机性能的主要手段。但是这一手段对系统性能的提供是有限的。接着人们通过增加 CPU 个数和内存容量来提高性能,于是出现了向量机,对称多处理机(SMP)等。但是当 CPU 的个数超过某一阈值,象 SMP 这些多处理机系统的可扩展性就变的极差。主要瓶颈在于 CPU 访问内存的带宽并不能随着 CPU 个数的增加而有效增长。与 SMP 相反,集群系统的性能随着 CPU 个数的增加几乎是线性变化的
1
集群恰恰是通过高性能网络或局域网互联的服务器集群正成为实现高可伸缩的、高可用网络服务的有效结构(而非基于单机 CPU 数量的增长)。这种松耦合结构的服务器集群系统有下列优点:
性能
网络服务的工作负载通常是大量相互独立的任务,通过一组服务器分而治之,可以获得很高的整体性能。
性能/价格比
组成集群系统的 PC 服务器或 RISC 服务器和标准网络设备因为大规模生产降低成本,价格低,具有最高的性能/价格比。若整体性能随着结点数的增长而接近线性增加,该系统的性能/价格比接近于 PC 服务器。所以,这种松耦合结构比紧耦合的多处理器系统具有更好的性能/价格比。
为集群开发并行编程应用程序,以解决复杂的科学问题。这是并行计算的基础,尽管它不使用专门的并行超级计算机,这种超级计算机内部由十至上万个独立处理器组成。但它却使用商业系统,如通过高速连接来链接的一组单处理器或双处理器 PC,并且在公共消息传递层上进行通信以运行并行应用程序。因此,您会常常听说又有一种便宜的 Linux 超级计算机问世了。但它实际是一个计算机集群,其处理能力与真的超级计算机相等,通常一套象样的集群配置开销要超过 $100,000。这对一般人来说似乎是太贵了,但与价值上百万美元的专用超级计算机相比还算是便宜的。
负载均衡层:位于整个集群系统的最前端,由一台或多台负载均衡调度器(Director Server),只有一台调度器的时候我们也将其成为 Load Balancer,LVS 核心模块 IPVS 就安装在 Director Server 上,而 Director 的主要作用类似于一个路由器,它含有为完成 LVS 功能所设定的路由表,通过这些路由表把用户的请求分发给服务器群组层的应用服务器(Real Server),整个过程对访问集群的用户是透明的。同时,在 Director Server 上还要安装对 Real Server 的监控模块 Ldirectord,此模块用于监测各个 Real Server 服务的健康状况。在 Real Server 不可用时将其从 LVS 路由表中剔除,在恢复时重新加入(伸缩性的体现)。
服务器群组层:由一组实际运行应用服务的机器组成,Real Server 可以是 Web 服务器、Mail 服务器、FTP 服务器、DNS 服务器、视频服务器中的一个或多个,每个 Real Server 之间通过高速的 LAN 或分布在各地的 WAN 相连接。在实际的应用中,Director Server 也可以同时兼任 Real Server 的角色。
共享存储层:是为所有 Real Server 提供共享存储空间和内容一致性的存储区域,一般由磁盘阵列设备组成。为了提供内容的一致性,一般可以通过 NFS 网络文件系统共享数据,但是 NFS 在繁忙的业务系统中,性能并不是很好,此时可以采用集群文件系统,例如 Red Hat 的 GFS 文件系统,Oracle 提供的 OCFS2 文件系统等。
从整个 LVS 结构可以看出,Dirctor Server 是整个 LVS 的核心。目前,用于 Director Server 的操作系统只有 Linux 和 FreeBSD,Linux 2.6 内核完全内置了 LVS 的各个模块,不用任何设置就可以支持 LVS 功能。
LVS 集群的特点
IP 负载均衡与负载调度算法
IP 负载均衡技术
负载均衡技术有很多实现方案,有基于 DNS 域名轮流解析的方法,有基于客户端调度访问的方法,有基于应用层系统负载的调度方法,还有基于 IP 地址的调度方法。在这些负载调度算法中,执行效率最高的是 IP 负载均衡技术。
LVS 的 IP 负载均衡技术是通过 IPVS 模块来实现的。IPVS 是 LVS 集群系统的核心软件,它的主要作用是:安装在 Director Server 上,同时在 Director Server 上虚拟出一个 IP 地址,用户必须通过这个虚拟的 IP 地址访问服务器。这个虚拟 IP 一般称为 LVS 的 VIP,即 Virtual IP。访问的请求首先经过 VIP 到达负载调度器,然后由负载调度器从 Real Server 列表中选择一个服务器节点相应用户的请求。
在用户的请求到达负载调度器后,调度器如何请求发送到提供服务的 Real Server 节点,而 Real Server 节点如何返回数据给用户,是 IPVS 实现的重点技术。IPVS 实现负载均衡地方式有 3 种,分别是NAT、TUN和DR。(原书后面有详细介绍,这里就不多写了,有兴趣之后再了解)。
负载均衡调度算法
动态选择的实现,就是负载调度算法。IPVS 实现了 8 种负载调度算法。分别是,轮叫调度(Round Robin)、加权轮叫调度(Weighted Round Robin)、最少连接调度(Least Connections)、加权最少连接调度(Weighted Least Connections)、基于局部性的最少连接(Locality-Based Least Connections)、带复制的基于局部性最少连接(Locality-Based Least Connections with Replication)、目标地址散列(Destination Hashing)和源地址散列(Source Hashing)。
LVS 负载均衡集群软件已经在企业和学校中得到了很好的普及,国内外很多大型的、关键性的 Web 站点也都采用了 LVS 集群软件,所以它的可靠性在实践中得到了很好印证。有很多由 LVS 构成的负载均衡系统,运行很长时间,从未进行过重新启动。这些都说明了 LVS 的高稳定性和高可靠性。
使用环境
目前仅支持 Linux 和 FreeBSD 系统作为前端 Director Server,但是支持大多数的 TCP 和 UDP 协议。支持 TCP 协议的应用有:HTTP、HTTPS、FTP、SMTP、POP3、IMAP4 等等;支持 UDP 协议的应用有:DNS、NTP、ICP、视频和音频流播放协议等。
LVS 对 Real Server 的操作系统没有任何限制,Real Server 可运行在任何支持 TCP/IP 的操作系统上,包括 Linux,各种 UNIX(如 FreeBSD、Sun Solaris、HP Unix 等),Mac OS 和 Windows 等。
开源软件
LVS 集群软件是按 GPL(GNU Public License 许可证发行的自由软件,因此,使用者可以得到软件的源代码,并且可以根据自己的需要进行各种修改,但是修改必须以 GPL 方式发行。
第三部分 集群系统的配套应用
Heartbeat
如果负载均衡层(Load Balancer)仅由一台 Director Server 来实现 VIP 与集群资源的调度,就会面临单点故障后整个集群系统瘫痪的危险。为了实现 LVS 负载均衡系统下的高可用性,我们可以使用一些常用的 HA 软件,实现“双机互备”。
heartbeat 使 Linux-HA 项目中的一个组件,也是目前开源 HA 项目中最成功的一个例子,它提供了所有 HA 软件需要的基本功能,检测集群中的系统服务,在集群的节点间转移共享 IP 地址的所有者等。自 1999 年开始到现在,heartbeat 在行业内得到了广泛应用,也发行了很多版本,最核心的包括两个部分,其最核心包括心跳监测部分和资源接管部分,心跳监测可以通过网络链路和串口进行,而且支持冗余链路,它们之间相互发送报文来告诉对方自己当前的状态,如果在指定的时间内未受到对方发送的报文,那么就认为对方失效,这时需启动资源接管模块来接管运 行在对方主机上的资源或者服务。
IP 网络存储 iSCSI
主要介绍基于 IP SAN 的网络存储 iSCSI。iSCSI 技术以其低廉的构建成本和优秀的存储性能,博得了很多 CIO 和存储管理员的喜爱,目前陆续进入企业应用领域,推动了企业的存储环境向集中式转变。虽然,目前对于 iSCSI 应该在什么样的环境中使用还存在着诸多争议,但是 iSCSI 的前途使光明的,在未来的存储世界中,iSCSI 一定会占据重要的席位。
SCSI 是小型计算机系统接口(Small Computer System Interface)的简称,SCSI 作为输入/输出接口,主要用于硬盘、光盘、磁带机、扫描仪、打印机等设备。
FC 介绍
FC 是光纤通道(Fiber Channel)的简称,是一种适合于千兆数据传输的、成熟而安全的解决方案,与传统的 SCSI 技术相比,FC 提供更高的数据传输速率,更远的传输距离,更多的设备连接支持,更稳定的性能,更简易的安装。
DAS 介绍
DAS 是直联式存储(Directed-Attached Storage)的简称,是指将存储设备通过 SCSI 接口或光纤通道直接连接到一台计算机上,当服务器在地理上比较分散,很暗通过远程进行互连时,DAS 是比较好的解决方案。但是这种存储方式只能通过与之连接的主机进行访问,不能实现数据与其他主机的共享,同时,DAS 会占用服务器操作系统资源,例如 CPU 资源、IO 资源等,并且数据量越大,占用操作系统资源就越严重。
NAS 介绍
网络接入存储(Network-Attached Storage)简称 NAS,它通过网络交换机连接存储系统和服务器,建立专门用于数据存储的私有网络,用户通过 TCP/IP 协议访问数据,采用业界标准文件共享协议如 NFS、HTTP、CIFS 来实现基于文件级的数据共享。NAS 存储使文件共享访问变得更方便和快捷,并且能很容易地增加存储容量。通过企业化的文件服务器和存储技术相结合,NAS 为那些需要共享大量文件数据的企业提供了一个高效的、可靠的、高性价比的解决方案。但是 NAS 也有一定的局限性,它会受到网络带宽和网络拥堵的影响,在一定程度上限制了 NAS 的网络传输能力。
SAN 介绍
存储区域网络(Storage Area Network)简称 SAN,它是一种通过光纤交换机、光线路由器、光纤集线器等设备将磁盘阵列、磁带等存储设备与相关服务器连接起来的高速专用子网。
SAN 由三个部分组成,分别是连接设备(如路由器、光纤交换机和 Hub)、接口(如 SCSI、FC)、通信协议(如 IP 和 SCSI)。这三部分再加上存储设备和服务器就构成了一个 SAN 系统。SAN 提供了一个灵活的、高性能的和高扩展性的存储网络环境,它可以更加有效地传输海量地数据块。由于采用了光纤接口,因此 SAN 还具有更高的带宽,同时,SAN 也使统一管理和集中控制实现简化。现在 SAN 已经广泛应用于 ISP 和银行等,随着用户业务量增大,SAN 的应用前景将越来越光明。
iSCSI 的概念
iSCSI,即 internet SCSI,是 IETF 制定的一项标准,用于将 SCSI 数据块映射为以太网数据包。从根本上说,它是一种基于 IP Storage 理论的新型存储技术,该技术将存储行业广泛应用的 SCSI 接口技术 IP 网络技术相结合,可以在 IP 网络上构建 SAN。简单地说,iSCSI 就是在 IP 网络上运行 SCSI 协议的一种网络存储技术。iSCSI 最初由 Cisco 和 IBM 两家开发,并且得到了广大 IP 存储技术爱好者的大力支持,这几年迅速的发展壮大。
FC SAN 与 IP SAN
在 iSCSI 技术出现后,通过 IP 技术搭建的存储网络也应运而生,SAN 技术也就出现了两种不同的实现方式,即 FC SAN 与 IP SAN。简单来说,以光纤搭建的存储网络就是 FC SAN,以 SCSI 技术搭建的存储网络叫做 IP SAN。