我们在存储行业里一直将快照视为现代磁盘阵列的一个核心功能。当我们将数据中心里的服务器虚拟化的时候,我们中的许多人已经意识到,将多台服务器整合成一个公共数据仓库已经让基于阵列的快照在***数据中心里的价值减少了很多。
在我们还在用阵列LUN为单台服务器保存数据的年代,我会在安装补丁或对服务器进行其他重要修改时先做一份快照,以保证我可以轻松快速地恢复到一个已知正常状态。因为这样的原因,我的业务关键服务器每天会定期做快照。
是的,当我写下“所有的快照都不是对等的”的时候,某些带有快照的磁盘阵列会比其他阵列更有效率,我从来都不相信厂商们所说的那些鬼话,他们说他们的产品可以每时每刻都做快照,但不会影响到产品的性能。但是快照可以让我在晚上放心入睡。 如果一个系统有着良好的快照记录,我甚至可以在把不用复制所有数据的情况下为开发商们创建一个生产数据的读写克隆。
当我开始将多台虚拟服务器放到一个公共数据仓库中的时候,情况就发生变化了。快照可以在情况变得非常糟糕时让系统恢复到一个处于正常状态的位置,它不仅仅要保存数据的一个画面,而且还要保存应用程序状态的相应画面。 获得应用程序保持一致的快照要求应用程序和存储系统之间进行一些协作,应用程序必须保持沉默并将缓冲转移到磁盘,这样系统才知道何时去做快照。
如果你的数据存储库中有许多虚拟机,就不可能为了做一次快照而将所有的应用程序同时关闭。任何数据仓库的存储系统快照都只是为了崩溃而保持一致的,也就是说,如果服务器崩溃,你的数据只能保持它应有的一致状态。 为崩溃而保持一致的数据总比完全没有数据要好得多,但它会导致文件丢失或数据库引擎丢失,在让你的用户回到正常工作状态之前,这就需要好几个小时的时间来进行一致性检验。
我们需要的是能够对每一个虚拟机而不是对每一个LUN做快照的存储系统,这样他们就可以通过Windows卷影子拷贝服务或程序将快照与每一个虚拟机中的应用程序对应起来,这种方法我们以前在物理服务器中也用过。当然,那就需要存储系统中安装了vSphere或是其他的管理程序,因为数据仓库并不只是一个用来跟踪属于每一个虚拟机的数据的逻辑磁盘。VMware承诺vVol可以解决这个问题,幸运地是,其他一些厂商没有等VMware,而是自己开发出了它们自己的解决方案。