FlashCopy 映射

映射可定义源卷和目标卷之间的关系。

FlashCopy 功能在启动时制作一份卷的永久拷贝。要创建卷的即时拷贝,必须首先在源卷(被拷贝的磁盘)和目标卷(接收拷贝的磁盘)之间创建映射。源和目标卷的大小必须相等。

在系统中的任何两个卷之间都可以创建映射。这两个卷不必在同一个 I/O 组或池中。当 FlashCopy 操作启动时,对源卷最做一个检查点。启动操作发生时,不会拷贝任何数据。相反,检查点创建一个位图,表示尚未拷贝源卷的任何部分。位图中的每个位都表示源卷的一个区域。每个区域都被称为一个颗粒

FlashCopy 操作启动后,将继续执行对源卷的读操作。如果将新数据写入源或目标卷,那么会先将源卷上的现有数据复制到目标卷,然后再将新数据写入源或目标卷。位图将被更新以标记源卷的颗粒已经被拷贝,这样对相同颗粒的后续写操作不会重新拷贝数据。

在对目标执行读操作时,位图将用于确定是否已拷贝颗粒。 如果已拷贝颗粒,那么将从目标读取数据。 如果未拷贝颗粒,那么将从源读取数据。

递增 FlashCopy 映射

在递增的 FlashCopy 中,初始映射会将源中的所有数据拷贝到目标中。 后续 FlashCopy 映射只会拷贝在初始 FlashCopy 后修改的数据,如差异的递增 FlashCopy 所示。 此过程会缩短重新创建独立 FlashCopy 映像所需的时间。 只有在创建了 FlashCopy 映射之后,才能将 FlashCopy 映射定义为递增映射。

Figure 1. 差异的递增 FlashCopy
差异的递增 FlashCopy

FlashCopy 伙伴映射

您可以创建一个映射,以便为现有的递增 FlashCopy 映射制作镜像。 所配对的映射被称为伙伴 一个映射只能有一个伙伴。 例如,如果 A 和 B 有两个映射(从 A 到 B 的映射 0 和从 B 到 A 的映射 1),那么映射 0 和映射 1 是伙伴。

递增 FlashCopy 映射可共享记录更改的元数据。 因此,如果镜像对(伙伴关系)中的某一映射是递增的,那么另一映射也会自动递增并保持递增,直到被删除。

级联 FlashCopy 映射

级联 FlashCopy 功能允许 FlashCopy 目标成为另一个 FlashCopy 映射的源,如级联 FlashCopy 卷 所示。

Figure 2. 级联 FlashCopy 卷
级联 FlashCopy 卷

级联中最多可存在 256 个映射。 如果使用级联映射和多目标映射,那么可以创建一个最多包含 256 个映射的树。

多目标 FlashCopy 映射

最多可从单个源中拷贝 256 个目标。 源和目标之间的每个关系由唯一的映射管理,这样一个最多可以成为 256 个映射中的源

可以单独启动和停止一个源中的各个映射。 如果同一源中的多个映射处于活动状态(处于“正在拷贝”或“正在停止”状态),那么这些映射之间存在依赖关系。

例如,如果以下情况为真,那么映射 A 依赖于映射 B:
  • 映射 A 和映射 B 具有相同的源
  • 映射 A 和映射 B 都处于“正在拷贝”或“正在停止”状态。
  • 映射 B 的启动时间晚于映射 A。
    Note: 如果两个映射在同一个一致性组中并在同一时间启动,那么会在启动该一致性组时在内部决定依赖关系的顺序。
  • 由于映射的拷贝进度小于 100,因此映射 A 没有源的完整拷贝。
  • 由于映射的拷贝进度小于 100,因此不存在来自启动时间早于 A 但晚于 B 的同一源且具有该源的完整拷贝的映射。

另如,如果 A 所属的映射依赖于目标 B 所属的映射,那么目标A 依赖于目标 B。 来自源的最近启动的映射的目标依赖于源,直至创建了该源的完整拷贝(进度为 100%)。

清除速率、拷贝速率和自动删除

创建映射时,您可以指定清除速率。 清除速率用于控制将数据从映射的目标拷贝到是目标的最新拷贝或是源的下一个最旧拷贝的映射的目标的速率。 清除速率可用于以下情况:
  • 映射处于“正在停止”状态。
  • 映射处于“正在拷贝”状态,且拷贝率为 0。
  • 映射处于“正在拷贝”状态,且后台拷贝已完成。

您可以使用清除速率来最大限度地缩短映射处于“正在停止”状态的时间。 如果映射还未完成,那么当映射正在停止时目标将处于脱机状态。 目标会保持脱机,直到映射重新启动。

也可以在创建映射时指定拷贝速率。 当映射处于“正在拷贝”状态时,拷贝速率可确定指定给后台拷贝进程的优先级。 如果需要针对整个源的拷贝以便能在删除映射后继续从目标对其进行访问,那么必须将源上的所有数据都拷贝到目标中。

清除速率和拷贝速率的缺省值都是 50。

如果映射已启动且拷贝速率大于零,那么会将未更改的数据拷贝到目标中。 更新位图以表明已拷贝数据。 一段时间以后,时间长度取决于由拷贝速率和大小所确定的优先级,并会将整个拷贝到目标中。 映射将恢复到“空闲或已拷贝”状态,此时您可以随时重新启动映射以在目标中创建新的拷贝。

当映射处于“正在拷贝”状态时,您可以将拷贝速率设置为零并将清除速率设置为非零值,以最大限度地缩短映射处于“正在停止”状态的时间。

如果使用了多个目标映射,那么映射可在将所有源数据都拷贝到目标(进度为 100%)后处于“正在拷贝”状态。 如果尚未 100% 拷贝较早启动且使用相同源磁盘的映射,那么会发生这种情况。

如果拷贝速率为零,那么只会将源上已更改的数据拷贝到目标中。 目标不会包含整个源的拷贝,除非源上的每个数据块都已被覆盖。 如果需要源的临时拷贝,您可以使用该拷贝速率。

您可以随时停止映射。 但是,除非目标已包含源的完整拷贝,否则当停止映射时,目标将变得不一致,且目标将脱机。 目标会保持脱机,直到映射重新启动。

您还可以设置 autodelete 属性。 如果将该属性设置为 on,那么当映射变为“空闲或已拷贝”状态且进度为 100% 时会自动删除映射。

FlashCopy 映射状态

在任何点,映射都会处于以下某一状态:
空闲或已拷贝
即使源和目标之间存在映射,这两者仍可充当独立。 已为源和目标启用读写高速缓存功能。

如果映射是递增的,而且后台拷贝已完成,那么映射仅记录源和目标之间的差异。 如果至映射被分配到的 I/O 组中的两个节点的连接已丢失,那么源和目标将脱机。

正在拷贝
正在进行拷贝。 已在源和目标上启用读写高速缓存功能。
已准备
已准备好启动映射。 目标处于联机状态,但无法访问。 目标无法执行读写高速缓存操作。 当发生硬件错误时,SCSI 前端无法读写高速缓存。 如果映射是递增的,而且前一映射已完成,那么映射仅记录源和目标之间的差异。 如果至映射被分配到的 I/O 组中的两个节点的连接已丢失,那么源和目标脱机。
正在准备
目标处于联机状态,但无法访问。 目标无法执行读写高速缓存操作。 当发生硬件错误时,SCSI 前端无法读写高速缓存。 已从高速缓存中清空源的所有已更改写入数据。 已从高速缓存中丢弃目标的所有读取或写入数据。 如果映射是递增的,而且前一映射已完成,那么映射仅记录源和目标之间的差异。 如果至映射被分配到的 I/O 组中的两个节点的连接已丢失,那么源和目标脱机。
已停止
映射已停止,因为您发出了停止命令或是出现了 I/O 错误。 目标处于脱机状态,其数据已丢失。 要访问目标,必须重新启动或删除映射。 可以访问源,而且已启用读写高速缓存功能。 如果映射是递增的,那么映射正在记录针对源的写操作。 如果至映射被分配到的 I/O 组中的两个节点的连接已丢失,那么源和目标脱机。
正在停止
映射正在将数据拷贝到另一个映射中。
  • 如果后台拷贝进程已完成,那么在完成停止拷贝进程之后目标将联机。
  • 如果后台拷贝进程还未完成,那么会丢弃目标高速缓存中的数据。 运行停止拷贝进程时,目标将处于脱机状态。
可以对源进行 I/O 操作访问。
已暂挂
映射已启动,但还未完成。 对元数据的访问权已丢失,这会导致源和目标脱机。 对元数据的访问权恢复之后,映射将恢复到“正在拷贝”或“正在停止”状态,而且源和目标将恢复到联机状态。 后台拷贝进程将恢复。 如果在暂挂前未清空数据并将数据写入源或目标,那么数据将位于高速缓存中,直至映射离开“已暂挂”状态
注:
  1. 如果 FlashCopy 源脱机,那么依赖于该的所有 FlashCopy 目标也都会脱机。
  2. 如果 FlashCopy 目标 脱机,那么依赖于该的所有 FlashCopy 目标也都会脱机。 源将保持联机。
启动映射前,必须先准备好。 准备映射可确保将高速缓存中的数据降级到磁盘中,而且磁盘上将存在源的一致拷贝。 高速缓存将进入完全写入方式。 已写入源的数据不会高速缓存到 Lenovo Storage V7000 节点中;会直接将其传递到 MDisk 中。 针对映射的准备操作需要一些时间才能完成;实际时间长度取决于源的大小。 必须与操作系统协调准备操作。 根据源上数据的类型,操作系统或应用程序软件可能也会对数据写操作进行高速缓存。 在准备和启动映射之前,必须先清空或同步文件系统和应用程序。
Note: 执行 startfcmapstartfcconsistgrp 命令需要一些时间。

如果您不希望使用一致性组,那么系统允许将映射视为独立的实体。 在这种情况下,映射被称为独立映射。 对于以这种方式配置的映射,请使用 prestartfcmapstartfcmap 命令,而不是 prestartfcconsistgrpsvctask startfcconsistgrp 命令。

FlashCopy 映射恢复

您可以启动目标是处于空闲或已拷贝已停止正在拷贝状态的另一活动映射的源的映射。 如果映射处于正在拷贝状态,那么 startfcmapprestartfcmap 命令需要使用 restore 参数。 您可以使用相同 FlashCopy 映射或不同 FlashCopy 映射的目标来恢复 FlashCopy的内容,而无需等待映射成为空闲状态,且不会丢失任何其他 FlashCopy 目标的内容。

Veritas Volume Manager

对于 FlashCopy 目标系统会在查询数据中设置一个位以指明这些映射状态,其中的目标可以是源的精确映像。 设置该位会使 Veritas Volume Manager 能够区分源和目标,并提供针对这两个卷的独立访问权。