Search the VMware Knowledge Base (KB)
View by Article ID

扩展 vSAN 6.5/6.6 节点上的 ESXi 诊断核心转储分区 (2151354)

  • 0 Ratings

Purpose

免责声明:本文为 Extending an ESXi diagnostic coredump partition on a vSAN 6.5/6.6 node (2147881) 的翻译版本。尽管我们会不断努力为本文提供最佳翻译版本,但本地化的内容可能会过时。有关最新内容,请参见英文版本。

本文提供调整现有核心转储分区的大小以探究 vSAN 节点的 DRAM 大小和 vSAN 使用情况的步骤。

Cause

核心转储分区的默认大小为 2.5 GiB,即约为 2.7 GB。
 
安装期间,ESXi 安装程序会在 vSphere 5.5 及更高版本的引导设备上创建核心转储分区。
 
ESXi 核心转储设备的大小要求会随着主机 DRAM 大小以及 vSAN 使用情况而调整。
 
有时,使用 vSAN 尤其 SD/USB 引导介质的安装没有本地数据存储,因此需要更大的核心转储设备/插槽。
 
但是,默认的 2.56 GB 大小对以下主机已足够:具有 1 TB DRAM 且未运行 vSAN 的主机,或已启用 vSAN 且缓存层中已配置 512 GB DRAM 和 250 GB SSD 的主机。
 
对于较大的系统,使用默认大小会导致截断的核心转储或部分核心转储,因为默认分区/插槽大小可能无法容纳 ESXi 主机的完整核心转储。有关详细信息,请参见 工作负载较大的 ESXi 主机可能生成部分核心转储 (2101704)
 
注意:除了安装期间在 ESXi 引导介质上自动创建大小为 2.5 GB 的分区之外,还会自动配置核心转储插槽大小(默认为 100 MB)。

Resolution

要为安装 ESXi 6.5 的 vSAN 主机解决此问题,管理员可以使用本知识库文章随附的脚本方法安全地调整已启用 vSAN 的 ESXI 主机上的现有核心转储分区大小。

该脚本将尝试执行以下操作:

扫描主机
  • 检查主机是否正在运行 ESXi 6.5
  • 检查是否已启用 vSAN
  • 查看现有核心转储分区
  • 检查主机是否处于维护模式
修改主机
  • 脚本将备份现有引导槽
  • 脚本将扩展核心转储分区(如果适用)
  • 脚本将调整磁盘转储插槽的大小
  • 主机将需要重新引导,更改才会生效
应将本知识库文章随附的脚本下载、提取和复制到已启用 vSAN 的 ESXi 节点上,请参见有关如何使用 scp 将文件复制到 ESXi 主机的 VMware 知识库文章 https://kb.vmware.com/kb/1918
 
要修改主机引导磁盘和默认核心转储插槽大小,应在每个已启用 vSAN 的节点上执行该脚本
 
该脚本将自动计算核心转储分区的正确大小,使用引导驱动器上的剩余可用空间,然后应用新配置。此外,该脚本还将调整核心转储插槽的大小。
 
将会基于 vSAN 缓存层大小、磁盘组的数量和配置给主机的 DRAM 进行计算
 
本质上,将使用以下准则:
  • 未启用 vSAN:

    对于每个 1 TB DRAM,应有一个大小为 2.5 GB 的核心转储分区

  • 已启用 vSAN:

    除了核心转储大小之外,将使用缓存层 SSD 大小 (GB) 的物理大小作为计算额外核心转储大小要求的依据
    • vSAN 的基本要求为 3.981 GB
    • 对于每个 100 GB 缓存层,需要 0.181 GB 的空间
    • 每个磁盘组的基本要求需为 1.32 GB
    • 数据将压缩 75%
vSAN 节点上单个磁盘组的计算公式如下所示:

requirementOnSSDSize = (((size of SSD in GB)/100 GB) * 0.181) + 1.32
requirement = base + (requirementOnSSDSize1 +requirementOnSSDSize2 + requirementOnSSDSize3 ...)
sizeOfCoredumpBasedOnDG = requirement * 0.25
sizeOfCoredumpBasedOnDRAM = 2.56 GB * size of DRAM in TB

Coredump = sizeOfCoredumpBasedOnDG + sizeOfCoredumpBasedOnDRAM

注意:“多个磁盘组的公式与每个磁盘组的缓存层大小有关。如果缓存层磁盘的大小不同,应单独计算磁盘组。请参见下面的样例 3”

大小一致的多个磁盘组的计算公式如下所示:
 
requirementOnSSDSize = (((size of SSD in GB)/100 GB) * 0.181) + 1.32
requirement = base + (requirementOnSSDSize*number_of_DGs)
sizeOfCoredumpBasedOnDG = requirement * .25
sizeOfCoredumpBasedOnDRAM = 2.56 GB * size of DRAM in TB
Coredump = sizeOfCoredumpBasedOnDG + sizeOfCoredumpBasedOnDRAM

样例 1:一个磁盘组和 1 TB DRAM,600 GB SSD 用于缓存层

计算缓存层 (requirementOnSSDSize = (((size of SSD in GB)/100 GB) * 0.181) + 1.32)

requirementOnSSDSize = (((600)/100 GB) * 0.181) + 1.32 = 2.406GB

add the base overhead (requirement = base + requirementOnSSDSize)

requirement = 3.981+ 2.406 = 6.387GB

应用压缩 (sizeOfCoredumpBasedOnDG = requirement * 0.25)

sizeOfCoredumpBasedOnDG = 6.387 * 0.25 = 1.597GB

Add DRAM overhead

sizeOfCoredumpBasedOnDRAM = 2.56GB * 1 TB
 
Coredump = sizeOfCoredumpBasedOnDG + sizeOfCoredumpBasedOnDRAM
CoreDump =1.597GB +2.56GB
CoreDump = 4.157GB

样例 2:每个主机配置 2 TB DRAM,5 个磁盘组,缓存层 SSD 为 1600 GB(大小一致的缓存层设备)
 
requirementOnSSDSizeX = (((1600)/100 GB) * 0.181) + 1.32 = 4.216GB
requirement = base + (requirementOnSSDSize1 + requirementOnSSDSize2 + ....+ requirementOnSSDSize5)
requirement = 3.981 +(4.216 + 4.216 + 4.216 + 4.216 + 4.216)
requirement = 3.981 + 21.08 = 25.061GB
 
sizeOfCoredumpBasedOnDG = 25.061 GB * 0.25 = 6.265GB
sizeOfCoredumpBasedOnDRAM = 2.56 GB * 2 TB = 5.12GB
 
Coredump = sizeOfCoredumpBasedOnDG + sizeOfCoredumpBasedOnDRAM
Coredump =6.265GB +5.12GB
Coredump = 11.385 GB

样例 3:每个主机配置 1 TB DRAM,2 个磁盘组(大小不一致的缓存层设备):
1 个磁盘组 (DG1) 配有 400 GB 缓存层 SSD,1 个磁盘组 (DG2) 配有 600 GB 缓存层
 
此示例不同于示例 2,在此示例中,每个 DG 具有不同的缓存层磁盘,因此无法简单地将 requirementOnSSDSize 乘以 DG 数量。
 
我们需要单独计算不同大小的磁盘组开销,再与基本要求相加一次。

DG1-requirementOnSSDSize1 = (((400)/100 GB) * 0.181) + 1.32 = 2.044 GB
DG2-requirementOnSSDSize2 = (((600)/100 GB) * 0.181) + 1.32 = 2.406 GB
 
requirement = base + (requirementOnSSDSize1 + requirementOnSSDSize2)
requirement = 3.981 + (2.044 + 2.406) = 8.431GB
sizeOfCoredumpBasedOnDG = 8.431 * 0.25 = 2.108GB
 
Coredump = sizeOfCoredumpBasedOnDG + sizeOfCoredumpBasedOnDRAM
Coredump = 2.108GB + 2.56GB
CoreDump = 4.668GB

注意:请注意,以上样例仅是为了说明问题,因为针对已启用 vSAN 的节点运行时,脚本将计算所需空间。

过程

  1. 下载并提取“2147881_coredumpResize.zip”,然后将所附的脚本“coredumpResize.py” 复制到相关 ESXi 主机。
  2. 将主机置于维护模式,以确保可访问性。
  3. 输入以下命令:

    # python /var/tmp/coredumpResize.py

    注意:在上述命令中,/var/tmp/ 是将“coredumpResize.py”脚本复制到的目标位置。如果将脚本复制到了其他位置,请相应地修改上述命令。

    如果脚本检测到主机未处于维护模式,它将要求确认是否继续

    例如: “It is advised to place the host in Maintenance Mode toresize the coredump partition. Do you want tocontinue?[y/n]

  4. 如果检测到现有核心转储分区,脚本将在 ESXi 引导设备上列出这些分区。

    在主机上找到了以下核心转储分区

    1 ) mpx.vmhba36:C0:T0:L0:7
    Suggested partition to resize: mpx.vmhba36:C0:T0:L0:7


  5. 系统将提示管理员选择适当的设备,在此示例中,管理员将选择 1)

    Enter the number of coredump partition to be resized:[1,2..]1

  6. 脚本现在将计算核心转储分区应调整的大小并确认管理员是否要继续

    The present coredump partition size is 0.11 GB while suggested coredump partition size is 4.46 GB (4.35GB larger than current partition).
    Do you want to resize the coredump partition?[y/n]y


  7. 管理员选择 y 以继续操作之后,脚本将尝试调整分区表的大小

    The coredump partition is successfully resized from 0.11 GB to 4.46 GB. The ESXi host must be rebooted to finish the resizing operation.

  8. 必须重新引导主机,更改才会生效。

    必须在群集的所有节点上重复此过程。

    如果引导介质的大小导致没有足够的空间用于调整分区大小,脚本将向管理员发出警告:没有足够的可用空间,但将提示管理员可以使用哪些剩余的可用空间。

    例如:

Error: Not enough free space for extending the coredump partition.
Present coredump partition size: 0.11 GB
Estimated size required for coredump partition: 4.46 GB
Estimated size of coredump partition after resize operation: 1.04 GB
Do you still want to resize to largest coredump possible which might still be undersized? (NOTE: This may impact the ability to get support.)[y/n]y


在此示例中,分区大小调整为了 1.04 GB。

成功地将核心转储分区的大小从 0.11 GB 调整为了 1.04 GB。必须重新引导 ESXi 主机,才可完成调整大小操作。

如果没有用于扩展核心转储分区的可用空间,脚本将出现错误

“Error: Not enough free space for extending the coredumppartition.
Present coredump partition size: 1.04 GB
Estimated size required for coredump partition: 4.46 GB
Estimated size of coredump partition after resize operation:
1.04 GB
ERROR: The resize operation on coredump partition failed.


系统将保持不变。

注意:VMware 强烈建议具有足够大小的核心转储分区,以确保在发生诊断崩溃时有足够的空间可用于在生产环境中存储核心转储

如果引导分区没有足够的容量,VMware 建议:
  1. 升级 ESXi 引导设备(或核心转储分区的位置)的容量,以确保有足够的容量满足 DRAM 和 vSAN 的要求。
  2. 如果适用于您的环境,请使用 VMFS 卷将 ESXI 核心转储配置为文件(而非分区),请参见知识库文章 https://kb.vmware.com/kb/2077516
  3. 如果上述两种方案都不可行,另一种方法是配置 Network Dump Collector 服务,请参见知识库文章 https://kb.vmware.com/kb/2002954

Impact/Risks

强烈建议重新分区活动引导设备时将 vSAN 节点置于维护模式。将需要重新引导才可完成操作。

Additional Information

在某些情况下,可能在 ESXi 节点上启用了 vSAN,但未配置任何磁盘组(不建议进行此配置),在计算不包含磁盘组的 vSAN 节点的正确核心转储大小时应考虑 3.981 GB 的基本要求。

See Also

Attachments

Request a Product Feature

To request a new product feature or to provide feedback on a VMware product, please visit the Request a Product Feature page.

Feedback

  • 0 Ratings

Did this article help you?
This article resolved my issue.
This article did not resolve my issue.
This article helped but additional information was required to resolve my issue.

What can we do to improve this information? (4000 or fewer characters)




Please enter the Captcha code before clicking Submit.
  • 0 Ratings
Actions
KB: