如何使用Direct Console User Interface解决棘手问题

日期: 2015-07-28 作者:Stuart Burns翻译:王学强 来源:TechTarget中国 英文

对于管理员来说,很少会遇到不能使用vCenter Server管理主机的情况,但是即便真的出现这种问题,也能够使用其他方式进行解决。 最近我遇到了一种vSphere管理员在设计良好的网络环境当中通常不会遇到的问题:vCenter Server无法管理ESXi主机。 如果不想使用vCenter Server或者vSphere client管理ESXi主机,那么需要提前完成一些准备工作。在这种情况下,像Dell DRAC和HP ILO这些远程控制工具能够发挥重要作用。

使用DCUI(Direct Console User Interface)——简单来说就是ESXi console——来管理网络可能……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

对于管理员来说,很少会遇到不能使用vCenter Server管理主机的情况,但是即便真的出现这种问题,也能够使用其他方式进行解决。

最近我遇到了一种vSphere管理员在设计良好的网络环境当中通常不会遇到的问题:vCenter Server无法管理ESXi主机。

如果不想使用vCenter Server或者vSphere client管理ESXi主机,那么需要提前完成一些准备工作。在这种情况下,像Dell DRAC和HP ILO这些远程控制工具能够发挥重要作用。使用DCUI(Direct Console User Interface)——简单来说就是ESXi console——来管理网络可能会有些复杂,但确是一种最为直接的方式。下面介绍一些我所了解的主机管理方式,不需要使用vSphere client——甚至是SSH。

在一个设计良好的网络环境当中,虚拟机(VM)网络应该和主机管理网络相互分离,并且需要正确配置多块物理网卡连接到不同交换机。虚拟机和管理网络之间的流量不能相互影响。在将要分析的案例当中,虚拟机仍然能够正常运行。如果能够通过远程桌面或者SSH协议登陆到虚拟机,那么管理员应该尝试将其安全关闭。

检查网络基础架构之后,发现这个问题和硬件或者交换机没有关系,进一步排查显示软件驱动也不是引发问题的根本原因。

将虚拟机迁移到另外一台主机


为了尽量减少对于业务的影响,应该首先将受影响的虚拟机转移到另外一台正常工作的主机当中并且重新启动,这样能够保证在修复故障主机的同时依然能够管理业务虚拟机。但是需要注意的是这台主机服务器可能位于几千公里之外,因此我们必须使用带外管理系统。

DCUI或者任何远程管理功能都不适合作为日常管理方式,但是却能够用来处理紧急情况。管理员可以通过这种方式关闭不能执行命令的虚拟机。在vSphere 6.0之前的版本当中,同时按下Ctrl+F1,输入root账户密码 ,就可以使用其列出几种console功能了。但是正如之前所说的那样,应该使用其他方式来安全关闭虚拟机。这篇文章讨论的仅仅是最后的应急方案,比如,虚拟机网络和管理网络之间出现严重故障。

在vSphere 6当中,如果管理员使用DCUI关闭当前主机,那么系统会提示管理员强制关闭所有未迁移虚拟机的电源。这是一项非常有用的功能,但是管理员在使用这种功能的时候需要特别小心,因为错误使用可能会导致大量虚拟机无法访问。

对于vSphere 5当中的虚拟机来说,可以使用下面的命令进行定位和关闭:

可以使用下面的命令列出所有虚拟机。(注意需要关闭的虚拟机的进程ID)

esxcli vm process list

使用如下命令关闭虚拟机:

esxcli vm process kill <process ID>

在关闭所有虚拟机之后,可以使用下面的命令将虚拟机置于维护模式:

esxcli system maintenanceMode set --enable true

尽管这个过程不是必须的,但是确保所有虚拟机已经被正常关闭,能够随时切断主机电源是一种很好的操作流程。

结束主机维护模式


到这个阶段为止,虚拟机应该已经完全独立于之前的主机,可以在另外一台主机上接通电源之后手动重启。在这个案例当中,由于某种原因我必须在之前的主机上重新启动这些虚拟机。这的确不是一种最好的解决方案,但是完全能够实现。和之前的操作类似,从结束服务器的维护模式开始,使用下面的命令:

esxcli system maintenanceMode set --enable false

之后,手动开启虚拟机电源。所有的虚拟机文件都将位于自己的文件夹、也就是主机的mvfsvolumes当中。使用cd命令进入目标文件夹,还可以使用tab实现名称自动补全,这种特性可以起到很大帮助作用。每个文件夹都代表了一个data store,所以可以在对应的文件夹当中寻找虚拟机。

唯一的问题在于某些虚拟机会因为一个某些罕见错误而无法启动或者最终超时。对于这种情况来说,需要检查问题虚拟机当中的vmware.log(位于虚拟机文件夹当中)文件以查明具体错误信息,

这边文章不可能列举出管理员可能遇到的所有错误和复杂问题,但是为管理员提供了一种良好的排错思路。

这种问题通常不会经常发生。如果虚拟机被划分到单独的网络端口组和链路当中,并且能够响应远程客户端请求,那么就更像是管理问题,可以在非工作时间使用一种更为安全的方式进行修复,降低可能造成的影响。幸运的情况下,还有可能是网路连接问题,可以在不导致任何故障时间的情况下将问题解决。

翻译

王学强
王学强

TechTarget特邀编辑,毕业于计算机专业,现任职于外企IT分析师,负责网络、防火墙和服务器等系统运维工作,对虚拟化、网络安全和渗透测试拥有浓厚兴趣,工作外热爱旅行、汽车和健身。

相关推荐