要把VMware虚拟机的备份和恢复搞定,关键是吃透这几个技术点:API、Data、Disk、HotAdd、Library、NBD、NBDSSL、QueryChangedDiskAreas、Quiesced、Recovery、SAN、Sphere、VDDK和VM。先说说老一套的备份法子,备份软件得用vSphere API连上虚拟机,接着调用VMware Data Recovery Disk Library(也就是VDDK)来读磁盘,而且这读取过程还是“热”的,意思是不会停掉虚拟机。这套系统只会把数据块里变了的地方锁起来,把备份窗口压缩到毫秒级别。具体咋操作呢?一共分七步走。 第一步,先连上虚拟机把配置弄到手,然后立马创建一个“Quiesced”快照。这么做是为了让文件系统和应用程序的状态保持一致。接下来就是找出哪些数据块变了。VDDK连上去第一个磁盘之后,直接调用QueryChangedDiskAreas接口,就能拿到从上次备份到现在所有变更的数据块清单。 第三步是传增量数据,只把那些不一样的块读出来压缩加密了写到后端存储里。头一回肯定得做全量备份,后面就只要上传delta就行。第四步就是把剩下的盘子也这么处理一遍。第五步把所有快照清理掉断开连接,这样虚拟机的性能就几乎没损耗。最后总结一下优点:快照用完立马删不占地方;只传Δ数据省网络和存储;热备份支持SAN、HotAdd、NBDSSL、NBD多种模式。 恢复也得讲究个流程。先让虚拟机关机关掉再连上创建一个Quiesced快照。然后用VDDK把存储里的变化块读回本地缓存里。再把缓存里的数据块反着写回快照磁盘对应的位置。等所有盘子都写完了执行恢复操作让虚拟机回到一致状态。最后还是得把临时快照删掉断开连接才算完事儿。关键之处在于全量Δ混合读起来虽然快但有缓存压缩加持;全靠快照来回滚很方便;全程虚拟机不宕机业务不停摆。