80电影天堂网,欢乐斗地主经典老版,精品人妻无码一区二区三区三级,中国xxxxxl19免费视频

返回首頁

網站導航
資訊首頁> 網站公告 >產品資訊 > Windows虛擬機如何批量檢查與修復

    Windows虛擬機如何批量檢查與修復

    產品資訊2018年08月02日
    分享

      Windows虛擬機如何批量檢查與修復?虛擬機(Virtual Machine)指通過軟件模擬的具有完整硬件系統功能的、運行在一個完全隔離環境中的完整計算機系統。那么,Windows虛擬機我們肯定就知道是什么了,但是我們不知道如果Windows虛擬機大批量的出現問題,應該如何檢查與修復呢?下面河姆渡小編就以實際案例為您介紹一下Windows虛擬機問題的批量檢查與修復。


    Windows虛擬機如何批量檢查與修復

      
      我們內部有一個規模不大的私有云,承載內部應用和測試系統,目前運行了超過1000臺虛擬機。采用技術方案為KVM虛擬化+Sheepdog分布式塊存儲:(1)運行虛擬機的計算節點為CentOS 6.5,虛擬化技術采用KVM,虛擬機管理采用開源OpenNebula方案(選擇OpenNebula主要是歷史沿襲,日常管理需求簡單,基本夠用)。(2)虛擬機的鏡像,運行在后端分布式塊存儲系統上,此系統是基于開源的Sheepdog架構。
      
      1、存在問題
      
      由于虛擬機鏡像都承載在分布式塊存儲系統中,虛擬機的所有存儲IO都會經過分布式存儲系統。在此情況下,一旦分布式塊存儲系統異常(如承載網絡較大規模故障、存儲系統集群機制異常等),承載虛擬機的計算節點與存儲系統之間的存儲IO出現阻塞,進而虛擬機的存儲IO也出現阻塞,虛擬機操作系統(特別是Windows操作系統的虛擬機)會出現異常,如Windows系統藍屏、系統自檢、進入檢查模式等各種情況。即便存儲系統后續恢復正常,這些虛擬機很可能依然處于異常狀態。
      
      虛擬機異常,一般有很多常規辦法來發現,如:
      
      (1) ping檢查。但虛擬機所屬應用維護人員可能會禁止ping,或在安全組上做限制。
      
      (2)部署zabbix、nagios等監控系統的agent進行異常監控。但虛擬機所屬應用維護人員可能會關閉或卸載agent。
      
      (3)通過計算節點的qemu-kvm的一些工具來判斷虛擬機文件系統是否可以寫入。但這個方式涉及“侵入”虛擬機,屬于嚴厲禁止的操作。
      
      可以看出上述方法有兩個問題:
      
      (1)如果虛擬機歸屬不同使用人,每個使用人有不同運維風格,習慣或管理要求(如禁止ping或關閉agent客戶端),使用常規方法來判斷出問題的虛擬機會有疏漏)
      
      (2)無法判斷虛擬機(特別是Windows虛擬機)的具體異常情況,如藍屏、系統自測等。
      
      因此,最穩妥的方式是VNC工具連接到各個虛擬機,檢查虛擬機屏幕信息判斷其狀態,再根據狀態一個個修復(VNC雖然可以看到虛擬機屏幕,但是虛擬機都是有登陸賬號和登陸密碼的,檢查人員并沒有這些賬號密碼,因此不會“侵入”虛擬機)。但是修復過程非常繁瑣,核查和修訂的步驟主要如下:
      
      核查操作:
      
      (1)登陸到某臺計算節點,VNC某臺虛擬機,通過VNC界面查看其狀態(藍屏、自檢等)。虛擬機數量多的情況下,需要多人分工進行開展,通過表格進行記錄。
      
      (2)匯總各個檢查人員的檢查結果表格。
      
      修復操作:
      
      (3)按照表格進行多人分工,各自負責部分虛擬機的修復,如下述4-6步驟。
      
      (4)嘗試人動重啟虛擬機。
      
      (5)如果依舊藍屏或其他異常,則需要手動掛載Win PE系統嘗試修復。需要手動將Win PE的iso文件拷貝至計算節點,手動修改虛擬機配置文件使其掛載Win PE的iso文件,重啟虛擬機進行Win PE模式然后手動進行修復。
      
      (6)修復完畢重啟,如果系統依舊無法登錄,且虛擬機使用人建議重裝操作系統,則需要將虛擬機重置重裝。
      
      可以看出,整個過程都是手工對每臺虛擬機分別操作,耗時長,效率低。
      
      2、解決思路
      
      上述手工操作步驟中,VNC配置、虛擬機匯總信息表格、虛擬機配置、Win PE iso鏡像,都是文件形式,都可以通過腳本進行批量生成、修改,具備自動化的基礎。
      
      將上述手工操作步驟腳本化,形成如下批量核查和修復的腳本工具:
      
      (1)能夠自動生成待核查的虛擬機信息excel表格
      
      (2) 能夠批量VNC截圖虛擬機的屏幕狀態,人工識別和判斷虛擬機屏幕的狀態。
      
      (3)對于需要修復,并能一鍵掛載Win PE鏡像到虛擬機上進行引導修復或重裝操作。
      
      3、批量核查和修復虛擬機的具體方法
      

      3.1工具實現框架


    Windows虛擬機如何批量檢查與修復

      

      在生產環境里,我們已經用了Saltstack作為配置工具,基于Saltstack的批量操作與配置能力,我們在統一腳本服務器上,制作了對應的shell腳本和python腳本來實現具體功能,并用Linux的Diaglog進行簡單匯總展示。如下圖:


    Windows虛擬機如何批量檢查與修復

      
      3.2一鍵導出虛擬機
      
      根據集群影響范圍及虛擬機數量,按照IP地址順序,導出所有可能存在問題的虛擬機到excel,導出來后可以進行過濾與編輯,快速進行多人分工核查。
      

      在我們生成環境,同一網段對應的是同一個業務系統,因此我們一般根據虛擬機數量和業務系統(網段)進行分工。


    Windows虛擬機如何批量檢查與修復

      
      3.3虛擬機批量VNC截屏按鍵檢查
      
      根據3.2步驟過濾出的虛擬機IP地址信息,獲取虛擬機所在物理機及VNC端口號,使用VNCdotool工具調用虛擬機VNC接口進行按鍵測試,并進行虛擬機屏幕截圖。
      
      根據虛擬機IP地址信息,生成一個已經設定好模板的checklist表格(csv格式),便于記錄和匯總后面步驟中人工判斷的信息。表格主要字段為: IP、主機名、虛擬機ID、業務系統聯系人、第一次檢查結果,引導修復后狀態,重裝后狀態。
      
      將截圖信息和表格一并打包下載到本地。
      
      具體步驟如下:
      
      (1)使用《8 虛擬機批量VNC截屏按鍵檢查》,上傳記錄了虛擬機主機名或者IP地址的vmlist.txt文件


    Windows虛擬機如何批量檢查與修復


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


    Windows虛擬機修復

      
      (3)解壓壓縮文件,進入目錄查看虛擬機VNC截圖的目前的運行情況,人工檢查虛擬機屏幕截圖,并在checklist表格里記錄檢查信息(重點是將藍屏、自檢、無法進入系統的虛擬機過濾出來)。因為截圖已經匹配做好,且做好命名,這個時候人工檢查工作量就相對小。
      
      3.4虛擬機一鍵修復引導
      
      (1)如果虛擬機異常,則嘗試進行虛擬機修復。
      
      (2)執行工具輸入需要修復IP或主機名,腳本將自動從鏡像庫將Win PE文件傳輸到計算節點對應目錄下,修改虛擬機配置文件來掛載Win PE(Win PE已進行修改,能夠自動進入Win PE并打開NTboot修復工具),然后重啟虛擬機以使虛擬機配置生效。
      
      (3)虛擬機啟動后,將自動調用NTboot工具進行磁盤修復。此時需要手工進行選擇操作和觀察修復結果。
      
      3.5  一鍵重裝虛擬機系統
      
      如果需要重裝虛擬機,執行工具輸入需要重裝IP或主機名。腳本將自動:
      
      (1)進入計算節點關閉虛擬機。
      
      (2)進入分布式塊存儲系統節點備份虛擬機鏡像,記錄鏡像ID,然后卸載鏡像。
      
      (3)在分布式塊存儲系統節點中,通過基礎鏡像(Windows初始化后的狀態)克隆出一個跟原有鏡像ID一樣的鏡像,作為新的虛擬機鏡像。
      
      (4)重新掛載新的虛擬機鏡像,實現重裝。
      
      4、可探討和優化的問題
      
      上述的Windows虛擬機檢查和修復方法,是我們在一次實際故障后根據故障處理過程總結出來的操作方法和腳本工具,由于同類故障遇到的很少,且我們日常主要做Linux維護,對Windows了解不深,可能存在很多疏漏或可優化的地方,大家如有問題或意見,可以留言討論。
      
      (1)從根源上來說,還是要保證分布式塊存儲系統及對應網絡的穩定性,這個是此故障場景的根源問題。
      
      (2)從我們遇到的故障現象看,分布式塊存儲系統異常時,Windows虛擬機容易異常,但Linux則相對較少,但我們不知具體原因是什么(例如Linux對磁盤IO讀寫、文件系統小讀寫有更好的優化)。不知Windows是否有什么需要特別優化的配置?如有經驗歡迎留言分享。
      
      (3)在我們環境里,虛擬機歸屬其它團隊,他們可能禁止ping或監控agent運行,這個時候如何更好判斷虛擬機的“死活”?如有經驗歡迎留言分享。
      
      (4)目前還有一些環節是需要人工參與判斷,例如看虛擬機屏幕判斷是否有藍屏、是否進入自檢。這部分可以結合簡單的圖像識別技術進行實現,自動化程度會更高。
      
      (5)因為此工具的使用并非高頻場景(如果高頻,老板鐵定要爆炒我們了),所以目前還停留在腳本階段,暫未納入到我們的運維平臺中,后續我們也會進一步優化和改進。

    相關閱讀

主站蜘蛛池模板: 体育| 石台县| 江都市| 湟源县| 荥经县| 宝山区| 宕昌县| 石首市| 沂南县| 镇坪县| 盐亭县| 洪泽县| 富锦市| 汉中市| 南乐县| 广东省| 济宁市| 赞皇县| 砀山县| 瑞安市| 郑州市| 颍上县| 肥城市| 松桃| 平谷区| 开鲁县| 介休市| 中江县| 宜黄县| 宜昌市| 商河县| 蒙自县| 略阳县| 苏州市| 长垣县| 衡东县| 磐安县| 田林县| 合水县| 神木县| 武汉市|