文/喬文文 黃偉 郭捷 孫周軍
全國綜合氣象信息共享平臺CIMISS(China Integrated Meteorological Information Service System)是由中國氣象局主導研發的集數據收集與分發CTS(China Telecommunication System)、加工處理DPC(Data Processing Center)、存儲管理SOD(Service-Oriented Database)、共 享 服 務GDS(Global Data Sharing)和業務監控MCP(Monitoring and Control Platform)于一體的綜合軟件,旨在解決全國的氣象統一數據環境,規范化、標準化氣象信息業務系統和流程。
其中數據收集與分發系統子系統CTS是廣東省最主要的氣象通信系統,高時效、低延時、7*24小時運行,承擔全省各類氣象資料的收集、業務處理、分發、補調和存檔,并為CIMISS數據環境和數據中心內部業務系統提供數據和服務支撐。廣東省氣象通信系統CTS是各類氣象觀測、服務產品等數據的統一入口,它的穩定運行直接影響后續的氣象業務開展。
2016年廣東省氣象預警信息中心機房正式啟用,面臨整體業務搬遷問題。數據中心遵守循序漸進的機房搬遷原則,即先易后難,先外圍后核心,保證業務不中斷的情況下實現業務搬遷。通信系統搬遷過程中需要停機斷電,但為保證氣象數據及時準確的傳輸并避免通信系統搬遷對其他氣象業務系統造成影響,通信系統必須重建,但通信系統集群建設經費高、技術復雜,短時間內無法通過完全重建。因此對廣東省氣象通信業務進行了深入分析,設計基于單機臨時接管的搬遷策略,實現通信系統的無中斷搬遷任務,同時采用新一代國內氣象通信系統作為降級備份,避免單機故障時業務中斷的情況。
廣東省部署的CTS集群系統是分布式多機部署的全網系統,由4臺IBM X3850X5服務器、IBM Storwize V7000、SAN交換機等組成,部署運行于Linux操作系統下,共享文件系統為賽門鐵克VERITAS CFS(Cluster File System),另外CTS運行的服務器上部署了消息中間件客戶端、J2EE應用中間件、FTP軟件和數據庫。省級CMACast小站接收服務器也接入了通信系統集群,共享磁盤陣列。
CTS負責收集全省與省際共享的觀測數據、服務產品、CMACast廣播數據以及部門共享數據,除將本省氣象數據發送國家級CTS集群之外,會將所有收集到的數據一路添加業務規則后發送到CIMISSDPC系統進行加工入庫和數據服務,同時一路發送到省內氣象數據分發系統,即原新一代國內氣象通信系統完成數據中心對內和對外數據支撐服務。其中,省內氣象數據分發系統承擔了收集CMACast廣播數據、CTS推送過來的本省資料、省際共享資料和部門共享數據,并給中心其他業務系統提供數據分發工作。集群數據流程圖如圖1所示。
為保證數據傳輸的連續性和完整性,在集群關機過程中,擬構建一臺CTS單機來暫時承擔集群的工作。單機CTS上不安裝CMACast衛星廣播相關軟件,由省內氣象數據分發系統,即新一代國內氣象通信系統將收集到的CMACast數據推送到單機CTS上,以保證CIMISS系統的數據完整性。設計單機CTS業務數據流程,如圖2所示。
為了讓單機能夠承擔數據收發工作,單機版CTS要與原集群系統的軟件完全兼容,需安裝SUSE Linux操作系統、VSFTPD 、MySQL、ActiveMQ、Tomcat、JDK、CTS應用程序等,主要的操作步驟和方法如下。
(1)安裝操作系統SUSE Linux Enterprise Server 11,保證/home目錄不小于20G,并創建/bcgz、/share等目錄。
(2)為保證單機能夠正常接收用戶上傳的氣象資料,需要具備與集群系統相同的FTP用戶以及權限屬性。根據集群CTS的用戶和組信息,編寫批量創建用戶的腳本,并在單機上執行,保證單機上用戶和組與集群上保持一致。安裝VSFTPD軟件,并將集群上/etc下VSFTPD配置文件拷貝至單機相同目錄下。
(3)為保證CTS單機服務器的監控網頁、收發策略配置網頁能夠正確讀取到相關配置文件,需安裝5.5.35版本的MySQL,版本和集群上保持一致,將集群上的MySQL數據庫進行全備份,并全部導入到單機MySQL數據庫中。
(4)CTS業務運行過程中的收集分發、采集日志、日志入庫、分發任務處理進程之間的信息交換基于Active MQ消息中間件進行,其中涉及到的消息隊列由相關進程啟動時自動創建,所以在單機CTS服務器上直接用集群上原來的安裝包直接安裝Active MQ并能夠正常運行即可。Tomcat、JDK也直接用集群上的安裝包進行安裝。
(5)Rsync是一個強大的遠程數據同步工具,配置并啟動CTS單機和集群上任一服務器上的Rsync。CTS應用程序因已更新多次,無法使用原始的安裝包安裝,使用Rysnc同步集群服務上/home/cts、/bcgz/cts和/usr/local/src/apache-tomcat-6.0.29/webapps等目錄下的所有文件,/bcgz/workdir下的目錄結構到單機,同步時保持文件的權限、時間、軟硬鏈接、所有者、組等信息。此次數據同步也完成了本省自研資料打包程序的部署。
(6)驗 證。運 行ActiveMQ、JAVA_WEB、收發進程等,并模擬臺站傳輸資料,查看資料的傳輸情況。

圖1:CTS集群數據傳輸流程

圖2:CTS單機數據傳輸流程
在單機CTS實際運行過程中,若發現負載過重,則暫停新一代國內氣象通信系統給單機推送CMACast資料,待搬遷完畢后從數據下載服務平臺補調數據。
如果單機CTS出現故障,則由新一代國內氣象通信系統負責收集本省觀測資料、省際和部門共享數據,并將本省資料發送北京和分發中心內部業務系統。但新一代國內氣象通信系統為上一代氣象通信系統,無法給CIMISSDPC發送添加業務規則的數據,所以會導致CIMISS系統的缺少數據。這需要在搬遷完成后從數據下載服務平臺補調數據到CTS集群。為保證新一代氣象通信系統能夠正常接收、上行和分發數據,需要提前配置與CTS集群系統相同的FTP用戶、資料收集目錄和分發主機別名策略。
為了保障省級氣象通信系統CTS的搬遷能順利進行,搬遷后設備能正常運行,具體搬遷的實施步驟如下:
(1)利用CIMISS的負載均衡設備將CTS單機的FTP到添加到CTS服務組中,然后逐個關閉集群CTS服務節點,以便于FTP服務的平滑切換。啟動單機CTS系統所有服務,包 括MySQL、VSFTPD 、ActiveMQ、Tomcat、cts_app_parallel及cts_app_ha。
(2)啟用新一代國內氣象通信系統將CMACast資料到CTS單機的推送配置,完成CMACast資料的接入。
(3)在VCS中下線CTS集群的各個節點,檢查單機的運行情況。集群CTS服務共對外提供以下服務:CTS_MYSQL_VIP、CTS_TOMCAT_MON_VIP和CTSMQ。為避免CIMISS其他子系統與單機CTS對接修改IP地址的麻煩,將以上3個服務的IP地址綁定到單機CTS服務器,利用單機CTS提供對應的服務。利用單網卡綁定多IP地址解決CIMISS MCP與CTS之間的Web監視切換問題。
(4)硬件拆遷包括盤陣關機、主機關機、拆卸拖車、運輸、硬件預警中心機房上架、硬件加電,這些操作由專業搬遷公司完成,完成后檢查集群每臺服務器的網絡、系統及軟件運行情況。
(5)集群CTS的機器啟動后會自動加入集群,這時應在VCS中立馬下線集群上所有應用。然后停止單機的cts_app_parallel和cts_app_ha應用,解除單機CTS上的多IP綁定,再在CIMISS負載均衡中啟用CTS集群的各節點。
(6)在CIMISS負載均衡中禁用CTS單機節點,停止新一代國內氣象通信系統給CTS單機的CMACast資料推送,在VCS上啟動集群系統中的所有應用。
(7)啟動CTS單機的cts_app_parallel、cts_app_ha應用,讓積壓的文件繼續處理完畢。
(8)檢查集群上ActiveMQ消息隊列,查看MCP各類資料收發情況,查看MySQL數據庫是否正常,查看服務器磁盤空間、Eimon日志等,即完成了搬遷工作。
省級氣象通信系統CTS是CIMISS的數據源頭,并為眾多氣象業務系統提供數據服務。為保證其他氣象業務系統的正常運行,省級氣象通信系統的搬遷工作,要細化每一個環節,做好詳細的應急準備,以保證方案的成功實施。針對廣東省氣象通信系統的數據傳輸流程,為保證氣象資料的正常收發,制作了CTS單機,利用了新一代國內氣象通信系統作為降級備份,設計了合理的實施步驟,從技術層面有效地保證了搬遷在2017年2月27日的順利完成。此次搬遷工作還為以后主機實時備份和故障恢復提供了應急保障,是一次值得借鑒的經驗。