本节书摘来自华章出版社《VMware vSphere设计(原书第2版)》一 书中的第2章,第2.7节,作者:[美] 福布斯·格思里(Forbes Guthrie)斯科特·罗威(Scott Lowe)肯德里克·科尔曼(Kendrick Coleman),更多章节内容可以访问云栖社区“华章计算机”公众号查看。
2.7 管理工具简介
将ESXi host部署并配置后,可以用几个管理工具来监控和维护它。我们将在下一章节详细介绍一些工具。现在先简要介绍下都有哪些工具以及如何用这些工具来管理ESXi host。工具的功能会直接影响到vSphere环境设计,以及它的维护方案和hypervisor架构。
2.7.1 host管理工具
有很多host管理工具都可以不通过vCenter来直接管理host。这些在首次配置host、排查问题,以及vCenter发生故障的时候很有用。
vSphere客户端
Windows vSphere客户端,现在通常称为C#客户端或老客户端。它直接连接host的方式和连接vCenter的方式类似。连接成功后,它使用的是本地ESXi账户。
DCUI
DCUI是个BIOS风格的带黄色目录界面的工具,可以在ESXi服务器的控制台窗口找到它。典型界面如图2-5所示。
你可以通过DCUI进行初始配置:配置管理网络信息、设置administrator的密码、监控并重启管理代理、查看本地日志、允许对ESXi Shell的访问和开启锁定模式等。它允许本地一线员工设置基本的配置信息和执行初步的排错步骤。还允许远程操作时可以执行更复杂的配置和管理任务。DCUI关注所有能够阻止远程连接的任务,例如网络配置错误和管理代理故障。
ESXi Shell
ESXi Shell是一个可以提供本地控制台的简单Shell,通过它可以执行高级排错任务和技术支持。常规的维护任务最好还是使用vSphere Web客户端和vMA。除了本地访问外,还支持远程ESXi Shell模式,在这个模式下可以通过SSH远程连接到host。图2-6展示了一个本地ESXi Shell的登录绘画。
ESXi Shell不是常规的Linux shell,所以与ESX中的Service Console的操作环境不一样。它使用的是ash Shell,而不是常用的bash shell,而且并不包含所有的Linux常用命令。例如,当前的ESXi Shell不包含man命令。现有的命令与Linux命令的参数和选项也不同,还可能是受限制的,并且运行方式也不同。但ESXI Shell仍是一个可以快速修复问题的有用工具。最重要的是,通过ESXi Shell,你可以使用完整的esxcli命令集和esxtop(控制台的实时资源管理工具)。ESXi Shell不支持任何脚本计划任务,并且主要用于单个host管理(这也是vMA的强项)。
ESXi Shell默认是禁用的,使用前必须通过DCUI或vSphere客户端启用。通过它执行的所有命令都会被syslog服务以日志的形式记录下来,因此可以进行全面审计。本地ESXi Shell模式和远程ESXi Shell模式都有超时设置,以防止永久会话的存在。
当管理代理无响应的时候,ESXi Shell就派上了用场,因为此时vSphere客户端、vCenter、vMA和PowerCLI工具都无法使用。你可以登录DCUI去重启代理,如果代理仍无响应,就可以通过ESXI Shell开排查问题。ESXi Shell用起来比其他远程工具块,所以是个快速解决问题的理想方法。然而,ESXi Shell中的文件系统是从容量很小的ramdisk形成的,所以你必须很小心,不要像在vMA中一样拷贝大文件。因为如果将ramdisk填满的话,那么整个服务器就会不稳定。而且这些系统文件是在从系统镜像引导的时候放置的,因此重启后,你做的修改或添加都会消失。ESXi Shell在ESXi上是个user world,所以它受限于被VMkernel集制约的资源。这意味着如果一次执行很多命令控制台会耗光内存。
被赋予管理员角色的本地用户都可以访问本地ESXi Shell和远程ESXi Shell。前提是已启用这两个模式,而且ESXi Shell的使用还会受到锁定模式的影响。
vCLI和vMA
vCLI是一个基于Perl的脚本集,它模拟了ESXi Shell中的命令。主要区别是命令的语法不通。你需要执行在哪个host或vCenter上执行命令,以及所需口令。vCLI有Linux和Windows两个安装包。
vMA是个很小的预安装的Linux虚拟设备,在vCLI安装镜像中,可以直接使用。让vCLI工具套件快速启用是很方便地。你还可以将vMA作为ESXi host的syslog服务器。你可以用它来运行脚本、用cron创建计划任务,以及一次性在多个host上执行命令。vCLI和vMA都是既可以用于ESXi host,也可以用于vCenter服务器。
PowerCLI
Power CLI和vCLI类似,不同的是,它用的不是Perl脚本和Unix语法风格,而是基于Microsoft的PowerShell的。它是个工具包,可以通过Powershell安装在Windows PC上。你可以用PoweCLI在ESXI Host和vCenter上执行远程命令和脚本。与vCLI一样, PowerCLI也有一个很活跃的社区,其中有很多公开可使用的示例代码片段和脚本。
基于浏览器的工具
写这本书的时候vSphere 5.1在GA阶段,ESXi有一个明显的不足之处,即无法通过Web客户端访问。只要ESXi host连接到vCenter,你就可以通过vCenter的Web客户端来控制虚拟机了。
vSphere host有一个不错的基于Web的特性,即可以得到所有配置文件和日志文件的清单。虽然很简单,但却让你可以一眼看到整个host的而配置。图2-7展示了文件清单示例,可以通过https:///host 查看。
与上述特性类似,你还可以通过https:// /folder来查看host的数据存储。
2.7.2 集中管理工具
除了已经介绍的单机版工具外,vSphere还有几个集中管理工具。vCenter在这些工具中起着关键作用,将会在第3章中详细介绍。可以说下面的几个工具都是依赖于vCenter的。
vSphere Web服务器
vSphere Web服务器客户端是一个新的vCenter操作接口,是在版本5.0时作为一个基本的虚拟机管理工具推出的,版本5.1将其升级为一个全状态的vSphere客户端。由于版本5已具备很多独特的新特性,现在它已经取代Windows客户端成为最主要的工具。毫无疑问,它就是vSphere管理工具的发展方向,并且第三方插件以及Windows客户端上的其他特性的开发也在管理工具的竞争行列。
vSphere 5.1发布后,其主要的难点就是Web客户端不能直接连接host。后续版本中ESXi host能够被SSO系统识别,从而实现通过Web客户端直接连接host。
VUM
VUM是一个vCenter插件,它可以扫描host,发现遗漏的更新、升级和第三方驱动及CIM模块,而且能集中分发这些补丁并协调整个安装过程。对大型vSphere环境来说,常规性的打补丁工作是很麻烦的,而VUM的出现解决了这个问题。
host profile
host profile是一个vCenter特性,它能够检查并确保ESXi host的一致性。通过host profile你可以为单个host或整个集群的host设置标准配置,并自动检测当前host配置是否符合这个标准配置。它降低了host配置维护方面的管理开销,可以防止错误配置,以及缓解单独配置每个host的重复性工作负担。只有具备Enterprise Plus授权的host才能使用host profile。
host profile与ESXi host的关系会越来越紧密,因为企业对自动化部署和无状态host的需求也会越来越强烈。host profile的存在,使安装后的配置过程自动化。
拥有很多host的公司也会受益于host profile:利用host profile保证host配置的一致性。你可以在vCenter中创建计划任务,定期检查host当前配置是否符合host profile中设定的标准配置。默认情况下,host profile配置好后,每24小时执行一次符合性检查。同时还可以配置告警,通知用户host profile已应用,或者当前配置与host profile中的配置信息不匹配。你只能设定关于符合性检查的计划任务,而不能设定应用profile的任务。
host profile特别适用于新的host安装,因为它的大部分工作的是与配置相关的,而且host profile最好应用于硬件相同的集群中。硬件上稍有差异也可以,但建议在老的服务器上使用尽可能少的硬件(比如额外的PCI卡)。如果参考host比接收host中应用的配置多的话,那么host profile的应用效果会比较差。
每个profile都是从参考host上抓取来的,当host配置好后,配置信息就会被记录下来。你可以将profile导出到以.vpf为扩展名的文件中,这是一个简单的XML格式的文件。如果要修改或更新profile,你可以直接修改参考host中设置,然后重新抓取profile,或者使用vCenter中的Profile Editor,在Profile Editor中有更多的配置选项。当你用Profile Editor 修改现有profile时,最好先将原始的profile导出来,重命名,然后再导入回去。然后你就可以处理其中一个profile,在应用到整个集群前先测试,即使出错,你还有原始的profile,可以回归到原始状态。
profile足够灵活,并可以针对单个host进行配置,因此虽然每个host的大多数配置都是一样的,但每个host的配置还是可以不同的。配置选项如下:
固定配置(fixed configuration) 每个host的配置都是一样的。
允许用户指定 (Allow the User to Specify) 应用profile前,会询问用户具体配置值。这个选项有利于针对单个服务器的配置,如主机名和IP地址。
由vCenter选择(Let vCenter Pick) 最佳配置值是由vCenter选择的e.zhege。这通常用于网络配置,以及选择使用哪个适配器。
忽略配置(Disregard setting) profile会忽略这个配置。
虽然可以将host profile仅应用到单个host上,但这么做host profile在顺从性方面的优势就不存在了。为了充分利用host profile的这个特性,你应该努力将profile应用到集群级别。如果你有多个处于linked模式的vCenter,那么是无法应用到所有vCenter的。你需要将profile从一个vCenter导出到另一个vCenter,但是这样也就无法保证profile信息同步了。
为了最小化配置差异,并将相似的host组合在一起。你可以将profile应用到混合集群中(也包含vSphere 4.x host 的集群,即同时存在ESX host和ESXi host)。传统ESX的profile可以用到ESXi Host上,但反过来是行不通的。Host profile可以将Service Console和VMkernel的流量设置传递到ESXi管理网络中,但反过来也是行不通的。因此,如果你的集群混合了ESX host和ESXi host,那么你应该使用ESX host作为参考host。
要应用profile,host必须处于维护模式。因此,服务器上必须要有足够的冗余能力,以确保应用profile不会导致虚拟机运行中断。集群本身有针对一些特性的检查,例如DRS、DPM、HA和FT。因此不需要用host profile来保证这些配置的一致性。
2.7.3 硬件监控
ESXi主要的硬件监控室基于CIM的。CIM是一个开放标准, 通过它可以交换信息并控制被管理项目。例如,WMI(Windows Management Instrumentation)就是一个CIM实现,而且存储供应商都有一个叫作SMI-S(Storage Management Initiative-Specification)的CIM。
ESXi的CIM应用为硬件资源监控提供了一个无代理的服务。它包括两部分:CIM Provider,可以用来访问特定的设备驱动和硬件;CIM broker,用来收集从provider处获得的信息,并通过通用API供其他程序使用。除了默认的针对HCL中的常见硬件的VMware CIM providers外,你还可以安装补充服务器供应商和OEM制造商的CIM provider,以扩展VMware 的硬件监控能力。
由于CIM是个通用标准,大多数服务器监控软件都可以从ESXi服务器收集信息。vCenter可以使用来自ESXi brokere的CIM信息。你可以从与vCenter相连的vSphere客户端上查看这些信息,也可以设置vCenter告警来提示失败事件。
2.7.4 日志
日志的收集和保留不仅是排查host故障的关键,也是必要的法律遵从需要。正确配置host使其事件与NTP事件资源同步是很重要的,这样能确保日志的准确性。在本地,ESXi 服务器的日志存储在/var/log目录下。以前日志是被合并到几个文件中的,vSphere 5做了一个改进,即将日志分散到不同目的的文件中。这样排查故障时就能更直接地找到相应的信息。主要包括如下日志:
auth.logESXi Shell 校验。
esxupdate.logESXi 打补丁/更新。
fdm.logHA(高可用性)日志。
hostd.log主机管理。
shell.logESXi Shell 使用。
sysboot.logVMkernel 和模块启动。
syslog.log管理服务初始化、watchdogs、计划任务和DCUI。
vmkernel.log核心VMkernel日志 (设备、存储/网络设备 /驱动事件和虚拟机启动)。
vmkwarning.logVMkernel 警告(warning)和警报(alert)。
vmksummary.logESXi 启动/关闭、在线时间、虚拟机运行和服务使用情况。
vpxa.logvCenter vpxa 代理。
新的5.1 Web客户端有个鲜为人知的优点,就是集成了日志浏览器。通过它你不仅可以在GUI界面浏览所有日志,还能进行高级过滤和检索、对比多个日志的不同,以及高亮显示关键字和日志条目。浏览日志的方法如下:
vSphere Web客户端的日志浏览器。
DCUI选择View System Logs(就可以看到如图 2.5所示的信息)。
ESXi Shell console(本地或远程):查看每个日志文件的尾部信息。
vMA/vCLI/PowerCLI以编程方式检索文件。
vSphere Windows 客户端(连接到host 或vCenter)导出诊断数据。
Web浏览器http:///host (如图2-7所示)。
syslog 服务器。