Convirt管理機Socat駐留程序故障處理
<b>Convirt</b><b>故障問題現象:</b>
1、在convirt平台對某個VM虛機執行View Console報錯:cannot concatenate 'str' and 'gaierror' objects ,不能正常vnc連接配接VM,報錯如圖:
2、ps檢視socat程序,VNC端口從6900到6999都已經被占用。
<b>故障原因分析:</b>
測試得知,通過Convirt平台使用VNC連接配接一個VM,socat端口轉發會啟用兩個程序,主控端和VM之間一來一回,如下内容:
[root@xencms convirt]# ps aux |grep socat|grep -v grep
root 31505 0.0 0.0 42612 1508 ? S 10:46 0:00 socat -d -d -d -d TCP-LISTEN:6900 EXEC:/usr/bin/ssh -p 22 [email protected] socat - TCP\:127.0.0.1\:5902
root 31506 0.0 0.0 58544 3316 ? S 10:46 0:00 /usr/bin/ssh -p 22 [email protected] socat - TCP:127.0.0.1:5902
若在Convir平台使用VNC時有不合理操作(如:直接關閉浏覽器、浏覽器崩潰)導緻socat端口轉發程序常駐系統中,并占用VNC端口。
而VNC端口範圍是6900-6999(TCP協定),因為一些不合理操作導緻端口轉發駐留程序占用端口,達到第101個VNC連接配接VM時不能正常連接配接、報錯,如本章最初引發的問題。VM節點轉發端口是從5902開始,如上程序檢視内容。
至此已經把故障原因搞清楚:Convirt管理機因socat駐留程序占滿VNC端口導緻socat不能正常VNC端口轉發連接配接VM,找到病竈就可以對症下藥喽。
<b>問題處理方法:</b>
1、将所有socat程序kill即可,使用killall socat無果,如下指令解決:
ps aux |grep socat|grep -v grep|awk '{print $2}'|xargs kill -9
2、規範convirt平台操作流程,避免socat駐留程序。
本文轉自pandazhai 51CTO部落格,原文連結:http://blog.51cto.com/dreamway/1045578