经典物理学里有一条不容辩驳的定论:同一事物不可能同时出现在两个地方。但是,数据可以,而且往往还是必须的。因此出现了数据复制,它是一种直接简单的保护重要业务数据的方法。从定期将块数据迁移到相对较廉价的云存储中,到可延展集群中虚拟机图像的实时复制,复制一直都是可靠又灵活的数据转移方法。
存储时可用的复制工具有很多种类型,备份或虚拟方案的供应商以及每种工具在市场里都有一定的立足之地。不过,它们中很多都要求有配套资源和目标硬件,以及高容量带宽,否则只能支持部分的物理和虚拟处理环境。
应用及适用范围最广的复制方法是异步复制。异步复制中,时延是由几个变量表示的。复制到目标存储的过程可以在几乎实时的状态下进行,或者,根据记录或缓冲产生的延迟,复制可能持续几分钟或几小时。异步复制对网络延迟和带宽的要求较低,因此可适用于长距离复制而不受IP限制。 基于主机的复制产品基本都不支持同步复制,同步复制在基于数据块的高端存储阵列里也常常受限。将数据成功转入复制目标中之后,再将数据传入复制源,通过这种方式,同步复制保证了数据在复制和备份过程中的完整性。可靠的网络和低延迟是同步复制的先决条件,而且传输距离超不过100英里。
同步复制主要被用于高端交易复制,高端交易要求在主节点出现故障的时候能实现瞬间故障恢复,要求数据必须完整。
基于阵列的同步复制有诸多优点,这是毋庸置疑的。其一就是,它有着独特的阵列特性,但管理起来和所有其他的阵列特性并无二致,因此复制的时候几乎毫不费力。因为它也属于存储范畴,因此对于IT专业人士而言,安装会很容易。而且,基于阵列的复制一般是由硬件公司(供应商)维护的,因此如果出现问题,找供应商这一家公司即可解决。
由于同步复制的出错率低,加之存储供应商们正在快速为存储系统增加功能,因此同步复制逐渐被认为是一种在两个阵列间复制数据的可行方法。早先这种方法只常见于高端阵列,但随着时间的推移,它的使用在中端和较低端阵列,包括iSCSI中也非常普遍了。
基于阵列复制最大的缺点似乎是对源存储系统和目标存储系统有着刻板的要求:它们必须是同源的。有趣的是,存储供应商们常常不支持在他们自己产的不同源存储阵列间进行复制。
基于阵列的复制一般指对数据块级的整个数据卷进行复制,而且只处理存储于自身数据卷中的数据。它绝对不会招惹与之相连的主机服务器。基于数据块的复制可应用于各种类型的硬件和操作系统,并允许用户进行压缩、加密和重复数据删除。基于数据块的复制只是复制,因此本身无法为需要读取数据的服务器和客户提供任何高实用性的解决方案。基于阵列的复制通常需要一个额外的收敛方法才能实现高性能。
基于主机的异步复制产品中的复制功能是由服务器上的一个过滤驱动执行的,服务器可以捕捉写入的I/O操作,因此可以将文件,数据块或字节的变化发送给复制目标。基于主机或软件的复制通常是在文件上进行的,复制时可以实现文件和目录级的颗粒式数据选择。基于主机/软件的复制是在主机服务器上进行的,有些为主机服务器提供了服务器和应用程序的故障恢复功能。因为基于主机/软件的复制是在文件系统层而非硬件层进行的,所以复制可以精确到字节级。进行字节级别的复制时通常会减少复制过程中的数据量,因此复制时采用颗粒式选择数据的方法,这样一来就保存了带宽。
最直接的数据复制方法就是基于主机/软件的复制。因为其执行环境没有基于阵列的复制那样独立,所以如果应用程序和服务器出现问题,其稳定性就会受影响。不过基于主机/软件的复制灵活性很高,能用于任何类型的服务器,存储,虚拟平台或云架构。此外,它还能支持多种平台,具体取决于复制产品和供货商。
尽管能进行基于阵列复制的地方也能执行基于主机/软件的复制,但基于主机/软件的复制能延伸到基于阵列的复制无法执行的范围事实上完全是沾了软件的光。对于所有不想在SAN 或 iSCSI存储上投钱或是买不起两个阵列的人而言,基于主机/软件的复制是非常理想的方法。如果你也负担不起同步复制要求的带宽,这种方法也是很适合你的。