VSAN6.5 Coredump大小修改

背景

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

说明

1、coredump分区的大小可能约为2.7 GB左右,默认大小为2.5 GiB。

2、vSphere 5.5及更高版本中,安装期间ESXi安装程序会在引导设备上为自动创建一个coredump分区。

3、对ESXi核心转储设备的大小应随ESXi主机DRAM的大小及vSAN的使用而扩展。

4、有时,使用vSAN(特别是SD/USB引导介质)的安装没有本地数据存储,因此需要更大的coredump设备/插槽。

5、默认大小为2.56 GB的coredump分区足以满足未运行vSAN的具有1 TB DRAM的主机,或已在配置的缓存层中启用vSAN且具有512 GB DRAM和250 GB SSD的主机。

6、对于较大型的系统,coredump分区使用默认大小会导致核心转储被截断或部分迁移,默认分区/插槽大小可能无法容纳ESXi主机的完整核心转储;

7、随着ESXi系统安装,会在ESXi引导介质上自动创建2.5 GB的分区大小,同时也将自动配置核心转储插槽大小,其大小默认为100 MB。

8、强烈建议将vSAN节点置于维护模式后,再对活动引导设备进行重新分区,当ESX i主机重新引导启动后,整个过程也会随之完成。

ESXi 6.5的vSAN主机核心转储分区大小计算

1、官方给出了修改的脚本文件,允许管理员安全地在已启用vSAN的ESXI主机上调整现有核心分区的大小,下载地址:

1)vSAN6.5 修改脚本:
https://kb.vmware.com/sfc/servlet.shepherd/version/download/068f4000009EgrYAAS/2147881_coredumpResize.zip
2)vSAN 6.6 修改脚本: https://kb.vmware.com/sfc/servlet.shepherd/version/download/068f4000009EfmrAAC/2147881_coredumpResize_6.6.zip
3)从vSAN 6.7.x开始,我们不需要再手动调整该值大小。

2、脚本执行过程:

1)该脚本执行时,会检查主机是否正在运行ESXi 6.5,检查vSAN是否已启用,现有核心转储分区情况,主机是否处于维护模式;

将上述脚本上传到启用VSAN6.5的ESXI主机上,在每个启用vSAN的节点上,执行脚本以修改主机启动磁盘和默认的核心转储插槽大小;该脚本将使用引导驱动器上的剩余可用空间自动计算核心转储分区的正确大小,并应用新的配置。另外,脚本将调整coredump插槽的大小。该计算将基于vSAN缓存层大小、磁盘组数量和配置到主机的DRA进行;该脚本将备份现有的启动库,该脚本将在适用的地方扩展核心转储分区,该脚本将调整磁盘转储插槽的大小,完成后主机将需重新启动以使更改生效

2)除了核心转储大小外,缓存层SSD大小的物理大小(以GB为单位)将用作计算其他核心转储大小要求的基础;
1>vSAN的基本要求是3.981GB
2>每100GB缓存层需要0.181GB的空间
3>每个磁盘组需要1.32 GB的基本空间
4>数据将按75%比例进行压缩处理

3)vSAN节点上单个磁盘组的公式如下:
SSD容量需求 = (((SSD的大小GB)/100 GB) x 0.181) + 1.32
总容量= 基础容量+ (SSD容量需求1 + rSSD容量需求2 + SSD容量需求3 …)
磁盘组Coredump = 总容量t x 0.25
DRAM的Coredump = 2.56 GB x DRAM大小(TB)

Coredump = 磁盘组Coredump + DRAM的Coredump

4)多个磁盘组的公式取决于每个磁盘组的缓存层大小。当cache层的磁盘大小不同时。磁盘组应该单独计算。请看下面的示例:
SSD容量需求 = (((SSD的大小GB)/100 GB) x 0.181) + 1.32
总容量 = 基础容量(即4G) + (SSD容量需求 x 磁盘组数量) //注意:一个磁盘组只有一个缓存盘
磁盘组Coredump = requirement x 0.25
DRAM的Coredump = 2.56 GB x DRAM大小(TB)
Coredump = 磁盘组Coredump + DRAM的Coredump

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

a、计算缓存层:SSD容量需求 = (((SSD的大小GB)/100 GB) x 0.181) + 1.32=(((600)/100 GB) * 0.181) + 1.32 = 2.406GB

b、总容量/总开销== 3.981+ 2.406 = 6.387GB

c、应用压缩后的容量:=requirement * 0.25=6.387 x 0.25 = 1.597GB

d、考虑DRAM开销后: = 2.56 GB x DRAM大小(TB)=2.56GB * 1 TB

e、CoreDump = 1.597GB + 2.56GB = 4.157GB

示例2:每个主机2 TB DRAM,5个磁盘组以及1600GB的缓存层SSD(大小统一的缓存层设备)
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个具有400GB缓存层SSD的磁盘组(DG1),1个具有600 GB缓存层的磁盘组(DG2),不同于示例2的是,我们不能简单地将requireOnSSDSize乘以DG的数量,因为每个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

注:上述示例只说明核心存储分区大小的计算过程,实际过程,脚本程序将会自动完成计算。

核心转储大小修改

1、解压脚本文件2147881_coredumpResize.zip并将coredumpResize.py上传到启用VSAN的ESX i主机上的/var/tmp/ ;

2、确保可访问性同时,将主机置于维护模式。
3、IPMI登录主机命令行后,执行:# python /var/tmp/coredumpResize.py
4、脚本执行过程中,如果检测到现有的核心分区,该脚本将列出ESXi引导设备上的分区。输出类似如下:
1 ) mpx.vmhba36:C0:T0:L0:7
Suggested partition to resize: mpx.vmhba36:C0:T0:L0:7
2)按提示输入设备号:
nter the number of coredump partition to be resized:[1,2…]1
3)该脚本现在将计算核心分区应调整的大小:
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
4)下一步,将调整分区表的大小
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.
5)如果没有可用空间来扩展核心转储分区,脚本将会出错,系统将保持不变。
“Error: Not enough free space for extending the coredump partition.
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强烈建议拥有足够大小的coredump分区,以确保在发生诊断崩溃时,有足够的空间用于在生产环境中存储coredump。如果合适,请使用VMFS卷将ESXI coredumps配置为以文件形式而不是分区

6)完成后,重启ESX i主机以使修改生效。

参考:https://kb.vmware.com/s/article/2147881

你可能感兴趣的:(虚拟化实践及FAQ)