自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

批量檢查和修復(fù)Windows虛擬機(jī)的方法

云計算 虛擬化
我們內(nèi)部有一個規(guī)模不大的私有云,承載內(nèi)部應(yīng)用和測試系統(tǒng),目前運(yùn)行了超過1000臺虛擬機(jī)。采用技術(shù)方案為KVM虛擬化+Sheepdog分布式塊存儲。

01 - 系統(tǒng)概況

我們內(nèi)部有一個規(guī)模不大的私有云,承載內(nèi)部應(yīng)用和測試系統(tǒng),目前運(yùn)行了超過1000臺虛擬機(jī)。采用技術(shù)方案為KVM虛擬化+Sheepdog分布式塊存儲:

(1)運(yùn)行虛擬機(jī)的計算節(jié)點(diǎn)為CentOS 6.5,虛擬化技術(shù)采用KVM,虛擬機(jī)管理采用開源OpenNebula方案(選擇OpenNebula主要是歷史沿襲,日常管理需求簡單,基本夠用)

[[245785]]

(2)虛擬機(jī)的鏡像,運(yùn)行在后端分布式塊存儲系統(tǒng)上,此系統(tǒng)是基于開源的Sheepdog架構(gòu)。

 

02 - 存在的問題與解決思路

2.1 - 存在問題

由于虛擬機(jī)鏡像都承載在分布式塊存儲系統(tǒng)中,虛擬機(jī)的所有存儲IO都會經(jīng)過分布式存儲系統(tǒng)。在此情況下,一旦分布式塊存儲系統(tǒng)異常(如承載網(wǎng)絡(luò)較大規(guī)模故障、存儲系統(tǒng)集群機(jī)制異常等),承載虛擬機(jī)的計算節(jié)點(diǎn)與存儲系統(tǒng)之間的存儲IO出現(xiàn)阻塞,進(jìn)而虛擬機(jī)的存儲IO也出現(xiàn)阻塞,虛擬機(jī)操作系統(tǒng)(特別是Windows操作系統(tǒng)的虛擬機(jī))會出現(xiàn)異常,如Windows系統(tǒng)藍(lán)屏、系統(tǒng)自檢、進(jìn)入檢查模式等各種情況。即便存儲系統(tǒng)后續(xù)恢復(fù)正常,這些虛擬機(jī)很可能依然處于異常狀態(tài)。

虛擬機(jī)異常,一般有很多常規(guī)辦法來發(fā)現(xiàn),如:

(1) ping檢查。但虛擬機(jī)所屬應(yīng)用維護(hù)人員可能會禁止ping,或在安全組上做限制。

(2)部署zabbix、nagios等監(jiān)控系統(tǒng)的agent進(jìn)行異常監(jiān)控。但虛擬機(jī)所屬應(yīng)用維護(hù)人員可能會關(guān)閉或卸載agent。

(3)通過計算節(jié)點(diǎn)的qemu-kvm的一些工具來判斷虛擬機(jī)文件系統(tǒng)是否可以寫入。但這個方式涉及“侵入”虛擬機(jī),屬于嚴(yán)厲禁止的操作。

可以看出上述方法有兩個問題:

(1)如果虛擬機(jī)歸屬不同使用人,每個使用人有不同運(yùn)維風(fēng)格,習(xí)慣或管理要求(如禁止ping或關(guān)閉agent客戶端),使用常規(guī)方法來判斷出問題的虛擬機(jī)會有疏漏)

(2)無法判斷虛擬機(jī)(特別是Windows虛擬機(jī))的具體異常情況,如藍(lán)屏、系統(tǒng)自測等。

因此,最穩(wěn)妥的方式是VNC工具連接到各個虛擬機(jī),檢查虛擬機(jī)屏幕信息判斷其狀態(tài),再根據(jù)狀態(tài)一個個修復(fù)(VNC雖然可以看到虛擬機(jī)屏幕,但是虛擬機(jī)都是有登陸賬號和登陸密碼的,檢查人員并沒有這些賬號密碼,因此不會“侵入”虛擬機(jī))。但是修復(fù)過程非常繁瑣,核查和修訂的步驟主要如下:

核查操作:

(1)登陸到某臺計算節(jié)點(diǎn),VNC某臺虛擬機(jī),通過VNC界面查看其狀態(tài)(藍(lán)屏、自檢等)。虛擬機(jī)數(shù)量多的情況下,需要多人分工進(jìn)行開展,通過表格進(jìn)行記錄。

(2)匯總各個檢查人員的檢查結(jié)果表格。

修復(fù)操作:

(3)按照表格進(jìn)行多人分工,各自負(fù)責(zé)部分虛擬機(jī)的修復(fù),如下述4-6步驟。

(4)嘗試人動重啟虛擬機(jī)。

(5)如果依舊藍(lán)屏或其他異常,則需要手動掛載Win PE系統(tǒng)嘗試修復(fù)。需要手動將Win PE的iso文件拷貝至計算節(jié)點(diǎn),手動修改虛擬機(jī)配置文件使其掛載Win PE的iso文件,重啟虛擬機(jī)進(jìn)行Win PE模式然后手動進(jìn)行修復(fù)。

(6)修復(fù)完畢重啟,如果系統(tǒng)依舊無法登錄,且虛擬機(jī)使用人建議重裝操作系統(tǒng),則需要將虛擬機(jī)重置重裝。

可以看出,整個過程都是手工對每臺虛擬機(jī)分別操作,耗時長,效率低。

2.2 - 解決思路

上述手工操作步驟中,VNC配置、虛擬機(jī)匯總信息表格、虛擬機(jī)配置、Win PE iso鏡像,都是文件形式,都可以通過腳本進(jìn)行批量生成、修改,具備自動化的基礎(chǔ)。

將上述手工操作步驟腳本化,形成如下批量核查和修復(fù)的腳本工具:

(1)能夠自動生成待核查的虛擬機(jī)信息excel表格

(2) 能夠批量VNC截圖虛擬機(jī)的屏幕狀態(tài),人工識別和判斷虛擬機(jī)屏幕的狀態(tài)。

(3)對于需要修復(fù),并能一鍵掛載Win PE鏡像到虛擬機(jī)上進(jìn)行引導(dǎo)修復(fù)或重裝操作。

03- 批量核查和修復(fù)虛擬機(jī)的具體方法

3.1 - 工具實(shí)現(xiàn)框架

 

在生產(chǎn)環(huán)境里,我們已經(jīng)用了Saltstack作為配置工具,基于Saltstack的批量操作與配置能力,我們在統(tǒng)一腳本服務(wù)器上,制作了對應(yīng)的shell腳本和python腳本來實(shí)現(xiàn)具體功能,并用Linux的Diaglog進(jìn)行簡單匯總展示。如下圖:

 

3.2 - 一鍵導(dǎo)出虛擬機(jī)

根據(jù)集群影響范圍及虛擬機(jī)數(shù)量,按照IP地址順序,導(dǎo)出所有可能存在問題的虛擬機(jī)到excel,導(dǎo)出來后可以進(jìn)行過濾與編輯,快速進(jìn)行多人分工核查。

在我們生成環(huán)境,同一網(wǎng)段對應(yīng)的是同一個業(yè)務(wù)系統(tǒng),因此我們一般根據(jù)虛擬機(jī)數(shù)量和業(yè)務(wù)系統(tǒng)(網(wǎng)段)進(jìn)行分工。

 


 

 

3.3 - 虛擬機(jī)批量VNC截屏按鍵檢查

根據(jù)3.2步驟過濾出的虛擬機(jī)IP地址信息,獲取虛擬機(jī)所在物理機(jī)及VNC端口號,使用VNCdotool工具調(diào)用虛擬機(jī)VNC接口進(jìn)行按鍵測試,并進(jìn)行虛擬機(jī)屏幕截圖。

根據(jù)虛擬機(jī)IP地址信息,生成一個已經(jīng)設(shè)定好模板的checklist表格(csv格式),便于記錄和匯總后面步驟中人工判斷的信息。表格主要字段為: IP、主機(jī)名、虛擬機(jī)ID、業(yè)務(wù)系統(tǒng)聯(lián)系人、***次檢查結(jié)果,引導(dǎo)修復(fù)后狀態(tài),重裝后狀態(tài)。

將截圖信息和表格一并打包下載到本地。

具體步驟如下:

(1)使用《8 虛擬機(jī)批量VNC截屏按鍵檢查》,上傳記錄了虛擬機(jī)主機(jī)名或者IP地址的vmlist.txt文件

 

(2)上傳vmlist.txt文件后,腳本會讀取文件里的主機(jī)名或者IP,自動進(jìn)行VNC登陸和截圖,并會壓縮成一個以時間日期為名稱的壓縮文件,可將截圖的壓縮文件保存到本地。

 

(3)解壓壓縮文件,進(jìn)入目錄查看虛擬機(jī)VNC截圖的目前的運(yùn)行情況,人工檢查虛擬機(jī)屏幕截圖,并在checklist表格里記錄檢查信息(重點(diǎn)是將藍(lán)屏、自檢、無法進(jìn)入系統(tǒng)的虛擬機(jī)過濾出來)。因?yàn)榻貓D已經(jīng)匹配做好,且做好命名,這個時候人工檢查工作量就相對小。

 

3.4 - 虛擬機(jī)一鍵修復(fù)引導(dǎo)

(1)如果虛擬機(jī)異常,則嘗試進(jìn)行虛擬機(jī)修復(fù)。

 

(2)執(zhí)行工具輸入需要修復(fù)IP或主機(jī)名,腳本將自動從鏡像庫將Win PE文件傳輸?shù)接嬎愎?jié)點(diǎn)對應(yīng)目錄下,修改虛擬機(jī)配置文件來掛載Win PE(Win PE已進(jìn)行修改,能夠自動進(jìn)入Win PE并打開NTboot修復(fù)工具),然后重啟虛擬機(jī)以使虛擬機(jī)配置生效。

 

(3)虛擬機(jī)啟動后,將自動調(diào)用NTboot工具進(jìn)行磁盤修復(fù)。此時需要手工進(jìn)行選擇操作和觀察修復(fù)結(jié)果。

 

3.5 一鍵重裝虛擬機(jī)系統(tǒng)

如果需要重裝虛擬機(jī),執(zhí)行工具輸入需要重裝IP或主機(jī)名。腳本將自動:

(1)進(jìn)入計算節(jié)點(diǎn)關(guān)閉虛擬機(jī)。

(2)進(jìn)入分布式塊存儲系統(tǒng)節(jié)點(diǎn)備份虛擬機(jī)鏡像,記錄鏡像ID,然后卸載鏡像。

(3)在分布式塊存儲系統(tǒng)節(jié)點(diǎn)中,通過基礎(chǔ)鏡像(Windows初始化后的狀態(tài))克隆出一個跟原有鏡像ID一樣的鏡像,作為新的虛擬機(jī)鏡像。

(4)重新掛載新的虛擬機(jī)鏡像,實(shí)現(xiàn)重裝。

 


 

 

04 -可探討和優(yōu)化的問題

上述的Windows虛擬機(jī)檢查和修復(fù)方法,是我們在一次實(shí)際故障后根據(jù)故障處理過程總結(jié)出來的操作方法和腳本工具,由于同類故障遇到的很少,且我們?nèi)粘V饕鯨inux維護(hù),對Windows了解不深,可能存在很多疏漏或可優(yōu)化的地方,大家如有問題或意見,可以留言討論。

(1)從根源上來說,還是要保證分布式塊存儲系統(tǒng)及對應(yīng)網(wǎng)絡(luò)的穩(wěn)定性,這個是此故障場景的根源問題。

(2)從我們遇到的故障現(xiàn)象看,分布式塊存儲系統(tǒng)異常時,Windows虛擬機(jī)容易異常,但Linux則相對較少,但我們不知具體原因是什么(例如Linux對磁盤IO讀寫、文件系統(tǒng)小讀寫有更好的優(yōu)化)。不知Windows是否有什么需要特別優(yōu)化的配置?如有經(jīng)驗(yàn)歡迎留言分享。

(3)在我們環(huán)境里,虛擬機(jī)歸屬其它團(tuán)隊,他們可能禁止ping或監(jiān)控agent運(yùn)行,這個時候如何更好判斷虛擬機(jī)的“死活”?如有經(jīng)驗(yàn)歡迎留言分享。

(4)目前還有一些環(huán)節(jié)是需要人工參與判斷,例如看虛擬機(jī)屏幕判斷是否有藍(lán)屏、是否進(jìn)入自檢。這部分可以結(jié)合簡單的圖像識別技術(shù)進(jìn)行實(shí)現(xiàn),自動化程度會更高。

(5)因?yàn)榇斯ぞ叩氖褂貌⒎歉哳l場景(如果高頻,老板鐵定要爆炒我們了),所以目前還停留在腳本階段,暫未納入到我們的運(yùn)維平臺中,后續(xù)我們也會進(jìn)一步優(yōu)化和改進(jìn)。

責(zé)任編輯:武曉燕 來源: 火爐山蟻群
相關(guān)推薦

2010-01-21 11:17:36

xen虛擬機(jī)

2019-02-20 09:54:25

Windows 10Java虛擬機(jī)

2012-05-18 10:22:23

2010-07-26 09:02:38

2014-05-22 15:21:46

Libguestfs虛擬機(jī)

2013-07-17 09:32:58

2018-05-08 14:47:38

虛擬機(jī)方法代碼

2023-04-26 07:51:36

虛擬機(jī)操作系統(tǒng)進(jìn)程

2020-09-14 14:30:31

WindowsLinux命令

2009-09-04 08:42:02

2011-04-08 09:25:50

虛擬機(jī)

2010-03-19 15:59:08

2022-08-09 11:25:52

數(shù)據(jù)備份服務(wù)器虛擬化磁盤

2020-01-17 10:52:37

無服務(wù)器容器技術(shù)

2009-10-13 15:00:36

物理機(jī)虛擬機(jī)網(wǎng)絡(luò)安全

2010-03-03 09:57:37

Linux虛擬機(jī)

2020-12-08 05:58:57

CPU虛擬化虛擬機(jī)

2009-09-04 08:33:25

VirtualBox虛

2009-06-29 19:36:07

虛擬機(jī)備份虛擬環(huán)境

2009-08-07 08:53:50

Windows 7Aero功能
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號