上圖截自DELL官方網站,很清楚明白的闡述了叢集Cluster作完之後的狀態,硬體自有一套機制去控制哪台實體機能寫入DB,而當一台實體的Server掛點,會藉由健康監測機制去通報所有叢集區內的實體伺服器,而由他們去接手掛點Server的服務。
架構延展到虛擬化上面,例如上圖所示的Production Cluster,一定是成雙成對的實體機器(可能是兩台或是四台這樣),而這些實體機器可能透過各種不同的方式存取Database(iSCSI或是SAN架構),但是這些DB上面的資料肯定都是一致的。所以ESXi的安裝會橫跨在Cluster上面,但是VMWare實際資料會存在DB上,當任何一台實體伺服器掛點的時候,都不會影響現有服務運作,這就是HA(High Availability)。
到這邊只能做到實體的HA,接下來可以談談虛擬的HA,也就是永不中斷的服務,例如網頁運作。對於一個不容許中斷服務的網站來說,我們需要Load Balance(負載平衡)的網路設備,例如Cisco ACE 4710,通常這種硬體設備很貴,用頻寬再算錢。但是它就能夠做到像是前端網址是www.most.gov.tw科技部首頁對映後台4台或更多的虛擬OS(Web Server),達到永不間斷的網頁服務,可能以輪循法或是負載偵測等等方式決定下一個連線的Session要連後面的哪一台Server,當任何虛擬OS掛點時,ACE會將他排除到服務名單中,可以自行設定檢測機制為何,當他服務恢復後,ACE會自動檢測後再將它排入服務輪循清單中。
所以這樣就能建置起一套從硬體到虛擬化完整的HA Solution,當然這些只是基礎中的基礎而已。
Database虛擬化就很難辦到了,因為I/O瓶頸速度跟VMWare並沒有人工智慧去判斷這台是DB須給予超高優先存取權跟較多的網路資源,所以MS-SQL Server裝在VMWare上是可行,但是並不實用。因此並沒有企業能夠做到100%的完全虛擬化,因為DB虛擬化的成本過高,除非實體伺服器全部使用SSD硬碟(提高實體I/O跟回應速度),還是有人這麼做,但是要價不斐。還有另外一種解決方案就是利用SSD作為Database的Cache,但是這就必須取決於第三方也就是SSD原廠的AP支援。
沒有留言:
張貼留言