互联网服务AIXrootvg

关于rootvg镜像跨三个盘的磁盘更换~

如题,rootvg做的镜像,但是镜像跨了三个盘,这种环境unmirrorvg 会报错,这种vg更换磁盘如何操作?     求高手解答,在线等~~显示全部
如题,rootvg做的镜像,但是镜像跨了三个盘,这种环境unmirrorvg 会报错,这种vg更换磁盘如何操作?
     求高手解答,在线等~~收起
参与17

查看其它 9 个回答manganese_zh的回答

manganese_zhmanganese_zh系统工程师内蒙古包头
移动磁盘数据
磁盘维护
David Tansley, 系统管理员, Ace Europe
简介: 磁盘上的数据维护是任何系统管理员的常见任务。根据我的经验,数据移动就是一项频繁执行的任务。数据移动可能由您磁盘上的热点所导致,一种快速修复方法是将一些逻辑卷转移到另一个磁盘上,以缓解阻塞。在这种情况下,migratelp 命令是您最值得信赖的朋友。当遇到有故障的磁盘或者需要将数据从一个磁盘迁移到另一个磁盘时,可以使用 migratepv 令或创建一个镜像副本,并且您不会受限于一种方法。对于原始卷组 (VG),在向 VG 添加一个磁盘时,您可能遇到因数(factoring)问题。但是,通过理解 VG 的特征,可以更改因数。在本文中,我们将用一些示例讨论这些常见的磁盘维护任务。
在谈到磁盘维护时,熟悉磁盘相关属性的一些常见缩略语很有好处,因为它可让谈话变得更简练。
•        VG:卷组
•        LV:逻辑卷
•        LP:逻辑分区
•        PP:物理分区
•        PV:物理卷(磁盘)
许多时候,您刚到达办公室,就会听到所有用户和支持人员开始抱怨系统运行缓慢。常规的快速检查包括:
•        处理器限制
•        内存限制
•        磁盘访问
•        网络
•        进程侵扰
执行一些性能测试后您可能得出结论,是磁盘访问、数据在磁盘上的分散性导致了访问阻塞。没有人喜欢这样。所以,让我们假设您已通过分析来自 filemon、topas、nmon 或 lvmstat 等工具的输出,识别了磁盘上的热点。您需要将该数据移动到另一个磁盘,以缓解阻塞。另一个磁盘可能是一个新磁盘,更有可能是 VG 中一个未装满数据的现有磁盘。让我们通过两个场景,看看如何将数据从一个磁盘移动到另一个。但是,在此之前,最好了解一些命令,这样在查看 LV 和 PV 时就会很方便。
最重要的磁盘相关命令
以下是我认为您在执行数据迁移任务之前获取正确的信息,所需要知道的所有命令。
从一个 PV 获取信息
所关注磁盘的大小(以 MB 为单位)始终是需要知道的信息。假设磁盘名为 hdisk4,使用 getconf 命令查找大小:
# getconf DISK_SIZE /dev/hdisk4
9216
使用 lspv 命令提取磁盘信息。
lspv -l
上面的命令列出 LV 和 LP,以及 PP 和文件系统的挂载点(如果适用)。
lspv -m
上面的命令列出 PV、PP 编号、LV 和 LP 编号。
从一个 VG 获取信息
使用 lsvg 命令获取一个(或多个)PV 所在的 VG 的布局。
lsvg :  
上面的命令列出了有关 VG 属性的一般信息,主要是 PP 大小、总空间、空闲空间和已用空间。
lsvg -l :
上面的命令列出了文件系统的类型、LP 和 PV,以及 LV 状态(打开还是关闭)和文件系统挂载点(如果适用)。
lsvg -p :   
上面的命令列出了属于该 VG 的 PV,以及总 PP 空间和空闲 PP 空间。
从 LV 获取信息
可使用 lslv 命令获取有关 LV 的信息。
lslv -l :
上面的命令列出了 LV 所在的 PV。
lslv -m :
上面的命令列出了 LP、分区编号和 PV,这些信息适用于 LV 所在的所有 PV。
上述命令的输出为您提供了充分的信息来确定是否适合使用以下迁移技术执行数据迁移:
•        migratelp
•        migratepv
•        磁盘镜像
在此演示中,我创建了小型文件系统,即小型 LV,因为我需要让输出尽可能的少。在现实中,正常应用程序的 LV 会很大。因此,LV 的 LP 清单会很长。一个技巧是打印出 LV 清单,然后使用一个标记笔确定要移动的 LP。
使用 migratelp 命令移动数据
如果需要移动 LP,也就是要将 LV 的一个部分从一个磁盘移动到另一个磁盘,那么可以使用 migratelp。您可指定一个或多个 LV 分段中您希望移动到另一个磁盘的部分。
LV 监视工具 lvmstat 的输出与您需要用于 migratelp 命令的输入格式很相似,这并不是巧合。
对于本演示,migratelp 命令的格式为:
migratelp
可能您希望移动的 LV 已建立镜像。这没有问题,只需选择您希望移动的副本即可。
假设我们拥有以下磁盘:
# lspv
hdisk1          00c23bed42b3afff                None
hdisk2          00525c6a888e32cd                vg00            active
hdisk3          00c23bed32883598                 None
hdisk0          00c23bed42b3aefe                rootvg          active
我们认为 LV fslv00 的负担过重,这些负担可能源于磁盘读写。我们决定将另一个磁盘(也就是 VG vg00)放入该 LV 中,将 LV fslv00 的一部分迁移到新磁盘中,以缓解阻塞。首先,让我们看看磁盘 hdisk2,fslv00 目前位于其中:
# lspv -l hdisk2
hdisk2:
LV NAME               LPs     PPs     DISTRIBUTION          MOUNT POINT
fslv00                4       4       00..04..00..00..00    /devhold
loglv00               1       1       00..01..00..00..00    N/A
fslv01                4       4       00..04..00..00..00    /apps
现在,让我们看看实际的 VG, vg00。
#  lsvg -l vg00
vg00:
LV NAME         TYPE       LPs     PPs     PVs  LV STATE      MOUNT POINT
loglv00        jfs2log    1       1       1    open/syncd    N/A
fslv00          jfs2       4       4       1    open/syncd    /devhold
fslv01          jfs2       4       4       1    open/syncd    /apps
我们现在可以看到,该 LV fslv00 位于一个磁盘上。现在将另一个磁盘 hdisk3 添加到 VG 上:
# extendvg vg00 hdisk3
确认该磁盘已添加,我们知道已经添加了该磁盘,因为我们在扩展 VG 时未遇到任何错误:
# lsvg -p vg00
vg00:
PV_NAME      PV STATE    TOTAL PPs   FREE PPs    FREE DISTRIBUTION
hdisk2        active         542         533     09..99..108..108..109
hdisk3        active         2187       2187   438..437..437..437..438
现在,让我们看看我们的 LV 布局。同样的,我们可以看到所有 LP 都在位于 hdisk2 上的 LV fslv00 之上:
#  lslv -m fslv00
fslv00:/devhold
LP    PP1  PV1               PP2  PV2               PP3  PV3
0001  0111 hdisk2
0002  0112 hdisk2
0003  0113 hdisk2
0004  0114 hdisk2
现在将前两个 LP(即 0001 和 0002)从 fslv00 移动到新磁盘 hdisk3。
# migratelp fslv00/1 hdisk3
migratelp: Mirror copy 1 of logical partition 1 of logical volume
        fslv00 migrated to physical partition 439 of hdisk3.
# migratelp fslv00/2 hdisk3
migratelp: Mirror copy 1 of logical partition 2 of logical volume
        fslv00 migrated to physical partition 440 of hdisk3.
上述两个 migratelp 命令的运行很正常。现在通过再次查询 fslv00 确认这些 LP 已在新磁盘上:
# lslv -m fslv00
fslv00:/devhold
LP    PP1  PV1               PP2  PV2               PP3  PV3
0001  0439 hdisk3
0002  0440 hdisk3
0003  0113 hdisk2
0004  0114 hdisk2
和预期一样,该 LV 现在已分散在两个磁盘上:hdisk2 和 hdisk3。
可以通过列出两个 hdisk 的内容来进一步确认这一点,如下所示:
# lspv -l hdisk3
hdisk3:
LV NAME               LPs     PPs     DISTRIBUTION          MOUNT POINT
fslv00                2       2       00..02..00..00..00    /devhold
# lspv -l hdisk2
hdisk2:
LV NAME               LPs     PPs     DISTRIBUTION          MOUNT POINT
fslv00                2       2       00..02..00..00..00    /devhold
loglv00               1       1       00..01..00..00..00    N/A
fslv01                4       4       00..04..00..00..00    /apps
如果您在某一刻觉得迁移没有意义,不用担心,只需将它们迁移回来即可,如下所示:
# migratelp fslv00/1 hdisk2
migratelp: Mirror copy 1 of logical partition 1 of logical volume
        fslv00 migrated to physical partition 111 of hdisk2.
# migratelp fslv00/2 hdisk2
migratelp: Mirror copy 1 of logical partition 2 of logical volume
        fslv00 migrated to physical partition 112 of hdisk2.
现在,如果我们查询 hdisk3,就会发现 hdisk3 上的部分中应该没有 LV:
# lspv -l hdisk3
没有返回输出,这表明该磁盘上没有数据。
然而,对于 hdisk2,fslv00 的布局现在已完全还原到之前的状态:
# lspv -l hdisk2
hdisk2:
LV NAME               LPs     PPs     DISTRIBUTION          MOUNT POINT
fslv00                4       4       00..04..00..00..00    /devhold
loglv00               1       1       00..01..00..00..00    N/A
fslv01                4       4       00..04..00..00..00    /apps
如果需要进一步确认,只需查询 LV 即可:
# lslv -m fslv00
fslv00:/devhold
LP    PP1  PV1               PP2  PV2               PP3  PV3
0001  0111 hdisk2
0002  0112 hdisk2
0003  0113 hdisk2
0004  0114 hdisk2
镜像迁移
可通过许多方法移动数据。前面我们查看了 migratelp 命令。现在让我们看看磁盘镜像。在此演示中,想象我们有一个故障磁盘,需要将数据转移到新磁盘。我们装入了另一个磁盘,然后将 LV 镜像复制到新磁盘。完成镜像复制之后,将会删除原始副本。然后从 VG 中删除故障磁盘。我们假设已将一个磁盘装入 VG vg00 中。下一个任务是在新磁盘中创建这些 VG 的副本。
首先,让我们检查一下 VG vg00 的布局:
#  lsvg -l vg00
vg00:
LV NAME        TYPE       LPs     PPs     PVs  LV STATE      MOUNT POINT
loglv00        jfs2log    1       1       1    open/syncd    N/A
fslv00         jfs2       4       4       1    open/syncd    /devhold
fslv01         jfs2       4       4       1    open/syncd    /apps
假设新磁盘 hdisk3 已添加到 VG vg00 中。接下来,在新添加的磁盘上创建所有 LV 的副本。在本演示中,mklvcopy 命令的格式为:
mklvcopy
其中 copy_number 为 2,即 LV 的第二个(副本),destination_PV(在本演示中)为 hdisk3。
# mklvcopy fslv00 2 hdisk3
# mklvcopy fslv01 2 hdisk3
# mklvcopy loglv00 2 hdisk3
现在我们在新磁盘上已经有了 LV 的副本。接下来,我们需要使用 syncvg 命令同步/镜像 LV:
# syncvg -l fslv00
# syncvg -l fslv01
# syncvg -l loglv00
我们现在已完成到新磁盘 hdisk3 的镜像。这可以通过列出 VG 中的 LV 来确认。请注意,PP 列是每个 LV 的 LP 的两倍。这意味着这些 LV 已完成镜像:
#  lsvg -l vg00
vg00:
LV NAME          TYPE     LPs     PPs     PVs  LV STATE      MOUNT POINT
loglv00         jfs2log    1       2       2    open/syncd    N/A
fslv00          jfs2       4       8       2    open/syncd    /devhold
fslv01          jfs2       4       8       2    open/syncd    /apps
现在我们的数据已放在一个好的磁盘上,可以删除原始副本,即故障磁盘 hdisk2 上的 LV。在本演示中,rmlvcopy 命令的格式为:
rmlvcopy
其中,在 LV 第一次出现时或者在您更喜欢原始 LV 的时候,copy_number 将为 1,在本演示中 PV_to_remove_copy 为 hdisk2
现在将这些 LV 副本从故障磁盘 hdisk2 中删除:
# rmlvcopy fslv00 1 hdisk2
# rmlvcopy fslv01 1 hdisk2
# rmlvcopy loglv00 1 hdisk2
来自 hisk2 的所有副本现在已删除。hdisk2 不应再有任何数据,这可以通过查看 VG 来确认。在以下输出中,请注意,对于hdisk2,TOTAL PP 和 FREE PP 值是相同的,这意味着该磁盘是空的:
# lsvg -p vg00
vg00:
PV_NAME    PV STATE    TOTAL PPs   FREE PPs    FREE DISTRIBUTION
hdisk2      active        542         542      109..108..108..108.. 109
hdisk3      active        2187        2178    438..428..437..437.. 438
可以通过列出两个磁盘进一步确认这一点。hdisk2 应该没有数据,但 hdisk3 上应有 LV。
# lspv -l hdisk2
没有返回任何输出,这表明该磁盘上没有数据。
# lspv -l hdisk3
hdisk3:
LV NAME               LPs     PPs     DISTRIBUTION          MOUNT POINT
fslv00                4       4       00..04..00..00..00    /devhold
loglv00               1       1       00..01..00..00..00    N/A
fslv01                4       4       00..04..00..00..00    /apps
现在,剩下的任务是从 VG 删除故障磁盘 hdisk2:
# reducevg vg00 hdisk2
要确认 VG 现在仅包含好的 hdisk3 磁盘,请执行以下命令:
# lsvg -p vg00
vg00:
PV_NAME    PV STATE    TOTAL PPs   FREE PPs    FREE DISTRIBUTION
hdisk3      active        2187         2178       438..428..437..437..438
数据已成功从一个故障磁盘移动到 VG vg00 中的一个新磁盘。在某一时刻,故障磁盘与 VG 是没有关联的,应该在此时物理更换它。
使用 migratepv 命令复制 LV 中的数据
当有一个内容非常稠密的磁盘包含许多要迁移的 LV 时,有时使用 migratepv 命令复制数据很有效。您还可以使用此命令复制单独的 LV。假设我们需要将数据从 hdisk2 迁移到 hdisk3。
目标磁盘的大小可能比来源磁盘更小,只要所有 LV 都能装入目标磁盘。
在本演示中,migratepv 命令的格式为:
migratepv < source_PV>  
migratepv -l < source_PV>  
其中 是您希望迁移的 LV 的名称。
在 VG vg00 的以下输出中,可以注意到 hdisk3 是空的。这可以通过查看 TOTAL PP 和 FREE PP 值来确认,这两个值是相同的。这意味着该磁盘上没有数据。
# lsvg -p vg00
vg00:
PV_NAME     PV STATE   TOTAL PPs   FREE PPs    FREE DISTRIBUTION
hdisk2         active       542      532       109..98..108..108..109
hdisk3        active       2187      2187     438..437..437..437..438
要进一步确认所有 LV 都在 hdisk2 上,可对每个 LV 运行 lslv 命令:
# lslv -m fslv00
fslv00:/apps
LP    PP1  PV1               PP2  PV2               PP3  PV3
0001  0111 hdisk2
0002  0112 hdisk2
0003  0113 hdisk2
0004  0114 hdisk2
0005  0115 hdisk2
# lslv -m fslv01
fslv01:/devhold
LP    PP1  PV1               PP2  PV2               PP3  PV3
0001  0116 hdisk2
0002  0117 hdisk2
0003  0118 hdisk2
0004  0119 hdisk2
# lslv -m loglv00
loglv00:N/A
LP    PP1  PV1               PP2  PV2               PP3  PV3
0001  0110 hdisk2
现在,让我们使用以下 migratepv 命令将 LV fslv00 从 hdisk2 迁移到 hdisk3:
# migratepv -l fslv00 hdisk2 hdisk3
通过查看 LV,我们可以确定 LV fslv00 现在位于 hdisk3 上:
# lslv -m fslv00
fslv00:/apps
LP    PP1  PV1               PP2  PV2               PP3  PV3
0001  0439 hdisk3
0002  0440 hdisk3
0003  0441 hdisk3
0004  0442 hdisk3
0005  0443 hdisk3
假设您现在需要将其他所有 LV(也就是来自 hdisk2 的所有数据)复制到 hdisk3 上,可运行以下命令:
# migratepv hdisk2 hdisk3
成功完成 migratepv 命令后,hdisk2 上将没有任何数据,所有数据现在都位于 hdisk3 上:
# lspv -l hdisk2
上面的命令不会返回任何输出,这表明该磁盘上没有任何数据。
# lspv -l hdisk3
hdisk3:
LV NAME               LPs     PPs     DISTRIBUTION          MOUNT POINT
fslv00                5       5       00..05..00..00..00    /apps
loglv00               1       1       00..01..00..00..00    N/A
fslv01                4       4       00..04..00..00..00    /devhold
接下来,运行以下命令,确认该 VG 打开了这些 LV,并且没有出现任何问题。
# lsvg -l vg00
vg00:
LV NAME             TYPE       LPs     PPs     PVs  LV STATE      MOUNT POINT
loglv00             jfs2log    1       1       1    open/syncd    N/A
fslv00              jfs2       5       5       1    open/syncd    /apps
fslv01              jfs2       4       4       1    open/syncd    /devhold
设置卷组的分解因数
当可伸缩的大型 VG 成为 IBM® AIX® 内的一个主要功能之前,VG 被创建为正常或原始的 VG。要识别您拥有的 VG 的类型,可以查询该 VG 并查找 MAX PV 值。作为一条经验规则,可以使用以下数据。
•        如果有 32 个 PV,那么它是一个原始 VG。
•        如果有 128 个 PV,那么它是一个大型 VG。
•        如果有 1024 个 PV,那么它是一个可伸缩 VG。
但是,这里请注意,不是所有 VG 都返回了应有的值。这通常表明在创建原始 VG 后应该执行 VG 维护。
在过去,旧 VG 是原始 VG,分配了一组已定义的 PP。PP 和 PV 值具有直接关联。如果将一个磁盘(大得多)放入一个 VG(也就是一个原始 VG,其中的所有磁盘都具有较小的 PP 和 PV),您会遇到因数问题。其他一些情形也有可能遇到因数问题。因数问题不是真正的大问题。如果您更改了因数,那么您的 VG 支持的磁盘将会更少。这是因为,通过增加因数大小,可以增加 PP 大小,这会减少您可以包含在 VG 中的磁盘数量。这真的是个问题吗?在我看来不算。所以这里您有两个选择:
•        当 VG 变化时,使用 chvg -B 命令转换为一个大 VG。
•        当 VG 变化时,使用 chvg -G 命令转换为一个可伸缩 VG。
或者在未来,确保任何新 VG 创建为可伸缩的 VG,以防遇到因数问题。假设某种转换 VG 的情况并不可取,因为您不能让文件系统离线。要获得 VG 中的磁盘,则必须更改因数大小。以下是一个原始 VG 的一个因数错误的示例。假设我有一个名为 appsvg 的 VG,它有一个 17 GB 大的磁盘,我尝试向它添加一个 70 GB 的磁盘 (hdisk3),会获得以下错误:
# extendvg appsvg hdisk3
0516-1162 extendvg: Warning, The Physical Partition Size of 32 requires the  creation of 2187 partitions for hdisk3.  The limitation for volume group appsvg is 1016 physical partitions per physical volume.  Use chvg command with -t option to attempt to change the maximum Physical Partitions per Physical volume for this volume group.
0516-792 extendvg: Unable to extend volume group.
上面的输出一定程度上指明了存在的问题。无论如何,都需要更改因数大小。在本演示中,我选择一个因数 3:
# chvg -t3 appsvg
0516-1164 chvg: Volume group appsvg changed.  With given characteristics appsvg can include upto 10 physical volumes with 3048 physical partitions each.
# extendvg appsvg hdisk3
在更改因数后,现在我只能有 10 个磁盘,而不是最初的 32 个磁盘(原始 VG)。但是,这没有什么问题,因为至少我已经将我的大磁盘添加到了 VG 中。在此示例中,我需要更多磁盘空间并获得了这些空间。
结束语
在本文中,我演示了在遇到磁盘阻塞时移动 LV 或者从故障磁盘移动 LV 的不同方式。也可以使用其他工具来移动数据,但是,我重点介绍的是允许您在迁移数据时保持系统在线的数据迁移技术。
银行 · 2015-04-07
浏览4061

回答者

manganese_zh
系统工程师内蒙古包头
擅长领域: 服务器AIXUnix

manganese_zh 最近回答过的问题

回答状态

  • 发布时间:2015-04-07
  • 关注会员:4 人
  • 回答浏览:4061
  • X社区推广