百度 Tera 分散式儲存
分散式儲存,最近一直在調研分散式儲存,分散式儲存應該關注哪些點,什麼樣分散式儲存是符合業務需要的?當節點出問題時怎麼進行新節點補充?怎麼知道叢集整體情況,節點記憶體情況,節點cpu情況、快取情況、負載情況、連線情況?怎樣進行相應監控以及報警?
分散式儲存設計哲學有兩種,一種是主從事,元資料存在統一位置,Google設計分散式儲存大多采取這種方式。還有一種是無中心式,3.0版本redis官方叢集方案採取無中心學習方式構建叢集,和Google方式比屬於另一種設計方式。
線上應用開源儲存,從業務角度看,有幾個要求,效能是重要指標,達不到效能指標很多事情可能無從談起,一票否決。直接就可以不用繼續去花費時間研究了。
效能之外,穩定性是一個重要指標,對於網際網路公司,面向普通使用者,穩定性關係著使用者核心體驗,不穩定對於業務是災難性的不可接受的,穩定是效能之外強指標,穩定要能7*24小時持續穩定除了機器壞之外,軟體本身需要相當穩定。
穩定之外就是怎樣進行運維管理,主要包含擴容、縮容、叢集負載監控、叢集流量監控、叢集管理中心以及叢集異常時報警怎麼做?這些是實際應用中遇到核心問題,能夠有這些才能把儲存用起來,開源方案中不包含的話就要看怎麼補充上,用命令列方式管理?
分散式儲存要入大量資料,節點資料過多就需要進行擴容,擴容操作方式,以及擴容本身對於線上業務效能影響,效能影響過大是無法使用的,因為會導致線上業務效能變差,但是可以從業務層面解決這種問題,摘除這種儲存,擴容完成後在開啟,類似於一種降級方案。
在有就是縮容也可以是多個小的儲存節點合併,合併後可以減少不必要資源浪費,提升資源利用率,與上面問題類似,也是面臨合併時怎麼樣避免資源浪費。
叢集負載均衡,讀的時候比如突發熱點事件,突然導致某個、或者某幾個節點讀取壓力增大,這時動態調整資源減輕節點讀取壓力。這也是分散式儲存重要一個點,也影響到儲存能否應用於我們的業務。
在有就是叢集整體監控,有一個統一的監控平臺能夠監控,叢集整體情況,節點cpu、記憶體、連線、流量等,並且能夠對各個指標進行設定監控報警,有這種統一式管理平臺,能夠極大方便對於整個叢集管理。
百度Tera分散式儲存,大體上上邊都包含,主要就是叢集監控這塊沒有看到相關資訊,需要在持續調研,分散式儲存從應用角度,大概都是面臨上述相關問題,可以分享一下你用分散式儲存的一些情況以及心得體會。