一、一次"清理测试机"引发的事故
2026年7月下旬的一个下午,包头石拐区某矿业企业的信息中心给我们打来电话,语速很快:"我们的虚拟机没了,生产调度系统起不来了。"
事情经过并不复杂:该企业一台戴尔PowerEdge R740服务器上跑着VMware ESXi 7.0 U3,本地RAID5阵列(4块4TB SAS盘,PERC H730P控制器)划分为一个约10.9TB的VMFS6数据存储,上面共有9台虚拟机。运维人员计划清理两台早已停用的测试虚拟机,在vSphere Client里操作时,误将名称相近的生产调度虚拟机选中并执行了"从磁盘删除"。这台虚拟机承载着矿区车辆调度、皮带机监控数据汇总和一套SQL Server 2016数据库,最近一次可用备份是11天前。
二、第一通电话里最重要的一句话
我们在电话里只强调了一件事:立刻停止在这个数据存储上的一切写入操作。具体要求包括:
- 不要在该存储上新建、克隆或迁入任何虚拟机;
- 不要开启剩余虚拟机的快照,也不要做Storage vMotion;
- 将其余虚拟机尽量关机或迁移到另一台主机(走网络冷迁移,不要迁到本存储);
- 关闭该数据存储上所有虚拟机的日志与临时文件写入;
- 不要重启ESXi主机、不要在RAID卡里做任何"重建""初始化""一致性校验"操作。
这些动作看着琐碎,但决定了成败。VMFS删除虚拟机时,并不会立即清零数据块,而是释放元数据中的资源映射;只要没有新数据覆盖那些块,重组回来的概率就很高。反过来,如果这时候有人为了"腾地方"往上面拷东西,或者手贱点了RAID重建,恢复难度会直线上升。
三、现场处置:先做只读镜像
工程师携带设备一小时后到达石拐区厂区。处置顺序如下:
1. 阵列脱机与硬件检测
先在RAID卡管理界面确认4块盘状态均为Online、无坏道告警,记录条带大小(256KB)、盘序、校验方式。随后关机、按槽位编号取出4块SAS硬盘,逐块接到我们的只读硬件写保护设备上。
2. 全盘扇区级镜像
使用专业取证复制设备对4块盘做扇区级镜像,写入4块同容量的空盘,全程只读源盘。4TB盘单块镜像耗时约5小时40分钟(并行处理,实际墙钟约6小时)。这一步不能跳过——后续所有分析都在镜像上做,源盘原样封存,万一分析方向错了还能重来。
3. RAID虚拟重组
在恢复平台上按记录的盘序、条带大小、左循环校验方式虚拟重组RAID5,校验重组结果的正确性:检查VMFS超级块特征(VMFS6的卷头标识与文件系统版本号)是否落在预期偏移,检查已知未删除虚拟机的vmdk描述符是否可正常读取。第一次重组用的盘序有误,读出的元数据是乱码;调整两块盘的顺序后,卷结构完整呈现。
四、核心难点:VMFS6元数据与vmdk重组
VMFS6采用大小两级文件块(LFB 512MB / SFB 1MB),删除虚拟机后,文件描述符(FD)中的地址映射被标记为空闲,但块内容仍在。我们的处理路径是:
- 扫描残留文件描述符:在元数据区搜索被释放但尚未复用的FD记录,找到了目标虚拟机的三个关键文件条目——vmx配置文件、约1.4TB的系统+数据平坦盘(-flat.vmdk)、以及一个delta快照文件。
- 提取地址映射:从FD中还原出该平坦盘所占用的资源块列表。因为VMFS6采用大块分配,这台虚拟机的1.4TB数据主要落在约2800个512MB大块上,映射链相对完整,未发现被后续写入覆盖的迹象(这得益于第一时间停写)。
- 重组vmdk并挂载:按映射顺序拼接出完整的-flat.vmdk,用只读方式挂载其中的NTFS分区。文件系统检查显示分区表与MFT均正常,Windows Server 2016系统目录、SQL Server数据目录全部可见。
- 数据库一致性校验:把SQL Server的MDF/LDF文件(主库约680GB)拷出后,在隔离环境挂载,执行DBCC CHECKDB。首轮报出3个索引一致性错误,均为非聚集索引,使用REPAIR_REBUILD级别修复后再次校验通过,未发生数据页丢失。
五、结果与时间线
- T+0h:接到电话,远程指导停写;
- T+1h:工程师到达石拐区现场;
- T+7h:4块盘只读镜像完成;
- T+11h:RAID虚拟重组成功,VMFS卷可读;
- T+19h:目标虚拟机-flat.vmdk重组完成并成功挂载;
- T+28h:SQL Server数据库文件导出并通过DBCC校验;
- T+41h:虚拟机在备用主机上重新注册启动,调度系统恢复对外服务。
最终数据完整率约99.7%,丢失部分为删除操作发生后约20分钟内的少量日志写入,业务侧通过纸质派车单补录完成。
六、事后加固:三条硬性整改
- 命名规范:所有虚拟机名称加前缀,PROD-(生产)、TEST-(测试)、ARCH-(归档),并在vCenter中给生产虚拟机打红色标签。误删的直接诱因就是"名称相近"。
- 删除操作双人复核:生产存储上的删除、格式化、重建类操作,必须两人在场、留存操作截图,纳入信息中心值班制度。
- 备份从11天变成1天:部署基于CBT增量的每日备份,保留策略为日备7份、周备4份、月备6份,备份落到独立的NAS并每周向离线硬盘做一次副本,符合3-2-1原则。同时每季度做一次真实还原演练——备份能不能用,只有还原过才知道。
七、给包头企业的提醒
虚拟化环境的数据事故,我们在包头昆区、青山区、九原区、稀土高新区、石拐区都处理过,类型集中在四类:误删虚拟机、误格式化数据存储、RAID多盘掉线、勒索病毒加密。绝大多数案例的成败分水岭都在发现问题后的头两个小时有没有停止写入。请记住三个"不要":不要重建RAID、不要往原存储写数据、不要用来路不明的软件自行扫描恢复。
不舍昼夜技术提供包头本地数据恢复服务,覆盖机械硬盘/固态硬盘/U盘/存储卡/RAID阵列/NAS/虚拟机/数据库,支持上门取件与现场处置,检测先行、不成功不收费。紧急热线17704868686,24小时接听。
【不舍昼夜技术 · 包头IT一站式服务】
电脑/服务器:重装系统、硬件升级、服务器Linux/Windows环境部署
数据安全:硬盘/U盘/数据库数据恢复、网络安全加固、病毒清理
弱电安防:监控安装、机房建设、综合布线、门禁人脸识别
办公耗材:打印机维修、硒鼓墨盒配送、复印机租赁
软件开发:企业官网、小程序开发、APP定制、ERP系统
服务单位:内蒙古不舍昼夜技术有限公司
业务涵盖:电脑维修/系统重装/数据恢复/监控安防/弱电布线/打印耗材
技术热线:17704868686(包头本地团队,随叫随到!)