Convirt管理机Socat驻留进程故障处理
Convirt故障问题现象:
1、在convirt平台对某个VM虚机执行View Console报错:cannot concatenate 'str' and 'gaierror' objects ,不能正常vnc连接VM,报错如图:
2、ps查看socat进程,VNC端口从6900到6999都已经被占用。
故障原因分析:
测试得知,通过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 root@10.0.100.30 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 root@10.0.100.30 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,找到病灶就可以对症下药喽。
问题处理方法:
1、将所有socat进程kill即可,使用killall socat无果,如下命令解决:
ps aux |grep socat|grep -v grep|awk '{print $2}'|xargs kill -9
2、规范convirt平台操作流程,避免socat驻留进程。
转载于:https://blog.51cto.com/dreamway/1045578