Nexus 1000v的虚拟以太网模块(VEM)部分具有内置的debug命令,可用于帮助进行故障排除。这些vemlog命令让您能够洞察VEM的某些进程正在执行什么操作、它们正在发送什么命令以及它们正在接收什么类型的响应。例如,您可以在以下情况下使用它们:
Nexus 1000v和上游交换机之间未建立LACP端口通道。您可以在主机上结合使用“vemlog”和上游交换机上的“debug”来缩小问题范围。
QoS工作不正常,您想验证VEM是否正确设置值。
您希望看到VSM-VEM通信的更改。
运行这些命令的最常见使用案例是调试LACP。使用上游交换机上的调试模块“sflacp”和“debug lacp”,可以检测哪台设备出现故障,或者两台设备之间的链路是否丢弃了LACP BPDU。
默认级别通常具有足够的信息,因此可以收集和分析日志,而无需打开其他调试。
本文档没有任何特定的要求。
本文档不限于特定的软件和硬件版本。
有关文档规则的详细信息,请参阅 Cisco 技术提示规则。
如果您对这些命令的语法有任何疑问,可以在ESXi CLI中键入“vemlog”并收到帮助输出。没有制表符完整或“?” 命令。您必须完全输入,否则它们无法正常工作。要运行vemlog命令,您需要以下其中一项:
通过SSH/本地控制台访问有问题的ESXi主机。SSH访问是首选,因为您可以轻松向上滚动。
对VSM和模块的SSH/本地控制台访问必须在VSM中处于活动状态。同样,SSH访问是首选。如果使用此方法,则需要在每个命令前面加上module vem # execute,其中#是VEM的模块编号。
VEM上的Vemlog类似于普通交换机上的系统日志。与普通交换机一样,存在严重性级别:
e – Error n – Notification w – Warning i – Information d – Debug p – Print t – Temporary
这从最严重到最低(较不严重的消息输出更多信息)。 默认情况下,vemlog设置为ENW(错误、通知、警告)。
对特定问题进行故障排除时,禁用默认捕获非常重要。
vemlog stop vemlog clear vemlog debug all none
这些命令将停止当前发生的任何vemlog命令,并将vemlog重置为空捕获设置。您可以使用以下命令来验证这一点:
如图所示,vemlog show debug命令将显示当前调试设置。“打印”的所有模块的默认值为0或不打印。
现在,您已经有了全新的开始,是时候设置Cookie以捕获了。在本例中,将捕获常规端口日志:
第二个命令具有以下语法:
vemlog debug [module|all] [-][all|none|default|e|w|n|i|d|p|t]
其中,“debug_module”是要捕获的vemlog包。通常“debug”足以排除故障。
如果将[-]添加到命令中,则该模块的调试级别将被删除。此屏幕截图包含以下示例:
您可以使用vemlog show debug命令查看所有可用的调试模块。
指定要监控的包后,使用vemlog start命令启动vemlog:
准备好查看日志后,发出vemlog show all命令。这会将所有日志条目打印到控制台(或SSH会话)。 如果直接连接到主机,您也可以将其发送到文件,以便您可以将其复制并稍后分析:
如果将此文件移动到/vmfs/volumes/[datastore_name]目录,则可以在ESXi中使用datastore浏览器将其从主机中移出。
vemlog也存储在vmkernel日志中。
~ # vemlog stop Suspended log ~ # vemlog clear Cleared log ~ # vemlog debug all default ~ # vemlog start Started log
这些命令将vemlog恢复为标准配置。这对于确保正确捕获调试信息以解决将来的问题非常重要。
由于vemlog存储在vmkernel日志和vemlog的缓冲区中,因此特别频繁的调试可能会用不必要的信息泛洪这两个日志,特别是如果它们保持启用。
版本 | 发布日期 | 备注 |
---|---|---|
1.0 |
15-Jan-2013 |
初始版本 |