EXSI系统磁盘清理与扩容

zxbandzby
3
2025-05-13

一、厚置备与精简置备的区别

二、硬件层操作(RAID配置)

进入RAID卡配置界面

重启服务器 → 根据提示按Ctrl+R进入Lenovo RAID卡配置界面(联想服务器通常使用MegaRAID)

创建新RAID阵列

选择新插入的3块12TB硬盘 → 创建RAID5阵列 → 确认条带大小(默认256KB) → 初始化阵列

建议:如果未来有计划扩容,可创建RAID5+HotSpare模式

在RAID管理界面检查阵列进度 → 等待后台初始化完成(约需8-12小时)

三、ESXi存储层操作​

扫描新存储设备

在ESXI Web界面 → 存储 → 设备 → 点击"刷新存储设备"

创建新数据存储

选择新识别的RAID设备 → 创建VMFS6数据存储 → 命名如"12TB_RAID5" → 使用全部空间

四、虚拟机存储迁移方案​

方案一:冷迁移(推荐)​

1. 关闭gckj_pro虚拟机
2. 右键虚拟机 → 迁移 → 更改存储
3. 选择目标数据存储"12TB_RAID5"
4. 确认迁移后重新开机

方案二:存储热扩展

1. SSH登录ESXi主机
2. 使用vmkfstools扩展磁盘(示例):
vmkfstools -X 2T "[现有数据存储] gckj_pro/gckj_pro.vmdk"
3. 在CentOS内使用fdisk/growpart扩展分区

方案三:存储分层优化

# 将Windows虚拟机迁移到新存储
Get-VM winserver2016 | Move-VM -Datastore 12TB_RAID5

# 使用PowerCLI批量检查磁盘置备
Get-VM | Select Name, @{N="ProvisionType";E={$_.ExtensionData.Config.Hardware.Device | 
Where {$_.GetType().Name -eq "VirtualDisk"} | Select -First 1 | %{$_.StorageFormat}}}

​四、自动化监控脚本​

#!/bin/bash
# 存储空间监控脚本
WARNING_THRESHOLD=85

datastores=$(esxcli storage filesystem list | grep "VMFS-6" | awk '{print $1}')

for ds in $datastores; do
    USAGE=$(esxcli storage filesystem list | grep -A1 "$ds" | grep Usage | awk '{print $3}' | tr -d '%')
    if (( $(echo "$USAGE > $WARNING_THRESHOLD" | bc -l) )); then
        echo "警报:数据存储 $ds 使用率已达 ${USAGE}%"
        echo "建议操作:"
        esxcli storage vmfs extent list -v $ds | grep -q "SSD" && \
        echo "1. 启用空间回收:esxcli storage vmfs unmap --volume-label=$ds -n 500" || \
        echo "1. 检查可迁移虚拟机:vim-cmd vmsvc/getallvms | grep $ds"
    fi
done

五、操作风险规避​

关键操作顺序

RAID初始化 → 存储验证 → 虚拟机快照 → 数据迁移 → 原存储清理

应急回退方案

# 若新存储异常,立即执行:
vim-cmd vmsvc/getallvms | grep "旧数据存储" | awk '{print "vim-cmd vmsvc/reload "$1}' | sh

六、空间回收方案

虚拟机内部空间清零​

Windows系统

# 下载Sysinternals工具集
curl -O https://download.sysinternals.com/files/SDelete.zip
# 解压后执行全盘填零(需管理员权限)
sdelete.exe -z C:

Linux系统

# 创建临时填充文件(根据df -h显示的可用空间计算)
dd if=/dev/zero of=/zero.file bs=1G count=600
sync && rm -f /zero.file

ESXi存储层回收​

SSH登录ESXi主机

ssh root@esxi-host-ip
cd /vmfs/volumes/datastore1/gckj_pro

执行空间回收命令

vmkfstools -K gckj_pro.vmdk  # -K参数触发块级回收机制[6,8](@ref)

注:该操作会将含零块的存储空间物理释放,耗时约30-60分钟/TB

验证回收效果

du -sh *.vmdk  # 观察-flat.vmdk文件体积缩减

​磁盘类型转换方案​

​Thin转Thick可行性​

  1. 转换方法

    • 图形界面​:右键虚拟机 → 编辑设置 → 选择磁盘 → 点击"扩充"按钮

命令行​:

vmkfstools --inflatedisk gckj_pro.vmdk  # 完整转换耗时约6-12小时/TB
  1. 注意事项

    • 转换后磁盘将固定占用1.6TB物理空间,可能加剧存储压力

    • 厚置备延迟置零(Thick Lazy)类型仍存在空间浪费,Eager Zeroed厚置备需要完全初始化磁盘

七、最保险的导入导出操作方案

一、导出/导入核心方法

  1. OVF模板迁移

    • 导出步骤​:

      1. 关闭虚拟机电源,确保没有快照和直通设备(如PCI网卡)

      2. 在ESXi Web界面右键虚拟机 → 导出 → 选择OVF/VMDK/MF文件

      3. 文件将包含.ovf(配置描述)、.vmdk(虚拟磁盘)、.mf(校验文件)

    • 导入步骤​:

      1. 目标主机 → 创建/注册虚拟机 → 选择"从OVF或OVA部署"

      2. 上传所有导出文件,系统自动校验文件完整性

      3. 配置存储位置和网络设置后完成注册

  2. 文件级迁移

    • 通过SSH访问/vmfs/volumes/datastore1/目录,直接复制虚拟机文件夹(含.vmx和.vmdk文件)

    • 目标主机通过vim-cmd solo/registervm命令注册虚拟机配置文件

二、兼容性处理要点

  1. 硬件版本适配

    • ESXi 8.0支持最高硬件版本20,迁移低版本虚拟机时建议升级兼容性

    • 若出现引导故障(如EFI启动失败),需手动进入BIOS选择引导文件(如grubx64.efi)

  2. 存储优化策略

    • 导出时自动压缩磁盘文件,实际传输量为已用空间(如分配1.6TB但实际300GB,导出文件约300GB)

    • 建议新存储创建独立RAID阵列(如新购12TB盘组RAID5),避免与原存储产生IO竞争

三、进阶操作方案

  1. 命令行批量处理

    bash

    复制

    # 导出虚拟机清单
    vim-cmd vmsvc/getallvms | awk '{print $1":"$2}' > vm_list.txt
    # 批量导出OVF(需安装ovftool)
    while IFS=: read vmid name; do
      ovftool vi://esxi_host/$name $name.ovf
    done < vm_list.txt
  2. 第三方工具整合

    • 使用傲梅企业备份旗舰版可实现:

      • 热迁移(虚拟机运行时导出)

      • 增量备份(仅传输变化数据)

      • 自动清理旧版本备份

四、常见故障应对

故障现象

解决方案

参考来源

导入后无法启动

检查EFI引导配置,重建grub:grub-install /dev/sda1 && update-grub

OVF校验失败

删除.mf校验文件重新导入,或通过openssl sha1 *.vmdk手动校验

存储空间不足

使用vmkfstools --punchzero回收精简置备空间后再迁移

建议优先采用OVF模板迁移方案,若遇到复杂环境(如跨版本迁移或特殊硬件配置),可结合文件级迁移与命令行工具进行操作。对于生产环境关键业务系统,建议在迁移前通过vim-cmd vmsvc/snapshot.create创建快照作为回滚点。

动物装饰