張敏 涂曉東
電子科技大學通信學院 四川 611731
現在比較好的存儲管理方式是網絡存儲,企業將數據外包給外部的存儲服務提供商(Storage Service Provider,SSP)進行存儲和管理,這種模式更像是Email或者Web主機服務。在這個模型下,將他們的數據存儲在由SSP管理的遠方站點,并通過高速網絡(公網或私網)接入。這就是外包存儲。
外包存儲可以通過多種方式作為一種服務存在,每種模型都有各自的優點和缺點。模型的設計點包括:數據和元數據的I/O路徑,集中還是分布式的訪問方式以及密鑰管理的復雜性等。
區分這兩種模型很重要。圖1和圖2分別為ASP模型和SSP模型的架構。在SSP模型中,企業將數據外包給存儲服務提供商,如Amazon,Nirvanix等企業都提供這種存儲服務,這就像一個網絡硬盤。而在ASP模型中,企業不僅將數據外包存儲,也將特定的應用外包給服務提供者。企業用戶能夠通過網絡訪問這些應用。像IBM, HP, Salesforce.com等企業都提供這種應用托管服務。


ASP模型雖然能幫助企業卸下部署和管理數據業務中心的負擔,然而,它有兩個主要的缺點:
(1)安全性
因為把應用托管在服務提供者那里,數據就需要以明文存儲。這對許多旨在保護自身知識產權和內部機密的企業來說是不可接受的。相反,SSP模型可以在SSP上存儲加密后的數據,這樣就保證了數據的機密性。
(2)靈活性
通過將應用外包給服務提供商,任何新定制的應用服務都需要得到服務提供商的認同才可以實施,協同合作限制了企業的靈活性。相反,在SSP模型中,應用服務還是由企業自身站點來提供,從應用角度看,SSP提供的外部環境同本地存儲環境是十分類似的。
這種服務模型采用一個單一的接入點——企業所有用戶通過一個代理服務器同SSP交互——將數據存儲到SSP或將數據從SSP取回。如圖3所示。為了實現數據的機密性,企業對將要存儲在 SSP的數據通過加密文件系統進行加密/解密,而對企業內部其他辦公地點的用戶的數據請求,則使用代理網關文件服務器處理。

企業要將自己在本地創建的存儲數據中心轉變成這種模型是非常容易的,只需要建立一個加密文件系統,由此系統實現將數據存儲到SSP之前的所有數據的加密工作,相應地,從SSP讀取數據時進行解密。用戶與直接連通的網關文件服務器之間通過常用的協議如NFS或者CIFS交互。在這個模型中,保護數據的機密性是很容易的,密鑰管理也相當簡單(實際上,所有的數據可以被一個單一密鑰加密,而這個惟一的密鑰只有企業加密文件系統才可以獲得)。同時,可由代理服務器執行用戶的訪問控制工作。但是,這個模型卻有下面幾個不理想的性能:
(1)過于集中化:代理服務器模型采用了一個中央網關,這個網關負責所有數據和元數據的I/O。這會引起I/O瓶頸,因而不適合大負荷的網絡環境(企業)。如果這個代理服務器無法工作,則也就斷送了SSP的服務。
(2)額外的網絡 hop:因為只有企業文件系統能直接訪問SSP的數據,因此該企業其他辦公地點的其他用戶對文件的存取需要額外增加一個hop。這會反過來影響 I/O性能,盡管可以通過數據緩存技術減輕一些這樣的負擔。
(3)兩次密鑰操作:對于每一次的數據訪問,這個模型都需要兩次密鑰操作。例如,用戶要執行一次讀操作,企業文件系統需先解密從 SSP取回的數據(因為只有企業文件系統知道密鑰),然后再將數據加密并通過網絡傳送給外地的用戶,到用戶那里后將會再進行解密。如果允許用戶直接訪問SSP,后面額外的加密開銷將被避免。
(4)網關管理:這個模型中,企業對網關文件服務器的管理負責,這同樣帶來管理上的花銷。
總之,這個模型更適用于企業數據的存取全發生在一個地點的企業。這樣,集中性和加密解密帶來的開銷將消除。
根據第一種模型的一些不理想特性,第二種外包模型分離了元數據和數據的I/O路徑,這樣可以減少第一種模型因為數據I/O過于集中而帶來的性能沖擊。這個模型中,如圖4,企業網關作為一個元數據服務器存在,只存儲并提供有關數據的信息而不存儲數據本身,像數據塊的地址和所取文件的加密密鑰等。而數據則直接從SSP處獲取。如今,類似的帶外文件系統正被使用,適用于客戶端的并行 NFS(pNFS)標準也已被開發。

這個模型的好處是消除了企業代理服務器模型引起的數據瓶頸問題。比較適合較大文件的存取訪問,原因是元數據I/O仍然采用集中化的方式實現,尤其當存取小文件時,需要對元數據進行頻繁的讀取,這樣會影響元數據代理服務器的性能。第二,加密策略與先前的模型不同。因為客戶端直接從SSP處存取數據,如果像第一個模型中那樣,所有文件采用同一密鑰,可是我們不能保證SSP可以替代企業執行用戶訪問控制的工作,則用戶可以訪問自身權限以外的文件。因此,必須對每個文件用不同的密鑰加密,并且只有有權限訪問該文件的用戶才能從元數據服務器上獲取密鑰。這樣,將會有大量的密鑰去管理,而客戶端也必須完成加密/解密操作。除此之外,網關元數據服務器的管理仍然由企業來負責。
這個模型考慮客戶——企業和用戶從SSP直接存取數據的情況,如圖5。這排除了任何數據或元數據I/O瓶頸問題,對利用SSP進行內容分發服務來說是最合適不過了。當然,這里不存在網關服務器管理問題。

類似于元數據代理服務器模型,因為用戶同SSP直接交互,而同時無法確保SSP一定會進行訪問控制,因此每個文件需要用不同的密鑰加密。但是密鑰到用戶的分發不再采用集中的方式(從元數據服務器獲得)而是分布的方式。當然也就省去了網關管理的麻煩。密鑰管理問題的方案可以使用公鑰加密方案,但性能較差。均衡加密方式相對而言是一種較好的方式。
這部分,我們總結各種不同的外包存儲模型。表1給出了三種不同模型的各個方面的不同點。

表1 各種模型性能比較
通過以上分析,我們發現,如果一個企業通過服務器代理的方式集中化數據和元數據的 I/O,則性能和服務器管理的開銷仍然很大。而元數據代理模型降低了數據集中程度,但是元數據的請求仍然過于集中,這仍會對性能帶來一定的影響。而且,這兩種模型,都需要客戶端所在的企業對代理網關進行管理,這將會成為單點故障。相比之下采用分布式服務模型,能更好地實現性能的優化。另外,如果輔以有效的帶內密鑰分發技術,就可以同時減輕由此帶來的密鑰管理復雜性。雖然在I/O性能上第三種模型有非常明顯的優越性,但是每種模型仍然有自己的適用范圍。如第一種模型適合用來將檔案資料等信息外包的企業。這類外包存儲的特點是用戶同交互不多,且基本是企業與SSP來交互。第二種模型更適用于現有的網絡環境,以Amazon S3為例,因為元數據中包含數據的各種信息,取數據之前必須從SSP上獲取相應的元數據,這反而帶來了更多的網絡開銷,從而直接影響了性能,因此將元數據存儲在企業內部服務器上,通過企業內部網絡更高效地訪問是一種比較好的選擇。分布式模型在未來具有更普遍的意義,但必須以高速的網絡環境和完善的密鑰管理為基礎。
隨著數據價值不斷提升以及存儲網絡化、網絡存儲外包服務化的不斷發展,企業必將選擇更適合自己的外包服務模型,在綜合考慮存儲系統的可實現性、性能和存儲安全性和開銷等方面后,保證數據能夠真正得到安全有效的外部存儲。在現有模型的框架下,除了基本的數據加密和密鑰管理之外,加入更可靠的完整性等安全方面的驗證,可滿足不同企業對性能、安全級別、價格等多種因素的不同需求,使現有的模型更加完善。
[1] Parallel NFS standardization.the IETF.2008.
[2] Eu-Jin Goh,Hovav Shacham,Nagendra Modadugu,Dan Boneh.Stanford Universitya.SiRiUS--Securing remote untrusted storage.NDSS.2003.
[3] Aameek Singh,Ling Liu,San Jose,Altanta,SHAROES:A Data Sharing Platform for Outsourced Enterprise Storage Environments.IEEE Int'l Conference on Data Engineering(ICDE).2008.
[4] https://s3.amazonaws.com/.
[5] John Chirillo,Scott Blaul.Storage Security Protecting SANs.NAS,and DAS.2004.