笔者多年从事运维工作,运维工作平时压力不大,但每个月都有那么几天--服务器抽风!我们公司安装Windows系统的服务器很少连续运行超过三个月,定期重启几乎是必须的,否则死机、蓝屏、响应奇慢等等各种问题都来了。
把定时重启服务器命令添加到定时任务里,对减少服务器故障确有帮助,可只是掩盖了问题而非最终解决,其代价是“抽 to death”--服务器死机甚至无法引导操作系统,这时就会比较惨,半夜也不得不赶去机房救火。如果赶上放假、旅游、回老家,更是苦不堪言,为此笔者甚至多次动过转行的念头!有个朋友推荐笔者使用硬件VNC来解决突发性,笔者通过一段时间的使用及经验积累感觉运维压力减轻不少,特在此介绍给各位运维同行以助早日脱离苦海。
谈到VNC,运维人员大多十分熟悉,是一类老牌远程桌面工具的通称,其以支持多平台而著称,已成为远程桌面的事实标准,其中包括大名鼎鼎的RealVNC、TightVNC等等。所谓硬件VNC,是指它是集成了VNC服务端功能的硬件,它独立于受控服务器安装运行,不需要在受控服务器上安装任何VNC服务端,只需要把硬件VNC连接到受控服务器上,然后就可以通过各种VNC客户端连接受控服务器了。与各种软件VNC相比,硬件VNC的最大好处是不依赖于服务器,通过硬件VNC可以远程配置BIOS、查看蓝屏错误、连接巨卡的服务器,甚至服务器死机了仍可连接。在这里简单介绍一下笔者利用硬件VNC解决Windows 2003服务器故障的三个实例,其中有笔者总结的一些小技巧,希望可以对各位运维同道有所帮助和启发:
实例一、服务器CPU或内存占用过高,响应缓慢
解决思路:尽快找到占用CPU或者内容过高的异常进程并予以结束,无法结束时可以考虑重启服务器。
具体操作:可以想象此时服务器响应已经非常缓慢,服务器上运行的VNC或者远程桌面服务往往已经无法连接。此时应通过硬件VNC连接服务器,考虑到服务器响应速度慢导致难以操作,应减少鼠标操作,尽量通过快捷键完成操作。笔者总结的最快捷的操作顺序是(1)通过Ctrl+Shift+ESC组合键调查任务管理器;(2)通过Shift+Tab键切换到“进程”页;(3)找到导致服务器CPU和内存进程使用率占用异常的进程后,通过Alt+E键予以结束。按此流程,最少只需要2、3次按键就可以把异常进程K掉了,然后再查明引起异常的具体原因或者重启相应进程即可。里面还有一个小技巧,就是尽量通过TightVNC来连接硬件VNC,然后按下TightVNC里面的“Ctrl工具项”再按下Shift+ESC键,这样才能调出任务管理器,试一下你就明白了,不解释。
如果无法找到问题进程,只能选择重启服务器以最快恢复故障,笔者使用的最快捷操作是:(1)TightVNC下按下“Windows旗帜按键”后点击R键;(2)在运行对话框内输入命令‘ shutdown -r -f -t 00’后按回车键,系统将立即进行重启。
实例二、服务器中毒或受到攻击导致网络带宽被占满
解决思路:禁用网络接口,查明具体原因后再重新启用
具体操作:一般情况下(如服务器受到SYN FLOOD攻击导致最大连接数占满),硬件VNC的网络连接未受波及,此时可以直接远程控制受控主机,在“网上邻居”图标上点击鼠标右键选择“属性”,此时会打开“网络连接”窗口,选择相应网络连接后点击鼠标右键选择“禁用”即可。某些特殊情况下(如服务器中毒后大量向局域网发包),硬件VNC的网络连接带宽也受到一定影响,此时硬件VNC的远程桌面画面刷新也会比较缓慢,建议通过快捷键进行操作。笔者的做法是:(1)在TightVNC下按下“Windows旗帜按键”后点击R键,键入“cmd+回车”,此时会调出Dos命令提示行窗口;(2)在Dos窗口中键入命令‘netsh interface set interface name="eth0" admin=DISABLED ’,即可禁用网络名称为eth0的网络连接,命令中“eth0”部分需要替换成相应网络连接名称。建议在日常维护中做好相应准备,将“本地连接*”的中文网络连接名称更换为“eth*”样式的英文简写,已备在关键时刻使用。另外,还可以通过命令‘netsh interface show interface’命令查看网络连接名称和当前状态,通过命令‘netsh interface set interface name="eth0" admin=ENABLED ’,即可重新启用网络连接eth0。
实例三、服务器蓝屏
解决思路:记录蓝屏信息,尝试重启服务器,如无法引导则进入安全模式
具体操作:蓝屏情况下,硬件VNC可以看到屏幕的现实信息,有的时候这部分信息可以指出具体出错的硬件驱动或者DLL程序是什么,这类情况下可以通过VNC客户端将屏幕拷贝下来,留作稍后分析使用(当然很多情况下Windows的蓝屏提示信息也是没有任何价值的)。然后我们可以联系机房,帮我们进行重启,一般来讲,重启可以恢复80%以上的故障。如果重启后进入操作系统过程中再次蓝屏,那我们只能跟机房来句“不好意思,麻烦您了,能再给重启一次吗…”,然后盯住VNC客户端,一旦看到服务器开机画面就开始狂按F8,选择进入安全模式,然后再慢慢修复具体故障好了。顺便提一个小经验,凭此方式也可以确切知道机房网管是否给重启了服务器,这点用途也不多解释了,都懂的。
以上是笔者总结的一些解决服务器故障方面的一些小经验与技巧,如果各位运维朋友有更优的解决方式、或者在实际运维工作中有任何疑问或困难,欢迎大家随时与笔者联系沟通,互相学习交流!