[黃宇民 莊一嶸 周曉燕]
?
基于CEPH的CDN源站系統(tǒng)設(shè)計與應(yīng)用
[黃宇民 莊一嶸 周曉燕]
摘要
文章以CEPH開源分布式文件系統(tǒng)為基礎(chǔ),利用其提供的系統(tǒng)接口設(shè)計實(shí)現(xiàn)了基于CEPH的CDN源站系統(tǒng),并通過實(shí)際的業(yè)務(wù)流程和相關(guān)測試驗(yàn)證了設(shè)計的可行性。
關(guān)鍵詞:分布式文件系統(tǒng) 存儲系統(tǒng) CEPH CDN源站
黃宇民
男,畢業(yè)于五邑大學(xué),本科學(xué)位,通信工程專業(yè),現(xiàn)就職于越亮傳奇科技股份有限公司,從事CDN系統(tǒng)及其相關(guān)建設(shè)工作半年。
莊一嶸
中國電信股份有限公司廣東研究院。
周曉燕
越亮傳奇科技股份有限公司。
隨著科技的逐漸發(fā)展,互聯(lián)網(wǎng)上的數(shù)據(jù)存儲量出現(xiàn)了快速的增長。根據(jù)數(shù)據(jù)顯示,近年來Internet產(chǎn)生的信息量比信息時代之前信息量的總和還要多。傳統(tǒng)的數(shù)據(jù)存儲方式是依靠單臺性能相對較高的物理機(jī)器作為存儲,其成本高,效率低,數(shù)據(jù)容易丟失,如今已經(jīng)無法滿足客戶和企業(yè)與日俱增的存儲需求。考慮到容量的利用率,價格的合理性和數(shù)據(jù)的安全性等因素,云存儲技術(shù)應(yīng)運(yùn)而生。
云存儲技術(shù)主要綜合利用了存儲應(yīng)用、網(wǎng)格技術(shù)和分布式文件系統(tǒng)等功能,利用對象存儲,通過應(yīng)用軟件將網(wǎng)絡(luò)中不同類型的存儲設(shè)備集合起來,共同對外提供存儲和訪問功能。本課題以當(dāng)前云計算及云存儲在企業(yè)間廣泛應(yīng)用為背景,提出了基于CEPH的CDN源站系統(tǒng)的設(shè)計與應(yīng)用。本文目標(biāo)是設(shè)計出具有強(qiáng)一致性和容錯性,能夠組成集群并替代傳統(tǒng)存儲設(shè)備的存儲方案,實(shí)現(xiàn)CDN源站系統(tǒng)的數(shù)據(jù)共享,故障自恢復(fù),高性能低損耗,高擴(kuò)展性等。
2.1CDN源站系統(tǒng)需求
CDN回源服務(wù)器就是代替客戶源站,將源站的內(nèi)容注入至回源服務(wù)器節(jié)點(diǎn)中。當(dāng)用戶請求該內(nèi)容需要回源站獲取時,CDN節(jié)點(diǎn)直接向回源服務(wù)器獲取內(nèi)容,從而有效解決了CDN節(jié)點(diǎn)向源站點(diǎn)獲取內(nèi)容時產(chǎn)生網(wǎng)絡(luò)距離、帶寬和路由器轉(zhuǎn)換過程中的技術(shù)延遲問題,提高了從源站點(diǎn)獲取內(nèi)容的速度,改善用戶體驗(yàn),增強(qiáng)用戶滿意度和粘合度。
(1)文件系統(tǒng)需求:系統(tǒng)需要具備高性能、低延時特性,滿足大小文件存儲傳輸,文件系統(tǒng)數(shù)據(jù)快速共享。同時要求達(dá)到I/O讀寫速度高,容錯性強(qiáng),高一致性等效果。
(2)資源上傳與分發(fā)需求:數(shù)據(jù)上傳需要滿足在源站系統(tǒng)內(nèi)達(dá)到快速共享數(shù)據(jù)的效果,實(shí)現(xiàn)延時小,冗余低,讀寫效率高等效果;web站點(diǎn)分發(fā)不僅需要及時同步來自源站系統(tǒng)的數(shù)據(jù),而且需要及時響應(yīng)用戶的請求,提高用戶訪問質(zhì)量。
2.2主流分布式文件系統(tǒng)選型分析
傳統(tǒng)文件系統(tǒng)缺乏強(qiáng)一致性和容錯性,單機(jī)情況下,難以解決由于系統(tǒng)故障、網(wǎng)絡(luò)中斷、硬盤損壞等造成的問題。組成的集群,各個節(jié)點(diǎn)的數(shù)據(jù)是獨(dú)立非共享的,難以實(shí)現(xiàn)高效的分布式效果。基于目前的需求,可考慮采取hadoop、CEPH、openstack、FastDFS等存儲方案,具體描述如下:
(1)Hadoop文件系統(tǒng)
Hadoop分布式文件系統(tǒng)(HDFS)被設(shè)計成適合運(yùn)行在通用硬件上的分布式文件系統(tǒng)。它和現(xiàn)有的分布式文件系統(tǒng)有很多共同點(diǎn)。但同時,它和其他的分布式文件系統(tǒng)的區(qū)別也是很明顯的。HDFS是一個高度容錯性的系統(tǒng),適合部署在廉價的機(jī)器上。HDFS能提供高吞吐量的數(shù)據(jù)訪問,非常適合大規(guī)模數(shù)據(jù)集上的應(yīng)用[1]。HDFS是單Master的,所有的對文件的請求都要經(jīng)過它,當(dāng)請求多時,肯定會有延時。同時。Hadoop不適合大量小文件的傳輸。
(2)OpenStack文件系統(tǒng)
OpenStack是一個開源軟件,它提供了一個部署云的平臺。為虛擬計算或存儲服務(wù)的公有/私有云,提供可擴(kuò)展的、靈活的云計算。它使用普通的服務(wù)器來構(gòu)建冗余的、可擴(kuò)展的分布式對象存儲集群,存儲容量可達(dá)PB級[2]。兼容性差,對于現(xiàn)有代碼的修改,難以兼容現(xiàn)存的版本,維護(hù)起來相當(dāng)難。
(3)FastDFS文件系統(tǒng)
FastDFS是一個開源的,高性能的的分布式文件系統(tǒng),他主要的功能包括:文件存儲,同步和訪問,設(shè)計基于高可用和負(fù)載均衡,fastfd非常適用于基于文件服務(wù)的站點(diǎn),例如圖片分享和視頻分享網(wǎng)站。FastDFS的設(shè)計目標(biāo)就是支持大容量和高訪問量。對于大量的小文件,可以支持得很好,但是其不支持分塊存儲文件,達(dá)不到快速共享文件的效果。
(4)CEPH文件系統(tǒng)
CEPH是一種為優(yōu)秀的性能、可靠性和可擴(kuò)展性而設(shè)計的統(tǒng)一的、分布式的開源存儲系統(tǒng)。“統(tǒng)一的”意味著CEPH可以一套存儲系統(tǒng)同時提供對象存儲、塊存儲和文件系統(tǒng)存儲三種功能;而“分布式的”在CEPH系統(tǒng)中則意味著真正的無中心結(jié)構(gòu)和沒有理論上限的系統(tǒng)規(guī)??蓴U(kuò)展性[3]。
根據(jù)對上述文件系統(tǒng)的研究和分析,對其作出以下結(jié)論:
(1)Hadoop存儲解決方案:時延高,性能上不符合存儲要求
(2)Openstack存儲解決方案:Swift存儲方案缺乏強(qiáng)的統(tǒng)一存儲特性
(3)FastDFS解決方案:不支持POSIX
(4)CEPH存儲解決方案:對象存儲、塊存儲和文件系統(tǒng)存儲能力高,符合要求
因此本課題選擇CEPH作為存儲解決方案,并基于CEPH設(shè)計出分布式文件系統(tǒng)。
2.3CEPH分布式文件系統(tǒng)搭建
CEPH是可提供對象、塊和文件存儲的統(tǒng)一存儲系統(tǒng),具有以下特性:
(1)使用普通x86服務(wù)器,支持10~1 000臺服務(wù)器,支持TB到PB級的擴(kuò)展
(2)多數(shù)據(jù)副本,自動管理,故障自動修復(fù)。
(3)數(shù)據(jù)分布均衡,并行化度高。
(4)高擴(kuò)展性:使用普通x86服務(wù)器,支持2~1000臺服務(wù)器,支持TB到PB級的擴(kuò)展。
(5)高可靠性:沒有單點(diǎn)故障,多數(shù)據(jù)副本,自動管理,自動修復(fù)。
(6)高性能:數(shù)據(jù)分布均衡,并行化度高。
基于CEPH的存儲系統(tǒng)主要提供了對象存儲、塊存儲和文件存儲。其中文件存儲由CEPH FS提供,CEPH FS通過調(diào)用LIBRADOS的接口,最終都是以對象的形式存儲于RADOS里。系統(tǒng)包括MDS、MON、OSD等部件。
(1) MDS服務(wù)器
使用元數(shù)據(jù)集群管理元數(shù)據(jù)請求,元數(shù)據(jù)都集中存放在OSD上,元數(shù)據(jù)服務(wù)器只處理元數(shù)據(jù)請求已經(jīng)緩存部分的元數(shù)據(jù)信息。
本文設(shè)計兩個MDS元數(shù)據(jù)管理節(jié)點(diǎn),設(shè)計兩個MDS元數(shù)據(jù)節(jié)點(diǎn)是為了使其能提供數(shù)據(jù)負(fù)載均衡來避免MDS的熱點(diǎn)。當(dāng)用戶打開一個文件時,會查詢并更新MDS相應(yīng)的元數(shù)據(jù)的對象信息,然后再根據(jù)提供的對象信息直接從RADOW中返回客戶端所需的文件數(shù)據(jù)。
(2) MON監(jiān)視器
在 RADOS 集群中,CEPH 監(jiān)視器后臺進(jìn)程(CEPHMON)位于 OSD 旁邊。監(jiān)視器是一些后臺進(jìn)程,客戶端通過與這些后臺進(jìn)程進(jìn)行通信來操作存儲在集群中的數(shù)據(jù)。這是 CEPH 提出的一種創(chuàng)新方法:無需聯(lián)系一個管理數(shù)據(jù)集群訪問的集中的元數(shù)據(jù)服務(wù)器,這些輕量型后臺進(jìn)程向客戶端提供集群映射,并處理與外部應(yīng)用程序的所有通信。用戶通過MON就能獲取各個節(jié)點(diǎn)之間的通信情況和健康狀況。
(3) OSD服務(wù)器
文件系統(tǒng)中的數(shù)據(jù)都存儲在OSD中,可以通過客戶端或者網(wǎng)關(guān)對其進(jìn)行數(shù)據(jù)讀寫的操作,數(shù)據(jù)會從RADOS中進(jìn)行讀取或者寫入,RADOS包括兩個守護(hù)進(jìn)程。OSD是訪問文件系統(tǒng)并向其中寫入數(shù)據(jù)的后臺進(jìn)程,它提供了通過集群網(wǎng)絡(luò)訪問文件系統(tǒng)的能力。
2.4用戶資源上傳與發(fā)布
對于客戶端來說,訪問存儲系統(tǒng)是操作數(shù)據(jù)的關(guān)鍵。而數(shù)據(jù)是存儲在OSD節(jié)點(diǎn)中,因此要對多個OSD節(jié)點(diǎn)進(jìn)行共享和同步。以物理分區(qū)為存儲基礎(chǔ),對分區(qū)進(jìn)行格式化,格式成xfs格式。掛載相應(yīng)的OSD節(jié)點(diǎn)到相應(yīng)的分區(qū),此時OSD節(jié)點(diǎn)數(shù)據(jù)在底層是共享同步的,通過CEPH-fuse可以從用戶態(tài)空間掛載CEPH FS,掛載點(diǎn)為/home。/home則是用戶訪問和操作存儲系統(tǒng)的入口。如圖1。
存儲系統(tǒng)web目錄是根據(jù)用戶需求而進(jìn)行設(shè)計的,目的是給用戶提供訪問和上傳下載的操作。設(shè)計框架如圖2。存儲系統(tǒng)web目錄即發(fā)布目錄,訪問目錄和發(fā)布目錄之間用Rsync進(jìn)行同步,Crontab實(shí)現(xiàn)一個定時任務(wù),并修改相應(yīng)的權(quán)限。
圖1 系統(tǒng)存儲架構(gòu)
圖2 發(fā)布目錄框架
3.1業(yè)務(wù)流程驗(yàn)證
測試環(huán)境如表1:
表1 測試環(huán)境資源
用戶可以通過瀏覽器,指定URL訪問發(fā)布的web站點(diǎn)的資源。如圖3。具體流程如下:
圖3 業(yè)務(wù)測試流程
(1)通過ftp工具或者Rsync上傳資源到CDN源站目錄/home/client,并使用iozone工具測試CEPH文件系統(tǒng)的性能與磁盤性能作比較,觀察并記錄測試結(jié)果;
(2)通過Crontab同步源站目錄/home/client到發(fā)布目錄/home/www/client上;
(3)通過Nginx發(fā)布web站點(diǎn),并對Nginx進(jìn)行基于CEPH文件系統(tǒng)的測試,觀察并記錄測試結(jié)果
(4)用戶通過瀏覽器訪問到相應(yīng)的資源
3.2CEPH文件系統(tǒng)讀寫性能測試
使用對應(yīng)的命令測試CEPH文件系統(tǒng)和原生磁盤,查看讀取對應(yīng)文件大小時讀寫性能。使用iozone工具測試對應(yīng)大小文件,記錄塊大小為4K,測試寫和重復(fù)寫,讀和重復(fù)讀。測試結(jié)果如下表2。
表2 系統(tǒng)讀寫性能測試數(shù)據(jù)表
根據(jù)測試數(shù)據(jù)看出:
(1)CEPH讀寫性能三項(xiàng)指標(biāo)比原生磁盤性能高,并且讀操作的速率逼近網(wǎng)絡(luò)帶寬,由于網(wǎng)絡(luò)的局限,CEPH的性能上限無法測定;
(2)僅在初次寫入新文件時,略比原生磁盤速度低。
3.3基于CEPH分布式文件系統(tǒng)下Nginx性能測試:
Nginx性能測試,服務(wù)對象是小文件測試結(jié)果如表3:
表3 Nginx小文件性能測試
當(dāng)用戶并發(fā)數(shù)為1 000時,最大流量達(dá)到一個峰值為974.048Mbp,隨著用戶并發(fā)數(shù)增加,響應(yīng)時間值逐漸增加。
Nginx性能測試,服務(wù)對象是大文件測試結(jié)果如表4:
對于大文件,最大流量出現(xiàn)在并發(fā)用戶數(shù)為1000的時候,為984.691Mbps,隨著并發(fā)用戶數(shù)的增加,最大流量值趨于穩(wěn)定的水平。本次測試在CEPH分布式文件系統(tǒng)環(huán)境下的測試,Nginx與CEPH文件系統(tǒng)可以無縫工作,性能良好,可以滿足現(xiàn)網(wǎng)的業(yè)務(wù)需求。
表4 Nginx大文件性能測試
本文結(jié)合應(yīng)用和需求設(shè)計了基于CEPH的分布式文件系統(tǒng),并應(yīng)用在COS源站系統(tǒng)中。依照整體設(shè)計的架構(gòu)圖完成了系統(tǒng)的基本功能?,F(xiàn)總結(jié)如下:
CEPH的架構(gòu)決定了它具有強(qiáng)一致性和高容錯性:CEPH的讀寫操作采用Primary-Replica模型,保證了數(shù)據(jù)的額一致性,操作者不需要考慮數(shù)據(jù)間同步問題;CEPH能容忍如系統(tǒng)故障、網(wǎng)絡(luò)中斷、硬盤損壞等故障,并進(jìn)行自動修復(fù),保證系統(tǒng)的可靠性和可用性。
CEPH具有高性能、高可靠性、高擴(kuò)展性等優(yōu)勢:多個OSD節(jié)點(diǎn)能給系統(tǒng)帶來更高的并發(fā)度,實(shí)現(xiàn)負(fù)載均衡,降低了網(wǎng)絡(luò)擁塞。
通過設(shè)計基于CEPH的分布式文件系統(tǒng),應(yīng)用在COS源站系統(tǒng)上,通過一系列的業(yè)務(wù)流程實(shí)現(xiàn)了從客戶文件上傳到用戶下載的過程。
通過測試,CEPH可以與Nginx Web系統(tǒng)無縫工作,驗(yàn)證了所設(shè)計的源站系統(tǒng)可以滿足現(xiàn)網(wǎng)業(yè)務(wù)需求,性能指標(biāo)良好。
參考文獻(xiàn)
1黃曉云.基于 HDFS的云存儲服務(wù)系統(tǒng)研究[D].大連:大連海事大學(xué),2010.06.01
2OpenStack Community.http://www.openstack.org/.2013.05
3CEPH deployment-CEPH documentation_http://CEPH.com/2007.09
收稿日期:(2015-12-23)
DOI:10.3969/j.issn.1006-6403.2016.03.004