http://vlife.pixnet.net/blog/post/46550240
Q: 首先談這個問題的正確解法,一台 ESXi host 要停機維修,上面的 VMs 怎麼辦?有什麼辦法可以快速移轉 VM 到其它 ESXi host?
A: Maintenance Mode。
Description:
你必須先進入維護模式,vCenter Server 才知道你這台機器是要停機維修,進一步採取措施。這很重要,一旦 host 宣告要進入 Maintenance mode,代表了 DRS 必須馬上要有後續因應動作:將所有 VM 撤出這台機器。假設你啟用了 DRS,由於 vMotion 會自動化 (Fully automated 選項),你並不需要擔心 Cluster 裡的 VM,因為他們會被自動分配到合適的 host 上去運行,此期間服務並不會中斷,也不需要自己手動一台一台 vMotion。對於 "預期性的計畫停機",DRS 可以說是最好的因應之道。
但是在這個例子中,由於公司購買的版本是 Essential Plus,有 vMotion、HA 功能但沒有 DRS,怎麼辦?若是在 HA Cluster 讓 ESXi host 宣告 Maintenance Mode,代表的意義是什麼?請注意,HA 並不會觸發 vMotion,沒這回事,兩者功能目的並不相同,我們一般說的 "搬"、"飛" 的字眼,其實都是 vMotion,期間並不中斷服務,HA 用於防止 "非預期、非計畫性的故障停機" 帶來的問題 -- 當實體機器臨時掛了,哪裡來得及 vMotion?但許多 VMs 都 on 在這台機器上,總要有個脫困的方法。這也就是為什麼 HA 是採用接管、重新啟動 VM 在其它 ESXi host 的方式來解決,這絕對會產生 Downtime。
以這個例子來說,由於版本限制功能的問題,停機維修並沒有 DRS 可用,若不想中斷服務,必須手動或排程執行 vMotion。若是啟用 HA,關閉 host 的方法讓所有的 VM 重新啟動在另一 ESXi 是可行的,但記得這會造成虛擬機器關閉、重啟,有數分鐘停止服務的時間。(當然 VM 要能符合 vMotion 及 HA 的條件,在此就不多說)
你可能會想,幾分鐘的停機時間算不錯了,不會造成太大的影響。沒錯,我敢說在企業裡 95% 以上的服務是沒有急迫性,連幾分鐘都等待不了的。真正不允許有停機時間的應用不到 5%。問題是,老闆可不這麼想,他說我一秒幾十萬上下,電腦怎可停止服務?於是你被罵了一頓。ESXi 永不當機做不到,但 Guest OS 服務不停頓,卻是辨得到的,那就是再架構 FT / MSCS / APHA 保護關鍵性應用 (但是又要花費龐大支出,你可能又會被罵了一頓)
然後接著你會發現,即使你的 VM 都符合條件,也啟用了 HA,當一台 ESXi 發生故障,VM 卻無法重啟在另一 host 上,於是你灰頭土臉地被罵了第三次。IT 人很辛苦,我暸 (拍肩),我來告訴你是怎麼一回事。通常發生這樣情形,可能原因是:
1. Configuration
你設定的 Heartbeating、VM monitoring、VM 啟動優先順序、Isolation Respone、有無啟用 Admission Control 等均會造成影響,牽扯範圍甚廣,有機會的話專文介紹之。
2. Admission Control
若是啟用了 HA Admission Control,則它就會嚴格把關,一旦其它 hosts 支撐不了那麼多 VM 啟動,VM 就被禁止開機。這也就是前面所提到的,在 HA Cluster 將 host 宣告爲 Maintenance Mode,代表的就是它的硬體資源不會被計算在內, Cluster 的整體資源減少了。以這個例子來看只有兩台實機,將一台停機維修等於當埸少了一半硬體資源,若是事先沒有規劃妥善,預留資源的話,Admission Control 爲了確保原 host 的 VM 運作正常,當然不答應所有的 VM 全部跑過來。若是關閉 Admission Control,則 VM 都能重新啟動在僅剩的 host 上,但你必須確定資源不會被拖垮,效能每個人都能接受。否則接下來,可能會被罵N次了 >"<
ESXi host需下線維修,host上的VMs 怎辦?
虛擬化,雲端運算
前往
- Software
- ↳ CodeCharge Studio
- ↳ CodeCharge
- ↳ DemoCharge
- ↳ SuperPDF
- ↳ 551einv
- ↳ E3進銷存
- 程式語言
- ↳ PHP
- ↳ CodeLobster PHP Edition
- ↳ Yii
- ↳ CodeIgniter
- ↳ Phalcon
- ↳ Symfony
- ↳ FuelPHP
- ↳ Zend Framework 2
- ↳ laravel
- ↳ WordPress
- ↳ ASP.NET/C#
- ↳ ASP/VBScript
- ↳ JSP
- ↳ Java Servlets
- ↳ ColdFusion
- ↳ Perl
- ↳ Java Script
- ↳ jQuery
- ↳ HTML + CSS
- ↳ jQuery
- ↳ nodejs
- ↳ VB6
- ↳ Git
- ↳ App Inventor 2
- ↳ bash
- ↳ C++/ VC/ OpenCV
- ↳ OpenCV
- ↳ go
- ↳ cordova
- ↳ python
- ↳ Xamarin
- ↳ Assembly
- 資料庫
- ↳ MySQL
- ↳ PostgreSQL
- ↳ ORACLE
- ↳ Access
- ↳ SQL Server
- ↳ SQLite
- ↳ MariaDB
- ↳ Mongodb
- 作業系統
- ↳ Linux
- ↳ Ubuntu
- ↳ CentOS
- ↳ Mint
- ↳ Mandriva
- ↳ Debian
- ↳ Red Hat Enterprise Linux
- ↳ Oracle Linux
- ↳ Fedora
- ↳ Kali Linux
- ↳ OpenSUSE
- ↳ Elementary OS
- ↳ Microsoft
- ↳ Server 2008 R2
- ↳ Server 2012 R2
- ↳ Server 2012
- ↳ 8
- ↳ 10
- ↳ System Center 2016
- ↳ NOVELL
- ↳ FreeBSD
- ↳ VMware
- ↳ VirtualBox
- ↳ Mac OS X
- ↳ Solaris
- ↳ iOS
- ↳ Android
- ↳ Cloud
- ↳ OpenStack
- ↳ Docker
- ↳ Proxmox VE
- ↳ CloudReady
- ↳ chrome
- 網頁伺服器
- ↳ apache
- ↳ tomcat
- ↳ nginx
- ↳ IIS
- ↳ JBoss
- ↳ weblogic
- ↳ WebHosting
- 硬體
- ↳ 硬體及週邊
- ↳ RouterOS
- ↳ LEGO NXT
- ↳ Arduino
- ↳ MSP430
- ↳ Raspberry Pi
- ↳ OpenERP
- ↳ Storage
- ↳ Server
- ↳ Brocade
- ↳ MODELS
- ↳ FortiGate
- 軟體
- ↳ sublime
- ↳ LibreNMS