3、集群式监控
所谓集群式监控,其实是借鉴了服务器领域的专业术语“集群(cluster)”,其含义是指虽然对外是一个透明的服务器,但内部却是多台分布式的服务器在协同工作。借用这个概念来概括大规模监控虽不一定准确,但在一定程度上反映了集群式监控的体系结构。
3.1媒体集群系统架构概述【2】
在集群式监控体系结构设计时,一般要考虑几个原则:高透明性、高可伸缩性、高可用性和易管理性。
从上述设计原则出发,集群式监控体系结构中必然要包括负载均衡器、服务器池和存储池,示意图如下:
负载调度器、服务器池和共享存储系统通过高速网络相连接,如100Mbps交换网络、Myrinet和Gigabit网络等。使用高速的网络,主要为避免当系统规模扩大时互联网络成为整个系统的瓶颈。
3.1.1 负载均衡器
一般来说,负载均衡器的可靠性较高,因为负载均衡器上运行的程序较少而且大部分程序早已经遍历过,但排除硬件老化、网络线路或者人为误操作等主要故障。因此,前端的负载均衡器有可能成为系统的单一失效点。为了避免负载均衡器失效而导致整个系统不能工作,需要设立一个从负载均衡器作为主负载均衡器的备份。两个心跳进程分别在主、从负载均衡器上运行,它们通过心跳线来相互定时地汇报各自的健康状况。当从负载均衡器不能听得主负载均衡器的心跳时,从负载均衡器通过ARP欺骗来接管集群对外的虚拟IP地址,同时接管主负载均衡器的工作来提供负载调度服务。当主负载均衡器恢复时,这里有两种方法,一是主负载均衡器自动变成从调度器,二是从负载均衡器释放虚拟IP地址,主负载均衡器收回虚拟IP地址并提供负载调度服务。同时,设置多条心跳线可以使得因心跳线故障导致误判(即从虚拟IP地址认为主虚拟IP地址已经失效,其实主虚拟IP地址还在正常工作)的概率降到最低。
3.1.2 服务器池
服务器池是由多台服务器组成的,它们响应用户的请求。服务器池的结点数目是可变的。当整个系统收到的负载超过目前所有结点的处理能力时,可以在服务器池中增加服务器来满足不断增长的请求负载。
服务器池处理负载均衡器转来的客户请求时,根据不同的应用有多种不同的处理方法,如IP隧道、直接路由等等。
3.1.3 存储池
存储池是媒体集群系统中最关键的部分,因为媒体文件往往非常大,这对存储的容量和读的速度有较高的要求。对于规模较小的媒体集群系统,例如有3至6个媒体服务器结点,存储系统可以考虑用带千兆网卡的Linux服务器,使用软件RAID和日志型文件系统。对于规模较大的媒体集群系统,最好选择对文件分段存储和文件缓存有较好支持的分布式文件系统;媒体文件分段存储在分布式文件系统的多个存储结点上,可以提高文件系统的性能和存储结点间的负载均衡;媒体文件在媒体服务器上自动地被缓存,可提高文件的访问速度。亦可以考虑在媒体服务器上开发相应的工具,如缓存工具能定时地统计出最近的热点媒体文件,将热点文件复制到本地硬盘上,并替换缓存中的非热点文件,最后通知其他媒体服务器结点它所缓存的媒体文件以及负载情况;在媒体服务器上有应用层调度工具,它收到客户的媒体服务请求,若所请求的媒体文件缓存在本地硬盘上,则直接转给本地媒体服务进程服务,否则先考虑该文件是否被其他媒体服务器缓存;如该文件被其他服务器缓存并且该服务器不忙,则将请求转给该服务器上的媒体服务进程处理,否则直接转给本地媒体服务进程,从后端的共享存储中读出媒体文件。
存储池从形态上亦有分布式存储和共享式存储两种。一般来说,媒体集群系统采用的是共享存储,其优点是媒体文件的管理人员看到统一的存储空间,使得媒体文件维护工作比较方便。当客户访问不断增加使得整个系统超载时,管理员可以很快地加入新的媒体服务器结点来处理请求。 |