常常有人問咱們,如何爲成長型公司的大型系統部署存儲架構,尤爲是當這些大型系統含有視頻、音頻、或社交類網站時,該如何構建存儲架構?如下介紹一些咱們常選擇的方法及各自的優勢。數據庫
構建存儲架構時,要考慮許多問題,最明顯的如存儲容量、訪問速度、緩存選擇方案、服務器共享方式、訪問協議及訪問方法、安全及備份等等。緩存
首先,咱們認爲最好的存放地址是存放在雲中,這些服務存放在雲中會很安全,如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。ide
這些系統一般管理起來很複雜,並且也有不少限制,如文件存放,空間管理及訪問方法。例如,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 本博客英文原文請點此查看)