Linux下基于LVS实现高可靠流媒体集群

来源 :计算机光盘软件与应用 | 被引量 : 0次 | 上传用户:wang1hnsc
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘 要:本文介绍了Linux系统的集群模块LVS及其工作在DR模式下的原理,并通过实验针对Helix流服务器从安装、配置和测试详细说明了如何利用LVS和Piranha搭建高可靠性的视频流服务的集群环境。
  关键词:集群;流媒体;高可用性;LVS;Piranha;Helix
  中图分类号:TP316
  1 LVS简述
  Linux内核从2.4版本后内置了LVS(Linux Virtual Server)模块,通过该模块提供的负载均衡功能可实现一个高性能、高可用的服务器群集,它具有良好的可靠性、可扩展性和可操作性,能以低廉的成本实现最优的服务性能。LVS提供了NAT(Network Address Translation)、TUN(IP Tunneling)和DR(Direct Routing)三种负载均衡工作模式以及包括轮询(RR)、加权最少连接(WLC)、基于局部性最少连接(LBLC)等八种调度策略[2],使用者可根据自己的实际需求进行选择配置。通常基于编解码工作方式(如Real Stream)的流媒体服务器具有高数据吞吐和高运算资源占用的特点,单台服务器难以承载大用户量的并发请求,服务常因为编解码运算和网络I/O等原因而出现瓶颈,很适合应用集群技术来提高服务能力。
  2 搭建LVS环境
  LVS本身仅实现了集群服务的功能,在现实环境中还须考虑整个集群的高可用性(High Availability,HA)问题,比如如何发现故障服务器并将其剔出集群平台。目前能与LVS进行很好协作以提升集群平台的可靠性的平台有Piranha、Keepalived、Ultra Monkey和heartbeat,这些软件各有优缺点,功能实现的侧重点也不一样,本文实验将选用Piranha平台。
  2.1 需求分析
  流媒体服务与ftp和http等网络服务的流量特征相同,请求的流量往往远小于回应的流量,因此与NAT和TUN两种模式相比,DR模式的非对称特点更适合应用于搭建流媒体服务器的优势。DR模式的原理简单来说是由Director(调度服务器)将接收到的用户请求根据策略算法选取一台Real Server(实体服务器)并把请求转发过去,后由Real Server直接回复给用户,可见,DR模式下的Director只负责调度请求,真正的响应还是由各实体Real Server完成。至于调度策略,本文实验选用较简单的轮询(RR)算法。
  2.2 环境说明与体系架构
  集群由三台服务器组成(操作系统均装为RedHat AS5,内核2.6.18),集群整体对外的公开服务虚拟地址(VIP)是10.0.1.100。其中一台用作Director安装ipvsadmin和Piranha,地址为10.0.1.101;另两台作为Real Server安装Helix流媒体服务(以下也称作Helix服务器)以rstp协议流(服务端口为554)提供音视频流服务,地址分别为10.0.1.102与10.0.1.103。
  ipvsadmin是LVS的用户交互管理工具,它以命令形式让用户对LVS的工作模式和均衡策略进行配置。虽然内核内置有LVS功能,但默认情况下因为对它未作任何配置,所以LVS模块不会被启用,只有在使用ipvsadmin进行配置后,相关的内核模块会被激活(通过lsmod命令可发现“ip_lv”等模块文件被加载)。
  Piranha作为Redhat自带的HA平台,主要实现在两个可靠性保障功能:一是能够动态监测Real Server健康状态,并通过实时监测情况动态调整LVS的策略(比如将异常的Real Server移出集群),确保Real Server的可靠性;二是基于Piranha还能实现主备双活冗余Director的环境(本文将不实现此功能),确保Director的可靠性。同时,Piranha还提供了便用的web方式管理配置界面(需安装php软件包以支持),可以认为Piranha调用ipvsadmin对LVS进行策略配置与调整,也省去了人工以ipvsadmin命令方式配置LVS的工作。
  2.3 安装及配置
  2.3.1 网络环境设置
  (1)Director
  #ifconfig eth0:1 10.0.1.100 broadcast 10.0.1.100 netmask 255.255.255.255 up
  #route add -host 10.0.1.100 dev eth0:1
  #echo "1" > /proc/sys/net/ipv4/ip_forward
  说明:在实体网卡eth0(接口名为eth0:1)上绑定虚拟地址10.0.1.100(也可通过新建network服务的网络配置文件来实现)使Director服务器能够接收来自客户端且目标为虚拟地址的请求包,同时打开转发功能开关使lvs能将数据包修改后转发给Real Server。需要注意的是,转发的数据包目标地址仍为10.0.1.100,仅仅是将目标MAC地址改为Real Server的MAC地址,因此还添加了一条从eth0:1发送此类数据包的路由策略。
  (2)Real Server
  #ifconfig lo:0 10.0.1.100 broadcast 10.0.1.100 netmask 255.255.255.255 up
  #echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore
  #echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce
  #echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore   #echo "2" > /proc/sys/net/ipv4/conf/all/arp_announce
  说明:在回环上添加一个新的接口“lo:0”,并以32位的掩码将虚拟地址10.0.1.100配置在此接口,这样做仅仅是为了让Real Server能够接收目标地址为10.0.1.100的数据包并做回应,而不会在网络上主动以此地址为源地址发起连接并传出数据。对arp_ignore、arp_announce参数的设置是为了避免Real Server对查询10.0.1.100地址的arp请求进行回应,这是因为Director和Real Server都配置了虚拟地址,但整个集群体系只允许有Director以虚拟地址的身份对外公开,及防止网络上的地址混乱同时也实现了Director成为集群体系的唯一入口。
  2.3.2 集群环境安装
  (1)在Director上安装ipvsadmin、piranha。利用chkconfig命令将ipvsadmin和piranha服务设置为开机自动运行。如果没有安装piranha,我们还需要直接通过ipvsadmin命令方式来配置LVS的策略:
  ipvsadm -A -t 10.0.1.100:554 -s rr
  ipvsadm -a -t 10.0.1.100:554 -r 10.0.1.102:554 -g
  ipvsadm -a -t 10.0.1.100:554 -r 10.0.1.103:554 -g
  (2)利用piranha的管理工具(piranha-passwd)设置管理账号(piranha)的密码,以WEB方式进入piranha的管理后台(端口为3636),在“VIRTUAL SERVERS”管理项中添加并配置我们的集群服务:
  1)[VIRTUAL SERVER]设置名称(helix-virtual-server)、服务端口(554)、虚拟地址(10.0.1.101)、掩码(255.255.255.255)、网络设备(eth0:1)、均衡策略(Round robin);
  2)[REAL SERVER]添加两台Helix服务器并分别配置名称(helix01,helix02)、地址(10.0.1.102,10.0.1.103)、权重(1,1),配置完成后勿忘将两台Helix服务器设置为激活状态;
  3)[MONITORING SCRIPTS]检测发送(DESCRIBE / RTSP/1.0\r\n\r\n)、期待接收(SET_PARAMETER)。
  与“REAL SERVER”一样,在集群配置完成后需要在“VIRTUAL SERVER”中把相应的虚拟主机激活,以上通过web方式完成的配置都会体现在piranha的配置文件/etc/sysconfig/ha/lvs.cf中。需要说明的是对Helix服务器的健康检测是基于rtsp协议[1]来进行的,向Helix服务器发送“DESCRIBE”命令请求某个视屏节目(文件)的描述,在服务器正常运行情况下将会返回以“SET_PARAMETER * RTSP/1.0”开头的响应数据,在实际中我们无须请求一个真实存在的文件(上面配置请求根下的空文件,即“/”),此时同样会收到服务器按上述的协议格式告知文件不存在的信息,作为简化处理我们只选用“SET_PARAMETER”作为期待接收的内容。
  (3)运行说明
  在Director上启动piranha需要开启pulse和piranha-gui两个服务,运行后会产生包括pulse、lvs、nanny和piranha-gui四类进程。
  1)pulse是整个piranha的主控进程,用于启动和控制所有的其他守护进程。对于主备冗余Director的环境,主Director上的pulse用于启动lvs守护进程,而备Director上的pulse则定期收发心跳信号监控主Director的状态,以实现异常情况下的Director切换。
  2)nanny监控进程运行在主Director上,监控每一个RealServer的健康状况。
  3lvs进程也运行在主Director上,通过ipvsadmin来建立与维护ipvs路由表并对每一个RealServer指派一个nanny监控进程。如果发现某个RealServer失效,则将此RealServer从I路由表中删除。
  4)piranha-gui是实现piranha的图形管理的web服务。
  2.4 测试
  在客户机电脑上利用RealPlayer播放器先后两次播放虚拟服务器上的视频文件rtsp://10.0.1.00/demo.rmvb(两台Helix服务器上均有),通过Helix自带的监控发现两台RealServer服务器的文件分别被请求一次,说明请求由虚拟服务器按照调度策略进行了分发且RealServer能够正常的响应;在Helix管理工具中可看到虚拟服务器周期性分别对两台Helix发出了心跳检测请求,且在关闭某台RealServer的Helix服务后,通过piranha管理界面发现虚拟服务器及时获知了异常情况,并调整转发策略保证服务的稳定运行。由此,说明整个基于piranha的视屏流服务集群环境已成功建立。需要说明的是,Helix默认情况下会对所有的数据请求进行日志记录,对来自Piranha高频的检测性请求进行日志是无意义的且会增加服务器的负载,因而除非进行调试或排错,正式运行时建议将来自于DR服务器的请求不做日志记录。
  3 总结
  本文通过实验介绍了如何建立一个基本的视频流集群环境,整个环境的可靠性主要体现在对后端RealServer的健康检查并实时调整转发策略,在实际应用中为达到更高级别的可靠性要求,还应实现针对前端虚拟服务器的高可用性保障,由多个Diector服务器组成前端的“局部”集群,并通过内部监控手段实现可用的冗余多活的虚拟服务器,Piranha、Keepalived、heartbeat都已实现相关的功能,可根据实际需求进行相关配置。此外,对于转发策略本文仅使用了最为简单的轮训算法作为示例,实际环境下应该针对集群中不同的服务器硬件配置、负载情况、应用类型等因素选择适用的算法以达到最优的集群性能。
  参考文献:
  [1]RTSP协议分析,http://www.cnblogs.com/qingquan/archive/2011/07/14/2106834.html.
  [2]刘玉艳.一种LVS负载均衡调度算法WLC的改进[J].制造业自动化,2010,9(32).
  [3]LVS负载均衡中arp_ignore和arp_annonuce参数配置的含义,http://www.cnblogs.com/lgfeng/archive/2012/10/16/2726308.html.
  作者简介:翟晓宁(1980-),男,硕士研究生,研究方向:软件应用系统开发研究。
  作者单位:装甲兵工程学院训练部信息管理中心,北京 100072
其他文献
摘 要:云计算技术是IT行业的发展方向,并成为各国最优先发展的技术之一。目前,阻碍云计算发展的瓶颈是云安全。云安全主要体现在用户数据的隐私保护和传统互联网、硬件设备的安全这两方面。要实现云安全,必须解决几个问题。最后指出具体使用那些云安全技术来解决云安全问题并附云安全调查报告。  关键词:云;云计算;云安全  中图分类号:TP393.01  自2006年谷歌公司提出云、云计算概念、理论及推出的“云
期刊
摘 要:Flash是主流的课件制作软件之一,它功能强大、交互性强、界面精美、应用广泛,具有其他课件制作软件不可比拟的多方面优势。本文详细介绍了Flash课件设计的特点、操作流程、注意事项及相关开发技巧等,给flash课件开发设计者一个明确的努力方向和实现目标,快速掌握flash课件开发技术,成为flash课件高手。  关键词:flash;课件;多媒体;技巧;高手;设计  中图分类号:TP317.4
期刊
摘 要:通过网络防火墙在地市级气象信息网络构架中的应用实例,介绍了如何利用网络防火墙技术加强气象信息网络之间、气象信息网络与公共网络之间的安全互通,以提高气象信息网络的安全性,保证气象信息网络的稳定运行。  关键词:气象信息;防火墙技术;安全互通  中图分类号:TP311.52  随着计算机网络技术和应用的迅猛发展,湖北省地市级气象网络系统呈现出多样性、复杂性、开放性、分散性等特点,使气象信息网络
期刊
摘 要:计算机文化教育与企事业需求碰撞的尴尬推动计算机教育向“培养信息处理岗位能力”方向发展;本课题研究人员从课程目标定位、课程内容体系、实践教学方法、考核评价机制、教学团队建设、立体化教学资源库建设等方面进行深入的研究与实践。  关键词:职业岗位能力;企业真实项目;任务驱动;课证融合;校、企、社三方合作  中图分类号:TP3-4  1 研究背景  “计算机应用基础”是是一门培养计算机信息处理核心
期刊
摘 要:在我院创建国家示范性高等职业院校的契机下,我系《c语言程序设计》课程针对原有教学资源不足的情况,创建了多层次的教学资源,包括教材及参考书、电子教案、多媒体课件、试题库、网络资源和在线练习系统,在实际使用中起到了一定的效果。  关键词:教学资源建设;c语言程序设计;网络资源建设  中图分类号:TP3-4  1 引言  1.1 课程介绍  《c语言程序设计》课程是我院警察技术系司法信息安全专业
期刊
摘 要:绘本故事是现在全世界所有儿童的阅读时尚。绘本故事不仅可以亲子阅读故事情节,学到知识,还可以帮助儿童建构精神世界,培养多元智能。因此,我将绘本引入信息技术课堂进行教学,化静为动,化枯燥为有趣,化无声为有声,让声、光、影、色、字融于一体,利用形象、生动、逼真、直观的方式激发学生的阅读兴趣,拓宽学生的阅读视野,提高各个年级学生的创作力。  关键词:绘本;信息技术;学生创作  中图分类号:G633
期刊
摘 要:《计算机文化基础》课程是高等学校非计算机专业学生接受计算机基础教育的必修课程,然而在《计算机文化基础》课的教学中仍存在着诸多困惑和不足,本文结合计算机文化基础课程的特点,总结课程的教学现状及改进该课程的教学方式、合理应用教学手段、提高教学效果和教学质量等方面提出了自己的见解。  关键词:计算机文化基础;教学现状;教学方式;教学手段  中图分类号:TP3-4  当今社会,信息技术发展日新月异
期刊
摘 要:随着社会经济的发展,学生的计算机操作技能已经成为面向社会的一项基本技能,就计算机实验教学示范中心的有效建设来说,不仅是课程教育改革条件下对计算机实验课程教学的客观要求,同时也是提高学生技能竞争力的重要措施。本文主要围绕示范中心建设的必要性以及有效措施展开了详尽的论述,期望对计算机实验教学质量的提高,能够起到有效促进作用。  关键词:计算机;实验教学;示范中心;有效建设  中图分类号:TP3
期刊
摘 要:本文结合新形势下中职电气自动化专业人才培养的思路及目标作为切入点,解析了“理实一体化”的内涵,深度剖析了在“理实一体化”视角下,中职电气自动化专业教学改革的措施,以期有利于中职电气自动化专业人才的培养。  关键词:中职;电气自动化;教学改革;理实一体化  中图分类号:TM76-4;G712  电气自动化专业具有很强的实用性质,学生需要大量的练习,培养学生的实践能力和创新能力。对于中等职业学
期刊
摘 要:为满足企业的信息化发展需求,随着科学技术的进步,原有靠经验的传统手工管理方式已经越来越不能适应现代化施工管理的要求,计算机用于工程项目建设管理已成为发展的必然趋势。Project软件的应用,在企业项目建设中有效的降低沟通成本,提高了工作效率,从而为企业创造了可观的经济效益。  关键词:管理软件;项目管理;信息化  中图分类号:TP399-CA  在如今信息化发展越来越迅速的时代,各类软件的
期刊