WEB开发网
开发学院操作系统Linux/Unix IBM AIX V5.3 系统管理(Test 222)认证指南第 2 部... 阅读

IBM AIX V5.3 系统管理(Test 222)认证指南第 2 部分:磁盘存储管理(上)

 2008-11-10 08:28:53 来源:WEB开发网   
核心提示:存储管理概念LVM 使用的基本概念包括物理卷、卷组、物理分区、逻辑卷、逻辑分区、文件系统和原始设备,下面介绍它们的一些特征:每个单独的磁盘驱动器是一个命名的物理卷 (PV),IBM AIX V5.3 系统管理(Test 222)认证指南第 2 部分:磁盘存储管理(上),并具有诸如 hdisk0 或 hdisk1 等名称

存储管理概念

LVM 使用的基本概念包括物理卷、卷组、物理分区、逻辑卷、逻辑分区、文件系统和原始设备。下面介绍它们的一些特征:

每个单独的磁盘驱动器是一个命名的物理卷 (PV),并具有诸如 hdisk0 或 hdisk1 等名称。

一个或多个 PV 可以构成一个卷组 (VG)。一个物理卷最多只能属于一个 VG。

不能将某个 PV 的一部分分配到一个 VG。一个物理卷整体地分配到某个卷组。

即使物理卷属于不同的类型,例如 SCSI 或 SSA,也可以将它们分配到同一个卷组。

物理卷中的存储空间划分为物理分区 (PP)。在属于同一个 VG 的所有磁盘上,物理分区的大小完全相同。

在每个卷组中,可以定义一个或多个逻辑卷 (LV)。从用户的角度看,逻辑卷上存储的数据似乎是连续的,但是可以分散在同一个卷组中的不同物理卷上。

逻辑卷由一个或多个逻辑分区 (LP) 组成。每个逻辑分区至少有一个对应的物理分区。一个逻辑分区和一个物理分区始终具有相同的大小。最多可以将数据的三个副本定位在不同的物理分区上。通常,为了实现冗余,将存储相同数据的物理分区定位在不同的物理磁盘上。

逻辑卷中的数据可以按有组织的方式进行存储,并具有位于有目录中的文件的形式。这种结构化和层次性的组织形式称为文件系统。

还可以将逻辑卷中的数据视为一个连续的字节串。此类逻辑卷称为原始逻辑卷。使用该数据以正确地访问和解释它是应用程序的责任。

卷组描述符区域 (VGDA) 是磁盘上的一个区域,其中包含有关该物理卷所在的卷组的信息。它还包括有关属于该卷组的所有物理和逻辑卷的属性和状态的信息。VGDA 中的信息由 LVM 命令使用和更新。每个物理卷至少有一个 VGDA。属于同一个卷组的所有磁盘的 VGDA 中的信息必须完全相同。VGDA 的内部体系结构及其在磁盘上的位置取决于卷组的类型(原始、大容量或可扩展)。

卷组状态区域 (VGSA) 用于描述卷组中所有物理卷中的所有物理分区的状态。VGSA 指示某个物理分区是包含准确还是过时的信息。VGSA 用于监视和维护数据副本同步。VGSA 本质上是一个位图,其体系结构和在磁盘上的位置取决于卷组的类型。

逻辑卷控制块 (LVCB) 包含有关逻辑卷的重要信息,例如逻辑分区数量或磁盘分配策略。其体系结构和在磁盘上的位置取决于它所在的卷组的类型。对于标准卷组,LVCB 驻留在 LV 中的第一个用户数据块上。对于大容量卷组,磁盘上的 VGDA 中存在额外的 LVCB 信息。对于可扩展卷组,所有的相关逻辑卷控制信息都作为 LVCB 信息区域和 LV 入口区域的一部分保留在 VGDA 中。

注意:硬盘驱动器的布局是由 /usr/include/sys/hd_psn.h 头文件定义的。LVM 记录从磁盘上的第 7 个扇区开始。所有 LVM 记录结构都是在 /usr/include/lvmrec.h 头文件中定义的。

逻辑卷存储的限制

AIX 5L Version 5.3 的 LVM 层提供了更高级别的磁盘管理灵活性。存在一些必须注意的限制,如表 1 所示。

表 1

VG 类型 最大 PV 数量 最大 LV 数量 每个 VG 的最大 PP 数量 最大 PP 大小
常规 VG 32 256 32512 (1016*32)1 GB
大容量 VG128 512 130048 (1016*128) 1 GB
可扩展 VG 1024 4096 2097152 128 GB

AIX 5L Version 5.3 的 LVM 限制

物理卷

在最初将某个磁盘添加到系统时,系统将其视为一个简单设备。此时还不可以访问该磁盘以执行 LVM 操作。要使其可访问,必须将它分配到某个卷组,这意味着将其从磁盘更改为物理卷。对于每个磁盘,将会在 /dev 目录下创建两个设备驱动程序:一个块设备驱动程序和一个字符设备驱动程序。系统向磁盘驱动器分配一个 32 位唯一标识符,此标识符称为物理卷标识符 (PVID)。

不带任何参数使用的 lspv 命令将显示所有的物理卷、物理卷的 PVID、PV 所在的卷组,以及卷组的状态,如示例 1 所示。

示例 1 使用 lspv 命令显示物理卷

# lspv
hdisk0     00c478de09a40b16          rootvg     active
hdisk1     00c478de09caf163          rootvg     active
hdisk2     00c478de09caf37f          None
hdisk3     00c478de49630c6a          None
hdisk4     00c478de00655246          None
hdisk5     00c478de008a399b          None
hdisk6     00c478de008a3ba1          None
hdisk7     00c478de6c9883b7          None

PVID

在生成 PVID 时,系统使用自己的序列号和时间戳,以确保两个磁盘决不会具有相同的 PVID。

PVID 还存储在 ODM 中。它们由 LVM 命令使用,并且可能由诸如 HACMP 等外部应用程序引用。

下面的命令通过分配 PVID(如果还没有的话)将可用磁盘设备更改为物理卷:

chdev -l hdisk7 -a pv=yes

如果磁盘已经是物理卷,则此命令不起作用。

下面的命令从物理卷中清除 PVID:

chdev -l hdisk7 -a pv=clear

注意:可以使用诸如 lquerypv 等中间级别的命令列出磁盘的 PVID,如下所示:

# lquerypv -h /dev/hdisk2 80 10

00000080 00C478DE 09CAF37F 00000000 00000000 |..x.............|

列出有关物理卷的信息

可以使用 lspv 命令并作为参数传递物理卷的名称,以查找有关某个物理卷的更多详细信息,如示例 6-2 所示。

示例 2 使用 lspv 显示有关某个物理卷的详细信息

# lspv hdisk2
PHYSICAL VOLUME:hdisk2          VOLUME GROUP:testvg
PV IDENTIFIER:00c478de09caf37f VG IDENTIFIER   00c478de00004c00000001078fc3497d
PV STATE:active
STALE PARTITIONS:0            ALLOCATABLE:yes
PP SIZE:128 megabyte(s)     LOGICAL VOLUMES: 1
TOTAL PPs:546 (69888 megabytes)  VG DESCRIPTORS:  2
FREE PPs:542 (69376 megabytes)  HOT SPARE:no
USED PPs:4 (512 megabytes)    MAX REQUEST:256 kilobytes
FREE DISTRIBUTION: 110..105..109..109..109
USED DISTRIBUTION: 00..04..00..00..00

示例 2 中的字段含义如下:

PHYSICAL VOLUME 物理卷的名称。

PV IDENTIFIER 物理卷的标识符。

PV STATE 物理卷的状态:激活、丢失或已删除。可以使用 chpv 命令更改状态。

STALE PARTITIONS 过时分区的数量。

PP SIZE 物理分区的大小。

TOTAL PPs 驻留在该磁盘上的物理分区总数(空闲或已使用)。

FREE PPs 物理卷上可用的空闲分区数量。

USED PPs 物理卷上的已使用分区数量。

FREE DISTRIBUTION

每个物理内 (intra-physical) 卷区域上可用的空闲物理分区数量。

USED DISTRIBUTION

位于每个物理内卷区域上的已使用物理分区数量。

VOLUME GROUP 物理卷所在的卷组的名称。

VG IDENTIFIER 物理卷所在的卷组的标识符。

ALLOCATABLE 物理卷的分配权限确定了是否可以将空闲 PP 分配到逻辑卷。

LOGICAL VOLUMES 至少有一个 LP 位于此物理卷上的逻辑卷数量。

VG DESCRIPTORS 位于此物理卷上的 VGDA 数量。

HOT SPARE 是否将该物理卷定义为热后备 (hot spare)。

MAX REQUEST 此物理卷的 LTG 大小。

可以将 lspv 命令与 -l 标志结合使用,以显示至少有一个分区位于该物理卷上的所有逻辑卷的名称、位于该物理卷上的分区总数、对应于 LP 的 PP 总数、对应于每个物理内 (intra-physical) 磁盘区域的 PP 分布、逻辑卷的安装点(如果存在的话)。 示例 6-3 显示了运行此命令时获得的输出的示例。

示例 3 使用 lspv -l 命令

# lspv -l hdisk0
hdisk0:
LV NAME        LPs  PPs  DISTRIBUTION     MOUNT POINT
hd3          1   1   00..00..01..00..00  /tmp
hd10opt        1   1   00..00..01..00..00  /opt
hd5          1   1   01..00..00..00..00  N/A
hd8          1   1   00..00..01..00..00  N/A
hd6          11  11  00..00..11..00..00  N/A
hd2          8   8   00..00..08..00..00  /usr
hd9var        1   1   00..00..01..00..00  /var
hd1          1   1   00..00..01..00..00  /home
hd4          1   1   00..00..01..00..00  /

如果希望显示分区的数量、位置,以及它们对应的逻辑卷,可以使用 lspv –p 命令,如示例 4 所示。

示例 4 使用 lspv 来显示针对逻辑卷的 PP 分配

# lspv -p hdisk0
hdisk0:
PP RANGE STATE  REGION    LV NAME       TYPE    MOUNT POINT
1-1   used  outer edge   hd5         boot    N/A
2-110  free  outer edge
111-219  free  outer middle
220-220  used  center    hd8         jfs2log  N/A
221-221  used  center    hd2         jfs2    /usr
222-222  used  center    hd3         jfs2    /tmp
223-223  used  center    hd10opt       jfs2    /opt
224-230  used  center    hd2         jfs2    /usr
231-241  used  center    hd6         paging   N/A
242-328  free  center
329-437  free  inner middle
438-546  free  inner edge

通过使用 lspv –M 命令,可以创建详细的磁盘布局图,并显示每个物理和逻辑分区之间的关系,如示例 5 所示。

示例 5 使用 lspv -M 命令显示物理卷的布局

# lspv -M hdisk0|more
hdisk0:1    hd5:1
hdisk0:2-110
hdisk0:111   lv1:1:1
hdisk0:112   lv1:2:1
hdisk0:113   lv1:3:1
hdisk0:114   lv1:4:1
hdisk0:115   lv1:5:1
hdisk0:116   lv1:6:1
hdisk0:117   lv1:7:1
hdisk0:118   lv1:8:1
hdisk0:119   lv1:9:1
hdisk0:120   lv1:10:1
hdisk0:121   lv1:11:1
hdisk0:122   lv1:12:1
hdisk0:123-219
hdisk0:220   hd8:1
hdisk0:221   hd2:1
hdisk0:222   hd3:1
hdisk0:223   hd10opt:1
hdisk0:224   hd2:2
hdisk0:225   hd2:3
hdisk0:226   hd2:4
hdisk0:227   hd2:5
hdisk0:228   hd2:6
hdisk0:229   hd2:7
hdisk0:230   hd2:8
hdisk0:231   hd6:1
hdisk0:232   hd6:2
hdisk0:233   hd6:3
hdisk0:234   hd6:4
hdisk0:235   hd6:5
hdisk0:236   hd6:6
hdisk0:237   hd6:7
hdisk0:238   hd6:8
hdisk0:239   hd6:9
hdisk0:240   hd6:10
hdisk0:241   hd6:11
hdisk0:242-546

更改物理卷的分配权限

物理卷的分配权限确定是否可以将位于该物理卷上还未分配到逻辑卷的物理分区分配到逻辑卷。驻留在该物理卷上的逻辑卷的操作不受影响。

在示例 6 中,我们禁用了将 hdisk2 中新的空闲物理分区分配到任何逻辑卷的能力。我们尝试创建一个将使用 hdisk2 中的 PP 的逻辑卷,并收到一条表明该物理卷中的分区不可分配的错误消息。

示例 6 禁用物理卷的分区分配

# chpv -an hdisk2
# lspv hdisk2
PHYSICAL VOLUME:hdisk2          VOLUME GROUP:testvg
PV IDENTIFIER:00c478de09caf37f VG IDENTIFIER   00c478de00004c00000001078fc3497d
PV STATE:active
STALE PARTITIONS:0            ALLOCATABLE:no
PP SIZE:128 megabyte(s)     LOGICAL VOLUMES: 1
TOTAL PPs:546 (69888 megabytes)  VG DESCRIPTORS:  2
FREE PPs:542 (69376 megabytes)  HOT SPARE:no
USED PPs:4 (512 megabytes)    MAX REQUEST:256 kilobytes
FREE DISTRIBUTION: 110..105..109..109..109
USED DISTRIBUTION: 00..04..00..00..00
# mklv -y test -t jfs2 testvg 10 hdisk2
0516-823 lquerypv:Physical Volume hdisk2 is not allocatable.
0516-848 lquerypv:Failure on physical volume hdisk2, it may be missing
or removed.
0516-822 mklv:Unable to create logical volume.

要启用分配权限,可以使用以下命令:

chpv -ay hdisk2

更改物理卷的可用性

物理卷的可用性定义了是否可以对指定的物理卷执行任何逻辑输入/输出操作。任何后续的 LVM 操作将不会考虑该物理卷上的 VGDA 和 VGSA 副本。而且,有关该物理卷的信息将从卷组中的其他物理卷的 VGDA 中删除。该物理卷将标记为“已删除”。

在示例 7 中,我们演示了“可用”的概念及其与 VGDA 的关系,如下所示:

lsvg testvg 命令显示 VG 是活动的,包含两个 PV,两个 PV 都是活动的,并且该 VG 有三个 VGDA。

lsvg -p testvg 命令显示 testvg 包含磁盘 hdisk2 和 hdisk3,并且两个磁盘都是活动的。

lspv hdisk3 显示 hdisk3 是活动的并具有两个 VGDA。

lspv hdisk2 显示 hdisk2 是活动的并具有一个 VGDA。

chpv -vr hdisk3 使 hdisk3 不可用。

lspv hdisk3 确认 hdisk3 已删除,并且其上没有任何 VGDA。

lspv hdisk2 确认 hdisk2 是活动的,并且现在包含两个 VGDA,因为任何卷组都必须至少包含一个 VGDA。

lsvg -p testvg 显示 hdisk3 已删除。

lsvg testvg 显示卷组仍然是活动的,两个 PV 中有一个是活动的,VGDA 总数已更改为两个。

chpv -va hdisk3 使 hdisk3 再次可用。

lspv hdisk3 显示 hdisk3 是活动的,并且仅包含一个 VGDA。

lsvg -p testvg 确认两个磁盘现在都是活动的。

示例 7 使用 chpv 命令更改物理卷的可用性

# lsvg testvg
VOLUME GROUP:testvg          VG IDENTIFIER:00c478de00004c00000001078fc3497d
VG STATE:active          PP SIZE:128 megabyte(s)
VG PERMISSION:read/write        TOTAL PPs:1092 (139776 megabytes)
MAX LVs:256           FREE PPs:1092 (139776 megabytes)
LVs:0            USED PPs:0 (0 megabytes)
OPEN LVs:0            QUORUM:     2
TOTAL PVs:2            VG DESCRIPTORS: 3
STALE PVs:0            STALE PPs:   0
ACTIVE PVs:2            AUTO ON:yes
MAX PPs per VG:   32512
MAX PPs per PV:1016           MAX PVs:    32
LTG size (Dynamic):256 kilobyte(s)     AUTO SYNC:no
HOT SPARE:no            BB POLICY:relocatable
# lsvg -p testvg
testvg:
PV_NAME      PV STATE     TOTAL PPs  FREE PPs  FREE DISTRIBUTION
hdisk2      active      546     546     110..109..109..109..109
hdisk3      active      546     546     110..109..109..109..109
# lspv hdisk3
PHYSICAL VOLUME:hdisk3          VOLUME GROUP:testvg
PV IDENTIFIER:00c478de49630c6a VG IDENTIFIER   00c478de00004c00000001078fc3497d
PV STATE:active
STALE PARTITIONS:0            ALLOCATABLE:yes
PP SIZE:128 megabyte(s)     LOGICAL VOLUMES: 0
TOTAL PPs:546 (69888 megabytes)  VG DESCRIPTORS:  2
FREE PPs:546 (69888 megabytes)  HOT SPARE:no
USED PPs:0 (0 megabytes)     MAX REQUEST:256 kilobytes
FREE DISTRIBUTION: 110..109..109..109..109
USED DISTRIBUTION: 00..00..00..00..00
# lspv hdisk2
PHYSICAL VOLUME:hdisk2          VOLUME GROUP:testvg
PV IDENTIFIER:00c478de09caf37f VG IDENTIFIER   00c478de00004c00000001078fc3497d
PV STATE:active
STALE PARTITIONS:0            ALLOCATABLE:yes
PP SIZE:128 megabyte(s)     LOGICAL VOLUMES: 0
TOTAL PPs:546 (69888 megabytes)  VG DESCRIPTORS:  1
FREE PPs:546 (69888 megabytes)  HOT SPARE:no
USED PPs:0 (0 megabytes)     MAX REQUEST:256 kilobytes
FREE DISTRIBUTION: 110..109..109..109..109
USED DISTRIBUTION: 00..00..00..00..00
# chpv -vr hdisk3
# lspv hdisk3
PHYSICAL VOLUME:hdisk3          VOLUME GROUP:testvg
PV IDENTIFIER:00c478de49630c6a VG IDENTIFIER   00c478de00004c00000001078fc3497d
PV STATE:removed
STALE PARTITIONS:0            ALLOCATABLE:yes
PP SIZE:128 megabyte(s)     LOGICAL VOLUMES: 0
TOTAL PPs:546 (69888 megabytes)  VG DESCRIPTORS:  0
FREE PPs:546 (69888 megabytes)  HOT SPARE:no
USED PPs:0 (0 megabytes)     MAX REQUEST:256 kilobytes
FREE DISTRIBUTION: 110..109..109..109..109
USED DISTRIBUTION: 00..00..00..00..00
# lspv hdisk2
PHYSICAL VOLUME:hdisk2          VOLUME GROUP:testvg
PV IDENTIFIER:00c478de09caf37f VG IDENTIFIER   00c478de00004c00000001078fc3497d
PV STATE:active
STALE PARTITIONS:0            ALLOCATABLE:yes
PP SIZE:128 megabyte(s)     LOGICAL VOLUMES: 0
TOTAL PPs:546 (69888 megabytes)  VG DESCRIPTORS:  2
FREE PPs:546 (69888 megabytes)  HOT SPARE:no
USED PPs:0 (0 megabytes)     MAX REQUEST:256 kilobytes
FREE DISTRIBUTION: 110..109..109..109..109
USED DISTRIBUTION: 00..00..00..00..00
# lsvg -p testvg
testvg:
PV_NAME      PV STATE     TOTAL PPs  FREE PPs  FREE DISTRIBUTION
hdisk2      active      546     546     110..109..109..109..109
hdisk3      removed      546     546     110..109..109..109..109
# lsvg testvg
VOLUME GROUP:testvg          VG IDENTIFIER:00c478de00004c00000001078fc3497d
VG STATE:active          PP SIZE:128 megabyte(s)
VG PERMISSION:read/write        TOTAL PPs:1092 (139776 megabytes)
MAX LVs:256           FREE PPs:1092 (139776 megabytes)
LVs:0            USED PPs:0 (0 megabytes)
OPEN LVs:0            QUORUM:     2
TOTAL PVs:2            VG DESCRIPTORS: 2
STALE PVs:0            STALE PPs:   0
ACTIVE PVs:1            AUTO ON:yes
MAX PPs per VG:   32512
MAX PPs per PV:1016           MAX PVs:    32
LTG size (Dynamic):256 kilobyte(s)     AUTO SYNC:no
HOT SPARE:no            BB POLICY:relocatable
# chpv -va hdisk3
# lspv hdisk3
PHYSICAL VOLUME:hdisk3          VOLUME GROUP:testvg
PV IDENTIFIER:00c478de49630c6a VG IDENTIFIER   00c478de00004c00000001078fc3497d
PV STATE:active
STALE PARTITIONS:0            ALLOCATABLE:yes
PP SIZE:128 megabyte(s)     LOGICAL VOLUMES: 0
TOTAL PPs:546 (69888 megabytes)  VG DESCRIPTORS:  1
FREE PPs:546 (69888 megabytes)  HOT SPARE:no
USED PPs:0 (0 megabytes)     MAX REQUEST:256 kilobytes
FREE DISTRIBUTION: 110..109..109..109..109
USED DISTRIBUTION: 00..00..00..00..00
# lsvg -p testvg
testvg:
PV_NAME      PV STATE     TOTAL PPs  FREE PPs  FREE DISTRIBUTION
hdisk2      active      546     546     110..109..109..109..109
hdisk3      active      546     546     110..109..109..109..109

在更改任何物理卷的可用性之前,必须关闭驻留在该磁盘上的任何逻辑卷,并确保卷组在删除该磁盘以后满足定额 (quorum) 要求。

清除物理卷中的引导记录

要清除位于物理卷 hdisk1 上的引导记录,可以使用以下命令:

chpv -c hdisk1

声明物理卷热后备

可以使用 chpv 命令将某个物理卷定义为热后备。此命令还禁用该物理卷的分配权限。该磁盘的大小必须至少等于卷组中已经存在的最小磁盘的大小。

要将 hdisk3 定义为热后备,可以使用以下命令:

chpv -hy hdisk3

要从 hdisk3 所在的卷组的热后备池中删除 hdisk3,可以使用以下命令:

chpv -hn hdisk3

迁移物理卷中的数据

可以将位于物理卷上的物理分区移动到同一个卷组中包含的一个或多个物理卷。

在示例 8 中,我们提供了迁移物理卷中的数据的示例,如下所示:

lsvg -p rootvg 显示 rootvg 中包含的所有 PV。

lsvg -M hdisk1 显示位于 hdisk1 上的所有物理分区的布局图。

lspv -M hdisk5 显示 hdisk5 的所有分区都未分配。

migratepv hdisk1 hdisk5 将数据从 hdisk1 迁移到 hdisk5。

lspv -M hdisk1 确认 hdisk1 的所有分区均为空闲。

chpv -c hdisk1 清除 hdisk1 中的引导记录。

lspv -M hdisk5 确认所有物理分区都已迁移到 hdisk5。

示例 8 将物理分区从一个磁盘迁移到另一个磁盘

# lsvg -p rootvg
rootvg:
PV_NAME      PV STATE     TOTAL PPs  FREE PPs  FREE DISTRIBUTION
hdisk0      active      546     523     109..109..87..109..109
hdisk1      active      546     538     109..105..106..109..109
hdisk5      active      546     546     110..109..109..109..109
# lspv -M hdisk1
hdisk1:1    hd5:1:2
hdisk1:2-122
hdisk1:123   fslv00:1
hdisk1:124   fslv00:2
hdisk1:125   fslv00:3
hdisk1:126   fslv00:4
hdisk1:127-219
hdisk1:220   hd4:1
hdisk1:221   hd9var:1
hdisk1:222   hd1:1
hdisk1:223-546
# lspv -M hdisk5
hdisk5:1-546
# migratepv hdisk1 hdisk5
0516-1011 migratepv:Logical volume hd5 is labeled as a boot logical volume.
0516-1246 migratepv:If hd5 is the boot logical volume, please run 'chpv -c hdisk1'
as root user to clear the boot record and avoid a potential boot
off an old boot image that may reside on the disk from which this
logical volume is moved/removed.
# lspv -M hdisk1
hdisk1:1-546
# chpv -c hdisk1
# lspv -M hdisk5
hdisk5:1    hd5:1:2
hdisk5:2-110
hdisk5:111   fslv00:1
hdisk5:112   fslv00:2
hdisk5:113   fslv00:3
hdisk5:114   fslv00:4
hdisk5:115-219
hdisk5:220   hd4:1
hdisk5:221   hd9var:1
hdisk5:222   hd1:1
hdisk5:223-546

如果迁移包含引导映像的物理卷中的数据,则还应该更新引导列表。

可以仅迁移属于某个特定逻辑卷的分区中的数据。要仅将属于逻辑卷 testlv 的物理分区从 hdisk1 迁移到 hdisk5,可以使用以下命令:

migratepv -l testlv hdisk1 hdisk5

迁移分区

可以将数据从位于一个物理磁盘上的一个分区迁移到不同磁盘上的另一个物理分区。

在示例 9 中,我们提供了将数据从一个物理分区迁移到另一个物理分区的示例,如下所示:

lspv -M hdisk1 显示位于 hdisk1 上的所有物理分区的布局图。请注意,逻辑卷 testlv 的逻辑分区号 1 的第二个副本驻留在物理分区 115 上。

lspv -M hdisk5 显示 hdisk5 的所有分区都未分配。

migratelp testlv/1/2 hdisk5/123 将逻辑卷的逻辑分区号 1 的第二个副本中的数据迁移到物理分区 123 上的 hdisk5。

lsvg -M hdisk1 显示位于 hdisk1 上的所有物理分区的布局图。请注意,物理分区 115 是空闲的。

lspv -M hdisk5 确认逻辑卷 testlv 的逻辑分区号 1 的第二个副本现在驻留在 hdisk5 的物理分区 123 上。

示例 9 将某个分区迁移到不同物理卷上的另一个分区

# lspv -M hdisk1
hdisk1:1    hd5:1:2
hdisk1:2-110
hdisk1:111   fslv00:1
hdisk1:112   fslv00:2
hdisk1:113   fslv00:3
hdisk1:114   fslv00:4
hdisk1:115   testlv:1:2
hdisk1:116-219
hdisk1:220   hd4:1
hdisk1:221   hd9var:1
hdisk1:222   hd1:1
hdisk1:223-546
# lspv -M hdisk5
hdisk5:1-546
# migratelp testlv/1/2 hdisk5/123
migratelp:Mirror copy 2 of logical partition 1 of logical volume
testlv migrated to physical partition 123 of hdisk5.
# lspv -M hdisk1
hdisk1:1    hd5:1:2
hdisk1:2-110
hdisk1:111   fslv00:1
hdisk1:112   fslv00:2
hdisk1:113   fslv00:3
hdisk1:114   fslv00:4
hdisk1:115-219
hdisk1:220   hd4:1
hdisk1:221   hd9var:1
hdisk1:222   hd1:1
hdisk1:223-546
# lspv -M hdisk5
hdisk5:1-122
hdisk5:123   testlv:1:2
hdisk5:124-546

确定 LTG 大小

逻辑磁道组 (LTG) 大小是 I/O 磁盘操作允许的最大传输大小。

可以使用 lquerypv 命令确定物理磁盘的 LTG 大小,如示例 6-10 所示。一个磁盘可以支持多种 LTG 大小,使用 ioctl 调用可以确定这些大小。

示例 10 使用 lquerypv 命令确定 LTG 大小

# lquerypv -M hdisk0
256

管理逻辑卷

逻辑卷使得应用程序在访问数据时能够将数据当作是连续存储的。逻辑卷由一个或多个带编号的逻辑分区的序列组成。每个逻辑分区至少有一个并且至多有三个对应的物理分区,这些物理分区可以定位在不同物理卷上。物理分区在磁盘上的位置由物理内和物理间分配策略确定。

对于每个逻辑卷,/dev 目录下存在两个对应的设备文件。第一个是字符设备,第二个是块设备。

创建逻辑卷

可以使用 mklv 命令创建逻辑卷。此命令允许指定逻辑卷的名称及其特征,例如逻辑分区的数量及其位置。

在示例 11 中,我们使用 mklv 命令在卷组 test1vg 中创建一个名为 lv3 的逻辑卷,其类型为 jfs2,并具有 10 个位于 hdisk5 上的逻辑分区。

示例 11 使用 mklv 命令

# mklv -y lv3 -t jfs2 -a im test1vg 10 hdisk5
lv3
# lslv lv3
LOGICAL VOLUME:lv3          VOLUME GROUP:test1vg
LV IDENTIFIER:00c5e9de00004c0000000107a5b596ab.4 PERMISSION:read/write
VG STATE:active/complete    LV STATE:closed/syncd
TYPE:jfs2          WRITE VERIFY:off
MAX LPs:512          PP SIZE:512 megabyte(s)
COPIES:1           SCHED POLICY:parallel
LPs:10           PPs:      10
STALE PPs:0           BB POLICY:relocatable
INTER-POLICY:minimum        RELOCATABLE:yes
INTRA-POLICY:inner middle      UPPER BOUND:  32
MOUNT POINT:N/A          LABEL:无
MIRROR WRITE CONSISTENCY:on/ACTIVE
EACH LP COPY ON A SEPARATE PV ?:yes
Serialize IO ?:NO

在示例 12 中,我们使用 mklv 命令在卷组 test1vg 中创建一个名为 lv4 的逻辑卷,其类型为 sysdump 并具有两个逻辑分区,每个逻辑分区分别有三个位于三个不同磁盘(hdisk5、hdisk6 和 hdisk7)中心的副本;此逻辑卷的标签为 demo-label,最多可以有五个逻辑分区。

示例 12 使用 mklv 命令

# mklv -y lv4 -t sysdump -a c -e x -c3 -L demo-label -x5 test1vg 2 hdisk5 hdisk6 hdisk7
lv4
# lslv lv4
LOGICAL VOLUME:lv4          VOLUME GROUP:test1vg
LV IDENTIFIER:00c5e9de00004c0000000107a5b596ab.5 PERMISSION:read/write
VG STATE:active/complete    LV STATE:closed/syncd
TYPE:sysdump        WRITE VERIFY:off
MAX LPs:5          PP SIZE:512 megabyte(s)
COPIES:3           SCHED POLICY:parallel
LPs:2           PPs:      6
STALE PPs:0           BB POLICY:relocatable
INTER-POLICY:maximum        RELOCATABLE:yes
INTRA-POLICY:center         UPPER BOUND:  32
MOUNT POINT:N/A          LABEL:demo-label
MIRROR WRITE CONSISTENCY:on/ACTIVE
EACH LP COPY ON A SEPARATE PV ?:yes
Serialize IO ?:NO

在示例 13 中,我们使用 mklv 命令在卷组 test1vg 中创建一个名为 lv5 的逻辑卷,其类型为 jfs2 并具有三个逻辑分区,每个分区分别有两个位于不同磁盘上的固定 (pinned) 副本,那两个磁盘上的读/写操作顺序地进行,启用了写校验,并将 I/O 操作序列化。

示例 13 使用 mklv 命令

# mklv -y lv5 -t jfs2 -c2 -rn -bn -ds -vy -oy test1vg 2 hdisk5 hdisk6
lv5
# lslv lv5
LOGICAL VOLUME:lv5          VOLUME GROUP:test1vg
LV IDENTIFIER:00c5e9de00004c0000000107a5b596ab.6 PERMISSION:read/write
VG STATE:active/complete    LV STATE:closed/syncd
TYPE:jfs2          WRITE VERIFY:on
MAX LPs:512          PP SIZE:512 megabyte(s)
COPIES:2           SCHED POLICY:sequential
LPs:3           PPs:      6
STALE PPs:0           BB POLICY:non-relocatable
INTER-POLICY:minimum        RELOCATABLE:no
INTRA-POLICY:middle         UPPER BOUND:  32
MOUNT POINT:N/A          LABEL:无
MIRROR WRITE CONSISTENCY:on/ACTIVE
EACH LP COPY ON A SEPARATE PV ?:yes
Serialize IO ?:YES

删除逻辑卷

rmlv 命令用于删除逻辑卷。???ü??仅删除逻辑卷,但不删除其他实体,例如使用该逻辑卷的文件系统或分页空间。

在示例 14 中,我们提供了使用 rmlv 删除逻辑卷的示例,如下所示:

lsvg -l test1vg 显示 test1vg 中包含的所有 LV。

rmlv lv7 提示用户确认,然后删除 lv7。

lslv -l lv1 显示 lv1 的位于 hdisk5、hdisk6 和 hdisk7 上的物理分区。

rmlv -p hdisk7 lv1 尝试删除 lv1 的位于 hdisk7 上的分区并提示用户确认。由于 lv1 已打开,该操作无法执行。

umount /fs1 关闭 lv1。

rmlv -p hdisk7 lv1 尝试删除 lv1 的位于 hdisk7 上的分区,提示用户确认,并成功完成。

lslv -l lv1 确认 lv1 的位于 hdisk7 上的物理分区已删除。

示例 14 删除逻辑卷

# lsvg -l test1vg
test1vg:
LV NAME       TYPE    LPs  PPs  PVs LV STATE   MOUNT POINT
lv1         jfs2    3   9   3  open/syncd  /fs1
lv2         jfs2    2   4   2  closed/syncd /fs2
logggg       jfs2log  2   2   1  open/syncd  N/A
lv3         jfs2    10  10  1  closed/syncd N/A
lv4         sysdump  2   6   3  closed/syncd N/A
lv5         jfs2    3   6   2  closed/syncd N/A
lv6         jfs2    2   4   2  closed/syncd N/A
lv7         jfs2    2   4   2  closed/syncd N/A
# rmlv lv7
Warning, all data contained on logical volume lv7 will be destroyed.
rmlv:Do you wish to continue? y(es) n(o)? y
rmlv:Logical volume lv7 is removed.
# lslv -l lv1
lv1:/fs1
PV        COPIES    IN BAND    DISTRIBUTION
hdisk5      003:000:000  100%     000:003:000:000:000
hdisk6      003:000:000  100%     000:003:000:000:000
hdisk7      003:000:000  100%     000:003:000:000:000
# rmlv -p hdisk7 lv1
0516-914 rmlv:Warning, all data belonging to logical volume
lv1 on physical volume hdisk7 will be destroyed.
rmlv:Do you wish to continue? y(es) n(o)? y
0516-1008 rmlv:Logical volume lv1 must be closed.If the logical
volume contains a filesystem, the umount command will close
the LV device.
# umount /fs1
# rmlv -p hdisk7 lv1
0516-914 rmlv:Warning, all data belonging to logical volume
lv1 on physical volume hdisk7 will be destroyed.
rmlv:Do you wish to continue? y(es) n(o)? y
# lslv -l lv1
lv1:/fs1
PV        COPIES    IN BAND    DISTRIBUTION
hdisk5      003:000:000  100%     000:003:000:000:000
hdisk6      003:000:000  100%     000:003:000:000:000

增加逻辑卷的大小

可以使用 extendlv 命令将额外的逻辑分区添加到已经存在的逻辑卷。缺省情况下,逻辑卷在扩展时将保留其特征。可以使用标志来仅更改要添加的分区的这些特征。整个卷组的初始特征将保留不变。可以指定一个或多个磁盘,这些磁盘将容纳新定义的分区。不能超出为该卷组定义的最大分区数量。还可以指定块,其大小以 KB、MB 或 GB 为单位。系统将自动确定满足请求所需要的最小分区数量。

在示例 15 中,我们使用 extendlv 命令,通过三个位于 hdisk5 和 hdisk6 内边缘的逻辑分区扩展逻辑卷 lv1。

示例 15 使用 extendlv 命令

# lslv -l lv1
lv1:/fs1
PV        COPIES    IN BAND    DISTRIBUTION
hdisk5      003:000:000  100%     000:003:000:000:000
hdisk6      003:000:000  100%     000:003:000:000:000
# extendlv -a ie -ex lv1 3 hdisk5 hdisk6
# lslv -l lv1
lv1:/fs1
PV        COPIES    IN BAND    DISTRIBUTION
hdisk5      006:000:000  50%      000:003:000:000:003
hdisk6      006:000:000  50%      000:003:000:000:003

复制逻辑卷

可以将逻辑卷的内容复制到新的或已经存在的逻辑卷。为了保留数据完整性,应该确保目标逻辑卷的大小至少等于源逻辑卷的大小。

下面的示例演示了如何使用 cplv 命令将逻辑卷 lv1 复制到 dumpvg 卷组中名为 lv8 的逻辑卷:

cplv -v dumpvg -y lv8 lv1

创建逻辑卷的副本

可以使用 mklvcopy 命令增加逻辑分区的副本数量。逻辑卷将保留其特征。可以手动或自动对新副本进行同步。

在示例 16 中,我们使用 mklvcopy 命令创建并同步逻辑卷 lv1 的每个逻辑分区的一个额外副本。新创建的副本将位于 hdisk7 上。

示例 16 使用 mklvcopy 创建并同步逻辑分区的额外副本

# lslv -m lv1
lv1:/fs1
LP  PP1 PV1        PP2 PV2        PP3 PV3
0001 0029 hdisk5      0029 hdisk6
0002 0030 hdisk5      0030 hdisk6
0003 0031 hdisk5      0031 hdisk6
0004 0110 hdisk5      0111 hdisk6
0005 0110 hdisk6      0112 hdisk5
0006 0111 hdisk5      0112 hdisk6
0007 0113 hdisk5      0113 hdisk6
0008 0114 hdisk5      0114 hdisk6
0009 0115 hdisk5      0115 hdisk6
# mklvcopy -k lv1 3 hdisk7 &
# lslv -m lv1
lv1:/fs1
LP  PP1 PV1        PP2 PV2        PP3 PV3
0001 0029 hdisk5      0029 hdisk6      0110 hdisk7
0002 0030 hdisk5      0030 hdisk6      0111 hdisk7
0003 0031 hdisk5      0031 hdisk6      0112 hdisk7
0004 0110 hdisk5      0111 hdisk6      0113 hdisk7
0005 0110 hdisk6      0112 hdisk5      0114 hdisk7
0006 0111 hdisk5      0112 hdisk6      0115 hdisk7
0007 0113 hdisk5      0113 hdisk6      0116 hdisk7
0008 0114 hdisk5      0114 hdisk6      0117 hdisk7
0009 0115 hdisk5      0115 hdisk6      0118 hdisk7

更改逻辑卷的特征

可以使用 chlv 命令更改已经存在的逻辑卷的特征。如果更改了影响物理分区位置的属性,这些属性不会影响已经存在的分区,而是仅影响将在随后添加或删除的分区。如果所做的更改影响到驻留在该逻辑卷上的文件系统,则还必须更新文件系统特征。

在示例 17 中,我们使用 chlv 命令将逻辑卷 lv1 的最大逻辑分区数量更改为 1000,将 I/O 操作的调度策略更改为“并行/循环 (parallel /round-robin)”。

示例 17 更改逻辑卷特征

# lslv lv1
LOGICAL VOLUME:lv1          VOLUME GROUP:test1vg
LV IDENTIFIER:00c5e9de00004c0000000107a5b596ab.1 PERMISSION:read/write
VG STATE:激活/complete    LV STATE:opened/syncd
TYPE:jfs2          WRITE VERIFY:off
MAX LPs:512          PP SIZE:512 megabyte(s)
COPIES:3           SCHED POLICY:parallel
LPs:9           PPs:      27
STALE PPs:0           BB POLICY:relocatable
INTER-POLICY:minimum        RELOCATABLE:yes
INTRA-POLICY:inner edge       UPPER BOUND:  32
MOUNT POINT:/fs1          LABEL:None
MIRROR WRITE CONSISTENCY:on/ACTIVE
EACH LP COPY ON A SEPARATE PV ?:yes
Serialize IO ?:NO
# chlv -x 1000 -d pr lv1
# lslv lv1
LOGICAL VOLUME:lv1          VOLUME GROUP:test1vg
LV IDENTIFIER:00c5e9de00004c0000000107a5b596ab.1 PERMISSION:read/write
VG STATE:active/complete    LV STATE:closed/syncd
TYPE:jfs2          WRITE VERIFY:off
MAX LPs:1000          PP SIZE:512 megabyte(s)
COPIES:3           SCHED POLICY:parallel/round robin
LPs:9           PPs:      27
STALE PPs:0           BB POLICY:relocatable
INTER-POLICY:minimum        RELOCATABLE:yes
INTRA-POLICY:inner edge       UPPER BOUND:  32
MOUNT POINT:/fs1          LABEL:None
MIRROR WRITE CONSISTENCY:on/ACTIVE
EACH LP COPY ON A SEPARATE PV ?:yes
Serialize IO ?:NO

拆分逻辑卷

可以使用 splitlvcopy 命令将至少有每个逻辑分区的两个副本的逻辑卷拆分为两个不同的逻辑卷。新创建的逻辑卷将具有与原始逻辑卷相同的特征。建议关闭要拆分的逻辑卷。如果原始逻辑卷包含文件系统,则必须将新创建的逻辑卷中的数据作为不同的文件系统进行访问。

在示例 18 中,我们使用 splitlvcopy 命令将一个逻辑卷拆分为两个副本,如下所示(不保留文件系统数据):

lsvg -l testvg 显示 testvg 包含逻辑卷 testlv,其类型为 jfs2 并将 /test 作为安装点。

lslv -m testlv 显示 testlv 具有三个分别位于 hdisk5、hdisk6 和 hdisk7 上的镜像副本。

splitlvcopy -y copylv testlv 2 尝试拆分该逻辑卷并提示用户确认,因为 testlv 是打开的,数据可能被破坏。

umount /test 关闭逻辑卷 testlv。

splitlvcopy -y copylv testlv 2 拆分该逻辑卷。

lsvg -l testvg 显示新的逻辑卷 copylv 已创建完成。

lslv -m testlv 显示 testlv 现在只有两个镜像副本,分别位于 hdisk5 和 hdisk6 上。

lslv -m copylv 显示 copylv 包含 hdisk7 中的分区。

lslv copylv 显示了新创建的逻辑卷 copylv 的特征。请注意,该逻辑卷没有安装点。

crfs -v jfs2 -d /dev/copylv -m /copy 为 copylv 创建文件系统结构。请注意,此命令不会破坏任何文件系统数据。

如果希望保留原始逻辑卷上的文件系统数据,则不应该在上一步中运行 crfs 命令,而是执行下列命令:

mkdir /copy 创建副本目录。

mount /dev/copylv /copy 安装复制的文件系统。

手动编辑 /etc/filesystems 文件,并为 /copy 安装点添加一个条目。

示例 18 使用 splitlvcopy

# lsvg -l testvg
testvg:
LV NAME       TYPE    LPs  PPs  PVs LV STATE   MOUNT POINT
testlv       jfs2    3   9   3  open/syncd  /test
loglv00       jfs2log  1   1   1  open/syncd  N/A
# lslv -m testlv
testlv:/test
LP  PP1 PV1        PP2 PV2        PP3 PV3
0001 0056 hdisk5      0056 hdisk6      0056 hdisk7
0002 0057 hdisk5      0057 hdisk6      0057 hdisk7
0003 0058 hdisk5      0058 hdisk6      0058 hdisk7
# splitlvcopy -y copylv testlv 2
splitlvcopy:WARNING!The logical volume being split, testlv, is open.
Splitting an open logical volume may cause data loss or corruption
and is not supported by IBM.IBM will not be held responsible for
data loss or corruption caused by splitting an open logical volume.
Do you wish to continue? y(es) n(o)? n
# umount /test
# splitlvcopy -y copylv testlv 2
copylv
# lsvg -l testvg
testvg:
LV NAME       TYPE    LPs  PPs  PVs LV STATE   MOUNT POINT
testlv       jfs2    3   6   2  closed/syncd /test
loglv00       jfs2log  1   1   1  closed/syncd N/A
copylv       jfs2    3   3   1  closed/syncd N/A
# lslv -m testlv
testlv:/test
LP  PP1 PV1        PP2 PV2        PP3 PV3
0001 0056 hdisk5      0056 hdisk6
0002 0057 hdisk5      0057 hdisk6
0003 0058 hdisk5      0058 hdisk6
# lslv -m copylv
copylv:N/A
LP  PP1 PV1        PP2 PV2        PP3 PV3
0001 0056 hdisk7
0002 0057 hdisk7
0003 0058 hdisk7
# lslv copylv
LOGICAL VOLUME:copylv         VOLUME GROUP:testvg
LV IDENTIFIER:00c478de00004c0000000107c4419ccf.3 PERMISSION:read/write
VG STATE:active/complete    LV STATE:closed/syncd
TYPE:jfs2          WRITE VERIFY:off
MAX LPs:512          PP SIZE:256 megabyte(s)
COPIES:1           SCHED POLICY:parallel
LPs:3           PPs:      3
STALE PPs:0           BB POLICY:relocatable
INTER-POLICY:minimum        RELOCATABLE:yes
INTRA-POLICY:middle         UPPER BOUND:  32
MOUNT POINT:N/A          LABEL:/test
MIRROR WRITE CONSISTENCY:on/ACTIVE
EACH LP COPY ON A SEPARATE PV ?:yes
Serialize IO ?:NO
# crfs -v jfs2 -d /dev/copylv -m /copy
File system created successfully.
786204 kilobytes total disk space.
New File System size is 1572864

删除逻辑卷的副本

可以使用 rmlvcopy 命令删除逻辑卷的逻辑分区副本。

在示例 19 中,我们使用 rmlvcopy 命令删除逻辑分区 testlv 的一组副本,如下所示:

lslv -m testlv 显示 testlv 具有三个分别位于 hdisk5、hdisk6 和 hdisk7 上的镜像副本。

rmlvcopy testlv 2 hdisk6 删除位于 hdisk6 上的副本并保留两个镜像副本。

lslv -m testlv 显示 testlv 现在有两个位于 hdisk5 和 hdisk7 上的镜像副本。

示例 19 使用 rmlvcopy

# lslv -m testlv
testlv:/test
LP  PP1 PV1        PP2 PV2        PP3 PV3
0001 0056 hdisk5      0056 hdisk6      0059 hdisk7
0002 0057 hdisk5      0057 hdisk6      0060 hdisk7
0003 0058 hdisk5      0058 hdisk6      0061 hdisk7
# rmlvcopy testlv 2 hdisk6
# lslv -m testlv
testlv:/test
LP  PP1 PV1        PP2 PV2        PP3 PV3
0001 0056 hdisk5      0059 hdisk7
0002 0057 hdisk5      0060 hdisk7
0003 0058 hdisk5      0061 hdisk7

LVM 命令总结

所有 LVM 命令在 SMIT 中都有对应的菜单。

表 2 提供了 LVM 命令的摘要、它们的对应 SMIT 快速路经和每个命令的简要描述。

表 2 LVM 命令摘要

命令 SMIT 快速路经 > 简要说明
chpv smit chpv 更改物理卷的特征。
lspv smit lspv 列出有关物理卷的信息。
migratepv smit migratepv 将物理分区从一个物理卷迁移到其他物理卷。
mkvg smit mkvg 创建卷组。
lsvg smit lsvg 列出有关卷组的信息。
reducevg smit reducevg 从卷组中删除某个物理卷。
chvg smit chvg 更改卷组的特征。
importvg smit importvg 将卷组的定义导入系统。
exportvg smit exportvg 从系统中删除某个卷组的定义。
varyonvg smit varyonvg 激活某个卷组。
varyoffvg smit varyoffvg 禁用某个卷组。
mklv smit mklv 创建逻辑卷。
lslv smit lslv 列出有关某个逻辑卷的信息。
chlv smit chlv 更改逻辑卷的特征。
rmlv smit rmlv 删除逻辑卷。
extendlv smit extendlv 扩展逻辑卷。
mklvcopy smit mklvcopy 创建逻辑卷的副本。
rmlvcopy smit rmlvcopy 删除逻辑卷的副本。

Tags:IBM AIX

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接