利用NFS建立民航气象数据库系统的管理

2016-05-18 13:37舒秦
电脑知识与技术 2016年9期

舒秦

摘要:由于近年西南多地建立民航数据库系统,且服务器有中心代维的趋势,造成中心需要管理维护的这一类服务器越来越多,未来还有可能进一步提高。针对单台服务器逐一维护,一次变动,需要大量的人力逐台修改,而这类服务器大部分配置往往非常一致,该文旨在讨论利用NFS实现运维的简化,并通过分离配置,为进一步的发展做准备。

关键词:NFS;服务器管理;服务器监控;AUTOFS;民航气象

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2016)09-0017-03

The Management of CAAC meteorological Database System Based on NFS

SHU Qin

(Meteorological Database of Meteorological Center of Southwest Air Traffic Management Bureau, Chengdu 610202, China)

Abstract: More and more local airports in southwest establish the meteorological database system of CAAC. And there is a tendency that the local-center help the local departments maintain those servers used for the meteorological database system. This article aims to discuss how to reduce the cost to maintain those servers which are very similar with each other.It is also a preparation for the further improvement.

Key words:NFS;Server Management;Server Monitor;AUTOFS;Civil Aviation Meteorology

1 概述

近年西南多地建立民航气象数据库系统,且服务器有中心代维的趋势,造成中心需要管理维护的这一类服务器越来越多,未来还有可能进一步提高。针对单台服务器逐一维护,一次变动,需要大量的人力逐台修改,本文主要集中在利用NFS实现软件的配置文件管理和服务器状态监控的简化。

2 软件配置

地方服务器的配置主要集中在两个文件夹config和msdat,特别是msdat常常因为新加入报文交换而需要进行修改。软件配置管理以软件划分,本文以民航数据库系统为例,定义airconfig文件夹,在此文件夹下,分别建立config和madat。

2.1 一种简单的实现方式

管理的基本需求是服务器进行一次修改,可影响所有被管理的服务器。在管理服务器上建立配置共享区,如图1所示。所有被管理服务器修改配置文件为软链接文件,链接到服务器的配置共享区文件。

如此,被管理服务器程序运行时,调用的配置其实是管理服务器端的配置。一旦服务器端对配置作出修改,所有被管理服务器最多只需重新启动程序即可生效。新添加一台类似被管理服务器,管理服务器基本上无需更改,非常方便。但此方式存在所有管理配置必须一致,且管理服务器一旦出现问题,所有被管理服务器都出现问题,也即存在风险集中点。同时,有些配置需要在相同运行环境下进行编译,这就需要将配置下载到被管理服务器上修改编译后再复制回管理服务器,并再次修改被管理服务器的配置,非常麻烦。

2.2 较为复杂灵活的方式

2.2.1 配置管理需求分析

针对上一种简单方式的缺点与实际应用的需要,分析配置管理的限制和需求如下:

首先,出于安全的考虑,被管理的地方服务器不能修改中心的管理服务器。

第二,在配置出现变更时,管理服务器端修改一次,即可完成所有被管理服务器的修改。

第三,管理服务器出现故障时,不影响被管理服务器的运行。

第四,地方服务器虽然作为被管理端,但仍有自行更改维护自我配置的权力。

第五,中心服务器可对地方服务器的配置进行监控,如果发现不一致,可根据需要修改为一致,或者不进行修改,只通知管理员。

2.2.2 文件系统结构设计

为满足上一小节需求,最终设计文件系统结构如图2所示。以通信系统常用配置为例。

由于被管理地方服务器不能修改中心的管理服务器,但要可以修改自我的配置,因此,将共享配置设置在被管理的地方服务器上,而由作为管理端的中心服务器以NFS的方式挂载地方服务器的共享文件夹。同时为保障地方服务器的自我维护,配置文件不直接由管理服务器管理,而仍以链接的方式。如此,当地方服务器需要自行而不交由中心维护时,可直接修改自己的配置,不使用文件链接即可,如图2管理服务器端文件结构所示。

由于配置实际上保存在被管理服务器端,因此,即使中心服务器出现故障,也不会影响地方服务器的运行。

多台地方服务器或多或少,总会存在配置不一致的地方,因此,中心服务器针对一致和不一致的配置分别管理。以站点Z1的airconfig/msdat为例,Z1的实际配置为中心服务器的airconfig/msdat配置加上airconfig/msdat/Z1。前一部分为所有站点一致的部分,后一部分为Z1不一致部分。因此,加入脚本syncCon.sh。该脚本用于同步管理服务器维护的配置与被管理服务器配置的一致。主要流程如图3所示。当配置出现更改时,中心修改后,不带参数手动调用此脚本,对所有地方服务器配置立即进行所有同步。或者当某一站点配置修改后,以该站点代码为参数,对该站点进行所有配置的同步。第二个参数为同步的配置目录。参数ALL代表所有。

2.2.3 配置的监控

为防止地方服务器的误修改,中心服务器定时对中心配置版本和地方配置进行比对。实现方式为Crontab的定时调用,以参数Y或N决定是否进行同步。处理流程如图4所示。

2.2.4 地方服务器自我维护

当地方服务器希望在接受管理的前提下,自行对配置进行修改。如果管理服务器开启了配置监控并同步配置,那么地方服务器的自行修改将会在管理服务器下一次监控后失效。因此,管理服务器需要对地方服务器的修改进行反向的同步。使用脚本syncConRev.sh来实现。主要流程如图5所示。

由于反向同步为单一地方服务器的需求,因此,必须以该站点为参数。同时,由于地方服务器不可修改中心服务器,因此,该操作须由地方维护人员联系中心维护人员手动执行更改。

3 地方服务器的监控

除了配置的管理外,对地方服务器的维护还涉及系统的监控。

如果采用中心服务器逐一向地方服务器查询状态,由于目前中心服务器到地方服务器网络带宽本就不够,需要浪费大量的命令往返等待时间。因此采用地方服务器对自我的状态进行收集汇总后,统一上交到中心服务器更有效率。将地方服务器对自我运行状态的收集看着一个程序,中心需要监控的状态可以看成该程序的配置,因此,可采用上述配置管理的方式,配置到地方服务器上。地方服务器以定时任务的方式将信息收集完成后,以共享配置的方式,共享给中心服务器。不同的时,中心服务器,不对监控信息进行配置的同步管理,而只是共享文件。如图6所示。MonRes为地方服务器的监控信息,MonCon为监控的配置信息。

较为简单的监控以脚本直接实现,复杂的以可执行程序的方式,均交由crontab调用。

4 增加一台新的被管理服务器

该服务器的民航数据库通信系统已安装配置完成,且可正常运行,添加到该管理系统流程如图7所示。

被管理服务器和管理服务器建立该站点相应的用户,被管理服务器需要对配置文件结构进行修改,添加配置共享文件夹,原配置移动到共享文件夹中,原配置更改为到共享文件夹配置的软链接。在共享文件夹中建立监控配置和监控信息收集的文件夹,注意用户的权限问题。中心管理服务器端需建立站点相应的NFS文件挂载点,添加该站点的特殊配置文件夹。反向同步被管理服务器的配置,同步被管理服务器的监控信息。在被管理服务器端加入定时监控任务。手动运行看是否正常执行。

5 NFS的挂载

管理服务器端要使NFS文件系统自动挂载,需要写入/etc/rc.d/rc.local当中,以设定开机挂载。但当NFS挂载成功后,任一方脱机都可能造成另一方的等待超时,由于配置一般不会变动,配置的监视也可设置较长的时间轮询,因此,可使用autofs来进行NFS的挂载,当管理服务器需要被管理服务器信息时,自动挂载NFS文件系统,当使用完成后,自动卸载,以避免可能因为某一方意外脱机时,造成另一方的长时间等待。因此,需要将NFS的挂载信息写入autofs的配置中。

6 结束语

由上分析可知,该文件系统结构基本上能够满足统一管理的需求,但需要注意NFS的权限问题。管理服务器与被管理服务器需要建立GID与UID相同的用户,在第一种简单的实现方式上,该用户只能对管理服务器的共享文件进行读操作。后一种实现方式上,该用户需要对配置文件进行读写操作,而对于地方服务器提交监控信息,只能进行读操作。另外,一旦管理服务器出现问题,向被管理服务器发送错误的监控指令,可能引起被管理服务器出现风险。因此,管理服务器的安全非常重要。

参考文献:

[1] 鸟哥.鸟哥的Linux私房菜(基础学习篇)[M]. 3版.北京: 人民邮电出版社, 2010: 210-234, 293-344, 372-447, 493-503.

[2] 鸟哥. 鸟哥的Linux私房菜(服务器架设篇)[M]. 北京: 机械工业出版社,2012:392-420.

[3] 太极计算机股份有限公司. 《民航气象传真广播系统》通信分系统使用手册[S]. 2012: 11-26.

[4] Richard Blum, Christine Bresnahan. Linux命令行与shell脚本编程大全[M]. 武海峰, 译. 2版.北京: 人民邮电出版社, 2012: 125-133, 176-180, 200-221, 492-516.

[5] 徐诚, 高莹婷. Linux环境C程序设计[M]. 北京: 清华大学出版社, 2010: 17-21, 172-182

[6] 徐海. 基于Oracle 9i的民航气象数据管理系统设计与实现[D]. 成都: 四川大学, 2005.

[7] 陈甫. 民航气象二期数据库系统自动监控程序设计和实现[J]. 空中交通管理, 2007(B11): 31-33.

[8] 刘忆智. Linux从入门到精通[M]. 北京: 清华大学出版社, 2010: 149-161, 201-203, 414-425, 427-429.