1. 引言
水情分中心在水文行业中承担重要的水情报汛任务 [1],水情报汛流程包含原始数据接收、中间过程处理、成果数据发送。为保证水情报汛时效,水情分中心工作人员采用了多种预防措施,包括数据处理流程中各项软、硬件的主备功能、多信道冗余等,这将造成水情报汛过程中涉及多套专用软件,如果全部采用传统主备方案将会耗费大量的服务器资源,增加水情报汛人员的维护工作量,而且当出现故障需要主备切换时,操作流程繁琐,不利于快速恢复报汛工作,报汛时效更不能保证。
2. 企业传统机房面临的问题
企业传统机房的服务器通常都是专机专用,一个主机只用作一个主要的服务。例如网站、数据库、域控制器、FTP服务器等部署到专门的服务器,这样做能够隔离问题,如网站中毒也不会影响到数据库服务器,因此很少在一台主机上安装多个应用服务 [2]。传统机房面临的问题主要表现在以下三个方面。
2.1. 硬件利用率低
我们在采购服务器时,通常会按照服务器负载最重的情况来选定服务器的硬件配置,但是大部分时间服务器的负载达不到最高,大部分时间CPU利用率10%,内存利用率30%,这就意味着90%的CPU计算能力在浪费,70%的内存存在浪费。
2.2. 应用依赖硬件
作为网络管理人员最担心的莫过于硬件故障造成服务不可用,比如数据库服务器,硬盘损坏,主板故障都会造成系统启动失败,数据库不能访问。
2.3. 无法将系统迁移到新的主机
如果单位的主机要淘汰,买了配置高的主机,没有办法将现有的主机操作系统和应用迁移到新的主机上。需要重新装系统和相应的应用程序。
下面介绍的虚拟化技术能够帮助我们解决上述问题。
3. 虚拟化的介绍
虚拟化是通过虚拟化技术将一台计算机虚拟为多台逻辑计算机。在一台计算机上能同时运行多个逻辑计算机,每个逻辑计算机可运行不同的操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率 [3]。如图1所示,物理体系结构就是传统机房中操作系统安装在主机上,在操作系统中安装服务或应用程序,操作系统和硬件绑定;虚拟化结构,计算机硬件上安装虚拟化平台,在虚拟化平台中安装操作系统,在操作系统中安装应用程序或服务,操作系统不直接接触计算机硬件,因此虚拟化平台中的操作系统可以复制粘贴到其它的主机上运行。一个主机上的虚拟化共用主机CPU和内存资源。虚拟化有以下优点:
· 虚拟机和物理机文件可互访。比如物理机中的一个文件如何拷贝到虚拟机。在测试和工作的过程中,经常让虚拟机使用物理机中的文件,或让物理机使用虚拟机中的文件。文件互访的方式有很多,比如直接复制粘贴和通过网络实现物理机和虚拟机的文件共享文件。常用的直接复制粘贴,在虚拟机中有个重要的VMware Tools工具,就能实现互访功能,这可是两个完全不同的环境,这是最省事的方法,适用于文件不太大的情况。
· 虚拟机使用物理机的USB接口设备。虚拟机可以使用物理机的USB接口,如U盘和带USB接口的打印机。但物理机和虚拟机不能同时使用该USB设备,我们可以控制虚拟机是否使用物理机的USB设备。更重要的是我们可以根据需要可以添加USB接口,满足使用的需求。
· 虚拟机快照。这个功能,可以在虚拟机关机或者开机运行状态时保存当前快照时的状态,此功能是物理机无法实现的,物理机想要备份安装好的系统,只能使用ghost软件备份系统分区或者整个磁盘。日常工作中,我们首先创建好虚拟机环境,然后做各种实验,当实验失败后我们可以还原到当时快照时一个干净的状态,避免大量搭建虚拟机、服务器中毒等大量的重复工作。
· 虚拟机克隆。当工作中需要安装不同的生产业务软件在相同的系统上时,我们可以使用此功能。比如我们需要多台windows server2008 r2系统时,首先创建一台标准的系统,然后克隆,避免再装系统耽误大量时间。
· 虚拟机配置。可以根据自身的需求,提高或者降低其配置,如CPU、网卡、内存、存储空间等,避免购买硬件设施,增加成本。
4. 设计方案
基于虚拟化平台及其技术的应用,虚拟化平台见图2。我们设计了一套水情分中心报汛架构,该套设计方案主要应用了单机服务器虚拟化技术、数据库镜像技术和文件同步技术。水情分中心最多只需要两台高性能服务器即可完成全部软硬件的主备工作。在一台物理服务器上安装虚拟化平台,虚拟多套操作系统,分别承载不同的水情报汛软件,包括原始数据接收软件、中间数据处理软件、成果数据发送软件、数据库软件等。在另一台物理服务器上完全相同的建立一套虚拟化应用,并作为备机使用,两台物理服务器采用心跳线连接通信,主服务器上所有虚拟化系统操作全部利用心跳线镜像和同步至备机,使备用服务器上的虚拟化环境与主服务器实时同步,包括数据库、文件资料和配置信息等。全部备用系统始终为热机状态。一旦主服务器出现故障,操作人员只需通过现场网线拔插操作和简单的IP地址配置,即可完成主备切换。以数据库为例,当主服务器上的数据库所在虚拟化系统出现故障,只需拔掉主服务器上对应的网线,再插入备服务器对应的网口,然后在备用数据库虚拟化系统中进行数据库镜像同步的停用操作就可以正常启动备用数据库为主数据库使用。
5. 数据库同步在虚拟化中的应用
基于虚拟化平台,我们使用了数据库同步的功能。这个功能极大地提高了相应流量报汛的时效性。数据库同步是基于两台虚拟机在同一个网段,计算机名和登录密码一致,数据库名和密码一致的基础上,利用高可用技术实现两个不同服务器上的数据库实时同步,即镜像。就像照镜子一样,比如给数据库1写入数据,它会同时写入数据库2。同步后,会产生大量日志文件,如果这些日志文件没有得到截断,它会源源不断的写入主备库,短时间内日志文件会占用服务器资源,最终导致服务器塌陷。所以数据库同步后我们要及时创建日志截断作业,根据需求,定期定时删除日志文件,保障系统稳定运行。数据库同步前,在相应流量报汛主服务器故障后,值班人员需要切换到备用服务器时,首先要清理待发日志,这些日志占用存储高达几十g,如果不及时清理会重复发送几千甚至上万条数据,严重着会导致系统死机短时间无法启用。另外,清理日志会占用时间,缩短主备切换效率。同步后上述问题游刃而余的得到解决。表1为数据库同步前后优劣的对比分析。

Table 1. Comparison of features before and after database synchronization
表1. 数据库同步前后特性对比
6. 创新点
1) 采用单机虚拟化技术实现主备架构,数据接收、处理、发送程序分别在独立的操作系统中运行。此方案避免了程序相互干扰,最大限度利用了硬件资源,简化了系统架构从而简化了操作难度。
2) 采用物理主机上实体网口一一对应虚拟主机逻辑网口的策略,清晰的划分虚拟主机网口,有利于线路主备切换操作。
3) 采用改良后的sql server镜像同步技术,将以前的主、镜像和鉴证服务器的三台服务器简化为主、备两台服务器模型,有利于提升数据库稳定性。
4) 采用同步软件进行文件同步,确保主、备服务器上配置文件、数据文件的一致性。
5) 采用主、备串口服务器连接外设,虚拟机通过IP地址寻找硬件设备,外联设备不与服务器直连,有效降低了外设与服务器的依赖。
7. 实用性评价
1) 本架构使用的单机虚拟化技术与主备数据库镜像同步方案,逻辑清晰易懂、操作简单易学、主备切换顺畅、架构非常稳定,水情分中心值班管理人员仅需一个星期左右时间理解和学习便可以独自构建和维护,易于推广。
2) 由于实现了数据库主、备实时同步,用于成果数据发送的水情信息交换系统进行主、备切换时,不用担心将以前的数据进行重复发送,在切换时不再清理待发数据,进行主、备切换时亦可实现数据发送的无缝衔接。
3) 本架构所有服务器、交换机等硬件,以及报汛软件均采用热备技术,通过虚拟机的管理口对主、备软件进行状态监控,不仅保证了备机的可用性,又缩短了主、备切换时间。
4) 为进一步检验方案的实用性与提高人员的操作熟练度,我们定期组织人员进行主备切换,以年度为单位,轮流交替,确保两套硬件与软件系统逐年交替使用。
8. 成效
1) 长江水利委员会水文局长江上游水文水资源勘测局下属水情分中心自从2016年起逐步按照此方案进行构建,目前运行状态稳定,水情报汛工作成效显著。
2) 水情分中心采用统一的报汛架构,为工作检查、经验交流提供了有利的基础条件。
3) 优化了应急方案,缩短了应急处理时间,提高了应急处理效率。