■
VMware View對于虛擬桌面的管理和調度都是通過vCenter服務器來完成的,可以說vCenter是VMware View保持正常運行的基礎。我單位由于之前vCenter服務器的硬盤出現了故障,導致系統癱瘓。為了盡快恢復對虛擬服務器的管理,重新安裝了vCenter服務。由于重裝了數據庫,導致View的桌面池有丟失,用戶端無法登錄,管理端無法編輯、修改池信息,所有虛擬桌面均顯示“維護模式”。因為鏡像模板保存完好,遂決定刪除舊的桌面池,重新創建。

圖1 刪除成功提示信息
在刪除舊桌面池時發現,對桌面池的“刪除”命令可以執行,但是一直顯示“正在刪除”。所有舊桌面池的虛擬桌面全部變成“問題桌面”,顯示狀態為“正在刪除”,并且View系統報錯信息急劇增長。
經過一番檢查,確定發生以上故障的原因是vCenter服務器的重新安裝,vCenter與View數據庫中的信息無法對應。原有桌面池的數據已被刪除,新的vCenter無法管理和調度虛擬桌面以及桌面池,桌面池和虛擬桌面形成了“孤立”狀態。
按 照VMware官 方文檔給出的命令進行操作,在Composer服 務 器中, 定 位VMware View Composer文件夾,在命令提示符中使用命令“sviconfig-operation=removesviclone-Vmname=your vm name(要刪的虛機名字)
-Admin User=Administrator(超級 管 理 員 賬 號)-AdminPassword=password(你的密碼)“刪除桌面。刪除成功會有圖1的提示。刪除后,檢查域控的信息發現孤立桌面的信息也同時被清除了。
此時檢查發現,所有虛擬桌面已經從ESXi主機中刪除掉了,但是在View管理控制臺中發現桌面池仍然顯示“正在刪除”,所有虛擬桌面狀態變為“正在刪除(缺 失)”。 檢 查 View 服務器日志,發現錯誤信息“BROKER_PROVISIONING_ERROR_CONFIG_SET” 和“Provisioning error occurred on Pool Desktop_ID because of a configuration problem”(如圖2)。
根據VMware官方文檔(KB1027311)的 說 明,引 起“Provisioning Error”的原因是:
◆ 模板無法訪問。
◆ 模板名稱已在vCenter中更改。

圖2 日志信息

圖5 刪除成功
◆ 模板已被移到vCenter中的其他文件夾。
◆ 虛擬機映像已在ESX/ESXi主機之間移動或已被刪除。
根據文檔,檢查目前服務器的狀態,發現和以上原因都不太像。但是其中提到的一個原因是模板被移動到其他文件夾,說明模板“路徑”錯誤導致“Provisioning Error”。
既然模板存在路徑問題,那桌面池和虛擬桌面也可能存在同樣的問題。立即檢查其他正常桌面池的路徑,發現均是在路徑“數據中心ID桌面池ID”下。說明故障桌面池一直在執行“刪除”動作,可能是由于找不到桌面池的路徑,導致一直顯示“正在刪除”。
為了測試這個想法,在數據中心節點下,新建一個和原有桌面池ID一致的文件夾。檢查View管理控制臺,監控問題桌面以及警告數量,發現問題桌面數量不斷下降,并且在vSphere Client中看到剛才建立的桌面池ID文件夾被刪除。
按照原有桌面池的名稱,建立空的文件夾后,均會自動刪除已經失效的桌面池和虛擬桌面,最終View管理控制臺中,舊的桌面池和虛擬桌面都被成功刪除(如圖5)。
此類VMware View的故障是由vCenter重裝導致的連帶故障,View依托vCenter的對各個桌面池和虛擬桌面進行管理。之前對虛擬機定位在哪臺ESXi主機中更加敏感,對于虛擬桌面的“路徑”問題確實沒有過多的關注。對于View中產生的孤立桌面,除了刪除虛擬桌面并且清除Composer中的數據信息外,同樣需要處理記錄在vCenter中的路徑信息,否則容易出現這樣的路徑錯誤,導致View一直顯示“正在刪除”。