因为去年底开始SSD和内存大幅降价,ITGeeker技术奇客就想着给自己的小主机升个级,换个三星1G的980硬盘,再加了一根32G的金士顿32G内存。
1. 关闭虚拟机,用ovftool.exe导出完整的ova备份。
之前用的250G固态硬盘,装了三个虚拟机,其它两个只要关停后, 在Windows系统用ovftool.exe就可以备份出ova或者ovf文件。
关于要导成ova还是ovf,ITGeeker技术奇客觉得区别不大吧,ova是单文件,ovf是多文件的形式。
by itgeeker.net
由于我用的是Esxi 8 系统,VMware官方下载ovftool的时候有这么一个提示:Note: OVF Tool 4.5 for vSphere 8.0 is here at this location, not in the drop-down menu. 如果你也用的Esxi 8系统,那么直接到下面的地址下载ovftool吧:
https://developer.vmware.com/web/tool/4.5.0/ovf-tool
解压缩下载好的文件后,用CMD命令进入目录,然后运行:
ovftool.exe vi://root:YOUR PASSWORD@ESXI 8 IP OR DOMAIN/istore F:\ITGeekerBackupFolder\ESXi\BKN5100_ovftool_bk\istore-2023-02-01.ova
注意修改你的密码、主机IP和备份路径
备份之前要关闭虚拟主机的运行,否则提示无法备份之类的错误提示。
但是,ITGeeker技术奇客碰到的问题是:Esxi 8主机现在是作为主路由器在使用,如果关闭OpenWRT之后就无法访问Esxi 8 主机了。
2. 使用dd命令,完整克隆esxi 8主机
这个注意听起来很不错的,只要把主机完整的备份位img文件,然后用rufu工具把img写入到新的硬盘就可以啦
先用命令找出系统硬盘的参数
ls -l /dev/disks/
# 然后选择一个后面不跟冒号和数字1,5,6,7等的那个,例如:
t10.NVMe____LITEON_CA32D8D256________________________AA50085056032300
再使用dd命令备份
dd if=/dev/disks/t10.NVMe____LITEON_CA32D8D256________________________AA50085056032300 of=/vmfs/volumes/datastore1/ESXi8_bkn5100_all.img
# 如果担心文件太大,可以添加gzip进行压缩
dd if=/dev/disks/t10.NVMe____LITEON_CA32D8D256________________________AA50085056032300 | gzip > /vmfs/volumes/datastore1/ESXi8_bkn5100_all.img.gz
事实上,250G的SSD,安装Esxi 8之后,留给datastore的空间只有111G
ITGeeker技术奇客在安装了3个虚拟机后,空间只剩55G左右了,再怎么压缩还是不够大。
使用DiskGenius克隆旧的硬盘到新的三星980硬盘上
本来ITGeeker技术奇客是想用DiskGenius把硬盘克隆成文件存到电脑,然后再转换到新硬盘,不过DiskGenius的这个功能需要付费才行。
于是下载了傲梅来备份硬盘,傲梅倒是免费开放这个功能,但是试了几次都失败了,也不知道是啥原因。
DiskGenius把硬盘克隆到另一个硬盘倒是免费的,只好拆了我的飞龙峡谷NUC,把新的三星980硬盘装上去,然后把原先的Esxi 8的硬盘插入nvme移动硬盘盒(幸亏我还有一个硬盘盒),因为刚好拆了飞龙峡谷NUC的系统盘,只好用微PE U盘启动DiskGenius,克隆旧硬盘到新硬盘当中,速度还可以,整个过程花费11分钟不到一点。
终于克隆成功了,赶紧转到G31的主机开机,接上显示器,Esxi 8启动一切正常,浏览器登录Esxi 8主机,看到虚拟机都不能正常运行了,原因是找不到虚拟机文件了,Esxi 8自己的系统文件到都是正常。
第一波:解决错误“尚未在主机 上配置数据存储”的问题
解决方案:先使用ssh登录到Esxi 8主机(需先开启ssh服务)
esxcfg-volume -l
Scanning for VMFS-6 host activity (4096 bytes/HB, 1024 HBs).
VMFS UUID/label: 63a1884d-cc084b52-f293-60beb4079214/datastore1
Can mount: Yes
Can resignature: Yes
Extent name: t10.NVMe____Samsung_SSD_980_1TB_____________________D9BBA121AS382500:5 range: 0 - 112895 (MB)
#使用esxcfg-volume -M 命令以相同的签名重新挂载VMFS卷(-M 表示持久性,-m 表示非持久性)
esxcfg-volume -M 63a1884d-cc084b52-f293-60beb4079214
使用esxcfg-volume -M重新挂载VMFS的UUID即可解决。✌🏿
第二波:解决错误“无法扩展 VMFS 数据存储 datastore1 – 无法更新”的问题
硬盘变大了,自然首先想到的是要把增加的空间用起来,于是乎使用Esxi 8的操作界面尝试展开现有VMFS空间,但是失败了:“无法扩展 VMFS 数据存储 datastore1 – 无法更新”,再怎么刷新或者重新扫描硬盘都无济于事。
于是一顿搜索,找到了用命令行来解决的方法,同样需要先开启Esxi 8主机的SSH服务,再用Shell登录到主机。
首先,确认一下VMFS分区的存储设备标识符
ls -l /dev/disks/
#一般最后一个便是VMFS分区,你也可以再Esxi 8的存储-硬盘设备-分区图中查看并确认是否正确
t10.NVMe____Samsung_SSD_980_1TB_____________________D9BBA121AS382500:5
我的是第五个分区,后面有冒号和数字5的便是,Esxi 8和之前的Esxi 6和7的盘符有很大区别,之前一般mpx.开头,类似mpx.vmhba0:C0:T0:L0这样的,Esxi 8的会更长些。
然后,用分区工具partedUtil查看硬盘各分区的开始和结束扇区
partedUtil getptbl "/vmfs/devices/disks/t10.NVMe____Samsung_SSD_980_1TB_____________________D9BBA121AS382500"
gpt
121601 255 63 1953525168
1 64 204863 C12A7328F81F11D2BA4B00A0C93EC93B systemPartition 128
2 208896 8595455 EBD0A0A2B9E5443387C068B6B72699C7 linuxNative 0
3 8597504 16984063 EBD0A0A2B9E5443387C068B6B72699C7 linuxNative 0
4 16986112 268435455 4EB2EA3978554790A79EFAE495E21F8D vmfsl 0
5 268437504 1953525133 AA31E02A400F11DB9590000C2911D1B8 vmfs 0
然后,获取硬盘最后的扇区
partedUtil getUsableSectors "/vmfs/devices/disks/t10.NVMe____Samsung_SSD_980_1TB_____________________D9BBA121AS382500"
34 1953525134
指定分区的起始扇区和所需的结束扇区,调整VMFS分区大小
partedUtil resize "/vmfs/devices/disks/Device" 分区数字码 开始扇区 结束扇区
#开始扇区为第5区的开始扇区,结束扇区为硬盘最后扇区减去1的值,这里要运行的命令:
partedUtil resize "/vmfs/devices/disks/t10.NVMe____Samsung_SSD_980_1TB_____________________D9BBA121AS382500" 5 268437504 1953525133
如果partedUtil resize命令运行失败:”在内核无法重新读取 /dev/Device 上的分区表(设备或资源繁忙)。“请尝试重新引导 ESXi 主机再试一遍。
第三波:解决错误命令行partedUtil无法resize的问题
如果第二波并未实际扩展空间的话,那么需要采用进一步的措施来解决扩容问题了。
esxcfg-volume --list
Scanning for VMFS-6 host activity (4096 bytes/HB, 1024 HBs).
VMFS UUID/label: 63a19a4d-cc084b52-f293-60beb4079214/datastore1
Can mount: Yes
Can resignature: Yes
Extent name: t10.NVMe____Samsung_SSD_980_1TB_____________________D9BBA121AS382500:5 range: 0 - 112895 (MB)
# esxcfg-volume --list确认你的硬盘标识符和UUID,然后重新签名您的UUID:
esxcfg-volume --resignature 63a19a4d-cc084b52-f293-60beb4079214
vmkfstools -V
# 接下来使用vmkfstools --growfs "/vmfs/devices/disks/devicename:partition#" "/vmfs/devices/disks/扩张分区,后面输入两遍相同的待扩张分区盘符。例如:
vmkfstools --growfs "/vmfs/devices/disks/t10.NVMe____Samsung_SSD_980_1TB_____________________D9BBA121AS382500:5" "/vmfs/devices/disks/t10.NVMe____Samsung_SSD_980_1TB_____________________D9BBA121AS382500:5"
至此,我的Esxi 8主机一切恢复正常。👌
注:未接显示器引起的另一起血案
不知你是否看过我之前一遍关于没接显示器无法启动华硕主板的文章:折腾了一周的硬盘Raid计划 主机始终点不亮故障分析 原来是华硕主板的显卡Bug
这次同样发生在倍控G31 N5100的小主机上了,由于把它作为软路由,所以就放在弱电箱旁边,自然无法接显示器。于是我测试的时候拿到电脑边,接上显示器,每次都正常,只要一放到弱电箱那边不接显示器,始终无法找到Esxi 8主机,OpenWRT虚拟机也无法自动启动,折腾了N次最终才想到可能是没接显示的原因。
于是找到倍控客服,客服让加工程师的微信,果不然还是那句:“扣电池试试吧”。哎,当工程师还是挺简单的,出问题了,扣主板电池吧,之前碰到无法开机,也是这么一句。
这回还问了我装了啥系统,回答Esxi 8,你装Esxi 7试试吧,我叻个去