在虚拟化环境中,磁盘置备策略直接影响存储利用率和性能表现。厚置备(Thick Provisioned)和精简置备(Thin Provisioned)是VMware ESXi提供的两种主要磁盘分配方式,它们在工作机制上存在本质区别:
厚置备延迟置零(Thick Provision Lazy Zeroed)
厚置备置零(Thick Provision Eager Zeroed)
精简置备(Thin Provisioned)
性能与空间占用的对比实验数据:
| 指标 | 厚置备延迟置零 | 厚置备置零 | 精简置备 |
|---|---|---|---|
| 创建时间 | 中等 | 最长 | 最快 |
| 初始空间占用 | 100% | 100% | <1% |
| 随机写入延迟 | 最低 | 最低 | 较高 |
| 持续写入吞吐量 | 最高 | 最高 | 中等 |
实际测试显示:当存储阵列支持自动精简配置时,精简置备的性能损耗可控制在5%以内
执行磁盘转换操作需要访问ESXi主机的命令行环境。以下是两种可靠的SSH服务配置方法:
bash复制# 查看当前服务策略
/etc/init.d/SSH status
# 设置开机自动启动
vim-cmd hostsvc/autostartmanager/update_autostartentry SSH shell 1 1 1
安全加固建议:
/etc/ssh/sshd_config)首先通过SSH连接到ESXi主机,检查目标虚拟机的磁盘状态:
bash复制# 进入虚拟机存储目录
cd /vmfs/volumes/datastore1/VM_NAME
# 查看磁盘文件详情
ls -lh *.vmdk
典型输出示例:
code复制-rw------- 1 root root 50G Jan 10 10:00 vmdisk-flat.vmdk # 实际数据文件
-rw------- 1 root root 476 Jan 10 10:00 vmdisk.vmdk # 描述符文件
使用vmkfstools进行磁盘格式转换:
bash复制# 基本转换命令结构
vmkfstools -i 源磁盘.vmdk -d thin 目标磁盘.vmdk
# 实际示例(注意处理文件名中的空格)
vmkfstools -i "old disk.vmdk" -d thin "new thin disk.vmdk"
转换过程关键点:
watch -n 5 du -h监控进度转换完成后执行完整性检查:
bash复制# 检查新磁盘状态
vmkfstools -x check "new thin disk.vmdk"
# 替换原磁盘配置
mv "new thin disk.vmdk" "old disk.vmdk"
mv "new thin disk-flat.vmdk" "old disk-flat.vmdk"
在虚拟机内部执行空间清理:
bash复制# 检查可用空间
df -h
# 填充零值(根据文件系统类型选择)
# 对于ext3/ext4/xfs:
dd if=/dev/zero of=/zero.file bs=1M; sync; rm -f /zero.file
# 对于NTFS(Windows系统):
sdelete.exe -z C:
返回ESXi Shell执行空间回收:
bash复制# 收缩磁盘命令
vmkfstools -K /vmfs/volumes/datastore1/VM_NAME/disk.vmdk
# 验证结果
du -ah * | grep vmdk
常见问题处理:
创建/usr/local/sbin/shrink_vmdk.sh:
bash复制#!/bin/sh
VM_NAME=$1
DATASTORE=$2
cd /vmfs/volumes/${DATASTORE}/${VM_NAME}
for VMDK in $(ls *.vmdk | grep -v flat); do
echo "Processing $VMDK..."
vmkfstools -K $VMDK
sleep 5
done
定期检查存储空间使用情况:
bash复制# 查看数据存储利用率
esxcli storage filesystem list
# 检查精简置备超额分配风险
esxcli storage vmfs extent list
在完成所有操作后,建议: