快照是一个非常受欢迎的方法来创建虚拟拷贝整个系统为了方便很快(甚至即时)复苏。设计一个适当的snapshot-based回收系统可以恢复非常大量在短短几分钟内,可以经常做一个时间点几分钟前。相比之下,一个典型的恢复的大小可能会很多时间,通常会失去至少一天的数据。
有两种截然不同的方法创建快照时:即写即拷和redirect-on-write。让我们来谈谈每种方法的优点和缺点,他们很大程度上决定了对系统性能的影响,因此你很长一段时间保持快照的能力。
本文将偏离一般使用术语“体积”,而是使用短语“保护实体”来暗指实体所维护的一个特定的快照。虽然确实保护实体通常是一个RAID卷,某些对象存储系统避开RAID和可能采用快照商店或保护等其他实体对象NAS股票。在这种情况下,受保护的实体可能跨越多个磁盘驱动器,不一定驻留在RAID或LUN体积,因此术语“受保护的实体”。
所有快照类型共享一个共同的特点:他们是虚拟拷贝,而不是身体的。应该任何事故发生在受保护的实体,快照将是无用的。例如,在发生磁盘故障在三倍RAID 6体积,快照是没有帮助的。对象存储系统(或任何存储系统使用擦除编码代替RAID)可以合并机制,以防范一定数量的同步失败,但超过这一数字呈现快照无效。确保防止媒体失败,因此必须复制或备份快照到另一device-essentially创建一个从虚拟物理副本。
注意:因为现在快照一词是被云供应商,重要的是要理解,这里我们只考虑那些NAS等传统快照和存储阵列。当你使用你的IaaS供应商的产品和创建一个快照,你实际上是创建一个物理卷在对象存储的副本。它实际上是一个备份,这也应该复制到另一个地区和另一个账户来保护它从ransomware攻击或自然灾害。这些“快照”比我们这里讨论的是非常不同的。
创建快照时,什么也不会发生硬盘阵列的房屋受保护的实体。存储系统只需要注意保护实体的当前状态需要储蓄。即写即拷和redirect-on-write快照之间的差距在于他们如何存储修改块的先前版本,而这些不同的方法对性能有着重要的意义。
即写即拷是如何工作的
考虑一个即写即拷系统重复块之前用新数据覆盖。从本质上说,当一个块内受保护的实体需要更改,系统那块复制到一个单独的快照之前覆盖面积。这种方法使用三个I / O操作对于每个写:一个读和两个写道。覆盖一块之前,其先前的值必须是读取和写入到一个不同的位置,其次是写的新数据。
应该一个进程试图访问快照在稍后的时间,它通过快照系统,哪知道哪块创建快照以来已经改变了。修改的块读取从原始保护实体,而快照系统检索以前版本的修改块从各自的存储位置。这个决策过程对于每个块可以带来了相当大的计算开销。
redirect-on-write是如何工作的
相比之下,redirect-on-write系统利用指针代表所有受保护的实体。当需要更改一个块,存储系统简单地重定向的指针与块到另一个块和写数据。所有块位置的快照系统维护记录构成一个给定的快照,它本质上是一个指针列表,对应块的位置。如果一个进程试图访问一个特定的快照,它可以利用这些指针从原来的位置检索模块。一些街区所取代,现在由不同的指针保存快照过程没有相关性。因此,阅读一个快照在redirect-on-write系统不得因其计算开销。
Redirect-on-write快照可以减少200%的I / O操作时修改保护块(一个写vs两个读和写),同时消除与阅读相关的任何额外的计算开销快照。相比之下,即写即拷系统可以显著影响性能的保护实体以消极的方式。数量和存储快照时间越大,越明显的保护实体上的性能影响。这正是为什么写时拷贝快照通常用作临时备份。做太多的快照和让他们在很长一段时间可以减少保护实体的性能高达50%。
如果你计划使用存储系统的快照创建并持有许多快照很长一段时间,你应该寻找一个redirect-on-write系统之类的。无论你选择何种供应商,确保你与他们交流你打算如何使用快照,看他们是否认为你会有性能问题。然后用一个概念验证测试验证他们的观点。快照是一个伟大的工具;一定要正确使用它们。