FlashCopy 映射
映射可定义源卷和目标卷之间的关系。
FlashCopy® 功能在启动时制作一份卷的永久拷贝。要创建卷的即时拷贝,必须首先在源卷(被拷贝的磁盘)和目标卷(接收拷贝的磁盘)之间创建映射。源和目标卷的大小必须相等。
在系统中的任何两个卷之间都可以创建映射。这两个卷不必在同一个 I/O 组或池中。 当 FlashCopy 操作启动时,对源卷最做一个检查点。启动操作发生时,不会拷贝任何数据。相反,检查点创建一个位图,表示尚未拷贝源卷的任何部分。位图中的每个位都表示源卷的一个区域。每个区域都被称为一个颗粒。
FlashCopy 操作启动后,将继续执行对源卷的读操作。如果将新数据写入源或目标卷,那么会先将源卷上的现有数据复制到目标卷,然后再将新数据写入源或目标卷。位图将被更新以标记源卷的颗粒已经被拷贝,这样对相同颗粒的后续写操作不会重新拷贝数据。
在对目标卷执行读操作时,位图将用于确定是否已拷贝颗粒。如果已拷贝颗粒,那么将从目标卷读取数据。如果未拷贝颗粒,那么将从源卷读取数据。
递增 FlashCopy 映射
在递增的 FlashCopy 中,初始映射会将源卷中的所有数据复制到目标卷中。后续 FlashCopy 映射只会拷贝在初始 FlashCopy 映射之后进行过修改的数据,如图 1 所示。此过程会缩短重新创建独立 FlashCopy 映像所需的时间。只有在创建了 FlashCopy 映射之后,才能将 FlashCopy 映射定义为递增映射。

FlashCopy 伙伴映射
您可以创建一个映射,以便为现有的递增 FlashCopy 映射制作镜像。 所配对的映射被称为伙伴。 一个映射只能有一个伙伴。例如,如果卷 A 和卷 B 有两个映射(从卷 A 到卷 B 的映射 0 和从卷 B 到卷 A 的映射 1),那么映射 0 和映射 1 是伙伴。
递增 FlashCopy 映射可共享记录更改的元数据。因此,如果镜像对(伙伴关系)中的某一映射是递增的,那么另一映射也会自动递增并保持递增,直到被删除。
级联 FlashCopy 映射
级联 FlashCopy 功能允许 FlashCopy 目标卷成为其他 FlashCopy 映射的源卷,如图 2 所示。

级联中最多可存在 256 个映射。如果使用级联映射和多目标映射,那么可以创建一个最多包含 256 个映射的树。
多目标 FlashCopy 映射
最多可从单个源卷中拷贝 256 个目标卷。源和目标卷之间的关系由唯一的映射管理,这样一个卷最多可以成为 256 个映射中的源卷。
可以单独启动和停止一个源中的各个映射。如果同一源中的多个映射处于活动状态(处于“正在拷贝”或“正在停止”状态),那么这些映射之间存在依赖关系。
另如,如果卷 A 所属的映射依赖于卷 B 所属的映射,那么目标卷 A 依赖于目标卷 B。来自源卷的最近启动的映射的目标卷依赖于源卷,直至创建了该源的完整拷贝(进度为 100%)。
清除速率、拷贝速率和自动删除
您可以使用清除速率来最大限度地缩短映射处于“正在停止”状态的时间。如果映射还未完成,那么当映射正在停止时目标卷将处于脱机状态。目标卷会保持脱机,直到映射重新启动。
也可以在创建映射时指定拷贝速率。当映射处于“正在拷贝”状态时,拷贝速率可确定指定给后台拷贝过程的优先级。如果需要针对整个源卷的拷贝以便能在删除映射后继续从目标卷对其进行访问,那么必须将源卷上的所有数据都复制到目标卷中。
清除速率和拷贝速率的缺省值都是 50。
如果映射已启动且拷贝速率大于零,那么会将未更改的数据复制到目标卷中。更新位图以表明已拷贝数据。一段时间以后,其长度取决于由拷贝速率和卷大小所确定的优先级,并会将整个卷复制到目标中。映射将返回到“空闲或已拷贝”状态,此时您可以随时重新启动映射以在目标中创建新的拷贝。
当映射处于“正在拷贝”状态时,您可以将拷贝速率设置为零并将清除速率设置为非零值,以最大限度地缩短映射处于“正在停止”状态的时间。
如果使用了多个目标映射,那么映射可在将所有源数据都拷贝到目标(进度为 100%)后处于“正在拷贝”状态。如果尚未 100% 拷贝较早启动且使用相同源磁盘的映射,那么会发生这种情况。
如果拷贝速率为零,那么只会将源上已更改的数据拷贝到目标中。目标不会包含整个源的拷贝,除非源上的每个数据块都已被覆盖。如果需要源的临时拷贝,您可以使用该拷贝速率。
您可以随时停止映射。但是,除非目标卷已包含源卷的完整拷贝,否则当停止映射时,目标将变得不一致,且目标卷将脱机。目标卷会保持脱机,直到映射重新启动。
您还可以设置 autodelete 属性。如果将该属性设置为 on,那么当映射变为“空闲或已拷贝”状态且进度为 100% 时会自动删除映射。
FlashCopy 映射状态
- 即使源和目标卷之间存在映射,这两者仍可充当独立卷。已为源和目标卷启用读写高速缓存功能。
如果映射是递增的,而且后台拷贝已完成,那么映射仅记录源和目标卷之间的区别。如果至映射被分配到的 I/O 组中的两个节点的连接已丢失,那么源和目标卷将脱机。
- 正在进行拷贝。已在源和目标卷上启用读写高速缓存功能。
- 已准备好启动映射。目标卷处于联机状态,但无法访问。目标卷无法执行读写高速缓存操作。 当发生硬件错误时,SCSI 前端无法读写高速缓存。如果映射是递增的,而且前一映射已完成,那么映射仅记录源和目标卷之间的区别。如果到分配映射的 I/O 组中两个节点的连接已丢失,那么源和目标卷将脱机。
- 目标卷处于联机状态,但无法访问。目标卷无法执行读写高速缓存操作。 当发生硬件错误时,SCSI 前端无法读写高速缓存。已从高速缓存中清空源卷的所有已更改写入数据。已从高速缓存中丢弃目标卷的所有读取或写入数据。如果映射是递增的,而且前一映射已完成,那么映射仅记录源和目标卷之间的区别。如果到分配映射的 I/O 组中两个节点的连接已丢失,那么源和目标卷将脱机。
- 映射已停止,因为您发出了停止命令或是出现了 I/O 错误。目标卷处于脱机状态,其数据已丢失。要访问目标卷,必须重新启动或删除映射。可以访问源卷,而且已启用读写高速缓存功能。如果映射是递增的,那么映射正在记录针对源卷的写操作。如果到分配映射的 I/O 组中两个节点的连接已丢失,那么源和目标卷将脱机。
- 映射正在将数据拷贝到另一个映射中。
- 映射已启动,但还未完成。对元数据的访问权已丢失,这会导致源和目标卷脱机。 对元数据的访问权恢复之后,映射将返回到“正在拷贝”或“正在停止”状态,而且源和目标卷将返回到联机状态。后台拷贝进程将恢复。如果在暂挂前未清空数据并将数据写入源或目标卷,那么数据将位于高速缓存中,直至映射离开“已暂挂”状态。
If you do not want to use consistency groups, the system allows a mapping to be treated as an independent entity. 这种情况下,该映射称为独立映射。对于以这种方式配置的映射,请使用 prestartfcmap 和 startfcmap 命令,而不是 prestartfcconsistgrp 和 svctask startfcconsistgrp 命令。
FlashCopy 映射恢复
您可以启动目标卷是处于空闲或已拷贝、已停止或正在拷贝状态的另一活动映射的源卷的映射。 如果映射处于正在拷贝状态,那么 startfcmap 和 prestartfcmap 命令需要使用 restore 参数。您可以使用相同 FlashCopy 映射或不同 FlashCopy 映射的目标来恢复 FlashCopy 源卷的内容,而无需等待映射成为空闲状态,且不会丢失任何其他 FlashCopy 目标卷的内容。
Veritas Volume Manager
For FlashCopy target volumes, the system sets a bit in the inquiry data for those mapping states where the target volume might be an exact image of the source volume. 设置该位会使 Veritas Volume Manager 能够区分源和目标卷,并提供针对这两个卷的独立访问权。