映射可定义源卷和目标卷之间的关系。
FlashCopy 功能在启动时制作一份卷的永久拷贝。要创建卷的即时拷贝,必须首先在源卷(被拷贝的磁盘)和目标卷(接收拷贝的磁盘)之间创建映射。源和目标卷的大小必须相等。
在系统中的任何两个卷之间都可以创建映射。这两个卷不必在同一个 I/O 组或池中。当 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 映射的源卷,如Figure 2 所示。
级联中最多可存在 256 个映射。如果使用级联映射和多目标映射,那么可以创建一个最多包含 256 个映射的树。
最多可从单个源卷中拷贝 256 个目标卷。源和目标卷之间的每个关系由唯一的映射管理,这样一个卷最多可以成为 256 个映射中的源卷。
可以单独启动和停止一个源中的各个映射。如果同一源中的多个映射处于活动状态(处于“正在拷贝”或“正在停止”状态),那么这些映射之间存在依赖关系。
另如,如果卷 A 所属的映射依赖于目标卷 B 所属的映射,那么目标卷A 依赖于目标卷 B。来自源卷的最近启动的映射的目标卷依赖于源卷,直至创建了该源的完整拷贝(进度为 100%)。
您可以使用清除速率来最大限度地缩短映射处于“正在停止”状态的时间。如果映射还未完成,那么当映射正在停止时目标卷将处于脱机状态。目标卷会保持脱机,直到映射重新启动。
也可以在创建映射时指定拷贝速率。当映射处于“正在拷贝”状态时,拷贝速率可确定指定给后台拷贝进程的优先级。如果需要针对整个源卷的拷贝以便能在删除映射后继续从目标卷对其进行访问,那么必须将源卷上的所有数据都拷贝到目标卷中。
清除速率和拷贝速率的缺省值都是 50。
如果映射已启动且拷贝速率大于零,那么会将未更改的数据拷贝到目标卷中。更新位图以表明已拷贝数据。一段时间以后,时间长度取决于由拷贝速率和卷大小所确定的优先级,并会将整个卷拷贝到目标中。映射将恢复到“空闲或已拷贝”状态,此时您可以随时重新启动映射以在目标中创建新的拷贝。
当映射处于“正在拷贝”状态时,您可以将拷贝速率设置为零并将清除速率设置为非零值,以最大限度地缩短映射处于“正在停止”状态的时间。
如果使用了多个目标映射,那么映射可在将所有源数据都拷贝到目标(进度为 100%)后处于“正在拷贝”状态。如果尚未 100% 拷贝较早启动且使用相同源磁盘的映射,那么会发生这种情况。
如果拷贝速率为零,那么只会将源上已更改的数据拷贝到目标中。目标不会包含整个源的拷贝,除非源上的每个数据块都已被覆盖。如果需要源的临时拷贝,您可以使用该拷贝速率。
您可以随时停止映射。但是,除非目标卷已包含源卷的完整拷贝,否则当停止映射时,目标将变得不一致,且目标卷将脱机。目标卷会保持脱机,直到映射重新启动。
您还可以设置 autodelete 属性。如果将该属性设置为 on,那么当映射变为“空闲或已拷贝”状态且进度为 100% 时会自动删除映射。
如果映射是递增的,而且后台拷贝已完成,那么映射仅记录源和目标卷之间的差异。如果至映射被分配到的 I/O 组中的两个节点的连接已丢失,那么源和目标卷将脱机。
如果您不希望使用一致性组,那么系统允许将映射视为独立的实体。在这种情况下,映射被称为独立映射。对于以这种方式配置的映射,请使用 prestartfcmap 和 startfcmap 命令,而不是 prestartfcconsistgrp 和 svctask startfcconsistgrp 命令。
您可以启动目标卷是处于空闲或已拷贝、已停止或正在拷贝状态的另一活动映射的源卷的映射。如果映射处于正在拷贝状态,那么 startfcmap 和 prestartfcmap 命令需要使用 restore 参数。您可以使用相同 FlashCopy 映射或不同 FlashCopy 映射的目标来恢复 FlashCopy 源卷的内容,而无需等待映射成为空闲状态,且不会丢失任何其他 FlashCopy 目标卷的内容。
对于 FlashCopy 目标卷,系统会在查询数据中设置一个位以指明这些映射状态,其中的目标卷可以是源卷的精确映像。设置该位会使 Veritas Volume Manager 能够区分源和目标卷,并提供针对这两个卷的独立访问权。