歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> Linux教程

VMware虛擬機操作系統日志Error in the RPC receive loop解決

雲計算、虛擬化是近幾年信息化領域比較流行的概念。隨著國內對於這些理念的深入,新一代虛擬機、虛擬化環境已經越來越出現在我們日常環境中。虛擬機靈活和快捷的部署管理方式,也逐漸被運維領域所接受。

在實踐領域中,我們在使用虛擬化環境同樣面對一些新的問題和故障,需要我們重新進行學習探索,才能跟上發展進程,解決企業中實際問題。

本文記錄了筆者在管理維護一台Windows虛擬機(建立在VMware)遇到的小問題,記錄下來,留待需要的朋友待查。

1、問題簡述

筆者在安裝維護一台Windows服務器,運行版本為2008 R2。服務器是建立在VM Ware虛擬機環境下的,資源分配和管理都通過VM Ware控制台進行。由於服務器用途因素,筆者進行了額外的安全加固操作和日志檢查操作,結果發現日志中有如下Warning信息。

與Linux/AIX的文本日志方式不同,Windows的日志都是以二進制方式保存和展現出來的,並且劃分為不同的類型進行組織。從上面截圖可以看到,在應用程序Application類型中,系統以很高的頻度(每秒兩條)生成Warning級別的日志信息。Application類型日志一般是應用程序輸出寫入到操作系統層面的日志內容。

Source列提示內容表示是哪個應用程序寫出的日志內容。這列我們確定日志來源於VMWare Tools。

2、問題分析

VMWare Tools是VMWare虛擬機的一個可選件。較新的一些版本中,將VMWare Tools作為虛擬機的一個必裝版本。簡單的說,VMWare Tools就是一個嵌入到虛擬機操作系統層面插件工具。主要職責是負責改善硬件兼容性、交互方式體驗。如果我們將虛擬機比作容器中運行的單位,VMWare Tools就是兩者溝通的重要組件。

落實在本次的錯誤案例,我們可以發現故障日志主要內容如下:

[ warning] [vmusr:vmusr] Error in the RPC receive loop: RpcIn: Unable to send.

筆者對這個錯誤沒有任何經驗,從提示內容和故障頻率看,好像是vmware tools在持續的連接發送RPC信息。但是這個調用過程沒有成功完成。一度筆者懷疑過是不是在加固操作系統過程中將RPC端口封閉,但是事後確認並不是這個問題。

3、問題分析與解決

通過查詢資料,從VMWare官方中尋找到了故障分析和原因。這個日志現象在Windows和Linux環境中都有可能出現。官方對於問題的解釋如下:

Cause

This issue occurs when the VMware Tools daemon (vmtoolsd) handles more than two Terminal Sessions. When a user connects to a Windows virtual machine, each terminal session should have one vmtoolsd running; however, vmtoolsd is limited to only two sessions running simultaneously.

Thus the Windows Application Event log fills up with warning messages similar to this until the total connection count is >2  per session:

簡單地說,這個問題是在同時多個用戶連入到虛擬機的情況下出現。每當一個用戶使用vmtool連入到虛擬機時候,後台虛擬機都會分配一個後台守護進程vmtoolsd與之匹配。如果多個用戶同時連入到系統中,或者使用remote desktop連接時沒有正式推出而是簡單關閉界面,都會引起這個問題。而vmtoolsd進程的同時運行限制是2個會話。

當出現這種情況的時候,vmtools就會寫入操作系統一條warning級別信息。

那麼,需要確定當前連接用戶數量,以及是不是有多於一個vmtoolsd同時工作的情況。一個偶然的場景,筆者查看了任務管理器,發現了端倪。

在任務管理器,的確有多於一個vmtoolsd.exe連接,對應著筆者建立的多個系統用戶。這個是由於筆者在創建用戶的時候,分別使用遠程桌面進行測試,之後沒有退出造成的。

發現了問題原因,就可以著手解決。VMWare官方解決的思路是:如果出現日志過多過於頻繁,可以將warning級別的日志開關關閉,不寫入到操作系統中即可。

關閉日志主要通過配置文件完成。在Windows 7、2008平台上,日志配置目錄為:C:\ProgramData\VMware\VMware Tools\。而在早期的Windows版本中,目錄路徑為C:\Documents and Settings\All Users\Application Data\VMware\VMware Tools\。

在Linux平台中,配置目錄為:/etc/vmware-tools/tools.conf。

在對應目錄上,配置文件名稱為tools.conf。如果文件不存在,可以自己創建出一個目錄進行配置。筆者在服務器對應目錄中沒有這個文件,首先創建出來。

[img]http://blog.itpub.net/attachment/201408/30/17203031_1409392070hs9S.jpg[/img]

在文件中寫入如下內容:

[logging]

vmusr.level = error

vmsvc.level = error

之後重新啟動vmtools services,並且確保多用戶連接被斷開,配置生效。筆者選擇重新啟動服務器。之後問題解決。

4、結論

隨著虛擬化在運維環境中廣泛引用,相信會有越來越多的虛擬化相關故障出現和解決。

VMware虛擬機中調整Linux分區大小——使用GParted  http://www.linuxidc.com/Linux/2014-10/107590.htm

Ubuntu VMware虛擬機掛載移動設備傳數據筆記 http://www.linuxidc.com/Linux/2014-09/107177.htm

Windows 7下用VMware Workstation 10虛擬機安裝 Ubuntu 14.04 http://www.linuxidc.com/Linux/2014-04/100473.htm

VMWare下安裝CentOS x86_64出現“kernel requires an x86_64 cpu, but only detected ” http://www.linuxidc.com/Linux/2014-04/99423.htm

VMware Server下安裝Linux操作系統 http://www.linuxidc.com/Linux/2014-06/103881.htm

Copyright © Linux教程網 All Rights Reserved