胡曉宇,方 劍
(1.中國(guó)電信上海公司網(wǎng)絡(luò)操作維護(hù)中心,上海 200041;2.中國(guó)電信上海公司業(yè)務(wù)創(chuàng)新中心,上海 200041)
對(duì)象存儲(chǔ)(Object-based Storage)是一種新的網(wǎng)絡(luò)存儲(chǔ)架構(gòu),該技術(shù)結(jié)合NAS和SAN的優(yōu)點(diǎn),同時(shí)具有SAN的高速直接訪問(wèn)和NAS的分布式數(shù)據(jù)共享等優(yōu)勢(shì)。其核心思想是將數(shù)據(jù)讀寫和控制分離,并且基于對(duì)象存儲(chǔ)設(shè)備(OSD),構(gòu)建存儲(chǔ)系統(tǒng),每個(gè)對(duì)象存儲(chǔ)設(shè)備,能夠自動(dòng)管理其上的數(shù)據(jù)分布,具有極高的讀寫性能。對(duì)象存儲(chǔ)通過(guò)多副本和糾刪碼冗余,可根據(jù)對(duì)象的重要程度選擇不同的冗余方式,實(shí)現(xiàn)存儲(chǔ)的高可用性。
由于對(duì)象提供了高性能、高可靠性、跨平臺(tái)以及安全的數(shù)據(jù)共享的存儲(chǔ)體系結(jié)構(gòu),應(yīng)用場(chǎng)景非常廣泛。各大公有云廠商的云計(jì)算產(chǎn)品均包含有對(duì)象存儲(chǔ)功能,本文以中國(guó)電信天翼云產(chǎn)品的行業(yè)應(yīng)用為案例,探討對(duì)象存儲(chǔ)在未來(lái)企業(yè)上云中的意義。
對(duì)于大規(guī)模企業(yè)網(wǎng)站,對(duì)象存儲(chǔ)有助于實(shí)現(xiàn)靜態(tài)和動(dòng)態(tài)資源分離。通過(guò)對(duì)象存儲(chǔ)提供的網(wǎng)站托管功能,可將網(wǎng)站的HTML網(wǎng)頁(yè)、圖片、視頻等資源存儲(chǔ)在對(duì)象存儲(chǔ)中,直接面向用戶提供網(wǎng)站資源的訪問(wèn)服務(wù)。通過(guò)對(duì)象存儲(chǔ)的高并發(fā)支持能力,幫助企業(yè)用戶有效解決網(wǎng)站應(yīng)對(duì)高并發(fā)所帶來(lái)的困擾。
對(duì)音頻、視頻等海量資源存儲(chǔ),通過(guò)使用對(duì)象存儲(chǔ),將文件推送到云端對(duì)象儲(chǔ)存。通過(guò)高速網(wǎng)絡(luò)支持海量數(shù)據(jù)上傳到最近的資源池,并利用對(duì)象存儲(chǔ)技術(shù)應(yīng)對(duì)高吞吐量、高并發(fā)及承載對(duì)流媒體的業(yè)務(wù)訪問(wèn)壓力。此外,云端的對(duì)象存儲(chǔ)還能提供圖片縮略圖、剪裁等處理能力,方便用戶使用。
利用對(duì)象存儲(chǔ),企業(yè)可以建立自己的云端備份系統(tǒng),將需要備份的企業(yè)數(shù)據(jù)寫入云端的對(duì)象存儲(chǔ),通過(guò)對(duì)象存儲(chǔ)的多副本冗余功能,還可實(shí)現(xiàn)異地?cái)?shù)據(jù)容災(zāi)。
對(duì)象存儲(chǔ)系統(tǒng)主要包括:
(1)Account(賬戶)。在使用OOS之前,用戶需要在天翼云網(wǎng)站注冊(cè)一個(gè)Account(賬戶)。成功開(kāi)通之后,用戶可以用該賬戶登錄并使用OOS服務(wù)。
(2)Service(服務(wù))。是OOS為注冊(cè)成功用戶提供的服務(wù),該服務(wù)為用戶提供彈性可擴(kuò)展的存儲(chǔ)空間。
(3)Bucket(桶)。桶是存儲(chǔ)對(duì)象的容器,類似文件系統(tǒng)的目錄。對(duì)象存儲(chǔ)系統(tǒng)的每個(gè)O對(duì)象都必須包含在一個(gè)桶中。用戶可設(shè)置桶的屬性,用于控制權(quán)限、生命周期等,B桶的屬性設(shè)置直接作用于該容器內(nèi)的所有對(duì)象。只有對(duì)桶擁有相應(yīng)的權(quán)限,才可以對(duì)其操作,實(shí)現(xiàn)授權(quán)訪問(wèn),從而保證數(shù)據(jù)的安全性。
(4)Object(對(duì)象)。用戶存儲(chǔ)在對(duì)象存儲(chǔ)系統(tǒng)上的每個(gè)文件都是一個(gè)Object(對(duì)象),可以是文本、網(wǎng)/視頻、網(wǎng)頁(yè)或者任意的其他二進(jìn)制內(nèi)容。
(5)AccessKeyID和AccessSecretKey。AccessKey ID和AccessSecretKey等同于用戶名和密碼,對(duì)象存儲(chǔ)系統(tǒng)會(huì)通過(guò)它們來(lái)驗(yàn)證對(duì)資源請(qǐng)求。
圖1 天翼云對(duì)象存儲(chǔ)OOS的概念和層級(jí)關(guān)系
天翼云對(duì)象存儲(chǔ)的訪問(wèn)方式主要有:控制臺(tái)直接訪問(wèn)、編程接口訪問(wèn)、云存儲(chǔ)網(wǎng)關(guān)訪問(wèn)、第三方軟件訪問(wèn)。
天翼云為客戶提供了對(duì)象存儲(chǔ)的控制臺(tái)。如圖2所示。
圖2 天翼云對(duì)象存儲(chǔ)控制臺(tái)
天翼云對(duì)象存儲(chǔ)控制臺(tái)[1]提供了豐富的管理功能,主要包括:
(1)容器管理。用戶登錄成功后,可以對(duì)擁有的Bucket及Object進(jìn)行操作,包括新建容器、容器列表、刪除容器、查看/修改容器屬性、冗余管理、容器安全策略設(shè)置、網(wǎng)站管理、日志管理、生命周期管理、跨域管理等。
(2)對(duì)象管理。對(duì)象(文件)上傳/下載、對(duì)象預(yù)覽、對(duì)象分享、文件夾增刪改、移動(dòng)/復(fù)制對(duì)象、搜索對(duì)象。
(3)密鑰管理。主密鑰、普通密鑰的生成和管理。
(4)資源統(tǒng)計(jì)。資源總覽、資源詳細(xì)使用情況(含容量使用、帶寬使用、請(qǐng)求次數(shù)等)。
編程訪問(wèn)是對(duì)象存儲(chǔ)OOS的最為主要和最基本的訪問(wèn)方式之一,天翼云OOS提供的RESTFUL接口與Amazon S3兼容,基于OOS的業(yè)務(wù)可以非常輕松地與天翼云對(duì)接,實(shí)現(xiàn)應(yīng)用程序直接與對(duì)象存儲(chǔ)對(duì)接交互,完成對(duì)象的存取調(diào)用。天翼云提供了基于JAVA、Python、PHP、C、JS等多種開(kāi)發(fā)語(yǔ)言開(kāi)發(fā)API[2],并支持安卓/IOS等移動(dòng)操作系統(tǒng)實(shí)現(xiàn)跨平臺(tái)調(diào)用,這些API方便開(kāi)發(fā)者將應(yīng)用與對(duì)象存儲(chǔ)集成。
圖3 編程訪問(wèn)對(duì)象存儲(chǔ)
對(duì)象存儲(chǔ)的服務(wù)API通過(guò)HTTPS提供訪問(wèn),天翼云對(duì)象存儲(chǔ)資源池主要分布在內(nèi)蒙、貴州數(shù)據(jù)中心和各省數(shù)據(jù)中心,不同的資源池提供不同的URL作為入口,用戶可根據(jù)自己的需要就近選擇資源池或根據(jù)需要將對(duì)象存儲(chǔ)到不同的資源池中。
天翼云提供的編程接口采用RESTFUL風(fēng)格的API,接口提供了豐富的接口函數(shù)或方法,主要有用戶登錄、Bucket桶操作和Object對(duì)象操作等API。用戶使用API時(shí),必須首先提供Access-Key和Secret-Key,調(diào)用登錄方法進(jìn)行登錄。登錄成功后可對(duì)桶(Bucket)進(jìn)行操作,如讀取、增、刪等。在桶中,用戶可以進(jìn)行對(duì)象操作,如上傳、下載等。對(duì)象存儲(chǔ)后擁有唯一的存儲(chǔ)標(biāo)識(shí)(鍵),對(duì)象一經(jīng)存儲(chǔ)后,不能再修改,只能刪除和重建。
在傳統(tǒng)應(yīng)用中,用戶一般以塊存儲(chǔ)的形式使用存儲(chǔ)資源,硬盤空間分區(qū)后以盤(WINDOWS)或卷(LINUX)的形式進(jìn)行掛載。當(dāng)用戶使用對(duì)象存儲(chǔ)時(shí),由于對(duì)象存儲(chǔ)使用的是S3 API,用戶的應(yīng)用程序需要改造才能適配對(duì)象存儲(chǔ)。對(duì)普通用戶而言,使用起來(lái)會(huì)產(chǎn)生諸多問(wèn)題,因此需要一款能夠?qū)?duì)象存儲(chǔ)轉(zhuǎn)換成塊存儲(chǔ)的工具。
圖4 云存儲(chǔ)網(wǎng)關(guān)
天翼云對(duì)象存儲(chǔ)網(wǎng)關(guān)[3]是一款可在本地或云上部署的工具軟件,存儲(chǔ)網(wǎng)關(guān)本質(zhì)上也是通過(guò)S3 API訪問(wèn)對(duì)象存儲(chǔ)的。存儲(chǔ)網(wǎng)關(guān)的主要功能是將對(duì)象存儲(chǔ)的訪問(wèn)轉(zhuǎn)換為塊存儲(chǔ)訪問(wèn),向用戶提供大容量的塊存儲(chǔ)空間。用戶借助云存儲(chǔ)網(wǎng)關(guān)無(wú)須改變應(yīng)用程序接口,可直接使用行業(yè)標(biāo)準(zhǔn)的塊存儲(chǔ)協(xié)議,如iSCSI或NFS,從而安全快速地將數(shù)據(jù)存儲(chǔ)在天翼云對(duì)象存儲(chǔ)OOS中。
使用云存儲(chǔ)網(wǎng)關(guān)后,用戶無(wú)須對(duì)原有應(yīng)用進(jìn)行任何更改,極大地方便了使用,客戶的塊存儲(chǔ)空間能夠彈性伸縮至PB規(guī)模,具備高可用性和持久性,能為海量數(shù)據(jù)、高帶寬存儲(chǔ)應(yīng)用提供有力支持??蛇m用于多種應(yīng)用場(chǎng)景,包括視頻監(jiān)控、備份容災(zāi)等。
在對(duì)象存儲(chǔ)上存儲(chǔ)的Web頁(yè)面、圖片、視頻等文件可直接向互聯(lián)網(wǎng)提供訪問(wèn),一般作為網(wǎng)站的靜態(tài)內(nèi)容提供,由于對(duì)象存儲(chǔ)的高可用和并發(fā)性,可用于支持各類客戶的分布式網(wǎng)站應(yīng)用。
使用對(duì)象存儲(chǔ)可用于構(gòu)建高并發(fā)網(wǎng)站,客戶在訪問(wèn)網(wǎng)站時(shí),首先訪問(wèn)云端的負(fù)載均衡器(如NGINX)。負(fù)載均衡器判斷是否為動(dòng)態(tài)網(wǎng)頁(yè),如果是動(dòng)態(tài)內(nèi)容,交給后端的動(dòng)態(tài)處理集群(如TOMCAT、PHP)進(jìn)行動(dòng)態(tài)頁(yè)面的處理并返回。如果是HTML、CCS、圖片或是視頻等靜態(tài)內(nèi)容,則反向代理至對(duì)象存儲(chǔ),通過(guò)對(duì)象的URL取得相關(guān)內(nèi)容,并返回用戶。
對(duì)象存儲(chǔ)支持副本功能,可將存儲(chǔ)在某個(gè)存儲(chǔ)池的數(shù)據(jù)在其他存儲(chǔ)池上建立副本。利用副本的特性,對(duì)象存儲(chǔ)能用來(lái)于構(gòu)建CDN系統(tǒng)。當(dāng)某個(gè)用戶訪問(wèn)時(shí),負(fù)載均衡器通過(guò)識(shí)別用戶的源地址或其他位置信息來(lái)確定用戶的具體位置,通過(guò)HTTP重定向,將網(wǎng)頁(yè)重定向到靠近用戶的對(duì)象存儲(chǔ)池,用戶可直接從就近的對(duì)象存儲(chǔ)池訪問(wèn)所需的頁(yè)面。對(duì)象存儲(chǔ)Web訪問(wèn)可支持放盜鏈功能,可有效避免網(wǎng)站資源被惡意盜用。
3.5.1 通過(guò)客戶端軟件訪問(wèn)對(duì)象存儲(chǔ)
目前市場(chǎng)上有一些軟件可以直接實(shí)現(xiàn)S3對(duì)象存儲(chǔ)訪問(wèn),類似FTP和SFTP實(shí)現(xiàn)本地客戶端到對(duì)象存儲(chǔ)的上傳和下載。筆者常用的一款軟件是DragonDisk,安裝完成后,輸入Access Key/Secret Key,云端訪問(wèn)點(diǎn)URL。登錄成功后,可實(shí)現(xiàn)存儲(chǔ)桶管理、對(duì)象的上傳和下載等管理功能,支持批量拖拉進(jìn)行對(duì)象(文件)上下傳。筆者工作中經(jīng)常使用其作為云存儲(chǔ)開(kāi)通后的調(diào)試排障工具使用。除DragonDisk外,還有CloudBerry、S3 Curl、S3 Browser等,這些客戶端軟件都為文件和對(duì)象的傳輸帶來(lái)了友好方便的客戶體驗(yàn)。
圖6 使用客戶端工具軟件訪問(wèn)對(duì)象存儲(chǔ)
3.5.2 將對(duì)象存儲(chǔ)轉(zhuǎn)換為文件系統(tǒng)掛載
如果只有單臺(tái)服務(wù)器需要訪問(wèn)云存儲(chǔ),S3FS無(wú)疑是較好的選擇。S3FS是Google開(kāi)發(fā)的一款支持將對(duì)象存儲(chǔ)中的Bucket以文件形式導(dǎo)出的文件系統(tǒng)接口,兼容POSIX語(yǔ)義。S3FS允許Linux和Mac OS X掛載S3的存儲(chǔ)桶在本地文件系統(tǒng),S3FS能夠保持對(duì)象原來(lái)的格式。以UBUNTU系統(tǒng)為例[4]。
(1)獲取源代碼。
git clone https://github.com/s3fs-fuse/s3fs-fuse.git
(2)安裝依賴包。
apt-get install build-essential libcurl4-openssldev libxml2-dev mime-support fuse-dev fuse
(3)編譯S3FS。
cd s3fs;
./configure --prefix=/usr/local
make && make install
(4)配置對(duì)象存儲(chǔ)訪問(wèn)密鑰。
Bash
echo AWS_ACCESS_KEY_ID:AWS_SECRET_ACCESS_KEY > ~/.passwd-s3fs
chmod 600 ~/.passwd-s3fs
(5)掛載。
s3fs -o use_cache=/tmp/cache node1:/abcd /s3mnt
天翼云對(duì)象存儲(chǔ)的各類訪問(wèn)方式各有特點(diǎn),適應(yīng)不同的應(yīng)用場(chǎng)景使用,主要的比較如表1所示。
表1 天翼云對(duì)象存儲(chǔ)訪問(wèn)方式比較
醫(yī)療影像云服務(wù)于大中型醫(yī)療機(jī)構(gòu)、醫(yī)聯(lián)體和跨區(qū)域醫(yī)療機(jī)構(gòu)以及基層醫(yī)療機(jī)構(gòu),滿足醫(yī)療影像存儲(chǔ)、傳輸以及影像數(shù)據(jù)共享的需求,提供海量影像數(shù)據(jù)歸檔存儲(chǔ)、影像調(diào)閱與后處理,以及基于云端的PACS(Picture Archiving and Communication Systems)應(yīng)用于一體的醫(yī)療云平臺(tái)。醫(yī)療影像云的組網(wǎng)結(jié)構(gòu)如圖7所示。
圖7 醫(yī)療影像云系統(tǒng)架構(gòu)
醫(yī)院的PACS系統(tǒng)連接到醫(yī)療影像云前置機(jī)(網(wǎng)關(guān)),前置機(jī)為PACS系統(tǒng)提供通用的DICOM協(xié)議接口。醫(yī)療影像設(shè)備,如CT等通過(guò)DICOM協(xié)議將醫(yī)療圖像發(fā)送到前置機(jī)。前置機(jī)通過(guò)上云專線連接到醫(yī)療影像云集中平臺(tái),在平臺(tái)的控制下,前置機(jī)通過(guò)S3接口將影像數(shù)據(jù)存儲(chǔ)到天翼云對(duì)象存儲(chǔ)池,前置機(jī)同時(shí)將歸檔信息記錄到平臺(tái)上。
當(dāng)需要調(diào)閱時(shí),醫(yī)生工作站可以向前置機(jī)發(fā)出調(diào)閱指令,由前置機(jī)向平臺(tái)行查詢,取出相關(guān)的影像存儲(chǔ)位置后,調(diào)用對(duì)象存儲(chǔ)API從對(duì)象存儲(chǔ)取得影像資料,并通過(guò)DICOM協(xié)議交給醫(yī)生工作站,由工作站進(jìn)行顯示。
建立區(qū)級(jí)和市級(jí)集中醫(yī)療影像云平臺(tái)后,多家醫(yī)院之間的醫(yī)療影像信息不僅可實(shí)現(xiàn)共享和相互調(diào)閱,醫(yī)療
影像的存儲(chǔ)時(shí)間也從1~2年延長(zhǎng)到10年以上。
隨著對(duì)平安城市對(duì)安防要求的提升,對(duì)關(guān)鍵視頻存儲(chǔ)的時(shí)間要求也越來(lái)越長(zhǎng)。根據(jù)最新的要求,重點(diǎn)公共場(chǎng)所的視頻監(jiān)控保存要求從原來(lái)的1個(gè)月上升到3個(gè)月。按照1路1080 P高清視頻4 M碼流計(jì)算,存儲(chǔ)1 000路視頻圖像需要4 P存儲(chǔ)空間,相當(dāng)于1 000塊4 TB硬盤或4 000塊 1 TB硬盤。對(duì)于很多企業(yè)來(lái)說(shuō),由于受到機(jī)房和用電條件的限制,無(wú)法安裝額外的存儲(chǔ)設(shè)備,難以滿足監(jiān)控?cái)U(kuò)容要求。通過(guò)使用天翼云對(duì)象存儲(chǔ),可以將這些視頻直接存儲(chǔ)到云端,利用天翼云對(duì)象存儲(chǔ)巨大體量實(shí)現(xiàn)視頻的長(zhǎng)期存儲(chǔ)。
在上海某機(jī)場(chǎng)[5]的監(jiān)控項(xiàng)目中,用戶需要將1 000多路視頻監(jiān)控的存儲(chǔ)時(shí)間從1個(gè)月提升到3個(gè)月,天翼云提供了視頻監(jiān)控存儲(chǔ)方案。在方案中,在云上部署一套云視頻存儲(chǔ)平臺(tái)。該平臺(tái)具備直接訪問(wèn)對(duì)象存儲(chǔ)的存取能力,可直接將視頻存放到天翼云對(duì)象存儲(chǔ)。
通過(guò)OTN高速專線連接到天翼云端的視頻存儲(chǔ)平臺(tái),視頻存儲(chǔ)平臺(tái)通過(guò)DCI連接到天翼云對(duì)象存儲(chǔ)池。機(jī)場(chǎng)監(jiān)控系統(tǒng)與云監(jiān)控存儲(chǔ)平臺(tái)之間通過(guò)國(guó)標(biāo)GB/T28181協(xié)議進(jìn)行對(duì)接,實(shí)現(xiàn)了視頻上傳云端以及從云端調(diào)閱的功能,1 000多路視頻全部實(shí)時(shí)存儲(chǔ)上云,運(yùn)行穩(wěn)定。
上海某高樓的情況與某機(jī)場(chǎng)情況類似,用戶也需要擴(kuò)容視頻存儲(chǔ)能力。由于該用戶的監(jiān)控設(shè)備為國(guó)外廠商,視頻錄像服務(wù)器無(wú)法實(shí)現(xiàn)國(guó)標(biāo)對(duì)接,只能支持ISCSI硬盤存儲(chǔ)。為此電信通過(guò)存儲(chǔ)網(wǎng)關(guān)的形式提供存儲(chǔ)資源,安裝多臺(tái)存儲(chǔ)網(wǎng)關(guān),將對(duì)象存儲(chǔ)轉(zhuǎn)換為ISCSI塊存儲(chǔ)供用戶使用,用戶的視頻錄像服務(wù)器采用ISCSI掛載硬盤存儲(chǔ)網(wǎng)關(guān)虛擬出的硬盤卷,用戶的監(jiān)控系統(tǒng)不需要進(jìn)行改造,與用戶原先的使用方式?jīng)]有任何差異。
圖8 視頻上云存儲(chǔ)方案
天翼云對(duì)象存儲(chǔ)的特點(diǎn)同樣可以使之方便地成為企業(yè)數(shù)據(jù)備份的解決方案,通過(guò)對(duì)象存儲(chǔ)的各類訪問(wèn)方式方法,如存儲(chǔ)網(wǎng)關(guān)掛盤擴(kuò)展存儲(chǔ)資源,通過(guò)客戶端軟件上傳下載文件,通過(guò)編程開(kāi)發(fā),能迅速構(gòu)建起數(shù)據(jù)異地備份系統(tǒng)。
目前部分傳統(tǒng)存儲(chǔ)設(shè)備也開(kāi)始支持將對(duì)象存儲(chǔ)作為容量擴(kuò)充的手段。某事業(yè)單位急需擴(kuò)容存儲(chǔ)硬盤,但由于采購(gòu)問(wèn)題無(wú)法立刻到位。因此,電信推薦用戶存儲(chǔ)設(shè)備通過(guò)專線和S3接口與天翼云對(duì)象存儲(chǔ)池建立連接,再將對(duì)象存儲(chǔ)的空間轉(zhuǎn)換為ISCSI塊存儲(chǔ)供服務(wù)器使用。這種使用方法與存儲(chǔ)網(wǎng)關(guān)的作用相似,可用于傳統(tǒng)存儲(chǔ)的容量靈活擴(kuò)展,降低了客戶的采購(gòu)成本,加速企業(yè)應(yīng)用的構(gòu)建。
圖9 傳統(tǒng)存儲(chǔ)對(duì)接對(duì)象存儲(chǔ)
對(duì)象存儲(chǔ)正在不同行業(yè)發(fā)揮著日益重要的作用。隨著企業(yè)上云的深入推進(jìn),傳統(tǒng)存儲(chǔ)向分布式存儲(chǔ)、云存儲(chǔ)轉(zhuǎn)變的趨勢(shì)日益明顯,對(duì)象存儲(chǔ)發(fā)揮的作用必將進(jìn)一步顯現(xiàn),應(yīng)用的領(lǐng)域和場(chǎng)景必將越來(lái)越廣。