VCB,即VMware Consolidated Backup,是一个可以安装在Windows系统上(物理机或者虚拟机)的VMware工具包。安装完毕后,在安装目录下包含一组可执行命令行程序:mountvm,vcbMounter,vcbExport,vcbSnapshot和vcbVmName。它的主要功能是对远端ESX Server上的虚拟机做快照,导出,和挂载,能够对Windows虚拟机做文件级备份,对任何系统的虚拟机做映像级备份。其实,这一组可执行命令行程序在ESX Server Console里面也存在,但是VCB能够移除ESX Server的备份负载,集中实现LAN-free的备份模式。

vStorage API只是一个概念,由Web Service接口的vSphere API和C语言接口的VDDK API组成。它在备份的功能上和VCB相同,有人认为它是下一代的VCB,只不过VCB是用可执行命令行程序和相应的脚本程序来实现备份,而vStorage API用编程接口来实现备份。但有所不同的是,vStorage API的应用范围更广,功能更强大,使用更灵活。Chad Sakac就为vStorage API定义了四项功能:

1)vStorage API for Data Protection

2)vStorage APIs for Site Recovery Manager

3)vStorage APIs for Multipathing

4)vStorage APIs for Array Integration(VAAI)

下图为VCB和vStorage API的工作方式:

VCB mode

VCB的可执行命令行程序mountvm,vcbMounter,vcbExport,vcbSnapshot和vcbVmName的功能和使用方式,直接查看帮助信息就可以很容易地了解清楚。这里需要注意的是,如果要成功进行虚拟磁盘从Product Server到Backup Server的Export操作,务必保证,第一:Product Server和Backup Server都是物理机;第二:Product Server和Backup Server在同一个SAN内,而且共享虚拟磁盘所在的vmfs卷所在的LUN,同时LUN号在Prodcut Server和Backup Server上还必须相同,尽管Backup Server不能访问这个LUN的文件系统。

在VMware Workstation上建Product Server和Backup Server的方法,我尝试过很多遍,均以失败告终,错误提示是:Error: Failed to open the disk: One LUN could not be opened. 虽然我让Product Server和Backup Server共享了一块含有vmfs卷的虚拟磁盘,但是VMware Workstation给出了这样的信息:Clustering is not supported for VMware Workstation. This setting will be ignored. 具体原因我也不清楚,但可以肯定的是,Backup Server无法访问这个共享的LUN。

vSphere API通过Web Service接口访问ESX Server,它的开发包是VMware vSphere Web Service SDK。先读读vSphere Web Services SDK Programming Guide,再安装SDK,然后看看Sample,就能清楚知道如何为虚拟机建立快照,以及如何导出快照了。

vSphere API通过VDDK的编程接口,或者直接使用vmware-mount来挂载本地或远端的虚拟磁盘。Windows备份服务器在挂载ntfs文件系统的虚拟磁盘后能直接访问文件,实现文件级备份,同样,Linux备份服务器在挂载ext2/ext3等文件系统的虚拟磁盘后也能直接访问文件,实现文件级备份。反过来,Windows备份服务器想要访问ext2/ext3等文件系统的虚拟磁盘内的文件,就必须借助第三方工具了,而Linux备份服务器想要访问ntfs文件系统的虚拟磁盘内的文件,只需要在内核编译进或者用户层安装开源ntfs模块工具就可以了。毕竟,文件级备份比映像级备份要大大节省磁盘空间和备份时间。