mirscan 命令

用途

搜索并更正旧的或不支持执行 I/O 操作的物理分区。

语法

mirscan -v vgname | -l lvname | -p pvname | -r reverse_pvname [ -a ] [ -o ] [ -q nblks ] [ -c lvcopy ] [ -s strict ] [ -u 上限 ]

描述

mirscan 命令检查指定设备上的每个已分配分区。 生成一个报告,列示分区是旧的还是新的,并列示该分区是否支持执行 I/O 操作。 查询 LVM 设备驱动器,确定分区是旧的还是新的。 无论分区是旧的还是新的,都会读取分区以确定它是否支持执行 I/O 操作。 缺省情况下,将读取整个分区,但如果指定了 -q 标志,那么 nblks 值将确定将读取的分区数量。 如果未指定 -a 标志,那么将打印报告并在读取所有分区后结束执行。

如果使用 -a 标志,那么在检查所有分区之后将执行更正操作。 旧的分区将被同步。 如果分区无法执行 I/O ,那么 mirscan 会尝试通过强制同步操作来触发坏区重定位或硬件重定位,这应将数据的良好副本写入无法执行 I/O 操作的块。 如果该分区仍然不可读,那么 mirscan 命令会尝试将该分区迁移到新位置。 在缺省情况下,选定的新位置遵守逻辑卷(其中包含分区)的严格性和上限策略。 使用 -s 标志会导致命令行上指定的严格值覆盖包含分区的逻辑卷的自然严格值。 同样,使用 -u 标志会导致命令行上指定的上限值覆盖包含分区的逻辑卷的自然上限值。

mirscan 命令打印 (到标准输出) 已扫描分区的状态报告。 如果指定了 -a 标志,那么 mirscan 命令还会打印 (到标准输出) 包含所执行的每个更正操作的状态报告。 如果指定了 -o 标志,那么报告将采用以冒号分隔的输出格式。 如果未指定 -o 标志,那么缺省行为是以人类可读格式打印报告。

非镜像逻辑卷上的分区被扫描并包含在所有报告中,但是对于此类分区不能进行同步或迁移操作。 条带化逻辑卷上的分区可以被同步但是不能被迁移。 无法迁移调页设备上的分区,因为如果要将 mirscan 进程调出,那么这将导致系统挂起。 引导逻辑卷上的分区不能被迁移。 固件协助的活动转储逻辑卷上的分区不能被迁移。 在前面每个例子的更正操作报告中都生成了一条提供信息的错误消息。

缺省情况下, mirscan 命令不会对卷组执行任何锁定。 这应该允许 mirscan 命令在后台运行,而不会干扰其他 lvm 命令。 如果指定了 -a 标志,并且存在需要迁移的分区,那么将锁定卷组,执行所有迁移操作,并释放卷组锁定。 因此,如果指定了 -a 标志,那么对其他 lvm 命令的影响将最小化,因为卷组仅在迁移操作期间被锁定,所有这些操作都在执行结束之前一次执行。

标志

描述
指定应采取的更正操作。
-c lvcopy 标识逻辑卷的特定副本。 -c 标志只能与 -l 标志一起指定。 如果将 -c 标志与 -p-r-v 标志结合使用,那么将忽略该标志。
-l lvname 指定要扫描的逻辑卷。
-O 指定应对报告使用以冒号分隔的输出格式。 如果未使用此选项,那么缺省做法是以人类可阅读的格式打印报告。
-p pvname 指定要扫描的物理卷。
-q nblks 指定应读取分区的哪些部分。 如果 nblks 值为 0,那么仅读取每个分区开头、中间和最后的 512 个字节来确定分区是否能够支持执行 I/O 操作。 非零的 nblks 值指示仅读取每个分区开头的 nblks 个 512 字节块来确定分区是否支持执行 I/O 操作。 如果未指定 -q 标志,那么将读取整个分区。
-r 反向PV名称 指定当卷组中的任何分区不驻留在 pvname 上,但确实在 pvname 上具有镜像副本时,应对这些分区进行扫描。 此操作可以在从系统中除去 pvname 之前运行,以应对由于某种原因 pvname 具有分区的最后一个完好副本的情况。
-s strict (yns) 指定应覆盖自然精确值的精确值。 合法值为 yns,其中 y 启用严格性, n 禁用严格性, s 启用 "超严格性"。 缺省情况下,当 mirscan 必须对分区执行迁移操作时,它将遵循包含该分区的逻辑卷的自然严格性值。 如果使用 -s 标志,那么将使用覆盖严格性值。 如果 -s 标志与 -p-r-v 标志结合使用,那么覆盖严格性值可能会覆盖多个逻辑卷的自然严格性。
-u 上限 指定一个上限值,它应覆盖自然上限值。 该上限值应介于 1 和卷组中物理卷总数之间。 缺省情况下,当 mirscan 必须对分区执行迁移操作时,它将遵循包含该分区的逻辑卷的自然上限值。 如果使用 -u 标志,那么将使用覆盖上限值。 如果 -u 标志与 -p-r-v 标志结合使用,那么覆盖上限值可以覆盖多个逻辑卷的自然上限值。
-v 虚拟主机名 指定要扫描的卷组。

退出状态

退出代码 0 指示 mirscan 能够完成其执行,并且能够更正在此过程中迂到的任何错误情况。 退出代码 1 指示 mirscan 能够完成其执行,但它无法更正它发现的每个错误; 仍需要进一步的更正操作。 例如,如果需要更正操作,但未指定 -a 标志,那么将使用退出代码 1 。 退出代码 2 指示 mirscan 无法完成其执行。 例如,如果目标设备未列在 ODM 中,那么使用退出码 2

安全性

RBAC 用户和可信AIX用户请注意:此命令可执行特权操作。 只有特权用户才能执行特权限定的操作。 有关授权和权限的更多信息,请参阅安全中的特权命令数据库。 要获取与此命令相关联的特权和权限的列表,请参阅 lssecattr 命令或 getcmdattr 子命令。

示例

  1. 要扫描逻辑卷 lv33,报告每个分区的状态,并读取每个分区的每个块以确定其是否支持执行 I/O 操作,请输入:
    mirscan -l lv33
  2. 要扫描逻辑卷 lv33,报告每个分区的状态,并仅读取每个分区的开头两个块以确定其是否支持执行 I/O 操作,请输入:
    mirscan -l lv33 -q 2
  3. 要扫描逻辑卷 lv33,报告每个分区的状态,同步找到的所有旧分区,并迁移所有不支持执行 I/O 操作的分区,请输入:
    mirscan -l lv33 -a
  4. 要扫描 hdisk4 上每个已分配的逻辑分区并报告每个分区的状态,请输入:
    mirscan -p hdisk4
  5. 要查找卷组中驻留在 hdisk4 上的每个已分配的分区,扫描并报告所有分区(其未驻留在 hdisk4 上,却是驻留在 hdisk4 上的某分区的镜像副本)的状态,请输入:
    mirscan -r hdisk4
    在从系统中除去 hdisk4 之前运行该命令是非常有用的。
  6. 要扫描卷组 vg05,报告每个已分配分区的状态,并读取每个分区开头、中间和最后 的 512 个字节以确定分区是否能够支持执行 I/O 操作,请输入:
    mirscan -v vg05 -q 0

限制

非镜像分区和条带化分区均不符合迁移条件。 页面调度设备上的分区将不会通过镜像扫描进行迁移,因为如果 mirscan 进程发生页面调度,那么将导致系统挂起。 引导逻辑卷上的分区不能被迁移。

位置

/usr/sbin/mirscan

标准输出

报告中的每一行对应物理分区上的一个操作。 mirscan 可以执行 4 种类型的操作。 扫描操作确定分区是否已同步以及它是否支持执行 I/O 操作。 再同步操作 是对旧分区执行的纠正操作,这些分区尝试将这些分区返回到 synced 状态。 强制再同步操作是对不支持执行 I/O 操作的分区执行的更正操作,它尝试触发坏区重定位或硬件重定位。 强制再同步操作结束时,会再次读取分区以确定其是否支持执行 I/O 操作。 迁移操作是对不支持执行 I/O 操作的分区执行的更正操作,它尝试将数据移动到能够执行 I/O 的物理位置。

报告的缺省格式包含以下列标题。 如果指定 -o 标志,那么不显示标题并且输出报告采用冒号分隔的输出格式打印。 列及其含义如下:
描述
OP 此字段的有效值为 srfm。 值 s 表示扫描操作。 值 r 表示再同步操作。 值 f 表示强制再同步操作,执行该操作是为了触发坏区重定位或硬件重定位。 值 m 表示迁移操作。
状态 此字段的有效值为 SUCCESSFAILURE。 对于扫描操作,如果正在扫描的分区是旧分区或无法执行 I/O ,那么将指示 FAILURE。 对于再同步操作,如果分区未同步,那么将指示 FAILURE 。 对于强制再同步操作,如果分区仍无法执行 I/O 操作,那么将指示 FAILURE 。 对于迁移操作,如果未完成迁移操作,那么将指示 FAILURE
PVNAME 标识正被操作的分区所驻留的物理卷的名称。 对于迁移操作,PVNAME 指的是源物理卷,TARGETPV 指的是目标物理卷。
PP 标识正被操作的分区的物理分区号。 特定物理卷上的第一个分区的 PP 值为 1,而不是 0
SYNC 该字段的有效值是 syncedstale。 指示的值表示操作完成以后分区的状态。 例如,如果再同步操作成功,那么将显示值 synced
IOFAIL 该字段的有效值是 yesno。 指示的值表示操作完成以后分区的状态。 例如,如果迁移操作成功,那么显示 no 值,指示分区执行 I/O 操作时不再存在问题。
LVNAME 标识正被操作的分区所驻留的逻辑卷的名称。
LP 标识正被操作的分区的逻辑分区号。 特定逻辑卷上的第一个分区的 LP 值为 1,而不是 0
CP 标识正被操作的分区的逻辑副本号。 逻辑卷上的第一个逻辑副本的 CP 值为 1,而不是 0
TARGETPV 标识用作迁移操作目标的物理卷的名称。 对于除迁移操作以外的任何类型操作,该字段都保留空白。
TARGETPP 标识用作迁移操作目标的分区的物理分区号。 对于除迁移操作以外的任何类型操作,该字段都保留空白。 特定物理卷上的第一个分区的 TARGETPP 值为 1,而不是 0