經常看到人們在談論雲存儲,但是沒看過實際的圖,人們很難想像到底雲存儲是什麼模樣,下面就是一個雲存儲的簡易架構圖。
橘色的存儲節點(storage node)負責存放檔,藍色的控制節點(control node)則是作為檔索引,並負責監控存儲節點間容量及負載的均衡,這2個部分合起來便組成一個雲存儲。 存儲節點與控制節點都是單純的伺服器,只是存儲節點的硬碟多一些,存儲節點伺服器不需要具備 RAID 的功能,只要能安裝 Linux 即可,控制節點為了保護資料,需要有簡單的 RAID level 01的功能。 每個存儲節點與控制節點至少有2片網卡(千兆、萬兆卡都可以,有些也支援 infiniband),一片網卡 internal 負責內部存儲節點與控制節點的溝通、資料移轉,一片 external 負責對外應用端的資料讀寫,一片千兆卡, 讀可以達到100MB,寫可以達到70MB,如果你覺得對外一片網卡不夠,也可以多裝幾片。
上面灰色的方塊(NFS、HTTP、FTP、WebDav)是應用端,左上角的灰色方塊(mgmt console)是一台PC,負責雲存儲中存儲節點的管理。 對應用端看來,雲存儲只是個檔案系統,而且一般來說支援標準的協定,例如NFS、HTTP、FTP、WebDav等等,所以很容易把舊有的系統與雲存儲結合,應用端不需要作什麼改變。
雲存儲不是要取代現有的盤陣,而是為了應付高速成長的資料量與頻寬而產生的新形態存儲系統,因此雲存儲在設計時通常會考慮以下三點:
1、容量、頻寬的擴容是否簡便
擴容是不能停機,會自動將新的存儲節點容量納入原來的存儲池,不需要做繁複的設定。
2、頻寬是否線形增長
使用雲存儲的客戶,很多是考慮未來頻寬的增長,因此雲存儲產品設計的好壞會產生很大的差異,有些十幾個節點便達到飽和,這樣對未來頻寬的擴容就有不利的影響,這一點要事先弄清楚,否則等到發現不符合需求時,已經買了幾百TB, 後悔就來不及了。
3、管理是否容易
不說Google有五萬台存儲伺服器,即使國內也有很多客戶有超過500台存儲的,若不使用雲存儲來統一管理,管理500台存儲是一個巨大的工作,一不小心就可能導致某些應用的崩潰,因此雲存儲的應用是一個必然的趨勢, 當使用者把應用遷移到雲存儲,他管理的就是一台存儲,而不是500台甚至五萬台存儲。 管理一台存儲不容易出錯,分別管理五萬台要不出錯就很難了。
上面介紹的是一個純軟體的雲存儲解決方案,有的產品是硬體的解決方案,他們把橘色的存儲節點和藍色的控制節點,放在一台設備上,這樣做的缺點是成本比較高,客戶也不能夠按照自己的需求,任意選擇適合自己規格的硬體,例如讀寫性能、網卡 、硬碟容量等等,因此我個人觀點覺得軟體的解決方案會成為最後的贏家,因為以雲存儲消費者的角度來看,他們對成本的要求很高、也不希望放棄他們原有的硬體投入,這些都是硬體的解決方案無法滿足的。