存储数据保护技术——快照 Snapshot

定义

存储网络行业协会SNIA(StorageNetworking Industry Association)对快照(Snapshot)的定义是:关于指定数据集合的一个完全可用拷贝,该拷贝包括相应数据在某个时间点(拷贝开始的时间点)的映像。快照可以是其所表示的数据的一个副本,也可以是数据的一个复制品。

作用

存储快照是数据的点对点副本,捕捉了某一时刻的完整数据状态。这些快照是存储系统中的元数据和数据块的组合,以提供对数据历史版本的快速访问和恢复能力。

快照的作用主要是能够进行在线数据备份与恢复。当存储设备发生应用故障或者文件损坏时可以进行快速的数据恢复,将数据恢复某个可用的时间点的状态。快照的另一个作用是为存储用户提供了另外一个数据访问通道,当原数据进行在线应用处理时,用户可以访问快照数据,还可以利用快照进行测试等工作。所有存储系统,不论高中低端,只要应用于在线系统,那么快照就成为一个不可或缺的功能。

优点

  • 快速恢复:通过存储快照,用户可以快速还原数据到先前的状态,从而减少了系统中断时间。
  • 节省存储空间:存储快照通常只存储数据的变化部分,因此可以节省存储空间。
  • 降低备份成本:快照可以用作备份的一部分,避免了对整个数据集的完全备份,从而降低了备份成本和时间。

应用场景

  • 数据保护与恢复:快照可用于保护数据免受意外删除、损坏或恶意软件攻击,并支持快速数据恢复。
  • 测试与开发:在开发和测试过程中,可以使用快照来创建数据的可重现副本,以进行软件开发、测试和调试。
  • 虚拟化环境:在虚拟化环境中,存储快照可以用于创建虚拟机的备份和克隆,以便于快速部署和管理虚拟化资源。

注意事项

  • 性能开销:存储快照可能会对系统性能产生一定的影响,特别是在频繁创建和管理大量快照时。
  • 数据一致性:在创建快照时,需要确保数据的一致性,以避免损坏或不完整的快照导致数据恢复问题。

相关术语

  • 源卷(Source Volume):生成快照的原始存储卷或数据集。快照通常是源卷的副本,用于保护和管理源数据。

  • 目标卷(Target Volume):存储快照的位置,通常是一个单独的卷或存储空间。目标卷可以用于还原数据或创建新的副本。

  • 快照链(Snapshot Chain):多个快照按照时间顺序形成的链式结构。每个快照记录了一个特定时刻的数据状态,并链接到前一个快照,以支持数据恢复和管理。

  • 快照回滚(Snapshot Rollback):将存储卷或数据集恢复到先前快照的状态。回滚操作通常会丢失源卷自快照创建以来的所有更改。

  • 快照映射表(Snapshot Mapping Table):用于记录存储卷或数据集的快照信息,包括快照的标识符、创建时间、所属卷等,以便系统能够准确地定位和管理快照。

  • 活跃快照(Active Snapshot):当前正在使用的快照,通常是用于读取或写入数据的快照。活跃快照可以是全量快照或增量快照。

  • 未激活快照(Inactive Snapshot):处于非活跃状态的快照,通常是先前创建的快照或被标记为不活跃的快照。未激活快照可以被保留或删除,以释放存储空间。

  • 快照恢复(Snapshot Restore):将存储卷或数据集恢复到先前的快照状态的过程,以还原数据或回滚到先前的状态。快照恢复可以是整体恢复,也可以是选择性恢复。

  • 快照克隆(Snapshot Clone):基于现有的快照创建一个完全独立的副本,克隆的数据和原始数据完全分离,可以用于测试、开发或其他目的。

  • 快照策略(Snapshot Policy):定义了快照的创建、保留和删除规则,包括快照的频率、保留时间、最大数量等,以满足特定的业务需求和存储管理策略。

实现方式

存储快照可以通过不同的方法实现,包括基于写时复制(Copy-On-Write)、基于镜像(Mirror-based)、基于差异(Differential-based)等技术。这些方法都旨在以最有效的方式创建和管理数据快照,以降低存储和性能开销。

快照实现方式
│
├── 全量快照
│
└── 增量快照
    │
    ├── ROW (Redirect-On-Write)
    │
    └── COW (Copy-On-Write)

全量快照

全量快照(Full Snapshot)记录整个存储卷或数据集的状态的快照。与增量快照不同,全量快照会记录所有数据,因此需要更多的存储空间和时间。

增量快照

增量快照(Incremental Snapshot)只记录自上次快照以来发生变化的数据的快照。这种快照方式可以节省存储空间和时间,并减少对系统性能的影响。

ROW

工作原理——

ROW (Redirect-On-Write) 在创建快照时,当写入操作发生时,系统首先将发生变化的数据块写入到新的位置,然后将原始数据的指针重定向(Redirect)到新的位置,从而将写入操作重定向到快照中。

优点——

  • 快照链维护简单:每个快照只记录数据发生变化的部分,因此快照链比较简单。
  • 读取性能高:由于原始数据不受写入操作的影响,因此读取性能通常较高。

缺点——

  • 写入性能相对较低:在写入时,需要额外的重定向操作,可能会影响写入性能。
  • 快照链管理复杂性:尽管快照链相对简单,但需要确保链中的每个快照都能准确跟踪数据的变化。

COW

工作原理——

COW (Copy-On-Write) 在创建快照时,当写入操作发生时,系统首先创建数据的副本,然后将写入操作应用于副本数据,从而保持原始数据的完整性。因此,只有在发生写入操作时才会对数据进行复制(Copy),这就是所谓的“写时复制”。

优点——

  • 存储空间利用率高:只有在数据发生变化时才会复制数据,节省了存储空间。
  • 快速创建快照:由于只需复制变化的数据块,因此创建快照的速度较快。

缺点——

  • 写入性能相对较低:在写入时,需要复制发生变化的数据块,可能会影响写入性能。
  • 快照链管理复杂性:需要维护快照链以跟踪数据变化,尤其是当存在多个快照时,管理可能会变得更加复杂。
posted @ 2024-05-14 11:55  岸南  阅读(332)  评论(0)    收藏  举报