成長型公司的存儲架構

 經常有人問我們,如何爲成長型公司的大型系統部署存儲架構,尤其是當這些大型系統含有視頻、音頻、或社交類網站時,該如何構建存儲架構?以下介紹一些我們常選擇的方法及各自的優點。

構建存儲架構時,要考慮許多問題,最明顯的如存儲容量、訪問速度、緩存選擇方案、服務器共享方式、訪問協議及訪問方法、安全及備份等等。

首先,我們認爲最好的存放地址是存放在雲中,這些服務存放在雲中會很安全,如Amazon S3,阿里雲OSS,或 Qiniu's 的動態系統。但是,若你是自己想存儲數據的話,你可以選擇不同類型的存儲容量。

DAS - 直接附加存儲,也稱爲本地硬盤存儲,是一種最普遍、速度最快也是最爲經濟的存儲解決方案。現在已經有4TB的硬盤,再加上標準機箱可以有6-8個這樣的硬盤,所以,若服務器是RAID5 配置的話,很容易就能達到20TB 以上。同時使用多個服務器的話,也很容易就能達到100TB,但是管理起來並不容易。所以,DAS是本地數據庫存儲、NFS共享存儲及其它簡單系統最好的存儲選擇方案。要想找一個比較簡單的存儲方案,這不失爲一項最佳選擇。

NAS - 網絡附加存儲也比較盛行,由兩部分組成。最常見的情況就是 簡單的服務器之間的NFS 共享,這種存儲方式採用上文所述的大型TB硬盤,能存儲簡單的共享圖片甚至視頻,也能夠達到十幾TB 的存儲量。

NAS 的第二種解決方案,則是商業解決組件,如NetAppFiler, 其存儲容量可達幾百TB,是一個強大的NFS解決方案,這些通常運用於大型系統,但是缺點是,當系統擴展受成本限制時,對此類存儲進行擴展會花費很大的成本。

SAN - 存儲區域網絡,常被認爲是NAS的“大哥”。但是,由於其成本太大且難以管理,所以,互聯網行業通常不選擇此解決方案。此外,該種存儲不能夠很好的響應互聯網公司的共享需求,因爲這種方案只連接幾臺高IO要求服務器如Oracle數據庫聯繫在一起。

羣集存儲 - 在不用NFS 的情況下,這種方式越來越多的被用於解決共享問題。這種存儲方案最好的優勢在於,由於是羣集存儲,所以可以允許存儲冗餘存在,而這在DAS 或NAS系統中是很難實現的。常用的羣集存儲方式包括RedHat公司擁有的GlusterFS, 以及MogileFS。

這些系統通常管理起來很複雜,而且也有很多限制,如文件存放,空間管理及訪問方法。例如,GlusterFS 就是由客戶端進行管理,且以FUSE掛載,而MogileFS則根本無法掛載,因爲它採用的是庫驅動API,由PHP進行訪問的等等。

羣集存儲容量可以擴大,甚至擴展到100TB,通常用於中等大小的圖片或視頻系統,前提是已經知道了它的限制和複雜性。

分佈式存儲 - 是羣集系統的一個遠房“表親”,完全分佈式的系統和Google File System比較接近, 在這個系統中,所有的文件、分佈、複製、空間等都自動由系統進行管理。客戶通常通過內核驅動程序安裝該系統,整個分佈式系統就像是SAN或NAS一樣工作。

這些通常都是功能強大的商業化系統,如北京的Loongstore。它們通常至少需要幾個服務器才能開展工作,因爲他們通常需要一個或更多的集羣,並且其他服務器作爲管理服務器來運行,除多個集羣之外,多個存儲節點也可以。但是,他們可以擴展到1PB甚至更大,是大型系統擴展的理想選擇,並具有很高的冗餘特性及極高的性能。

Flickr 或 Everote 就如API存儲 - 可達500TB 甚至1PB, 對於某些特定存儲需求,如圖片存儲,甚至可能用到幾個基於文件的API系統,儘管大多數情況下是用於用戶目錄的增長。Flickr和Evernote 都發布了各自的系統架構,基本上都是基於HTTP文件存儲的分佈式集中管理系統。

在這些系統中,客戶端調用目錄尋找文件,然後獲得一個URL反饋,指向在服務器或羣集服務器上的需要進行讀/寫的文件。然後,客戶端再發一個HTTP請求來讀取這個文件,這個請求由單個服務器或一個小的羣集服務器(使用複製或冗餘RAID)進行處理,從本質上來說,這是一個共享存儲系統,可以無限制擴展。但是,同其它共享存儲系統一樣,都面臨着文件移動,管理難等挑戰。

Amazon S3 使用的就是類似於這樣的一個系統,使用基於HTTP的存儲及你的內部目錄瞭解你的文件存儲地址。

Facebook - 最優秀的擴展案例就是Facebook系統, 該系統設計用於存放幾十億的文件,每秒處理幾百萬的請求。 該系統有點像 NFS/GFS 系統,在硬盤格式、有線網絡格式上都採用了最佳的選擇方案,在網絡和硬盤上採取最短的文件傳輸路徑。你不會想在不久的將來構建一個這樣的系統,但是,花時間去研究一下,你會發現很有趣。

您會發現,成長型公司可選擇多種不同的存儲方式。但是,只有前幾種存儲方案對於成長型公司是比較實際的,DAS, NAS及羣集存儲。每種存儲方案有其各自的優缺點。我們很高興與您一起選擇、構建並運行最適合您的解決方案。



(Authored by Steve Mushero / ChinaNetCloud CEO & CTO 本博客英文原文請點此查看

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章