李正 黎斌 董非非 查小惠 項月文



【摘 要】通過對ceph集群的三種接口的學習與實踐,利用老舊的X86服務器,構建基于ceph的分布式存儲系統,實現觀測數據的分布式存儲。
【關鍵詞】ceph mds osd;文件系統;對象存儲
中圖分類號: TP333 文獻標識碼: A文章編號: 2095-2457(2019)20-0107-002
DOI:10.19694/j.cnki.issn2095-2457.2019.20.050
0 引言
地震觀測數據具有數量大,連續性等特點,由于服務器存儲空間的限制,我局往往通過數據刻盤的形式進行離線數據備份。但是數據的應用研究和共享往往需要連續的在線數據波形,這就對我局的數據存儲提出了更高的要求。
傳統存儲能解決數據連續在線的問題,但是也存在一些弊端。首先是傳統存儲設備采購和維護成本高,其次是傳統存儲設備硬盤擴展到一定數量后,硬盤的讀寫效率會降低,影響用戶體驗。根據現有在硬件資源,經過比選后,作者對目前應用比較廣泛的分布式存儲系統Ceph進行研究,用于存儲地震觀測數據,以達到海量數據在線存儲,高可用性、高并發訪問的目的。
1 Ceph系統分析
圖1 Ceph文件系統架構圖
Ceph是一個可靠地、自動重均衡、自動恢復的分布式存儲系統,根據場景劃分可以將Ceph分為三大塊,分別是對象存儲、塊設備存儲和文件系統服務,本次主要研究文件系統服務。Ceph相比其它存儲的優勢點在于它不單單是存儲,同時還充分利用了存儲節點上的計算能力,在存儲每一個數據時,都會通過計算得出該數據存儲的位置,盡量將數據分布均衡,同時由于Ceph的良好設計,采用了CRUSH算法、HASH環等方法,使得它不存在傳統的單點故障的問題,且隨著規模的擴大性能并不會受到影響。
一套ceph集群通常由諾干個守護進程(Ceph Object Storage Device、OSD)、至少1個元數據服務器(Ceph Metadata Server、MDS)和一組監控組件(Monitor)組成,每個OSD就是一個存儲節點,能夠支持上千個存儲節點的規模,達到PB級的數據容量。
2 研究思路
江西省地震局近期完成了技術系統和核心機房的升級改造,將大部分業務系統遷移到了私有云平臺,有大部分老舊的物理服務器閑置,挑選幾臺服務器進行磁盤擴容,就可以搭建模擬環境進行部署。在客戶端上部署最新的版地震臺網數據處理系統(以下簡稱jppens程序),通過對jopens程序的修改,將連續的波形文件存儲到分布式存儲空間,用戶可以通過其他客戶端訪問分布式存儲空間,直接調用這部分連續的波形文件。當服務器發生故障,需要重裝系統時,也不會丟失數據。
3 系統實現
測試環境準備了5臺服務器,一臺用于部署mon和mds等,1臺作為客戶端,3臺作為osd節點,詳情如表1。
為了集群更加穩定,建議用源碼進行編譯安裝。源碼下載地址為http://download.ceph.com/tarballs/ceph_x.x.x.orig.tar.gz (x.x.x為版本號,建議下載最新版)。
(1)統一各服務器hosts文件,并運行服務器之間SSH免密碼登錄,hosts文件。
(2)將源碼包上傳到服務器后進行編譯安裝,主要步驟如下。
(3)根據配置架構圖進行配置
配置的一個繁雜的過程,需要修改很多文件并初始化。編輯/etc/ceph/ceph.conf把,fsid、初始監視器主機名、初始監視器IP等信息加入到ceph主配置文件。
為集群創建密鑰環、并生成監視器密鑰,生成管理員密鑰環,生成 client.admin 用戶并加入密鑰環ceph.client.admin.keyring。
初始化磁盤、準備并 激活OSD,將用于分布式集群存儲的磁盤掛載到服務器。
(4)創建資源池并啟動集群
配置完成后可以根據創建存儲資源池,一個ceph文件系統需要至少2個RADOS存儲資源池,一個用于存儲數據,一個用于存儲元數據。完成創建后在管理節點上啟動服務,會自動將配置文件同步到其他節點,并后臺進行相應的操作。
(5)常見的管理命令及掛載方式
ceph集群自帶了強大的狀態監控服務,通過命令可以查看集群的各種狀態信息。常用的命令有:
為了數據傳輸安全,系統在編譯安裝時啟用了cephx認證,所有在掛載時需要加上用戶名和密鑰,建議通過修改/etc/fstab方式進行內核驅動掛載。
(6)jopens程序的修改及部署
新版本的jopens程序是將實時波形以文件的形式存儲到磁盤空間,在掛載了ceph集群數據資源池的服務器上部署jopens程序并進行修改,可以將實時波形存儲到掛載目錄。由于實時波形文件不同分量、不同時間段分開存放,會產生大量的小文件,而ceph適合用于海量小文件的存儲。
4 結果與討論
初步實現了地震觀測數據的分布式存儲,但是由于受條件限制,暫時未能在生產環境進行測試。系統除了需要進行功能測試外,還需要進行壓力測試。
【參考文獻】
[1]何漢東、張倩.Ceph分布式系統的ISCSI高可用集群[J].計算機系統應用,2017.26(7):104-109.
[2]梁坤榮.分布式存儲系統ceph研究與試用[J].數碼世界,2017:106-106.
[3]卡倫·辛格.Ceph分布式存儲學習指南[M].機械工業出版社,2017.
[4]Ceph中國社區.Ceph分布式存儲實戰[M].機械工業出版社,2016.
[5]王亞飛,王剛.CentOS7系統管理與運維實戰[M].清華大學出版社,2017.
[6]劉軍軍.基于Ceph的企業分布式存儲方案[J].電子技術與軟件工程,2016(11):210-212.
[7]楊飛,朱志祥,梁小江.基于Ceph對象存儲的云網盤設計與實現[J].電子科技,2015(10):96-99.
[8]楊飛,朱志祥,梁小江.基于Ceph對象存儲集群的高可用設計與實現[J].微電子學與計算機,2016(1):60-64.
[9]劉莎,楚傳仁.基于文件等級的Ceph數據冗余存儲策略的研究[J].信息網絡安全,2016(4):50-54.