我们在远程数据中心有一个 Windows Server 2003 机器作为 Web 服务器运行。昨晚我安装了大量 Windows 更新,然后在凌晨 1:30 左右通过 RDP 触发了重启。重启失败,虽然服务器仍在运行,但我们通过 RDP 被锁定。恐慌和混乱接踵而至!
我没有将应用程序路由到另一台机器(这对于我们当前的设备来说只是部分可行),因为我们的客户可以接受半夜升级的几个小时的停机时间。
目前,我正在与数据中心工作人员联系,以便在今晚晚些时候通过其他方式重新启动机器,但显然我想在以后避免这种情况。
我的问题:
- 我该如何避免此类服务损失?请注意,我们是一家规模很小的公司,服务器负载很轻,因此,尽管我对涉及购买大量额外硬件的最佳实践感兴趣,但我更愿意了解可以采取的更便宜的措施。
- 将 RDP 作为执行某些重要任务(即修改数据库以解决客户服务问题)的唯一手段是否是一种负担?
机器详细信息:
- Windows Server 2003,不确定哪个服务包
- 在 ASP.NET 3.5 上运行两个网站,在 ASP classic 上运行另外四个网站
- 所有网站均采用 SQL Server 2005 后端
- 使用连续备份解决方案来备份配置相同的、随时可以插入和打开的机器
- 运行包含暂存环境且非关键任务的 VMware 实例
- 一个带镜像的硬盘分区
- 4GB 内存
- Core 2 Duo ~ 2Ghz
提前致谢。更多信息请咨询。
更新:
到目前为止这里有一些非常好的答案。
对于远程管理,一些人建议使用 KVM 和 IP 远程电源管理,或者使用 HP 的 iLO 或戴尔的 DRAC 等硬件。我们有 HP 服务器,所以我会研究 iLO。令人恼火的是,我们的托管中心为所有机器都配备了 KVM over IP,但由于设置不安全,不允许客户访问。在选择未来的托管服务时,我会确保不会出现这种情况。
为了预防,嗯建议停止服务并关闭可能阻止重新启动的会话。在我们的案例中,这可能会识别出问题并防止出现问题。似乎运行我们的暂存环境的 VMware 实例没有关闭,这阻止了主服务器重新启动。
约翰·加德尼尔斯建议在安装更新后手动执行重启,而不是让 Windows Update 执行重启。我以后也会这样做。
感谢大家。
答案1
有多种选项可以远程访问控制台,而无需依赖 RDP 进入正常运行的 Windows 安装:
Lights Out 管理 - Sun、HP、IBM 和其他一些公司的某些服务器配有 Lights Out 管理芯片 (LOM)。我有很多使用HP 的 iLO 技术这为我节省了好几次行程。本质上,这个芯片让你能够通过身份验证远程访问服务器前端的控件,而且大多数情况下还能提供更多功能。缺点是,如果你的服务器没有它,你就无法使用它。
IP KVM 或远程电源管理 - 有多家供应商提供允许您远程访问键盘、视频和鼠标的产品(网络KVM)或更便宜地通过关闭和重新打开服务器的主电源来远程管理电源协议数据单元. 不建议使用后一种选项,除非您确定只需对服务器进行电源循环即可解决问题。
最后一种选择是不要在晚上安装更新,而是在白天安排短暂停机,以便您或您的“手和眼睛”可以在数据中心解决任何问题。这实际上取决于您的客户,尽管在您的协议中加入每季度停机时间通常是件好事。
答案2
如果您的服务器是戴尔或惠普,则可以使用 BMC(戴尔)或 ILO(惠普)控制器进行远程硬重置。戴尔和惠普都提供更昂贵的选项,可为您提供远程键盘和屏幕。对于戴尔,您需要安装 DRAC 卡,而对于惠普,我认为您只需安装许可证密钥即可启用额外功能。
如果服务器不是戴尔或惠普,那么您就陷入困境。其他一些服务器有类似的远程控制器,但很多服务器没有。服务器在重新启动时偶尔会出现问题,通常是毫无原因的。唯一的其他选择是将服务器仅用于运行虚拟机,确保它看不到互联网,并且从不更新它(或仅在受控条件下更新)。如果虚拟机无法干净地重新启动,则很容易从主机重新启动它。
JR
答案3
重启是补丁安装的一部分吗?我遇到过几次允许更新过程执行重启导致机器最终无法完全关闭的情况,就像您描述的那样。在大多数情况下,只需要按下键盘或移动鼠标,尽管屏幕上没有提示。不幸的是,这种情况总是在我不在办公室时发生。这些天我使用脚本来安装更新,但不允许在最后重启。重启是单独执行的。从那以后我再也没有遇到过麻烦。
答案4
对于服务器重启,我首先要做的就是确保我在重启过程中在场。如果我不能亲自在场,至少我希望能够 ping -t 它,这样我就可以观察它关闭和恢复的情况。
在重启之前,我会停止服务。尽可能多地停止服务,确保在服务关闭时只有最基本的服务列表在运行。这包括任何网站、电子邮件、AV、安全代理等。我见过的大多数“关闭时挂起”的情况都可以直接归因于服务在重启期间卡在“停止”状态,而这可以避免这种情况。这是最有用的做法,不幸的是,没有明确的、适用于所有地方的服务停止列表;这里需要经验和你自己对服务器上内容的了解。
然后,我会检查是否有其他 RDP 会话可能仍在运行。已断开但未注销的会话可能仍加载了用户配置文件。还要检查是否有其他可能处于活动状态的服务器连接。
然后我重新启动,在重新启动期间,我将启动命令提示符并 ping -t。我通常不需要在此阶段查看屏幕上的内容,尽管如果您具备必要的先决条件,它可能会很有用。
偶尔,如果服务器在重启过程中挂起,我可以通过计算机管理找到它,并且 - 如上所述 - 发现服务处于“正在停止”状态。远程“kill”实用程序在这里可以派上用场。