程旺 劉嵩巖
摘要:分布式文件系統(tǒng)是指文件系統(tǒng)管理的物理存儲資源不一定直接連接在本地節(jié)點上,而是通過計算機網(wǎng)絡(luò)與節(jié)點相連。ceph是一個分布式文件系統(tǒng),具有高擴展、高可用、高性能的特點。本文進行ceph集群存儲部署和ceph塊存儲創(chuàng)建,完成是基于ceph分布式存儲架構(gòu)設(shè)計與實現(xiàn)。
關(guān)鍵詞:分布式文件系統(tǒng);ceph;集群;塊存儲
1.Ceph基礎(chǔ)介紹
Ceph是一個可靠地、自動重均衡、自動恢復(fù)的分布式存儲系統(tǒng),根據(jù)場景劃分可以將Ceph分為三大塊,分別是對象存儲、塊設(shè)備存儲和文件系統(tǒng)服務(wù)。在虛擬化領(lǐng)域里,比較常用到的是Ceph的塊設(shè)備存儲,比如在OpenStack項目里,Ceph的塊設(shè)備存儲可以對接OpenStack的cinder后端存儲、Glance的鏡像存儲,比較直觀的是Ceph集群可以提供一個raw格式的塊存儲來作為虛擬機實例的硬盤。
Ceph提供了RADOS、OSD、MON、RBD和Ceph FS等功能組建,但底層仍然使用RADOS存儲來支撐上層的那些組件。由于Ceph采用了CRUSH算法、HASH環(huán)等的良好方法,使得它不存在傳統(tǒng)的單點故障的問題,且隨著規(guī)模的擴大性能并不會受到影響。Ceph組件包括OSDs(存儲設(shè)備)、Monitors(集群監(jiān)控組件)、MDSs(存放文件系統(tǒng)的元數(shù)據(jù))、Client(ceph客戶端)組成。
2.實驗環(huán)境準(zhǔn)備
實驗準(zhǔn)備四臺KVM虛擬機,其中三臺作為存儲集群節(jié)點,另一臺作為客戶端。所有主機名及其對應(yīng)的ip地址為client(eth0:192.168.4.10),node1(eth0:192.168.4.11),node2(eth0:192.168.4.12);node3(eth0:192.168.4.13)。實驗環(huán)境準(zhǔn)備主要包括節(jié)點yum源,所有虛擬主機均需要掛載安裝光盤,包括rhel光盤和ceph光盤;修改/etc/hosts并同步到所有主機,配置無密碼連接;配置NTP時間同步和準(zhǔn)備存儲磁盤,并且物理機上的每個虛擬機創(chuàng)建3個磁盤。
3.部署ceph集群存儲
首先進行安裝部署軟件,實驗使用node1為部署主機,通過操作部署主機來完成ceph集群的搭建,首先進行的是ceph_deploy的部署工具的安裝。Ceph_deploy工具可用于簡單、快速地部署ceph集群。它在node1管理節(jié)點上通過ssh獲取其他ceph節(jié)點的訪問權(quán)、通過sudo獲取其上的管理權(quán)限,通過底層python腳本自動化各節(jié)點上的ceph安裝進程。用ceph_deploy工具可以遠(yuǎn)程節(jié)點上安裝ceph軟件包、創(chuàng)建集群、增加監(jiān)視器、收集或忘記密鑰、增加OSD和元數(shù)據(jù)服務(wù)器、配置管理主機或拆除集群。通過執(zhí)行mkdir ceph-cluster命令為部署工具創(chuàng)建目錄,存放密鑰與配置文件。
創(chuàng)建ceph集群配置(所有節(jié)點都為mon) ,給所有節(jié)點安裝ceph軟件包;初始化所有節(jié)點的mon服務(wù)。執(zhí)行命令:[root@node1 ceph-cluster]# ceph-deploy new node1 node2 node3;[root@node1 ceph-cluster]# ceph-deploy install node1 node2 node3。
創(chuàng)建OSD,一般來說,每塊參與存儲的磁盤都需要一個 OSD 進程。所有節(jié)點準(zhǔn)備磁盤分區(qū),然后通過node1主控制節(jié)點進行初始化清空磁盤數(shù)據(jù),最后創(chuàng)建OSD存儲空間。主要包括:創(chuàng)建osd存儲設(shè)備,vdc為集群提供存儲空間,vdb1提供JOURNAL日志,一個存儲設(shè)備對應(yīng)一個日志設(shè)備對應(yīng)一個日志設(shè)備,日志需要SSD,不需要很大。三個存儲節(jié)點執(zhí)行(node1為例)[root@node1 ~]# ceph-deploy osd create node1:vdc:/dev/vdb1 node1:vdd:/dev/vdb2 。
通過ceph集群的部署,對集群進行驗證。執(zhí)行命令:ceph –s進行集群狀態(tài)查看。若為正常,可以看到health HEALTH_OK,說明ceph集群搭建完成。
4.Ceph塊存儲創(chuàng)建
塊存儲可以看作為是裸盤,可以通過劃分邏輯卷、做RAID、LVM等方式將它格式化,可以格式化為指定的文件系統(tǒng),然后才能被操作系統(tǒng)訪問。塊存儲是ceph三大存儲類型終最為常用的存儲方式,Ceph的塊存儲是基于RADOS的,因此它也借助RADOS的快照、復(fù)制和一致性等特性提供了快照、克隆和備份等操作。使用ceph集群的塊存儲功能,可以實現(xiàn):創(chuàng)建塊存儲鏡像;客戶端映射鏡像;創(chuàng)建鏡像快照等功能。Ceph塊設(shè)備也叫做RADOS塊設(shè)備。RBD(RADOS block device)驅(qū)動已經(jīng)很好的集成在Linux內(nèi)核中,支持內(nèi)部緩存從而提高性能,并且RBD具有快照、COW克隆等企業(yè)功能。Linux內(nèi)核可用直接訪問ceph塊存儲,KVM可用借助于librbd訪問。
首先創(chuàng)建鏡像。塊設(shè)備存在于存儲池中,默認(rèn)ceph集群已有一個存儲池。主要查看存儲池;在默認(rèn)池里創(chuàng)建一個名為demo-image的鏡像,鏡像可當(dāng)成遠(yuǎn)程主機的硬盤,鏡像大小為10G;指定在rbd這個池中創(chuàng)建一個名為image的鏡像;查看鏡像信息查看鏡像信息執(zhí)行[root@node1 ~]# rbd list;[root@node1 ~]# rbd info demo-image。
集群內(nèi)通過KRBD訪問使用ceph塊存儲,通過將鏡像映射為本地磁盤,執(zhí)行命令然后查看會發(fā)現(xiàn)多了一個10GB的/dev/rbd0。進行格式化操作再進行掛載。主要執(zhí)行[root@node1 ~]# rbd map demo-image;[root@node1 ~]# mkfs.xfs /dev/rbd0??蛻舳送ㄟ^KRBD訪問,需要安裝ceph-common軟件包,讓客戶端能夠訪問集群,需要集群配置文件ceph.client??蛻舳诵枰跈?quán)訪問集群,可以為客戶端創(chuàng)建用戶,也可用默認(rèn)創(chuàng)建的admin賬戶。最后使用ceph塊存儲設(shè)備。執(zhí)行rbd showmapped命令查看ceph塊設(shè)備信息,顯示 id pool image snap device;0 rbd image-/dev.rbd0,說明ceph塊存儲創(chuàng)建完成。
5.結(jié)語
Ceph是主流的開源分布式存儲操作系統(tǒng),云服務(wù)商和企業(yè)用戶把它作為構(gòu)建統(tǒng)一存儲和軟件定義存儲的可信解決方案,根據(jù)ceph主要運用在塊存儲設(shè)備的部署和運用,因此本文通過設(shè)計和搭建,完成了ceph集群部署和ceph塊存儲創(chuàng)建的工作。未來,ceph憑借其優(yōu)越的性能和穩(wěn)定性,在云技術(shù)領(lǐng)域?qū)⒊蔀樽顭衢T的分布式存儲系統(tǒng)。
參考文獻(xiàn)
[1]謝超群.基于Ceph的云存儲應(yīng)用研究[J].洛陽師范學(xué)院學(xué)報,2019,38(02):43-47.
[2]凌升杭.基于Ceph分布式存儲系統(tǒng)的安全訪問控制設(shè)計和實現(xiàn)[D].東南大學(xué),2016.
作者簡介:程旺(1995-),男,河南周口人,哈爾濱黑龍江大學(xué),電子與通信工程專業(yè)2018級,碩士在讀,研究方向:嵌入式系統(tǒng);
通訊作者:劉嵩巖(1969-),男,黑龍江哈爾濱人,博士,副教授,研究方向:嵌入式系統(tǒng)。