1. 程式人生 > >系統擴充套件方式 scale up和scale out

系統擴充套件方式 scale up和scale out

什麼是scale up和scale out?

  許多儲存系統開始很簡單,但當需要進行系統擴充套件時就會變得複雜。升級儲存系統最常見的原因是需要更多的容量,以支援更多的使用者,檔案,應用程式或連線的伺服器。

  但是通常,儲存系統的升級不只是需要容量,系統還對其他儲存資源有額外需求,即頻寬和計算能力。如果沒有足夠的I/O頻寬,將出現使用者或伺服器的訪問瓶頸;沒有足夠的計算能力,常用的儲存軟體如快照、複製和卷管理等服務都將受到限制。

  常見的系統擴充套件方式有scale up和scale out兩種。

  Scale Up(縱向擴充套件) 主要是利用現有的儲存系統,通過不斷增加儲存容量來滿足資料增長的需求。

什麼是scale up和scale out?

  但是這種方式只增加了容量,而頻寬和計算能力並沒有相應的增加。所以,整個儲存系統很快就會達到效能瓶頸,需要繼續擴充套件。

  這個時候有兩種方法,一是採用更強效能的儲存引擎(EMC 的Clarion系統和NetApp 的FAS系列,採用增加控制器CPU或記憶體的方式來提供更強的效能),但是這種方式問題在於價格昂貴;

  另外一種方法是額外購買的獨立的儲存系統,這樣又會增加管理的複雜度。

  Scale-out橫向擴充套件架構的升級通常是以節點為單位,每個節點往往將包含容量、處理能力和I / O頻寬。一個節點被新增到儲存系統,系統中的三種資源將同時升級。

什麼是scale up和scale out?

  從上面的圖例可見,容量增長和效能擴充套件(即增加額外的控制器)是同時進行。

  而且,Scale-out架構的儲存系統在擴充套件之後,從使用者的視角看起來仍然是一個單一的系統,這一點與我們將多個相互獨立的儲存系統簡單的疊加在一個機櫃中是完全不同的。

  所以scale out方式使得儲存系統升級工作大大簡化,使用者能夠真正實現按需購買,降低TCO。

  以下是常見的兩個比喻:

  一是傳統火車和動車。傳統的儲存Scale-up架構的儲存就好像傳統的火車一樣,當後面的磁碟越掛越多的時候,控制器效能以及背板頻寬卻不能相應提升,因此傳統儲存在磁碟容量擴容到一定程度時候,往往效能下降。

  叢集儲存就好像新一代的“動車組”火車一樣,當火車車廂增加的時候,前面的火車頭動力也隨之增加,因此不會發生效能瓶頸。

  所謂動車組的設計理念和傳統火車設計理念的最大區別在於傳統火車主要動力來自於火車頭(就像傳統模組化陣列的兩個控制器),而動車組則不一樣,除了車頭配有動力裝置外,每一節車廂都配有動力推動裝置。叢集儲存大多都是由一個個節點(X86 伺服器)組成,每一個節點新增進去後,不僅能夠新增容量,還能夠新增整個儲存器的整體處理能力。

  另外一個魚缸的比喻:

  當你只有六七條魚的時候, 一個小型魚缸就夠了;可是過一段時間新生了三十多條小魚,這個小缸顯然不夠大了。

  如果用Scale up解決方案,那麼你就需要去買一個大缸,把所有沙、水草、佈景、加熱棒、溫度計都從小缸裡拿出來,重新佈置到大缸。這個工程可不簡單哦,不是十分鐘八分鐘能搞得定的,尤其水草,糾在一起很難分開(不過這跟遷移資料的工程複雜度比起來實在是毛毛雨啦,不值一提)。

  那麼現在換個思路,用Scale out方案,就相當於是你在這個小缸旁邊接了一個同樣的小缸,兩個缸聯通。魚可以自動分散到兩個缸,你也就省掉了上面提到的那一系列挪沙、水草、佈景等的折騰了。