?

穩態強磁場實驗裝置數據管理系統設計與實現

2023-12-24 10:34李芳張俊任亭亭黎偉
數據與計算發展前沿 2023年6期
關鍵詞:強磁場磁體科學實驗

李芳,張俊*,任亭亭,黎偉

1.中國科學院合肥物質科學研究院,強磁場科學中心,安徽 合肥 230031

2.強磁場安徽重點實驗室,安徽 合肥 230031

引 言

國家重大科技基礎設施又稱為大科學裝置,主要面向國家安全中的戰略性、基礎性和前瞻性科技問題而建設,是實現基礎科學研究和多學科交叉研究前沿突破的重要基礎[1]。近年來,國內外重大科技基礎設施管理機構正逐步重視并加強對裝置的信息化管理,特別是面向多學科領域、跨地域用戶的公共實驗裝置平臺,在內外部用戶數據管理、實驗運行執行數據管理、科學實驗數據的存儲與共享等方面均提出了應用需求[2-3]。例如,美國強磁場實驗室基于FAIR(Findable,Accessible, Interoperable and Reusable)數 據 原則,設計并實現裝置采集數據的可查找、可訪問、可互操作以及可重復使用[4];日本J-PARC中子源構建了數據管理信息化基礎設施,實現對裝置原始數據、測量日志以及實驗樣本、實驗方案、研究者等其他上下文信息的歸檔和按需檢索[5];德國同步加速器ANKA 提出一種束線數據管理(BLDM)架構,支持數據收集、元數據聚合和數據攝入,并為攝取的數據提供歸檔、內容保存等服務[6];中國散裂中子源開發了一種分布式數據處理和分析環境,采用基于C/S模式的通信和數據緩存系統,提供2D/3D實驗數據的分析和可視化顯示[7];高海拔宇宙線觀測站構建了分布式的數據獲取處理架構,有效提升高能物理實驗的數據收集和處理能力[8]。

穩態強磁場實驗裝置(Steady High Magnetic Field Facility,SHMFF)是國家重大基礎設施之一,主要包括5 臺高功率水冷磁體、4 臺超導磁體、1臺混合磁體,以及配套的科學實驗測試設備以及技術裝備系統[9]。該裝置作為公共實驗平臺,為開展凝聚態物理、材料、生物學、生命科學等多類學科領域研究提供了重要的穩態強磁場實驗平臺[10]。目前,穩態強磁場裝置提供在線方式實現用戶賬號申請、實驗課題申請,而裝置數據仍以分散存儲、獨立管理等方式為主,裝置數據的檢索與分析主要依靠在單機運行的數據分析系統?,F有的裝置實驗管理與數據管理方式僅解決了實驗課題審批與機時在線分配問題,缺乏實驗前、中、后的全閉環、全生命周期在線管理,以及數據的高效檢索、實驗任務關聯、數據在線分析等功能,不利于提升裝置管理效率,發掘數據價值。

基于數據驅動的新規律、新現象的發現,已成為現代科學研究的新范式。作為重大的科技基礎設施,大科學裝置產生的數據及各類信息是核心的數字資產,數據的高效收集、共享和利用,有助于提升裝置的運行價值和前沿交叉合作。穩態強磁場裝置所產生的數據主要包括科學實驗數據和裝置運行數據兩大類,其中科學實驗數據是實驗用戶利用磁體搭配的輸運、磁性、磁光、極低溫等各類測試系統,采集樣本在強磁場環境下的實驗測試數據;裝置運行數據是裝置啟動、運行、退出的全過程中,由中央控制系統實時采集的裝置關鍵狀態數據[11],以實現對裝置的運行監測,并追溯分析裝置運行過程中出現的故障。從數據用途及使用對象上來看,科學實驗數據主要面向實驗用戶,用于分析樣品在強磁場條件下產生的實驗現象;裝置運行數據主要面向裝置運維人員,用于記錄裝置運行狀態以及分析故障。因此,在裝置數據管理上,有必要根據兩類數據的特點提供不同管理功能。

穩態強磁場實驗裝置數據管理系統提供科學實驗數據的元數據管理、裝置運行數據的檢索及波形展示功能。系統基于B/S技術架構,采用Express 框架、ORM框架和MySQL、Elasticsearch數據庫進行設計開發,集成元數據目錄管理開源項目SciCat,并支持數據接入結構的靈活擴展,提供基于Web的用戶統一身份認證與系統訪問,同時滿足實驗人員與運維人員的使用需求。

1 系統架構

系統在架構設計上遵循結構分層、服務隔離的原則和模式,在系統橫向維度可分為負載分配層、前端應用層、業務服務層、數據存儲層;在縱向維度根據系統功能劃分為實驗數據管理、實驗流程管理、裝置運行數據管理。系統主要由數據監測采集器、實驗元數據提取器、文件系統、數據庫、實驗數據服務、實驗管理服務、裝置運行數據服務、web前端等模塊構成,其中,數據監測采集器通過監測裝置中央控制系統產生的裝置運行數據、科學測試設備產生的科學實驗數據,觸發相應的數據采集操作,將數據分別存儲至數據庫和文件系統;實驗元數據提取器用于采集科學實驗元數據,并提供給SciCat后端服務實現實驗元數據的存儲與檢索;實驗管理服務提供實驗申請審批、過程管理、實驗記錄等主要業務功能,并通過與實驗數據服務和裝置數據服務交互,提供裝置運行數據檢索和波形繪制、科學實驗數據檢索和下載等操作。系統總體架構如圖1所示。

圖1 穩態強磁場實驗裝置數據管理系統架構Fig.1 Architecture of the SHMFF data management system

為提升系統擴展性和靈活性,各子系統后臺服務支持獨立部署,并通過統一的Web前端提供訪問入口,系統的用戶認證和權限分配利用單點登錄實現。系統根據不同種類數據的特點,采用文件系統和3種數據庫分別實現科學實驗數據、實驗元數據、裝置運行數據、系統業務數據的存儲訪問。其中,科學實驗數據和對應的元數據分別存儲于文件系統和MongoDB 數據庫,系統主業務數據存儲于MySQL 數據庫,裝置運行數據存儲于Elasticsearch數據庫。

2 科學實驗數據管理

2.1 SciCat開源數據目錄管理系統

SciCat 是一個基于web 的開源數據目錄管理系統,可用于管理實驗設施中獲取的原始數據和相應的元數據[12]。SciCat已在科研領域的多個大科學裝置上得到應用,如歐洲散裂中子源[13]、瑞典MAX IV 光源[14]、北京高能同步輻射光源HEPS[15]等,它構建了元數據提交、存檔、檢索的完整技術架構,并支持數據集發布以及通過數字對象標識符(DOI)提供對外引用。SciCat 采用“前后端分離”架構,包括前端(frontend)Catanie和后端(backend)Catamel,其中前端基于Angular和Ngrx 開發,通過瀏覽器展示科學實驗元數據目錄應用,為科學實驗元數據集的發布、存檔等操作提供一個可檢索的界面;后端基于Node.JS開發,提供科學實驗元數據管理業務邏輯實現,并使用Loopback 框架提供REST API 的創建和訪問。SciCat使用MongoDB數據庫進行元數據存儲,可適應元數據模型結構的變更和擴展。

穩態強磁場裝置的科學數據管理模塊基于SciCat開展設計研發,并采用單點登錄技術實現統一的系統賬戶管理。在技術實現層面,科學數據管理主要包括元數據結構的設計,以及實驗元數據的采集與存儲。

2.2 科學實驗元數據結構

裝置科學實驗數據主要來源于高場水冷磁體搭配的各類科學實驗測試系統,包括多功能物性測量系統(PPMS)、電子自旋共振譜儀(ESR)、高場振動樣品磁強計等10 余種測試設備,每年產生的科學實驗數據量約在百GB量級。由于受磁體電源功率約束(28MW)和去離子水量限制,同一時間只能運行單臺高場水冷磁體,因此實驗數據的產生頻次以及容量對于實驗數據管理性能影響較小。在數據存儲方面,實驗測試設備生成實驗數據后保存于設備上位機的本地磁盤,并可通過前期構建的HDFS 分布式文件系統提供長期存儲。為進一步提升數據管理效率,本系統重點針對實驗數據實現元數據的采集與管理。

穩態強磁場裝置的科學實驗元數據根據裝置運行所需要管理的科學實驗數據屬性信息設計確定,主要包括實驗管理屬性、實驗過程屬性、實驗數據屬性、實驗參數屬性數據,并支持在此基礎上進行擴展??茖W實驗元數據結構如表1所示。

表1 科學實驗元數據結構Table 1 Metadata structure of scientific experiment data

2.3 科學實驗元數據采集與存儲

科學實驗元數據來源多樣,其中實驗管理屬性信息來自于提供實驗申請審批業務流程的實驗管理服務系統,實驗過程屬性信息來自于裝置中央控制系統,實驗數據屬性信息來自于磁體搭載的科學實驗測試系統,實驗參數屬性信息部分來自于裝置中央控制系統、部分由實驗管理人員配置。為建立起不同數據源之間的數據聯系,各屬性信息均以實驗編號作為唯一標識進行關聯:系統完成實驗申請的審批后,生成唯一的實驗編號并形成實驗記錄條目,同時在實驗數據文件系統中創建本次實驗數據的存儲路徑,路徑名中包含實驗編號、磁體編號、用戶信息;裝置控制系統管理人員在每次實驗前,為實驗用戶寫入一張用戶卡,寫卡信息包含實驗編號、磁體編號、用戶名稱等,實驗用戶在控制系統用戶站上通過讀卡登錄鑒權后即可啟動實驗;實驗結束后,實驗數據測量系統將本次實驗生成的多個實驗數據文件,歸檔到本次實驗對應的文件系統存儲路徑中。

在科學實驗元數據的采集與存儲方面,由于實驗管理服務系統同樣是Web系統,可以直接調用SciCat 后端提供的REST API,將實驗申請審批環節中獲取的實驗用戶和課題信息等提交至SciCat后端;裝置現有中央控制系統不支持直接調用REST API,需通過元數據提取器訪問控制系統數據庫,判斷實驗結束后則提取實驗編號、磁體編號、實驗開始時間、結束時間等信息,并在實驗數據文件系統中查找滿足實驗編號、磁體編號的存儲路徑,再將該路徑下的文件大小、路徑、個數等信息進行提取,隨后與實驗啟停時間等其他信息共同組裝成符合接口通信規范的json 格式,提交至SciCat后端。元數據創建時所使用的SciCat 接口主要包括:/api/v3/Users、/api/v3/Proposals、/api/v3/Instrument、/api/v3/Datasets,分 別用于創建實驗用戶、實驗課題、實驗儀器設備、實驗數據集合相關的元數據信息。接口API 調用成功后,MongoDB 數據庫中相應的元數據記錄將更新,用戶即可從Web前端進行元數據的查詢和訪問。

鑒于元數據中的實驗參數屬性信息與實驗人員實際設置的科學實驗條件緊密相關,難以全部實現自動提取,并且表1中的實驗參數屬性結構不能完全覆蓋不同實驗的參數種類,因此,系統還支持通過手動編輯實驗參數屬性條目進行擴展。實驗完成后,實驗管理人員可以登錄此系統,并對實驗元數據進行編輯,包括新增或修改實驗參數屬性信息,以及修改實驗數據集描述等內容。

3 裝置運行數據管理

3.1 裝置運行數據的解析與導入

穩態強磁場裝置運行數據主要指由裝置中央控制系統實時采集的、用于監控裝置運行狀態以及保障裝置運行安全的關鍵參數。裝置運行數據在實驗啟動到結束的全過程中進行采集,數據采集周期為5ms,以文本形式進行存儲,并定期實施備份。裝置運行數據以往只能通過基于Labview開發的本地查看工具進行讀取和曲線繪制,不便于多人同時使用以及遠程訪問。為實現基于web方式的數據檢索及可視化,需要對裝置運行數據文本進行格式解析,并導入至數據庫,以及提供數據的檢索、在線調取與波形繪制。

數據監測采集器是一個獨立運行的后臺服務,會定期掃描裝置運行數據文件所在的目錄,并對符合文件命名規則且未導入的數據,自動解析并導入到Elasticsearch數據庫。數據的監測及解析規則與數據文件的命名規則以及內部結構緊密相關。裝置運行數據文件的命名規則為“[序號]_[裝置名稱]_[年]-[月]-[日][時]-[分]-[秒].txt”,如“1_WM5_2021-12-18 08-49-53.txt”,其中裝置名稱為磁體編號名,日期和時間對應實驗啟動的時刻。裝置運行數據文件的內部結構為:第一行為實驗開始時間,第二行為列數,第三行為字段名稱,第四行至結尾均為采集的數據,示例如圖2。裝置運行數據具體包括磁體電流、電流變化率、電壓、進出口水溫、進出口水壓、水流量、線圈電阻、線圈等效溫度等數值。由于不同磁體具有不同線圈個數,因此線圈電阻、線圈等效溫度等與線圈相關的參數個數并不固定,具體體現在數據文件的列數不同。

圖2 裝置運行數據結構Fig.2 The structure of facility operation data

裝置運行數據以5 ms 為采集周期,每小時產生72 萬行數據,按平均每次實驗8 小時計算,單次實驗數據達576 萬行,按每年約250 個工作日,每日2 次實驗,每年將產生約28.8 億條記錄。為提升數據庫在海量數據下的查詢性能,按照以下策略創建數據庫索引與執行分片操作:

(1)創建數據索引。數據按“裝置+年份”創建索引,確保每臺磁體每年的索引記錄數量控制在10 億條左右,以便確保查詢效率。索引的命名方式為[裝置名稱]_[年份],如:WM1_2021。

(2)創建采樣索引。通過建立采樣索引,可按不同采樣頻率對數據進行采樣,在查詢較大范圍的數據時即可直接使用采樣索引進行查詢,由此減少掃描數據記錄數,提升查詢性能。

(3)對數據進行分片。過小的分片數會導致分片過大,不利于故障時的數據恢復,過大的分片數可能導致查詢效率降低,此處將數據分片數設置為3。

數據索引的創建方式主要和系統的應用場景密切相關。由于本系統在裝置運行數據查詢方面的絕大多數應用場景是查詢某個磁體單次實驗的數據,而跨年查詢的使用場景相對較少,因此按“裝置+年份”方式建立索引,一方面便于查詢管理數據,另一方面也能提供較高的查詢性能。此外,Elasticsearch可支持跨索引查詢,也能夠應對跨年份或跨裝置的查詢需求,未來如這類查詢應用需求激增,可進一步做針對性的性能提升。為確保系統的可擴展性和穩定性,Elasticsearch 在部署時采用集群模式(詳見4.2 節),以便于在未來數據量更大時進行擴容。

3.2 裝置運行數據的圖形化展示

鑒于裝置運行數據的圖形化展示頁面需要支持多種定制化功能,而Elasticsearch 配套的Graphite 或Kibana 等可視化工具難以直接提供相關功能,本系統采用了開源圖表組件ECharts作為前端圖表組件,通過二次開發實現裝置運行數據的曲線繪制、局部放大/縮小、按不同級別的采樣率逐級展示、選擇局部區域統計計算、保存快照等功能,以滿足裝置運維人員的實際需求。由于單次實驗的裝置運行數據量龐大,還需要制定高效的數據讀取策略。一個持續10小時的實驗有720 萬行數據記錄,每行記錄包括電流、電壓、水溫等20 個以上的數據項,總計將超過1 億個數據點。后端服務無法在短時間向前端傳送大量數據點,且瀏覽器也不支持如此海量的數據點繪制,數據直接加載將造成系統資源耗盡或瀏覽器崩潰。因此,在數據的曲線繪制和縮放查看方面,需要設置相應的策略以提升系統的響應速度。具體地,系統根據顯示數據的時間范圍設置以下不同采樣粒度:

(1)時間范圍>20 分鐘:按10 s 間隔進行采樣。對于10 個小時的裝置運行數據,單條數據曲線的數據點為3,600個。

(2)時間范圍∈(2 分鐘,20 分鐘]:按1 s 間隔進行采樣。單條數據曲線的數據點個數在120~1,200范圍內。

(3)時間范圍∈(10 s,2 分鐘]:按100 ms 間隔進行采樣。單條數據曲線的數據點個數在100~1,200范圍內。

(4)時間范圍≤10 s:查詢原始數據索引。原始數據為5 ms 采樣率,單條數據曲線不超過2,000個點。

為進一步提升圖形繪制時的數據檢索速度,在裝置運行數據導入數據庫時即同時完成數據的采樣處理,并將采樣數據存儲在獨立的索引中,圖形繪制時將根據不同時間范圍直接使用相應采樣索引查詢數據。通過以上數據讀取和采樣策略,實現曲線全景繪制,以及拖動、縮放等操作時的數據點高效查詢與加載。

4 系統安全與部署

4.1 系統安全機制

科學實驗數據與裝置運行數據是穩態強磁場實驗裝置核心資產,為避免數據出現泄露或非法訪問事件,并防止數據因為意外故障導致損壞或丟失,在系統安全保護方面采取以下措施:

(1)系統數據庫采用集群化部署,防止單點失效,并確保在主節點數據丟失的情況下,仍然可以通過副本恢復數據;

(2)定期自動化備份實驗數據文件和裝置運行數據文件,在必要時可通過原始數據文件,重建數據庫中的實驗數據;

(3)核心數據部署在DMZ隔離區,采用白名單方式,僅支持局域網指定IP 訪問,且系統防火墻僅開放指定端口;

(4)系統通過訪問token 過期等安全措施避免非法訪問和傳播;

(5)避免在代碼中通過拼接SQL 查詢數據庫,以此減少外部注入攻擊的機會;

(6)采用強密碼管理機制,避免外部暴力破解密碼,并防止本系統用戶通過猜測密碼訪問他人賬戶;確保密碼在數據庫中僅存儲加密內容,不保存明文。

4.2 系統部署方案

系統部署情況如圖3所示,在系統部署方案設計上,將網絡區域分為兩類:公網開放區域、局域網安全區域。其中,Web 前端網站以及Nginx負載均衡等需要支持外網訪問的系統或服務,均部署到開放網絡區域,同時對外僅開放80/443端口(HTTP/HTTPS服務);其他系統服務層的相關微服務、數據庫中間件、共享文件存儲等均部署到局域網安全區域,局域網內主機僅開通指定的服務端口;Web前端的API請求由局域網中部署的Nginx進行轉發實現跨域請求;運維人員通過堡壘機接入相應服務器進行運維管理。為提升系統可用性及魯棒性,所有服務和中間件均按最小化集群部署,在某個服務器節點宕機的情況下,其他服務器仍然可繼續提供服務。

圖3 系統部署方案圖Fig.3 System deployment scheme

公網開放區域使用1 臺服務器,部署Nginx和Web 前端。Nginx 服務一般運行非常穩定,對硬件資源要求較低,可以選擇配置較低的服務器,或和其他業務服務器共享硬件資源。局域網安全區域使用3臺服務器部署所有業務服務和數據庫,并通過Nginx進行負載均衡。其中承載裝置運行數據的Elasticsearch 數據庫,由于數據量較大,將主節點單獨部署1臺服務器,從節點1和從節點2部署到另外兩臺服務器;各業務服務按鏡像部署到2臺服務器;MySQL集群在2臺服務器分別部署主節點和從節點;MongoDB按副本集模式在2臺服務器分別部署主節點和副本節點。

5 系統測試

系統測試主要用于驗證科學實驗數據的元數據采集、數據下載功能以及裝置運行數據的加載性能。

科學實驗數據的采集、存儲與訪問等功能,以水冷磁體WM5產生的科學實驗數據為例進行測試驗證。實驗管理系統將實驗申請審核過程中的用戶信息、課題信息等實驗元數據提交到SciCat后端,元數據采集器分別從裝置的中央控制系統以及水冷磁體WM5 的實驗數據測量系統,提取實驗數據文件信息等科研元數據,并調用SciCat 后端的相應API 實現到數據庫的存儲。實驗用戶在裝置上完成實驗后,即可通過系統查看本次實驗相關的各類基本信息,并能夠進行實驗數據文件的信息查看以及下載使用,如圖4所示。

圖4 科學元數據頁面Fig.4 The web page for scientific metadata

裝置運行數據以穩態強磁場裝置的水冷磁體WM1近期某次實驗為例。該實驗持續時間約7.85 小時,裝置運行數據以5 ms 為采集周期,采集電流、水流量、出入口水溫、出入口水壓、線圈電壓、線圈電阻偏差等23項參數,共計生成5,655,165行數據、約13億個數據點。原始裝置運行數據通過本系統后臺運行的數據監測采集器解析導入Elasticsearch數據庫,并自動創建數據索引。

如圖5所示,在系統中打開相應裝置運行數據圖形繪制頁面,左側為參數選擇列表,右側為參數曲線圖,支持多條曲線同時展現。鑒于電流和線圈電壓值是裝置運維人員最關心的參數,頁面在加載時將默認以全覽式視圖直接加載電流和線圈電壓曲線,其他參數曲線的繪制可通過左側參數選擇欄勾選展示。裝置運行數據的曲線繪制支持選擇特定區域進行縮放;并可通過點擊頁面上方的按鈕,對電流與電壓波形圖、進出口水溫波形圖、進出口水壓波形圖進行自動快照與保存;在選擇模式下,還支持在圖形上拖拽選擇一段時間范圍,由系統自動計算該段時間范圍內的各參數均值并在圖形下方生成數據表格,供運維人員分析。

圖5 裝置運行數據圖形化展示頁面Fig.5 The web page for facility operation data

利用Web瀏覽器的開發者工具進行10次測試,頁面打開并自動加載電流和線圈電壓全覽曲線的平均時間為0.91 s;10 條參數曲線同時展現時,放大、縮小操作的平均加載時間為0.24 s。鑒于通過瀏覽器打開頁面的測試方式,實際包括了用戶鑒權、獲取用戶信息、獲取運行數據等多個Http請求,為進一步評測從服務端請求裝置運行數據的響應情況,利用Jmeter對單個Http請求的響應時間進行性能自動化測試。在Jmeter 中設置10 個并發線程模擬多用戶同時訪問,以Http Get 方式直接調用裝置運行數據圖形展示API,持續時間10 分鐘,測得該接口的平均響應速度為930 ms,響應時間分布如圖6所示。通過瀏覽器開發者工具和Jmeter 這兩種測試手段獲得的結果均表明,裝置運行數據的解析、導入以及圖形化展示功能符合預期,系統性能良好。

圖6 系統響應時間測試Fig.6 The test of system response time

6 結論與展望

穩態強磁場實驗裝置數據管理系統針對裝置運行過程中產生的裝置運行數據、科學實驗數據實現統一信息化管理。結合兩類數據的用戶對象和特點,系統面向科學實驗人員提供科學實驗數據的存儲訪問、元數據的組裝與采集功能,面向裝置運維人員提供裝置運行數據的解析與導入、數據可視化查看功能。系統實現了多源數據的匯聚,將來自裝置控制系統、實驗儀器設備、實驗管理業務系統的多方數據進行提取、存儲,并實現百萬級以上數據點的高效圖形化展示。系統設計了有效的安全保護機制和部署方案,以確保系統的安全性和魯棒性。裝置產生的運行數據和科學實驗數據,是裝置生命周期中形成的重要數據資產,其高效管理與運用對于提升裝置運行效率與科學研究價值至關重要。下一步計劃在系統中引入JupyterHub,實現基于Web的交互式數據分析功能,以支持科學實驗用戶在線對實驗數據進行分析處理。

利益沖突聲明

所有作者聲明不存在利益沖突關系。

猜你喜歡
強磁場磁體科學實驗
DyF3熱擴滲技術提高NdFeB磁體矯頑力及其機理分析
“天宮”上的科學實驗
帶電粒子在圓形邊界勻強磁場中的運動
帶電粒子在圓形邊界勻強磁場中的運動
帶電粒子在直邊界勻強磁場中的運動
中國首顆微重力科學實驗衛星將于4月發射
精心準備 科學實驗
含Ce燒結Nd-Fe-B磁體的腐蝕行為
強磁場對非線性光學晶體ZnGeP2 生長及性能的影響
傳導冷卻高溫超導儲能磁體制作
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合