天天看點

Convirt管理機Socat駐留程序故障處理

    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