论文部分内容阅读
[摘要]数据库系统作为电视台播出系统的核心,其安全性和稳定性尤为重要,总局62号令也对播出数据库提出了明确的要求。本文介绍了江苏台如何根据自身播出系统的特点,对各数据库双机热播方案进行比较,并介绍了通过NEC集群软件实现了镜像型数据库集群,对该集群的特点做了简单介绍。
[关键词]播出系统 数据库 集群 双机热备 镜像
数据库系统作为播出业务支撑的核心,是最为关键的系统平台软件,整个系统中除了视音频文件之外,其他所有节目的元数据信息、用户信息、系统配置信息以及系统日志都是由数据库统一管理,其重要性不言而喻。一旦数据库出现故障势必会影响到节目的正常播出,甚至造成严重的播出事故。
在国家广电总局62号令《广播电视安全播出管理规定》上对电视播出系统的数据库也提出了明确要求:二级以上的电视台播出系统所用的数据库服务器应采用双机热备方式,并能自动切换。而江苏台播出系统原有数据库没有实现双机热备和自动故障切换。为了满足62号令要求,进一步确保安全播出,我们对我台播出数据库系统进行了升级。
一、原数据库概况
江苏台播出原数据库系统由3台HP DL380服务器组成,操作系统采用Windows 2003 Server,数据库选用SQL Server2005企业版,其架构如图1所示:
主数据库每一个小时通过快照发布将数据推送至备数据库,实现主、备数据库的数据同步。同时主数据库按照策略定时做本地的完整备份和差异备份,并定期将备份文件推送至备数据库。采取这种方式虽然能实现主、备数据库之间的切换,但是主、备数据库的在切换前需要进行数据恢复操作并且不能实现数据的实时同步,切换时需要手动修改DNS配置不能实现自动切换,不满足总局62号令要求。
二、各种双机热播方案比较
目前数据库集群系统中性能最优秀最稳定的当属Oracle RAC,但是根据我台本次数据库改造为在线进行的实际情况,若将数据库系统更换成Oracle RAC,那么所有播出相关的应用软件都需要进行修改,系统变动太大,风险太高。
所以我们最终决定仍然使用sQL Server数据库系统,实现数据库的双机热备,尽量将数据库系统升级改造对整个系统的影响降到最小。前期通过调研,我们对以下几种方案进行了比较:
方案一:通过MSCS构建SQL Server集群实现双机热备
MSCS是一个Windows Server企业版中的内建功能。它支持两个或者更多服务器节点连接起来形成一个“集群”,来获得更高的可用性和对数据和应用更简便的管理。MSCS可以自动的检查到服务器或者应用的失效,并从中恢复。
这种集群设计使用软件“心跳”来检测应用或者服务器的失效。在服务器失效的事件中,它会自动将资源(比如磁盘和IP地址)的所有权从失效的服务器转移到活动的服务器。为了保持主、备机数据的一致性,采取这种方式构建集群要使用共享盘阵,硬件成本投入相对较高,且共享盘阵为一单溃点。
方案二:通过SQL Server镜像功能实现双机热备
通过SQL Server系统自身的镜像功能实现双机热备,需要主机、备机以及见证共3台服务器,数据库镜像是将数据库事务处理从一个SQL Server数据库移动到不同SQL Server环境中的另一个SQL Server数据库中。镜像数据库不能直接访问,它只用在错误恢复的情况下才可以被访问。见证服务器是在判断什么时候进行错误恢复的时候,用于主数据库和镜像之间内部交流,当主数据库服务出现异常时,它实现了2比1投票的能力,可通过见证服务器实现主、备服务器的自动切换。
通过这种方式不需要额外增加软、硬件就能实现双机热备,但是主、备服务器提供的服务地址不一样,需要应用软件本身支持主、备数据库服务地址的切换。而我台播出软件本身不支持主、备数据库服务地址切换,需要修改播出软件,或者使用第三方软件虚拟出一个统一的服务地址,才能实现真正的热备切换。
方案三:通过第三方软件实现双机热备
目前市场上有很多第三方的集群软件(比如:NEC ExpressCluster、LifeKeeper、EMC Legato等),它们都是通过软件实现主、备机的数据同步,可监控包括服务器、网络和数据在内的系统资源与应用的状态,在第一个服务器无法修复故障的情况下,自动故障恢复至第二个服务器,集群软件一般也支持共享盘阵方式。这些集群软件能够提供虚拟IP,实现虚拟IP与实际服务器问的无缝切换,从而提高系统的高可用性。
根据对上述三种方案的分析对比,本着以对系统影响最小和方便运维的原则,我们最终选择了采用NEC EXPRESSCLUSTER构建镜像型的数据库集群。主要从以下几方面考虑的:
1.就三种方案而言,只有一、三两个方案比较符合我们实际情况,对系统的变动最小,最为可行。
2.使用MSCS集群管理服务必须要配置共享盘阵,而配置共享盘阵除了增加了投入外也增加了系统的复杂性,使系统存在单溃点。
3.通过测试利用NEC 集群软件构建的镜像型集群从稳定性、故障切换、数据恢复等各方便都能满足我们的要求。
三、通过NEC EXPRESSCLUSTER构建镜像型集群
本次数据库系统改造方案采用镜像型集群,集群系统中的SQL Server数据库服务器有二台,其中一台为待机服务器,进行热备,在这二台服务器上都需要安装NEC EXPRESSCLUSTER集群软件。其中一台服务器发生故障(故障包括IP地址,OS死机、MSSQL服务故障、硬件故障等)都将切换到待机服务器上。
同时配置了一台冷备服务器,主数据库服务器作为发布服务器,定期生成播出数据库的快照并发布,冷备服务器采用订阅快照的方式实现与主数据库之间的数据复制。系统架构图如图2所示。 1.硬件配置
本系统采用两个HP DL 380 G7服务器构成数据库集群,每台服务器以RAID 1方式配置了两个RAID组,一个用于操作系统,另外一个用于存储数据库数据文件。每台服务器配置两块千兆以太网卡分别用于心跳检测和数据访问。
2.软件配置
两台服务器分别安装了Windows Server 2008企业版,数据库系统选用SQL Server 2008,集群软件选用NEC EXPRESSCLUSTER X 3.0 forWindows。
3.数据库集群配置
·硬盘分区配置
如图2所示,首先在硬盘分区上,基于NECEXPRESSCLUSTER集群软件构建镜像型集群,每台服务器都需要需要单独划分“集群分区”和“数据分区”,并且要求两台服务器分区使用的盘符名必须相同,镜像分区必须以Byte为单位大小完全一致,否则可能造成数据无法正常同步。此外,集群分区必须使用RAW文件系统,RAw文件系统是指一个没有被NT文件系统(FAT或NTFS)格式化的磁盘分区。
集群中每台服务器均配置了双网卡,其中一个网卡用于主、备服务器问心跳连接,另外一个网卡连接接入交换机,EXPRESSCLUSTER软件能够虚拟出一个浮动IP对外提供服务,这样可以实现主、备机切换时对客户端而言是完全透明的。
·失效切换组配置
如图3所示,本方案中配置了一个名为“failoverl”的失效切换组,该组包括三个资源:1.名为“NMS-DB”的浮动IP地址资源,由它实现系统对外的浮动IP地址“172.27.104.5”是指向哪台服务器;2.名为“mdl”的镜像磁盘资源,通过它确定当前哪台服务器的磁盘处于在线状态,哪台服务器的磁盘处于镜像状态;3.名为“service-sql”的服务资源,通过它确定是哪台服务器提供sql server数据库服务。
在集群检测到在线服务器故障进行失效切换时,这3个资源同时切换到待机服务器上。
·监视资源配置:
监视资源是指对指定监视对象进行监视的资源,发现监视对象出现异常时,重启组资源或进行失效切换,由它向集群系统提供是否进行“失效切换”的依据。如图三所示,本系统方案中配置了4个监视资源,分别是:1.ipw网络监视资源,通过它监视集群中个服务器的网络连接状态是否正常;2.mdn wl监视用于镜像连接的网络。若使用指定镜像连接进行镜像数据通信失败,则判断为异常;3.mdwl对镜像分区设备(镜像驱动程序)的完整性进行监视;4.serivew-sql监视集群中各服务器sqlserver服务是否正常。若监视资源发现在线服务器相关资源出现异常,它会控制集群自动进行失效切换,若仅是待机服务器资源异常,它会进行报警提示。
四、数据库集群测试
采用这种方案我们比较担心的主要有几点:第一、集群软件本身是否稳定,会不会因为集群软件的问题造成系统异常;第二、通过软件数据镜像是否能确保故障切换时数据的一致性,以及数据恢复的效率;第三、实际运行中,集群软件是否能有效地检测到系统故障,从而进行自动切换。为此,我们做了以下测试:
1.集群故障侦测及失效切换测试
在测试中,我们模拟了主服务器网络中断、sqlserver服务器停止以及系统关机等故障,集群管理软件都能够在15-20秒内检测到故障,并完成主、备切换。经过测试,切换过程完全透明,客户端不需要执行任何操作,数据库系统仅在这10几秒的故障侦测和切换过程中不能正常访问,基本不会对系统运行造成任何影响,用户体验很好。
2.数据恢复测试
通过集群管理软件手动执行主、备服务器磁盘完全镜像,经过测试以目前江苏台数据库大小为1GB为例,执行全盘恢复仅需要2分钟左右,而差异恢复仅需要几秒钟时间。
3.集群稳定性测试
针对集群稳定性做了几组测试:对备服务器非正常关机;对主服务器非正常关机;对主、备服务器同时非正常关机。测试结果显示单台服务器非正常关机,集群均能够有效进行故障侦测和切换,并且不会影响到集群和数据库系统的运行,在机器重新启动后,集群能正常进行数据和状态恢复。在主、备服务器均非正常关机的情况下,再次启动集群恢复时间相对较长,需要约20分钟左右。
4.卸载集群测试
我们分别对主、备数据库服务器的NEC集群软件进行了卸载,在卸载后主、备数据库服务器均能独立正常工作。这个测试实验表明,即便出现集群软件完全宕机无法使用的极端情况,我们还可以通过卸载集群软件的方法来确保数据库系统正常运行。
五、总结
数据库作为播出系统的核心,对它进行在线的改造往往比新建系统难得多,所以我们在做方案设计时也进行了反复的斟酌,主要考虑在满足总局62号令要求的前提下如何安全、平稳地完成数据库的改造。目前江苏台采用的这种纯软方式构建的数据集群架构既经济、又安全,运行了近一年未出现任何异常,为我台的安全播出提供了有力的保障。
[关键词]播出系统 数据库 集群 双机热备 镜像
数据库系统作为播出业务支撑的核心,是最为关键的系统平台软件,整个系统中除了视音频文件之外,其他所有节目的元数据信息、用户信息、系统配置信息以及系统日志都是由数据库统一管理,其重要性不言而喻。一旦数据库出现故障势必会影响到节目的正常播出,甚至造成严重的播出事故。
在国家广电总局62号令《广播电视安全播出管理规定》上对电视播出系统的数据库也提出了明确要求:二级以上的电视台播出系统所用的数据库服务器应采用双机热备方式,并能自动切换。而江苏台播出系统原有数据库没有实现双机热备和自动故障切换。为了满足62号令要求,进一步确保安全播出,我们对我台播出数据库系统进行了升级。
一、原数据库概况
江苏台播出原数据库系统由3台HP DL380服务器组成,操作系统采用Windows 2003 Server,数据库选用SQL Server2005企业版,其架构如图1所示:
主数据库每一个小时通过快照发布将数据推送至备数据库,实现主、备数据库的数据同步。同时主数据库按照策略定时做本地的完整备份和差异备份,并定期将备份文件推送至备数据库。采取这种方式虽然能实现主、备数据库之间的切换,但是主、备数据库的在切换前需要进行数据恢复操作并且不能实现数据的实时同步,切换时需要手动修改DNS配置不能实现自动切换,不满足总局62号令要求。
二、各种双机热播方案比较
目前数据库集群系统中性能最优秀最稳定的当属Oracle RAC,但是根据我台本次数据库改造为在线进行的实际情况,若将数据库系统更换成Oracle RAC,那么所有播出相关的应用软件都需要进行修改,系统变动太大,风险太高。
所以我们最终决定仍然使用sQL Server数据库系统,实现数据库的双机热备,尽量将数据库系统升级改造对整个系统的影响降到最小。前期通过调研,我们对以下几种方案进行了比较:
方案一:通过MSCS构建SQL Server集群实现双机热备
MSCS是一个Windows Server企业版中的内建功能。它支持两个或者更多服务器节点连接起来形成一个“集群”,来获得更高的可用性和对数据和应用更简便的管理。MSCS可以自动的检查到服务器或者应用的失效,并从中恢复。
这种集群设计使用软件“心跳”来检测应用或者服务器的失效。在服务器失效的事件中,它会自动将资源(比如磁盘和IP地址)的所有权从失效的服务器转移到活动的服务器。为了保持主、备机数据的一致性,采取这种方式构建集群要使用共享盘阵,硬件成本投入相对较高,且共享盘阵为一单溃点。
方案二:通过SQL Server镜像功能实现双机热备
通过SQL Server系统自身的镜像功能实现双机热备,需要主机、备机以及见证共3台服务器,数据库镜像是将数据库事务处理从一个SQL Server数据库移动到不同SQL Server环境中的另一个SQL Server数据库中。镜像数据库不能直接访问,它只用在错误恢复的情况下才可以被访问。见证服务器是在判断什么时候进行错误恢复的时候,用于主数据库和镜像之间内部交流,当主数据库服务出现异常时,它实现了2比1投票的能力,可通过见证服务器实现主、备服务器的自动切换。
通过这种方式不需要额外增加软、硬件就能实现双机热备,但是主、备服务器提供的服务地址不一样,需要应用软件本身支持主、备数据库服务地址的切换。而我台播出软件本身不支持主、备数据库服务地址切换,需要修改播出软件,或者使用第三方软件虚拟出一个统一的服务地址,才能实现真正的热备切换。
方案三:通过第三方软件实现双机热备
目前市场上有很多第三方的集群软件(比如:NEC ExpressCluster、LifeKeeper、EMC Legato等),它们都是通过软件实现主、备机的数据同步,可监控包括服务器、网络和数据在内的系统资源与应用的状态,在第一个服务器无法修复故障的情况下,自动故障恢复至第二个服务器,集群软件一般也支持共享盘阵方式。这些集群软件能够提供虚拟IP,实现虚拟IP与实际服务器问的无缝切换,从而提高系统的高可用性。
根据对上述三种方案的分析对比,本着以对系统影响最小和方便运维的原则,我们最终选择了采用NEC EXPRESSCLUSTER构建镜像型的数据库集群。主要从以下几方面考虑的:
1.就三种方案而言,只有一、三两个方案比较符合我们实际情况,对系统的变动最小,最为可行。
2.使用MSCS集群管理服务必须要配置共享盘阵,而配置共享盘阵除了增加了投入外也增加了系统的复杂性,使系统存在单溃点。
3.通过测试利用NEC 集群软件构建的镜像型集群从稳定性、故障切换、数据恢复等各方便都能满足我们的要求。
三、通过NEC EXPRESSCLUSTER构建镜像型集群
本次数据库系统改造方案采用镜像型集群,集群系统中的SQL Server数据库服务器有二台,其中一台为待机服务器,进行热备,在这二台服务器上都需要安装NEC EXPRESSCLUSTER集群软件。其中一台服务器发生故障(故障包括IP地址,OS死机、MSSQL服务故障、硬件故障等)都将切换到待机服务器上。
同时配置了一台冷备服务器,主数据库服务器作为发布服务器,定期生成播出数据库的快照并发布,冷备服务器采用订阅快照的方式实现与主数据库之间的数据复制。系统架构图如图2所示。 1.硬件配置
本系统采用两个HP DL 380 G7服务器构成数据库集群,每台服务器以RAID 1方式配置了两个RAID组,一个用于操作系统,另外一个用于存储数据库数据文件。每台服务器配置两块千兆以太网卡分别用于心跳检测和数据访问。
2.软件配置
两台服务器分别安装了Windows Server 2008企业版,数据库系统选用SQL Server 2008,集群软件选用NEC EXPRESSCLUSTER X 3.0 forWindows。
3.数据库集群配置
·硬盘分区配置
如图2所示,首先在硬盘分区上,基于NECEXPRESSCLUSTER集群软件构建镜像型集群,每台服务器都需要需要单独划分“集群分区”和“数据分区”,并且要求两台服务器分区使用的盘符名必须相同,镜像分区必须以Byte为单位大小完全一致,否则可能造成数据无法正常同步。此外,集群分区必须使用RAW文件系统,RAw文件系统是指一个没有被NT文件系统(FAT或NTFS)格式化的磁盘分区。
集群中每台服务器均配置了双网卡,其中一个网卡用于主、备服务器问心跳连接,另外一个网卡连接接入交换机,EXPRESSCLUSTER软件能够虚拟出一个浮动IP对外提供服务,这样可以实现主、备机切换时对客户端而言是完全透明的。
·失效切换组配置
如图3所示,本方案中配置了一个名为“failoverl”的失效切换组,该组包括三个资源:1.名为“NMS-DB”的浮动IP地址资源,由它实现系统对外的浮动IP地址“172.27.104.5”是指向哪台服务器;2.名为“mdl”的镜像磁盘资源,通过它确定当前哪台服务器的磁盘处于在线状态,哪台服务器的磁盘处于镜像状态;3.名为“service-sql”的服务资源,通过它确定是哪台服务器提供sql server数据库服务。
在集群检测到在线服务器故障进行失效切换时,这3个资源同时切换到待机服务器上。
·监视资源配置:
监视资源是指对指定监视对象进行监视的资源,发现监视对象出现异常时,重启组资源或进行失效切换,由它向集群系统提供是否进行“失效切换”的依据。如图三所示,本系统方案中配置了4个监视资源,分别是:1.ipw网络监视资源,通过它监视集群中个服务器的网络连接状态是否正常;2.mdn wl监视用于镜像连接的网络。若使用指定镜像连接进行镜像数据通信失败,则判断为异常;3.mdwl对镜像分区设备(镜像驱动程序)的完整性进行监视;4.serivew-sql监视集群中各服务器sqlserver服务是否正常。若监视资源发现在线服务器相关资源出现异常,它会控制集群自动进行失效切换,若仅是待机服务器资源异常,它会进行报警提示。
四、数据库集群测试
采用这种方案我们比较担心的主要有几点:第一、集群软件本身是否稳定,会不会因为集群软件的问题造成系统异常;第二、通过软件数据镜像是否能确保故障切换时数据的一致性,以及数据恢复的效率;第三、实际运行中,集群软件是否能有效地检测到系统故障,从而进行自动切换。为此,我们做了以下测试:
1.集群故障侦测及失效切换测试
在测试中,我们模拟了主服务器网络中断、sqlserver服务器停止以及系统关机等故障,集群管理软件都能够在15-20秒内检测到故障,并完成主、备切换。经过测试,切换过程完全透明,客户端不需要执行任何操作,数据库系统仅在这10几秒的故障侦测和切换过程中不能正常访问,基本不会对系统运行造成任何影响,用户体验很好。
2.数据恢复测试
通过集群管理软件手动执行主、备服务器磁盘完全镜像,经过测试以目前江苏台数据库大小为1GB为例,执行全盘恢复仅需要2分钟左右,而差异恢复仅需要几秒钟时间。
3.集群稳定性测试
针对集群稳定性做了几组测试:对备服务器非正常关机;对主服务器非正常关机;对主、备服务器同时非正常关机。测试结果显示单台服务器非正常关机,集群均能够有效进行故障侦测和切换,并且不会影响到集群和数据库系统的运行,在机器重新启动后,集群能正常进行数据和状态恢复。在主、备服务器均非正常关机的情况下,再次启动集群恢复时间相对较长,需要约20分钟左右。
4.卸载集群测试
我们分别对主、备数据库服务器的NEC集群软件进行了卸载,在卸载后主、备数据库服务器均能独立正常工作。这个测试实验表明,即便出现集群软件完全宕机无法使用的极端情况,我们还可以通过卸载集群软件的方法来确保数据库系统正常运行。
五、总结
数据库作为播出系统的核心,对它进行在线的改造往往比新建系统难得多,所以我们在做方案设计时也进行了反复的斟酌,主要考虑在满足总局62号令要求的前提下如何安全、平稳地完成数据库的改造。目前江苏台采用的这种纯软方式构建的数据集群架构既经济、又安全,运行了近一年未出现任何异常,为我台的安全播出提供了有力的保障。