鲁克玛刷新点:AIX 存储管理

来源:百度文库 编辑:九乡新闻网 时间:2024/04/29 13:13:09

AIX 存储管理(五)

Posted on 07月 29th, 2009 in AIX 作者: rs6k  Tagged AIX

重新同步设备配置数据库

在正常操作期间,ODM 中有关卷组的信息与诸如 LVCB 和 VGDA 等元数据中包含的 LVM 信息保持一致。如果 ODM 损坏,在尝试任何纠正操作之前,需要首先了解损坏情况。

可以使用 synclvodm 命令同步或重新构建 ODM、设备文件和诸如 VGDA 或 LVCB 等 LVM 元数据结构中的信息。将要同步或重新构建的信息包括:

*

o 属于该卷组的物理卷的列表

o 卷组的名称、主编号和特征

o 卷组的 VGDA

o 时间戳

o 逻辑卷的名称和特征

o 对应于逻辑卷和卷组的设备特殊文件

o ODM 中引用卷组、逻辑和物理卷的节 (stanza)

注意:synclvodm 并不解决所有的损坏场景,并且不打算取代问题确定与解决技术。不适当地使用 synclvodm 命令会使情况变得更糟。

如果系统拥有的卷组信息不准确,这些卷组必须是活动的,重新同步才能进行。

要同步 ODM 以包含卷组 testvg 的最新 LVM 信息,可以使用以下命令:

# synclvodm testvg

导出卷组

在某些情况下,需要将某个卷组中的所有数据从一个系统移动到另一个系统。您将需要从原始系统删除任何对该数据的引用

exportvg 命令仅从 ODM 中删除卷组定义,而不删除物理磁盘中的任何数据。它从 /etc/filesystem 中清除与导出的卷组中包含的逻辑卷相对应的节,但是不会删除安装点。不能导出包含活动分页空间的卷组。

如果逻辑卷的安装点信息超过 128 个字符,则会从 LVCB 中丢失。

要导出卷组 testvg,可以使用以下命令:

# exportvg testvg

导入卷组

导入卷组意味着重新创建对卷组数据的引用并使该数据可用。

下面的示例演示了如何使用 hdisk7 导入卷组 testvg:

# importvg -y testvg hdisk7

importvg 命令读取属于该卷组的物理卷之一的 VGDA。它使用 redefinevg 查找属于该卷组的所有其他磁盘。它将对应的条目添加到 ODM 数据库中,并用新的逻辑卷及其对应安装点的新值(如果可能的话)更新 /etc/filesystems。

如果指定的卷组名称已经在使用,则 importvg 命令将会失败,因为不允许使用重复的卷组名称。

某些导入的逻辑卷名称有可能与系统上已经存在的逻辑卷名称相冲突。importvg 命令将会自动向已导入的逻辑卷分配系统缺省名称,并发送一条错误消息。

在导入经典的并发卷组时,必须将卷组的类型更改为增强并发类型。

示例 21 提供了 importvg 命令如何工作的示例,如下所示:

*

o lsvg -l test2vg 显示名为 test2vg 的卷组包含一个名为 loglv0、类型为 jfslog 的逻辑卷,以及一个名为 test1lv、类型为 jfs 并具有安装点 /testmp 的逻辑卷。

o /etc/filesystems 中有一个针对 /testmp 的节。

o 在不同系统上,我们创建了另一个卷组,其中包含一个物理卷和与卷组 test2vg 相同的逻辑卷。我们从该系统导出卷组,并将磁盘驱动器连接到我们的系统。我们的系统将该磁盘驱动器视为 hdisk5。

o importvg -y test2vg hdisk5 尝试使用已经分配的名称 test2vg 导入 hdisk5 中的卷组,并且失败了。

o importvg -y test1vg hdisk5 尝试在新名称 test1vg 下导入 hdisk5 中的卷组,并且操作成功完成。但是,驻留在 hdisk5 上的逻辑卷的名称已更改为系统生成的名称。importvg 命令还通知我们,与 hdisk5 中的逻辑卷 test1lv 对应的安装点在导入时已经存在了。

o lsvg -l test1vg 显示了两个已导入的逻辑卷的新名称。需要为逻辑卷 fslv02 定义一个新的安装点。

示例 21 导入卷组

# lsvg -l test2vg

test2vg:

LV NAME TYPE LPs PPs PVs LV STATE MOUNT POINT

test1lv jfs 2 2 1 closed/syncd /testmp

loglv00 jfslog 1 1 1 closed/syncd N/A

# cat /etc/filesystems|grep -ip test

/testmp:

dev = /dev/test1lv

vfs = jfs

log = /dev/loglv00

mount = false

options = rw

account = false

# importvg -y test2vg hdisk5

0516-360 getvgname:The device name is already used; choose a

different name.

0516-776 importvg:Cannot import hdisk5 as test2vg.

# importvg -y test1vg hdisk5

0516-530 synclvodm:Logical volume name test1lv changed to fslv02.

0516-530 synclvodm:Logical volume name loglv00 changed to loglv01.

imfs:Warning:mount point /testmp already exists in /etc/filesystems.

test1vg

# lsvg -l test1vg

test1vg:

LV NAME TYPE LPs PPs PVs LV STATE MOUNT POINT

fslv02 jfs2 2 2 1 closed/syncd N/A

loglv01 jfs2log 1 1 1 closed/syncd N/A

除非导入的逻辑卷支持并发,否则会自动启用它。

在安装文件系统之前,应该首先运行 fsck 命令。

启用卷组

可以使用 varyonvg 命令激活已经定义的卷组并使之可供使用。此过程涉及到下列步骤:

*

o varyonvg 命令将打开 /etc/vg 中的对应文件,以获得该卷组的锁。

o 读取每个 VGDA 中的时间戳,以确保 VGDA 中的信息没有过时。选择 VGDA 的最新一致副本,以进一步用作参考点。

o 如果大部分物理卷都不可访问,则启用操作失败。您需要强制启用该卷组,以便激活它。

o 用有关所有物理卷状态的最新信息更新所有物理卷中的 LVM 元数据结构。

o 更新所有物理卷以包含 VGDA 的最新一致副本。

o 更新 LVM 设备驱动程序,以包含有关卷组的最新信息。

o 调用 syncvg 命令以同步过时分区(如果有的话)。

可以使用 varyonvg -f 命令强制启用某个无法正常激活的卷组。此操作不保证数据完整性,只应该在紧急情况下使用。

可以使用 varyonvg -n 命令启用某个卷组,而不自动同步过时分区。当您遇到磁盘问题并希望控制同步以确保让正确的数据可用时,此标志会非常有用。

在示例 22 中,我们使用 varyonvg 命令激活 test1vg 卷组,如下所示:

*

o lsvg testvg 显示 testvg 的所有三个物理卷都是活动的,并且定额也是活动的。

o 我们从系统中物理地删除 hdisk7。

o varyoffvg testvg 和 varyonvg testvg 命令强制系统验证物理卷的可用性。hdisk7 被声明为“丢失”,lsvg -p testvg 命令确认了这一点。

o 我们使用 chvg -Qn testvg 命令禁用 testvg 的定额,并停用了卷组 testvg。

o varyonvg testvg 未能激活该卷组,因为物理卷之一 hdisk7 已丢失。

o varyonvg -f testvg 强制激活该卷组,并声明 hdisk7 已丢失。

o chvg -Qy testvg 激活定额。

o 我们从系统中物理地删除 hdisk6,并停用了卷组 testvg。

o varyonvg testvg 未能激活该卷组,因为没有足够的活动物理卷以满足定额。

o varyonvg -f testvg 强制激活该卷组,并将 hdisk6 和 hdisk7 置于已删除状态。

示例 22 使用 varyonvg 命令

# lsvg testvg

VOLUME GROUP:testvg VG IDENTIFIER:00c5e9de00004c0000000107d47002be

VG STATE:active PP SIZE:128 megabyte(s)

VG PERMISSION:read/write TOTAL PPs:1638 (209664 megabytes)

MAX LVs:256 FREE PPs:1638 (209664 megabytes)

LVs:0 USED PPs:0 (0 megabytes)

OPEN LVs:0 QUORUM: 2

TOTAL PVs:3 VG DESCRIPTORS: 3

STALE PVs:0 STALE PPs: 0

ACTIVE PVs:3 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

# varyoffvg testvg

# varyonvg testvg

PV Status:hdisk5 00c5e9dea5571a32 PVACTIVE

hdisk6 00c5e9deb8f111ed PVACTIVE

hdisk7 00c5e9deb9bda044 PVMISSING

varyonvg:Volume group testvg is varied on.

# lsvg -p testvg

testvg:

PV_NAME PV STATE TOTAL PPs FREE PPs FREE DISTRIBUTION

hdisk5 active 546 546 110..109..109..109..109

hdisk6 active 546 546 110.0.109.0.109.0.109.0.109

hdisk7 missing 546 546 110..109..109..109..109

#chvg -Qn testvg

# varyoffvg testvg

# varyonvg testvg

0516-056 varyonvg:The volume group is not varied on because a

physical volume is marked missing.Run diagnostics.

# varyonvg -f testvg

PV Status:hdisk5 00c5e9dea5571a32 PVACTIVE

hdisk6 00c5e9deb8f111ed PVACTIVE

hdisk7 00c5e9deb9bda044 PVMISSING

varyonvg:Volume group testvg is varied on.

# chvg -Qy testvg

# varyoffvg testvg

# varyonvg testvg

0516-052 varyonvg:Volume group cannot be varied on without a

quorum.More physical volumes in the group must be active.

Run diagnostics on inactive PVs.

# varyonvg -f testvg

PV Status:hdisk5 00c5e9dea5571a32 PVACTIVE

hdisk6 00c5e9deb8f111ed PVREMOVED

hdisk7 00c5e9deb9bda044 PVREMOVED

varyonvg:Volume group testvg is varied on.

停用卷组

varyoffvg 命令将禁用卷组和其中的逻辑卷。必须关闭所有逻辑卷,这需要卸载与逻辑卷关联的所有文件系统。

在示例 23 中,我们使用 varyoffvg 命令禁用卷组 test1vg,此命令起初由于逻辑卷已打开而失败了。

示例 23 使用 varyoffvg 命令

# varyoffvg test1vg

0516-012 lvaryoffvg:Logical volume must be closed.If the logical

volume contains a filesystem, the umount command will close

the LV device.

0516-942 varyoffvg:Unable to vary off volume group test1vg.

# lsvg -l test1vg

test1vg:

LV NAME TYPE LPs PPs PVs LV STATE MOUNT POINT

lv2 jfs2 2 2 1 open/syncd /fs2

logggg jfs2log 2 2 1 open/syncd N/A

# umount /fs2

# varyoffvg test1vg

# lsvg -o

dumpvg

test2vg

rootvg

重新组织卷组

reorgvg 命令用于重新组织卷组中的物理分区。物理分区将在磁盘上按照每个逻辑卷的物理内 (intra-physical) 和物理间 (inter-physical) 策略分配进行重新安排。

要使此命令正常工作,卷组必须至少有一个空闲分区,并且必须设置想要组织的每个逻辑卷的可重定位标志。

在示例 24 中,reorgvg 命令的作用如下所示:

*

o lslv -l lv1 显示属于逻辑卷 lv1 并遵从物理卷 hdisk6、hdisk5 和 hdisk7 的物理内分配策略的逻辑分区百分比。

o 在运行 reorgvg 命令以后,遵从物理卷 hdisk6、hdisk5 和 hdisk7 的物理内分配策略的逻辑分区百分比已增加到 100%。

示例 24 使用 reorgvg 命令

# lslv -l lv1

lv1:/fs1

PV COPIES IN BAND DISTRIBUTION

hdisk6 003:001:000 50% 002:002:000:000:000

hdisk5 003:000:000 33% 001:001:001:000:000

hdisk7 002:000:000 0% 001:000:000:000:001

# reorgvg test1vg

# 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

若仅重新组织卷组 testvg 中的逻辑卷 lv1 和 lv2,可以使用以下命令:

reorgvg testvg lv1 lv2

要仅重新组织位于物理卷 hdisk6 和 hdisk7 上且属于卷组 testvg 中的逻辑卷 lv1 和 lv2 的分区,可以使用以下命令:

echo "hdisk6 hdisk7" | reorgvg -i testvg lv1 lv2

同步卷组

syncvg 命令用于同步过时物理分区。它接受逻辑卷、物理卷或卷组名称作为参数。同步过程可能非常耗时,具体取决于硬件特征和数据总量。

当使用 -f 标志时,同步是强制性的,此命令将选择未损坏的物理副本并将其传播到该逻辑分区的所有其他副本,而不管那些副本是否过时。

要同步位于物理卷 hdisk6 和 hdisk7 上的副本,可以使用以下命令:

syncvg -p hdisk4 hdisk5

若要同步卷组 testvg 中的所有物理分区,可以使用以下命令:

syncvg -v testvg

镜像卷组

可以使用 mirrorvg 命令镜像某个卷组中的所有逻辑卷。

在 示例 25 中,在扩展 rootvg 以包含第二个物理卷以后,我们使用 mirrorvg 命令创建 rootvg 中每个逻辑卷的副本。请注意,rootvg 卷组镜像了所有逻辑卷并禁用了定额。此外,还在新添加的磁盘上创建了一个新的 BLV,并将该磁盘包括在引导列表中,然后重新启动了系统。

示例 25 使用 mirrorvg 命令镜像 rootvg 卷组

# lsvg -p rootvg

rootvg:

PV_NAME PV STATE TOTAL PPs FREE PPs FREE DISTRIBUTION

hdisk0 active 546 526 109.0.105.0.94..109..109

# extendvg rootvg hdisk1

0516-1254 extendvg:Changing the PVID in the ODM.

# mirrorvg rootvg

0516-1124 mirrorvg:Quorum requirement turned off, reboot system for this

to take effect for rootvg.

0516-1126 mirrorvg:rootvg successfully mirrored, user should perform

bosboot of system to initialize boot records.Then, user must modify

bootlist to include:hdisk0 hdisk1.

# bosboot -ad /dev/hdisk1

bosboot:Boot image is 23795 512 byte blocks.

# bootlist -m normal hdisk0 hdisk1

# lsvg -l rootvg

rootvg:

LV NAME TYPE LPs PPs PVs LV STATE MOUNT POINT

hd5 boot 1 2 2 closed/syncd N/A

hd6 paging 4 8 2 open/syncd N/A

hd8 jfs2log 1 2 2 open/syncd N/A

hd4 jfs2 1 2 2 open/syncd /

hd2 jfs2 9 18 2 open/syncd /usr

hd9var jfs2 1 2 2 open/syncd /var

hd3 jfs2 1 2 2 open/syncd /tmp

hd1 jfs2 1 2 2 open/syncd /home

hd10opt jfs2 1 2 2 open/syncd /opt

#shutdown -Fr

拆分和重新联接卷组

可 以使用 splitvg 命令将镜像卷组的副本拆分为快照卷组。要拆分卷组,卷组中的所有逻辑卷都必须有一个镜像副本,并且必须将镜像定位在仅包含该组镜像的一个或一组磁盘上。原 始卷组将停止使用属于快照卷组的磁盘。快照卷组中将创建新的逻辑卷和新的安装点。两个卷组都将监视任何物理分区的更改,以便在将快照卷组与原始卷组重新联 接时,数据将保持一致。

请注意,不应该在具有分页空间的卷组(例如缺省安装中的 rootvg)上使用 splitvg 命令。

在示例 26 中,我们使用 splitvg 命令拆分卷组,如下所示:

*

o lsvg -o 显示所有的活动卷组。

o lsvg -l test1vg 显示所有逻辑卷都进行了镜像(您的结果可能有所不同)。

o lsvg -p test1vg 显示 test1vg 包含两个物理卷。

o splitvg -y newvg -c 1 test1vg 拆分 test1vg 并创建一个名为 newvg 的快照卷组。

o lsvg -o 确认 newvg 是活动的。

o lsvg -l newvg 显示 testvg 中的逻辑卷的新名称。

o lsvg -p testvg 显示 hdisk6 被标记为 snapshotpv。

示例 26 使用 splitvg 命令拆分卷组

# lsvg -o

test1vg

test2vg

dumpvg

rootvg

# lsvg -l test1vg

test1vg:

LV NAME TYPE LPs PPs PVs LV STATE MOUNT POINT

lv1 jfs2 9 18 2 closed/syncd /fs1

lv4 sysdump 2 4 2 closed/syncd N/A

# lsvg -p test1vg

test1vg:

PV_NAME PV STATE TOTAL PPs FREE PPs FREE DISTRIBUTION

hdisk6 active 136 118 28.0.17.0.25..27.0.21

hdisk7 active 136 125 28..27.0.25..27.0.18

# splitvg -y newvg -c 1 test1vg

# lsvg -o

newvg

test1vg

test2vg

dumpvg

rootvg

# lsvg -l test1vg

test1vg:

LV NAME TYPE LPs PPs PVs LV STATE MOUNT POINT

lv1 jfs2 9 18 2 closed/syncd /fs1

lv4 sysdump 2 4 2 closed/syncd N/A

# lsvg -l newvg

newvg:

LV NAME TYPE LPs PPs PVs LV STATE MOUNT POINT

fslv1 jfs2 9 9 1 closed/syncd N/A

fslv2 jfs2 2 2 1 closed/syncd N/A

# lsvg -p test1vg

test1vg:

PV_NAME PV STATE TOTAL PPs FREE PPs FREE DISTRIBUTION

hdisk6 snapshotpv 136 118 28..17..25..27..21

hdisk7 active 136 118 28.0.20.0.25..27.0.18

要重新联接卷组 test1vg 的两个副本,可以使用以下命令:

joinvg test1vg

  • Leave a comment... (2)

AIX存储管理概念(四)

Posted on 06月 29th, 2009 in AIX 作者: rs6k  Tagged AIX, LVM

更改卷组特征

下面的部分将讨论修改卷组的特征所需要完成的任务。

Auto varyon 标志

下面的命令将卷组 testvg 更改为在系统下次重新启动时自动激活。

# chvg -ay newvg

下面的命令将卷组 testvg 更改为在系统下次重新启动时不自动激活。

# chvg -an newvg

定额

下面的命令更改卷组 testvg 的定额。此属性确定卷组是否将在失去其绝对大多数物理卷之后停用。

要关闭定额,可以使用以下命令:

#chvg -Qn testvg

要打开定额,可以使用以下命令:

# chvg -Qy testvg

每个物理卷的最大物理分区数量

可以更改每个物理卷的最大物理分区数量,如示例 13 所示。

示例 13 更改每个物理卷的最大物理分区数量

# lsvg testvg

VOLUME GROUP:testvg VG IDENTIFIER:00c5e9de00004c0000000107a58c754e

VG STATE:active PP SIZE:16 megabyte(s)

VG PERMISSION:read/write TOTAL PPs:4375 (70000 megabytes)

MAX LVs:256 FREE PPs:4375 (70000 megabytes)

LVs:0 USED PPs:0 (0 megabytes)

OPEN LVs:0 QUORUM: 2

TOTAL PVs:1 VG DESCRIPTORS: 2

STALE PVs:0 STALE PPs: 0

ACTIVE PVs:1 AUTO ON:yes

MAX PPs per VG: 32512

MAX PPs per PV:5080 MAX PVs: 6

LTG size (Dynamic):256 kilobyte(s) AUTO SYNC:no

HOT SPARE:no BB POLICY:relocatable

# chvg -t 16 testvg

0516-1164 chvg:Volume group testvg changed.With given characteristics testvg

can include upto 1 physical volumes with 16256 physical partitions each.

# lsvg testvg

VOLUME GROUP:testvg VG IDENTIFIER:00c5e9de00004c0000000107a58c754e

VG STATE:active PP SIZE:16 megabyte(s)

VG PERMISSION:read/write TOTAL PPs:4375 (70000 megabytes)

MAX LVs:256 FREE PPs:4375 (70000 megabytes)

LVs:0 USED PPs:0 (0 megabytes)

OPEN LVs:0 QUORUM: 2

TOTAL PVs:1 VG DESCRIPTORS: 2

STALE PVs:0 STALE PPs: 0

ACTIVE PVs:1 AUTO ON:yes

MAX PPs per VG: 32512

MAX PPs per PV:16256 MAX PVs: 2

LTG size (Dynamic):256 kilobyte(s) AUTO SYNC:no

HOT SPARE:no BB POLICY:relocatable

更改卷组的格式

可以将原始卷组的格式更改为大容量或可扩展格式。一旦将卷组转换为可扩展格式,就不能将其更改为其他格式。在更改某个卷组的格式之前,必须停用该卷组。

在示例 14 中,我们使用 chvg -G 命令将卷组 tttt 的格式从原始格式更改为可扩展格式。

示例 14 将卷组更改为可扩展卷组格式

# lsvg tttt

VOLUME GROUP:tttt VG IDENTIFIER:00c478de00004c0000000107d3af5798

VG STATE:active PP SIZE:128 megabyte(s)

VG PERMISSION:read/write TOTAL PPs:546 (69888 megabytes)

MAX LVs:256 FREE PPs:546 (69888 megabytes)

LVs:0 USED PPs:0 (0 megabytes)

OPEN LVs:0 QUORUM: 2

TOTAL PVs:1 VG DESCRIPTORS: 2

STALE PVs:0 STALE PPs: 0

ACTIVE PVs:1 AUTO ON:no

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

# varyoffvg tttt

# chvg -G tttt

0516-1224 chvg:WARNING, once this operation is completed, volume group tttt

cannot be imported into AIX 5.2 or lower versions.Continue (y/n) ?

y

0516-1712 chvg:Volume group tttt changed. tttt can include up to 1024

physical volumes with 2097152 total physical partitions in the volume group.

# varyonvg tttt

# lsvg tttt

VOLUME GROUP:tttt VG IDENTIFIER:00c478de00004c0000000107d3af5798

VG STATE:active PP SIZE:128 megabyte(s)

VG PERMISSION:read/write TOTAL PPs:545 (69760 megabytes)

MAX LVs:256 FREE PPs:545 (69760 megabytes)

LVs:0 USED PPs:0 (0 megabytes)

OPEN LVs:0 QUORUM: 2

TOTAL PVs:1 VG DESCRIPTORS: 2

STALE PVs:0 STALE PPs: 0

ACTIVE PVs:1 AUTO ON:no

MAX PPs per VG:32768 MAX PVs: 1024

LTG size (Dynamic):256 kilobyte(s) AUTO SYNC:no

HOT SPARE:no BB POLICY:relocatable

如上所示,最大物理分区数量不再按每个磁盘定义,而是应用于整个卷组。因而,对于可扩展卷组,lsvg 命令不再显示每个卷组的最大物理卷数量。

更改 LTG 大小

缺省情况下,AIX 5L Version 5.3 中的卷组在创建时具有可变的逻辑磁道组大小。对于为了与以前版本的 AIX 5L 兼容而创建的卷组,可以将 LTG 大小更改为 0、128、256、512 或 1024。新的 LTG 大小应该小于或等于卷组中所有磁盘的最大传输大小中的最小值。可以使用以下命令更改 testvg 卷组的 LTG 大小:

chvg -L 128 testvg

缺省情况下,AIX 5L Version 5.3 中的卷组在创建时具有可变的逻辑磁道组大小。对于为了与以前版本的 AIX 5L 兼容而创建的卷组,可以将 LTG 大小更改为 0、128、256、512 或 1024。新的 LTG 大小应该小于或等于卷组中所有磁盘的最大传输大小中的最小值。可以使用以下命令更改 testvg 卷组的 LTG 大小:

chvg -L 128 testvg

更改同步策略

同步策略控制卷组中过时分区的自动同步。此标志只对与镜像逻辑卷相对应的分区有意义。

在示例 16 中,我们使用 chvg -s 命令更改同步策略。这通过 lsvg test1vg 命令得到了确认。

示例 16 更改卷组的同步策略

# chvg -sy test1vg

# lsvg test1vg

VOLUME GROUP:test1vg VG IDENTIFIER:00c5e9de00004c0000000107a5b596ab

VG STATE:active PP SIZE:512 megabyte(s)

VG PERMISSION:read/write TOTAL PPs:408 (208896 megabytes)

MAX LVs:256 FREE PPs:398 (203776 megabytes)

LVs:3 USED PPs:10 (5120 megabytes)

OPEN LVs:0 QUORUM: 2

TOTAL PVs:3 VG DESCRIPTORS: 3

STALE PVs:0 STALE PPs: 0

ACTIVE PVs:3 AUTO ON:yes

MAX PPs per VG: 32512

MAX PPs per PV:1016 MAX PVs: 32

LTG size (Dynamic):256 kilobyte(s) AUTO SYNC:yes

HOT SPARE:yes (one to many) BB POLICY:relocatable

更改最大物理分区数量

在示例 17 中,我们使用 chvg -P 命令更改某个卷组中的最大物理分区数量。这通过 lsvg testvg 命令得到了确认。

示例 17 更改最大物理分区数量

# lsvg testvg

VOLUME GROUP:testvg VG IDENTIFIER:00c5e9de00004c00000 00107a58c754e

VG STATE:active PP SIZE:16 megabyte(s)

VG PERMISSION:read/write TOTAL PPs:4370 (69920 megabytes)

MAX LVs:256 FREE PPs:4370 (69920 megabytes)

LVs:0 USED PPs:0 (0 megabytes)

OPEN LVs:0 QUORUM: 2

TOTAL PVs:1 VG DESCRIPTORS: 2

STALE PVs:0 STALE PPs: 0

ACTIVE PVs:1 AUTO ON:yes

MAX PPs per VG:32768 MAX PVs: 1024

LTG size (Dynamic):256 kilobyte(s) AUTO SYNC:no

HOT SPARE:no BB POLICY:relocatable

# chvg -P 2048 testvg

# lsvg testvg

VOLUME GROUP:testvg VG IDENTIFIER:00c5e9de00004c0000000107a58c754e

VG STATE:active PP SIZE:16 megabyte(s)

VG PERMISSION:read/write TOTAL PPs:4370 (69920 megabytes)

MAX LVs:256 FREE PPs:4370 (69920 megabytes)

LVs:0 USED PPs:0 (0 megabytes)

OPEN LVs:0 QUORUM: 2

TOTAL PVs:1 VG DESCRIPTORS: 2

STALE PVs:0 STALE PPs: 0

ACTIVE PVs:1 AUTO ON:yes

MAX PPs per VG:2097152 MAX PVs: 1024

LTG size (Dynamic):256 kilobyte(s) AUTO SYNC:no

HOT SPARE:no BB POLICY:relocatable

更改最大逻辑卷数量

在示例 18 中,我们使用 chvg -v 命令更改某个卷组中的最大逻辑卷数量。这通过 lsvg testvg 命令得到了确认。

示例 18 更改最大逻辑卷数量

# lsvg testvg

VOLUME GROUP:testvg VG IDENTIFIER:00c5e9de00004c0000000107a58c754e

VG STATE:active PP SIZE:16 megabyte(s)

VG PERMIS

SION:read/write TOTAL PPs:4370 (69920 megabytes)

MAX LVs:256 FREE PPs:4370 (69920 megabytes)

LVs:0 USED PPs:0 (0 megabytes)

OPEN LVs:0 QUORUM: 2

TOTAL PVs:1 VG DESCRIPTORS: 2

STALE PVs:0 STALE PPs: 0

ACTIVE PVs:1 AUTO ON:yes

MAX PPs per VG:2097152 MAX PVs: 1024

LTG size (Dynamic):256 kilobyte(s) AUTO SYNC:no

HOT SPARE:no BB POLICY:relocatable

# chvg -v 4096 testvg

# lsvg testvg

VOLUME GROUP:testvg VG IDENTIFIER:00c5e9de00004c0000000107a58c754e

VG STATE:active PP SIZE:16 megabyte(s)

VG PERMISSION:read/write TOTAL PPs:4370 (69920 megabytes)

MAX LVs:4096 FREE PPs:4370 (69920 megabytes)

LVs:0 USED PPs:0 (0 megabytes)

OPEN LVs:0 QUORUM: 2

TOTAL PVs:1 VG DESCRIPTORS: 2

STALE PVs:0 STALE PPs: 0

ACTIVE PVs:1 AUTO ON:yes

MAX PPs per VG:2097152 MAX PVs: 1024

LTG size (Dynamic):256 kilobyte(s) AUTO SYNC:no

HOT SPARE:no BB POLICY:relocatable

解除卷组锁定

在 LVM 命令异常中止后,卷组可能变为锁定的。可以使用 chvg -u 命令删除锁。

扩展卷组

通过使用 extendvg 命令添加新的物理卷,可以增加卷组中可用的空间。在添加新磁盘之前,必须确保该磁盘处于可用状态。

系统查询要添加的磁盘,以确定它是否已经包含 VGDA。如果磁盘有一个与已经启用的另一个卷组相对应的 VGDA,则该命令将退出。如果该 VGDA 属于某个已停用的卷组,系统将提示用户确认是否继续命令的执行。如果用户作肯定回答,则会删除旧的 VGDA,并且该磁盘上所有以前的数据都将不可用。

对于在 AIX 5L Version 5.3 之前创建的卷组,或者在 AIX 5L Version 5.3 上创建但是使用 varyonvg -M 命令来启用的卷组,如果物理卷的最大传输大小小于卷组的 LTG,则 extendvg 命令将会失败。对于在 AIX 5L Version 5.3 上创建并且不是使用 varyonvg -M 命令来启用的卷组,如果物理卷的最大传输大小小于 VG 的 LTG,则 extendvg 将动态减小 VG 的 LTG。

在示例 19 中,我们演示了 extendvg 命令是如何通过将 hdisk4 和 hdisk7 添加到 test1vg 来进行工作的,如下所示:

* lspv 显示 hdisk6 已经有一个 PVID,而 hdisk7 则是干净的。

* extendvg test1vg hdisk7 将一个 PVID 分配给 hdisk7,并将其添加到卷组 test1vg,lsvg -p testvg 命令确认了这一点。

* extendvg test1vg hdisk4 觉得 hdisk4 似乎属于某个未启用的卷,并要求用户使用强制标志。

* extendvg -f test1vg hdisk4 将 hdisk4 强制添加到卷组 test1vg,lsvg -p test1vg 命令确认了这一点。

* extendvg -f test1vg hdisk1 尝试将属于卷组 rootvg 的组物理卷 hdisk1 强制添加到 test1vg 卷,并且失败了。

示例 19 使用 extendvg 命令将磁盘添加到卷组

# lspv

hdisk0 00c5e9de00091d6f rootvg active

hdisk1 00c5e9de00838438 rootvg active

hdisk2 00c5e9de0083864d dumpvg active

hdisk3 00c5e9dea557184b test2vg

hdisk4 00c5e9deb9bd80c3 None

hdisk5 00c5e9dea5571a32 test1vg active

hdisk6 00c5e9deb8f111ed test1vg active

hdisk7 none None

# extendvg test1vg hdisk7

0516-1254 extendvg:Changing the PVID in the ODM.

# lsvg -p test1vg

test1vg:

PV_NAME PV STATE TOTAL PPs FREE PPs FREE DISTRIBUTION

hdisk5 active 136 129 28.0.20.0.27.0.27.0.27

hdisk6 active 136 133 28..24..27..27..27

hdisk7 active 136 136 28..27..27..27..27

# extendvg test1vg hdisk4

0516-1398 extendvg:The physical volume hdisk4, appears to belong to

another volume group.Use the force option to add this physical volume

to a volume group.

0516-792 extendvg:Unable to extend volume group.

# extendvg -f test1vg hdisk4

# lsvg -p test1vg

test1vg:

PV_NAME PV STATE TOTAL PPs FREE PPs FREE DISTRIBUTION

hdisk5 active 136 129 28.0.20.0.27.0.27.0.27

hdisk6 active 136 133 28..24..27..27..27

hdisk7 active 136 136 28..27..27..27..27

hdisk4 active 136 136 28..27..27..27..27

# extendvg -f test1vg hdisk1

0516-029 extendvg:The Physical Volume is a member of a currently

varied on Volume Group and this cannot be overidden.

0516-1397 extendvg:The physical volume hdisk1, will not be added to

the volume group.

0516-792 extendvg:Unable to extend volume group.

缩小卷组

可以使用 reducevg 命令从卷组中删除物理磁盘。必须启用该卷组。从卷组中删除最后一个物理卷时,还会删除该 VG。对于在 AIX 5L Version 5.3 上创建并且不是使用 varyonvg -M 来启用的卷组,如果剩下的磁盘允许,则 reducevg 将自动增加 LTG 大小。驻留在要缩小的磁盘上的所有逻辑卷都必须预先关闭。如果指定要删除的物理卷上的逻辑卷还跨越卷组中的其他物理卷,则删除操作可能会破坏那些逻辑卷的完整性,而不管它们所在的物理卷是否已删除。

在示例 20 中,我们通过从 testvg 删除 hdisk7 演示了 reducevg 命令是如何工作的,如下所示:

* lsvg -p testvg 显示 testvg 包含物理卷 hdisk6 和 hdisk7。

* lsvg -l testvg 显示 testvg 包含两个打开的镜像逻辑卷。

* lslv -l loglv01 显示该卷组的日志位于 hdisk6 上。

* reducevg testvg hdisk7 尝试删除物理卷 hdisk7,但是由于该物理卷包含打开的逻辑卷而失败了。

* reducevg -d testvg hdisk7 尝试强制删除物理卷 hdisk7,但是由于该物理卷包含打开的逻辑卷而失败了。

* 我们通过卸载对应的文件系统关闭逻辑卷 lv1、lv2 和 loglv01,

* reducevg testvg hdisk7 仍然无法工作。

* reducevg -f testvg hdisk7 提示用户确认,删除位于物理卷 hdisk7 上的数据,并从 testvg 卷组中删除该磁盘的定义。

示例 20 使用 reducevg 命令

# lsvg -p testvg

testvg:

PV_NAME PV STATE TOTAL PPs FREE PPs FREE DISTRIBUTION

hdisk6 active 546 541 110.0.104.0.109.0.109.0.109

hdisk7 active 546 542 110.0.105.0.109.0.109.0.109

# lsvg -l testvg

testvg:

LV NAME TYPE LPs PPs PVs LV STATE MOUNT POINT

lv1 jfs2 2 4 2 open/syncd /fs1

lv2 jfs2 2 4 2 open/syncd /fs2

loglv01 jfs2log 1 1 1 open/syncd N/A

# lslv -l loglv01

loglv01:N/A

PV COPIES IN BAND DISTRIBUTION

hdisk6 001:000:000 100% 000:001:000:000:000

# reducevg testvg hdisk7

0516-016 ldeletepv:Cannot delete physical volume with allocated

partitions.Use either migratepv to move the partitions or

reducevg with the -d option to delete the partitions.

0516-884 reducevg:Unable to remove physical volume hdisk7.

# reducevg -d testvg hdisk7

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.

0516-884 reducevg:Unable to remove physical volume hdisk7.

# umount /fs1

# umount /fs2

# reducevg testvg hdisk7

0516-016 ldeletepv:Cannot delete physical volume with allocated

partitions.Use either migratepv to move the partitions or

reducevg with the -d option to delete the partitions.

0516-884 reducevg:Unable to remove physical volume hdisk7.

# reducevg -d testvg hdisk7

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-914 rmlv:Warning, all data belonging to logical volume

lv2 on physical
volume hdisk7 will be destroyed.

rmlv:Do you wish to continue? y(es) n(o)? y

# lsvg -p testvg

testvg:

PV_NAME PV STATE TOTAL PPs FREE PPs FREE DISTRIBUTION

hdisk6 active 546 541 110.0.104.0.109.0.109.0.109

  • Leave a comment... (3)

AIX存储管理概念(三)

Posted on 06月 26th, 2009 in AIX 作者: rs6k  Tagged AIX

卷组的管理

在安装操作系统时,缺省情况下会创建一个名为 rootvg 的卷组。使用一个或多个还未分配到其他卷组并且处于可用状态的物理卷,可以在系统上创建额外的卷组。所有物理卷都将划分为具有相同大小的物理分区。在创建卷组以后,物理分区的大小就不可更改。

本部分讨论可对卷组执行的操作。

创建卷组

可以使用 mkvg 命令创建卷组。系统为每个卷组分配一个卷组标识符 (VGID),此标识符由 LVM 命令在内部使用。对于每个卷组,都会在目录 /dev 下面创建两个设备驱动程序文件,如示例 1 所示。两个文件都具有与主卷组号相等的主设备号。

示例 1 在 /dev 下面为每个卷组创建的两个文件

# lsvg            rootvg            testvg            vg1            vg2            # cd /dev            # ls -l|grep vg            crw-rw----   1 root     system       10,  0 Nov 10 11:35 IPL_rootvg            crw-------   1 root     system       10,  0 Nov 15 19:08 __vg10            crw-------   1 root     system      100,  0 Nov 16 10:24 __vg100            crw-------   1 root     system       46,  0 Nov 15 18:48 __vg46            crw-------   1 root     system       47,  0 Nov 16 10:24 __vg47            crw-rw----   1 root     system       10,  0 Nov 10 11:00 rootvg            crw-rw----   1 root     system       46,  0 Nov 14 11:12 testvg            crw-rw----   1 root     system       47,  0 Nov 16 10:21 vg1            crw-rw----   1 root     system      100,  0 Nov 16 10:21 vg2            

 

对于每个已启用的卷组,/etc/vg 下面都有一个名称与 VGID 相同的文件,如示例 2 所示。

示例 2 卷组的句柄文件 (handle file)

# lsvg -o            vg1            testvg            rootvg            # cd /etc/vg            # ls -l            total 0            -rw-r--r--   1 root     system         0 Nov 15 16:15 vg00C478DE00004C00000001077B1E974A            -rw-rw----   1 root     system         0 Nov 15 15:49 vg00C478DE00004C00000001078FC3497D            -rw-rw----   1 root     system         0 Nov 16 10:37 vg00C478DE00004C000000010799E10D8E            # lsvg rootvg |grep -i identifier            VOLUME GROUP:rootvg                   VG IDENTIFIER:00c478de00004c00000001077b1e974a            # lsvg testvg |grep -i identifier            VOLUME GROUP:testvg                   VG IDENTIFIER:00c478de00004c00000001078fc3497d            # lsvg vg1 |grep -i identifier            VOLUME GROUP:vg1                      VG IDENTIFIER:00c478de00004c000000010799e10d8e            

 

在示例 3 中,我们使用 mkvg 命令创建一个名为 vg1 的原始卷组,其物理分区大小为 64 MB,主编号为 99,并使用物理卷 hdisk4。

示例 3 创建原始卷组

# mkvg -y vg1 -s64 -V99 hdisk4            vg1            在示例 4 中,我们尝试创建一个原始卷组,它在最大 PP 数量方面超出了该类卷组的限制。            示例 4 未能创建原始卷组            # lsattr -El hdisk4            PCM             PCM/friend/scsiscsd Path Control Module           False            algorithm       fail_over           Algorithm                     True            dist_err_pcnt   0                   Distributed Error Percentage  True            dist_tw_width   50                  Distributed Error Sample Time True            hcheck_interval 0                   Health Check Interval         True            hcheck_mode     nonactive           Health Check Mode             True            max_transfer    0x40000             Maximum TRANSFER Size         True            pvid            none                Physical volume identifier    False            queue_depth     3                   Queue DEPTH                   False            reserve_policy  single_path         Reserve Policy                True            size_in_mb      73400               Size in Megabytes             False            # mkvg -y testvg -s 4 -f hdisk4            0516-1254 mkvg:Changing the PVID in the ODM.            0516-1208 mkvg:Warning, The Physical Partition Size of 4 requires the            creation of 17501 partitions for hdisk4.The system limitation is 16256            physical partitions per disk at a factor value of 16. Specify a larger            Physical Partition Size or a larger factor value in order create a            volume group on this disk.            0516-862 mkvg:Unable to create volume group.            

 

在示例 5 中,我们使用 mkvg 命令强制创建一个名为 vg2 的大容量卷组,其物理分区大小为 128 MB,主编号为 101,并使用物理卷 hdisk6。我们在创建此卷组时将 auto varyon 标志设置为 no,以便它不会在系统重新启动时自动启用。

示例 5 创建大容量卷组

# mkvg -B -y vg2 -s 128 -f -n -V 101 hdisk6            vg2            

 

在示例 6 中,我们尝试创建一个大容量卷组,它在最大 PP 数量方面超出了该类卷组的限制。

示例 6 未能创建大容量卷组

# lsattr -El hdisk4            PCM             PCM/friend/scsiscsd Path Control Module           False            algorithm       fail_over           Algorithm                     True            dist_err_pcnt   0                   Distributed Error Percentage  True            dist_tw_width   50                  Distributed Error Sample Time True            hcheck_interval 0                   Health Check Interval         True            hcheck_mode     nonactive           Health Check Mode             True            max_transfer    0x40000             Maximum TRANSFER Size         True            pvid            none                Physical volume identifier    Falsequeue_depth            3                                Queue DEPTH                   False            reserve_policy  single_path         Reserve Policy                True            size_in_mb      73400               Size in Megabytes             False            # mkvg -B -y test1vg -s 1 -f hdisk4            0516-1254 mkvg:Changing the PVID in the ODM.            0516-1208 mkvg:Warning, The Physical Partition Size of 1 requires the            creation of 70006 partitions for hdisk4.The system limitation is 65024            physical partitions per disk at a factor value of 64. Specify a larger            Physical Partition Size or a larger factor value in order create a            volume group on this disk.            0516-862 mkvg:Unable to create volume group.            

 

在示例 7 中,我们使用 mkvg 命令强制创建一个名为 testvg 的可扩展卷组,其物理分区大小为 1 MB,并使用物理卷 hdisk3 至 hdisk7。

示例 7 创建可扩展卷组

# lsattr -El hdisk3|grep -i size_in_mb            size_in_mb      73400               Size in Megabytes             False            # lsattr -El hdisk4|grep -i size_in_mb            size_in_mb      73400               Size in Megabytes             False            # lsattr -El hdisk5|grep -i size_in_mb            size_in_mb      73400               Size in Megabytes             False            # lsattr -El hdisk6|grep -i size_in_mb            size_in_mb      73400               Size in Megabytes             False            # lsattr -El hdisk7|grep -i size_in_mb            size_in_mb      73400               Size in Megabytes             False            # mkvg -S -y testvg -s 1 -f hdisk3 hdisk4 hdisk5 hdisk6 hdisk7            0516-1254 mkvg:Changing the PVID in the ODM.            0516-1254 mkvg:Changing the PVID in the ODM.            0516-1254 mkvg:Changing the PVID in the ODM.            0516-1254 mkvg:Changing the PVID in the ODM.            0516-1254 mkvg:Changing the PVID in the ODM.            testvg            # lsvg testvg            VOLUME GROUP:testvg                   VG IDENTIFIER:00c5e9de00004c0000000107a5572082            VG STATE:active                   PP SIZE:1 megabyte(s)            VG PERMISSION:read/write               TOTAL PPs:349690 (349690 megabytes)            MAX LVs:256                      FREE PPs:349690 (349690 megabytes)            LVs:0                        USED PPs:0 (0 megabytes)            OPEN LVs:0                        QUORUM:         3            TOTAL PVs:5                        VG DESCRIPTORS: 5            STALE PVs:0                        STALE PPs:      0            ACTIVE PVs:5                        AUTO ON:yes            MAX PPs per VG:524288                     MAX PVs:        1024            LTG size (Dynamic):256 kilobyte(s)          AUTO SYNC:no            HOT SPARE:no                       BB POLICY:relocatable            

 

mkvg 命令将通过调用 varyonvg 命令自动启用新创建的卷组。

对于使用 -I 标志创建的卷组,LTG 大小设置为 128、256、512 或 1024 KB。此值将与属于该卷组的磁盘的最低传输大小相等。

缺省情况下,在 AIX 5L Version 5.3 中,未使用 -I 标志创建的卷组将使用可变的 LTG 大小。

列出有关卷组的信息

lsvg 命令显示有关系统当前已知的卷组的信息。

在示例 8 中,我们使用 lsvg 命令显示系统已知的所有卷组(无论是否已启用)。

示例 8 使用 lsvg 显示系统已知的所有卷组

# lsvg            rootvg            dumpvg            test2vg            test1vg            

 

在示例 9 中,我们使用 lsvg -o 命令显示已启用的所有卷组。

示例 9 使用 lsvg 显示所有的活动卷组

# lsvg -o            test1vg            dumpvg            rootvg            

 

可以使用 lsvg 命令并作为参数传递卷组的名称,以获得有关该卷组的更多详细信息,如示例 10 所示。

示例 10 使用 lsvg 显示有关某个特定卷组的详细信息

# lsvg test1vg            VOLUME GROUP:test1vg                  VG IDENTIFIER:00c5e9de00004c0000000107a5b596ab            VG STATE:active                   PP SIZE:512 megabyte(s)            VG PERMISSION:read/write               TOTAL PPs:408 (208896 megabytes)            MAX LVs:256                      FREE PPs:398 (203776 megabytes)            LVs:3                        USED PPs:10 (5120 megabytes)            OPEN LVs:0                        QUORUM:         2            TOTAL PVs:3                        VG DESCRIPTORS: 3            STALE PVs:0                        STALE PPs:      0            ACTIVE PVs:3                        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            

 

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

VOLUME GROUP 卷组的名称。

VG STATE 卷组的状态。

VG PERMISSION 访问权限:只读或读写。

MAX LVs 卷组中允许的最大 LV 数量。

OPEN LVs 当前打开的逻辑卷数量。

TOTAL PVs 卷组中的 PV 总数。

STALE PVs 包含过时分区的 PV 数量。

ACTIVE PVs 当前活动的 PV 数量。

MAX PPs per VG 卷组中允许的最大 PP 数量。

MAX PPs per PV 每个物理卷的最大 PP 数量。

LTG size 卷组的 LTG 大小。

HOT SPARE 卷组的热后备策略。

VG IDENTIFIER 卷组的数字标识符。

PP SIZE 卷组中的物理分区大小。

TOTAL PPs 卷组中的 PP 总数。

FREE PPs 卷组中还未分配到任何逻辑卷的 PP 总数。

USED PPs 卷组中已经分配到逻辑卷的 PP 总数。

QUORUM 定额所需的物理卷数量。

VG DESCRIPTORS 卷组中的 VGDA 数量。

STALE PPs 卷组中的过时 PP 数量。

AUTO ON 确定卷组是否在系统重新启动后自动启用。

MAX PVs 卷组中允许的最大 PV 数量。

AUTO SYNC 确定是否自动同步过时分区。

BB POLICY 不良块重定位策略。

在示例 11 中,我们使用 lsvg -l 命令显示属于 rootvg 的所有逻辑卷。

示例 11 使用 lsvg -l 显示某个卷组中包含的逻辑卷

# lsvg -l rootvg            rootvg:            LV NAME             TYPE       LPs   PPs   PVs  LV STATE      MOUNT POINT            hd5                 boot       1     1     1    closed/syncd  N/A            hd6                 paging     3     3     1    open/syncd    N/A            hd8                 jfs2log    1     1     1    open/syncd    N/A            hd4                 jfs2       1     1     1    open/syncd    /            hd2                 jfs2       9     9     1    open/syncd    /usr            hd9var              jfs2       1     1     1    open/syncd    /var            hd3                 jfs2       1     1     1    open/syncd    /tmp            hd1                 jfs2       1     1     1    open/syncd    /home            hd10opt             jfs2       1     1     1    open/syncd    /opt            fwdump              jfs2       3     3     1    open/syncd    /var/adm/ras/platform            paging00            paging     1     1     1    open/syncd    N/A            fslv00              jfs2       2     2     1    open/syncd    /app01            dumpdev             jfs        3     3     1    closed/syncd  N/A            fslv01              jfs2       8     8     1    open/syncd    /kdb            

 

在示例 12 中,我们使用 lsvg -p 命令显示属于 test1vg 卷组的所有物理卷。

示例 12 使用 lsvg 显示某个卷组中包含的所有物理卷

# lsvg -p test1vg            test1vg:            PV_NAME           PV STATE          TOTAL PPs   FREE PPs    FREE DISTRIBUTION            hdisk5            active            136         129         28.0.20.0.27.0.27.0.27            hdisk6            active            136         133         28..24..27..27..27            hdisk7            active            136         136         28..27..27..27..27            

 

在调查 LVM 元数据损坏的情况下,可以使用 lsvg -n 命令获得有关某个卷组的信息,此信息从位于特定磁盘上的 VGDA 中读取。

  • Leave a comment... (2)

AIX存储管理概念(二)

Posted on 06月 24th, 2009 in AIX 作者: rs6k  Tagged AIX, LVM

管理逻辑卷

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

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

创建逻辑卷

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

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

示例 11 使用 mklv 命令

# mklv -y lv3 -t jfs2 -a im test1vg 10 hdisk5lv3# lslv lv3LOGICAL VOLUME:lv3                    VOLUME GROUP:test1vgLV IDENTIFIER:00c5e9de00004c0000000107a5b596ab.4 PERMISSION:read/writeVG STATE:active/complete        LV STATE:closed/syncdTYPE:jfs2                   WRITE VERIFY:offMAX LPs:512                    PP SIZE:512 megabyte(s)COPIES:1                      SCHED POLICY:parallelLPs:10                     PPs:            10STALE PPs:0                      BB POLICY:relocatableINTER-POLICY:minimum                RELOCATABLE:yesINTRA-POLICY:inner middle           UPPER BOUND:    32MOUNT POINT:N/A                    LABEL:无MIRROR WRITE CONSISTENCY:on/ACTIVEEACH LP COPY ON A SEPARATE PV ?:yesSerialize 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 hdisk7lv4# lslv lv4LOGICAL VOLUME:lv4                    VOLUME GROUP:test1vgLV IDENTIFIER:00c5e9de00004c0000000107a5b596ab.5 PERMISSION:read/writeVG STATE:active/complete        LV STATE:closed/syncdTYPE:sysdump                WRITE VERIFY:offMAX LPs:5                    PP SIZE:512 megabyte(s)COPIES:3                      SCHED POLICY:parallelLPs:2                     PPs:            6STALE PPs:0                      BB POLICY:relocatableINTER-POLICY:maximum                RELOCATABLE:yesINTRA-POLICY:center                 UPPER BOUND:    32MOUNT POINT:N/A                    LABEL:demo-labelMIRROR WRITE CONSISTENCY:on/ACTIVEEACH LP COPY ON A SEPARATE PV ?:yesSerialize 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 hdisk6lv5# lslv lv5LOGICAL VOLUME:lv5                    VOLUME GROUP:test1vgLV IDENTIFIER:00c5e9de00004c0000000107a5b596ab.6 PERMISSION:read/writeVG STATE:active/complete        LV STATE:closed/syncdTYPE:jfs2                   WRITE VERIFY:onMAX LPs:512                    PP SIZE:512 megabyte(s)COPIES:2                      SCHED POLICY:sequentialLPs:3                     PPs:            6STALE PPs:0                      BB POLICY:non-relocatableINTER-POLICY:minimum                RELOCATABLE:noINTRA-POLICY:middle                 UPPER BOUND:    32MOUNT POINT:N/A                    LABEL:无MIRROR WRITE CONSISTENCY:on/ACTIVEEACH LP COPY ON A SEPARATE PV ?:yesSerialize 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

      删除逻辑卷的副本。

      • Leave a comment... (0)

      AIX 存储管理概念(一)

      Posted on 06月 23rd, 2009 in AIX 作者: rs6k  Tagged AIX

      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 大容量 VG 128 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                    
      • Leave a comment... (0)

      如何对无响应的启动过程进行恢复

      Posted on 06月 22nd, 2009 in AIX 作者: rs6k  Tagged AIX

      如果您的系统无法启动,AIX 5L 提供了一些工具和方法以便对挂起的启动过程进行恢复。

      这个部分将介绍可能导致系统在启动过程中出现挂起的情况。

      bootlist 命令

      您可以更改系统查找相关设备(以获得其启动代码)的顺序。bootlist 命令显示并改变可用于系统的启动设备列表。该命令的一般语法规则如下所示:

      bootlist [ { -m Mode } [ -r ] [  -o  ] [ [ -i ] | [ [ -f File ]                    [ Device [ Attr=Value ... ] ... ] ] ]

      表 1 中给出了 bootlist 命令最常使用的一些标志。

      标志 说明 -m mode 指定所要显示或改变的启动列表。模式变量的可能取值为 normal、service、both 或者 prevboot。 -f File 表示从指定的文件名读取设备信息。 -i 表示由 -m 标志指定的设备列表应该失效。 -o 表示执行了任何指定的改变之后,将显示指定的启动列表。输出是设备名称列表。 -r 表示执行了任何指定的改变之后,将显示指定的启动列表。输出取决于硬件平台。

      bootlist 命令允许用户显示和改变要启动的系统中可能的启动设备的列表。这个命令支持下面的更新:

      • 常规启动列表:当系统以常规方式启动时,常规列表为此指定可能的启动设备。
      • 服务启动列表:当系统以服务方式启动时,服务列表为此指定可能的启动设备。
      • 前一启动设备条目:该条目指定了最近一次启动系统的设备。一些硬件平台可能试图在查找其他列表中的启动设备之前先从前一启动设备进行启动。

      对这些启动列表的支持,可能随着平台的不同而不同,并且在某些平台中可能没有启动列表。当系统启动时,它将在启动列表中搜索启动设备,系统将选择列表中的第一个设备,并确定它是否可以启动。如果在第一个设备上没有检测到启动文件系统,该系统将转移至列表中的下一个设备。因此,设备在设备列表中的排序是非常重要的。

      要显示启动列表(AIX Version 4.2 或更高版本),可以使用下面的命令:

      # bootlist -m normal -o                    cd0                    hdisk0 blv=hd5                    rmt0

      如果您希望对正常的启动列表进行更改,并且删除 rmt0(举例来说),那么可以使用下面的命令:

      # bootlist -m normal cd0 hdisk0

      或者创建一个包含 cd0 hdisk0 的列表的文件(由空格进行分隔,或者每个设备占一行),并且使用下面的命令:

      # bootlist -m normal -f filename

      这将更改常规启动列表,以表示在启动系统时,它将首先尝试从 cd0 进行启动。如果在 cd0 中无法找到启动镜像,那么它将转向 hdisk0。如果搜索失败,那么它将显示一个 LED 代码,并等待用户进行干预。它不会继续搜索 rmt0。

      在更改了启动列表之后,对其进行验证,如下所示:

      # bootlist -m normal -o                    hdisk0 blv=hd5                    cd0

      对这些启动列表的支持可能随着平台的不同而不同,并且在某些平台中可能没有启动列表。当搜索启动设备时,系统将选择列表中的第一个设备,并确定它是否可以启动。如果在第一个设备中没有检测到 BLV,那么系统将转移至列表中的下一个设备。因此,设备在设备列表中的排序是非常重要的。

      启动设备选择

      表 2 中提供了可以在您的启动列表中使用的命名规范。向启动列表所添加的每个设备都必须处于 AVAILABLE 状态。否则,bootlist 命令将失败,并且您将碰到与以下所示类似的错误:

      0514-210 bootlist: Device xxxxx is not in the AVAILABLE state

      表 2

      设备 说明 hdiskxx 物理卷设备逻辑名 cdxx SCSI 和 IDE CD-ROM 设备逻辑名 rmtxx 磁带设备逻辑名 entxx 以太网适配器逻辑名 tokxx 令牌环适配器逻辑名

      访问无法启动的系统

      如果您无法启动系统,那么第一步是访问该系统,并查看导致该故障的可能原因。这个过程允许您获得系统提示符,以便您可以尝试从系统恢复数据,或者执行纠正性的操作以使得系统能够从硬盘启动。

      要访问该系统,需要执行以下步骤:

      • 将系统功能键(如果有的话)旋至 Service 位置,或者在基于 PCI 的系统中按 F5,以便使系统从磁带/CD-ROM/DVD-ROM 驱动器进行启动(在步骤 4 的执行过程中)。
      • 在打开系统单元的电源之前,先打开所有外部设备的电源,如终端、CDROM 或 DVD-ROM 驱动器、磁带驱动器、监视器和外部磁盘驱动器。然后,打开系统单元以便从安装媒体进行启动。
      • 将安装媒体 Volume 1 插入到磁带驱动器、CDROM 或 DVD-ROM 驱动器,关闭系统单元的电源。
      • 将系统单元的电源开关切换到打开位置。在启动时,将会显示这样一个屏幕(在图 1 的屏幕之前),其中要求您按 F1 功能键以选择合适的显示器作为系统控制台。系统中每个显示器都将接收一个功能键数值,以便将其标识为系统控制台。系统从安装媒体启动。几分钟之后,LED 中将显示 c31(如果您的系统有 LED;否则,将会显示与图 1 所示类似的屏幕)。

        图 1. BOS 安装和维护屏幕

      • 选择选项 3″Start Maintenance Mode for System Recovery”,并按回车。这时将显示与图 2 所示类似的屏幕。

        图 2. 维护菜单

      • 输入 1,即”Access a Root Volume Group”。这时将显示与图 3 所示类似的屏幕。

        图 3. 警告屏幕

      • 请记下警告信息。如果您希望返回到前一个菜单,请输入 99;否则,输入 0 以进行确认。这将显示图 4 中的屏幕。

        图 4. 所找到的卷组的列表

      • 选择您希望显示逻辑卷信息的卷组。这是非常重要的,因为 rootvg 中将包含 hd5,即启动逻辑卷。输入卷组编号,并按回车。这时将显示与图 5 所示类似的屏幕。

        图 5. 在所选择的卷组中找到的逻辑卷的列表

      • 从”Volume Group Information”屏幕中选择一个选项,并按回车。其中每一项将进行以下操作:
        • 选项 1:选择这个选项,将在系统为您提供 Shell 和系统提示符之前,先导入并激活 rootvg 卷组,并为根卷组装入文件系统。
        • 选项 2:选择这个选项,将在为根卷组装入文件系统之前,先导入并激活 rootvg 卷组,并为您提供 Shell 和系统提示符。
        • 选项 99:输入 99 将使您返回到”Access a Root Volume Group”屏幕。
      • 使用适当的方法来恢复数据,或者采用动作(如使用 bosboot 命令)使系统可以正常地启动。

      常见的启动 LED 代码

      在系统初始化过程中,提供了操作员面板显示屏的服务器将显示一些 LED 代码,这些代码可以提供有关启动过程状态的信息。一些代码是指示服务器运行到启动过程哪一步的检查点。对于不同的服务器类型,这些代码也有所不同。

      例如,在一个提供了 4 个字符的显示屏的服务器上,E1F1 表示系统定义的控制台已经激活,而在提供了 3 个字符的显示屏的服务器上,则使用 FF1 进行表示。Fxx(其中 xx 为十六进制数字)格式的代码一般是与固件有关的。

      其他代码用来表示所检测到的错误。表 3 中给出了一些最常见的 LED 代码,它们用于表示启动问题,以及如何解决它们以使得您的系统能够再次启动并运行。
      表 3

      LED 201 - 启动镜像损坏 1. 按照“访问无法启动的系统”中所描述的过程来访问您的 rootvg。
      2. 检查 / and /tmp 文件系统。如果它们几乎满了,那么创建更多的空间。
      3. 使用 lslv -m hd5 命令来确定启动磁盘。
      4. 使用 bosboot -a -d /dev/hdiskn 重建启动镜像,其中 n 是包含启动逻辑卷的磁盘的编号。
      5. 在错误日志中检查 CHECKSTOP 错误。如果找到了这样的错误,它很可能表示硬件的故障。
      6. 关闭并重新启动系统。 LED 223-229 - 无效的启动列表 1. 将键模式切换到 Service(或者 F5,对于那些没有键盘锁的系统),并打开计算机的电源。
      2. 如果显示正常继续,则将键模式切换到 Normal 并继续第3步。如果没有得到提示,则进入第 4 步。
      3. 当出现登录提示符时,登录并按照“bootlist 命令”中所描述的过程来更改启动列表。然后继续执行第 7 步。
      4. 按照“访问无法启动的系统”中所描述的过程来访问您的 rootvg,并继续执行第 5 步。
      5. 使用 lslv -m hd5 命令来确定启动磁盘。
      6. 按照“bootlist 命令”中所描述的过程来更改启动列表。
      7. 关闭并重新启动您的系统。 LED 551、555 和 557 - 损坏的文件系统、损坏的 JFS 日志等等 1. 在装入任何文件系统(”Volume Group Information”屏幕中的选项 2)之前,按照“访问无法启动的系统”中所描述的过程来访问 rootvg。
      2. 验证并修改文件系统,如下所示:
      fsck -y /dev/hd1
      fsck -y /dev/hd2
      fsck -y /dev/hd3
      fsck -y /dev/hd4
      fsck -y /dev/hd9var
      3. 使用如下命令再次格式化 JFS 日志:
      /usr/sbin/logform /dev/hd8
      4. 使用 lslv -m hd5 获得启动磁盘。
      5. 使用下面的命令重新创建启动镜像:
      bosboot -a -d /dev/hdiskn
      其中,n 是包含启动逻辑卷的磁盘的编号。 LED 552、554 和 556 - 损坏的超级块和损坏的自定义 ODM 数据库 1. 重复 LED 551、555 和 557 中的步骤 1 到 2。
      2. 如果 fsck 显示 block 8 被破坏,那么说明文件系统的超级块遭到破坏,并且需要对其进行修复。输入下面的命令:
      dd count=1 bs=4k skip=31 seek=1 if=/dev/hdn of=/dev/hdn
      其中,n 是该文件系统的编号。
      3. 使用如下的命令重新构建 JFS 日志:
      /usr/sbin/logform /dev/hd8
      4. 如果这样做可以解决问题,那么就停止;否则,继续执行第 5 步。
      5. 您的 ODM 数据库遭到破坏。重新启动您的系统,在”Volume Group Information”屏幕中,使用选项 2 按照“访问无法启动的系统”中所描述的过程来访问 rootvg。
      6. 装入根文件系统和 usr 文件系统,如下所示:
      mount /dev/hd4 /mnt
      mount /usr
      7. 将系统配置复制到备份目录:
      mkdir /mnt/etc/objrepos/backup
      cp /mnt/etc/objrepos/Cu* /mnt/etc/objrepos/backup
      8. 复制 RAM 文件系统的配置,如下所示:
      cp /etc/objrepos/Cu* /mnt/etc/objrepos
      9. 使用 umount all 命令卸载所有的文件系统。
      10. 使用 lslv -m hd5 命令来确定启动磁盘。
      11. 使用下面的命令保存干净的 ODM 到启动逻辑卷:
      savebase -d/dev/hdiskn
      其中,n 是包含启动逻辑卷的磁盘的编号。
      12. 重新启动,如果系统无法引导,则重新安装 BOS。

      常见的启动 LED 和解决方案

      LED 553 - 损坏的 /etc/inittab 文件 1. 按照“访问无法启动的系统”中所描述的过程来访问所有已装入的文件系统的 rootvg。
      2. 使用 df 命令,检查 /、/var 和 /tmp 中的空闲空间。
      3. 检查 /etc/inittab 文件,如果存在一个空的 inittab 文件、inittab 文件缺失,或者在 inittab 文件中存在错误的条目,则纠正 inittab 问题。
      4. 检查下列文件的问题:
      /etc/environment file
      /bin/sh
      /bin/bsh
      /etc/fsck
      /etc/profile
      /.profile
      5. 关闭系统,并重新启动。

      运行级别

      在操作系统中执行维护任务,或在更改运行级别之前,您应该深入地研究各种运行级别。运行级别是只允许选定的一组进程存在的一种软件配置。

      确定系统运行级别

      这个部分描述如何确定系统当前所处的运行级别,以及如何显示以前的运行级别的历史。表 4 中列出了系统可用的运行级别。
      表 4

      运行级别 说明 0-1 保留为操作系统将来使用。 2 包含多用户环境下的所有终端进程和守护进程。这是缺省的运行级别。 3-9 可以根据用户的首选项进行定义。 a、b、c、h 这些并不是真正的运行级别;它们与运行级别的不同之处在于,init 命令无法请求整个系统进入这些运行级别。请参见上半部分的”/etc/inittab 文件”,以获得更详细的信息。 S、s、M、m 维护模式。当系统从其他运行级别进入维护模式时,只有系统控制台可以作为终端使用。

      确定当前运行级别

      在命令行中,输入下面的命令:

      # cat /etc/.init.state                    2                    #

      系统将显示一个数字,即当前运行级别。

      显示以前的运行级别的历史

      使用 fwtmp 命令,您可以显示以前的运行级别的历史,如下所示:
      1. 以 root 用户的身份登录。 2. 输入下面的命令,系统将显示与下面所示类似的信息:

      # /usr/lib/acct/fwtmp < /var/adm/wtmp |grep run-level                    run-level 2   1     0 0062 0123 1132072406                    Tue Nov 15 10:33:26 CST 2005                    run-level 2   1     0 0062 0123 1132075614                    Tue Nov 15 11:26:54 CST 2005                    run-level 2   1     0 0062 0123 1132092491                    Tue Nov 15 16:08:11 CST 2005                    run-level 2   1     0 0062 0123 1132094756                    Tue Nov 15 16:45:56 CST 2005

      更改系统运行级别

      系当系统第一次启动时,它会进入 /etc/inittab 文件中的 initdefault 项所定义的缺省运行级别。系统会一直在该运行级别中运行,直到它收到一个更改运行级别的信号。您可以执行 lsitab 命令,以查看您的系统的缺省运行级别:

      # lsitab init                    init:2:initdefault:                    #

      要更改运行级别,请执行下面的过程:

      • 1. 检查 /etc/inittab 文件,以确认您将要改变到的运行级别是否支持您正在运行的进程。进程 getty 是很重要的,因为它可以控制系统控制台和其他登录的终端线路访问。确保 getty 进程在所有的运行级别中都可以运行。
      • 2. 使用 wall 命令通知所有的用户,您将要改变系统运行级别,并要求这些用户退出系统。
      • 3. 使用 telinit 命令(以您将要切换到的运行级别作为该命令的参数),例如:
          # telinit M

      telinit 命令
      通过接受单个字符的参数,并发送信号以告知 init 进程执行适当的动作,telinit 命令可以直接控制 init 进程(进程 ID 为 1)的操作。通常情况下,telinit 命令将使系统进入到指定的运行级别。telinit 命令可以向 init 进程传递下列参数作为指令:

      • 0-9:告知 init 进程将系统置于运行级别 0-9。
      • S、s、M、m:告知 init 进程将系统置于维护模式。
      • a、b、c:告知 init 进程仅检查 /etc/inittab 文件中在运行级别字段中包含 a、b、c 的那些记录。
      • Q、q:告知 init 进程重新检查整个 /etc/inittab 文件。
      • N:向重新生成的进程发送中止进程的信号。

      例如,要进入到维护模式,可以输入:

      # telinit M
      注意:您还可以使用 shutdown -m 命令进入到维护模式。

      执行运行级别脚本

      运行级别脚本允许用户在更改运行级别时启动和停止所选择的应用程序。以 K 开头的脚本是停止脚本,以 S 开头的脚本是启动脚本。

      这些脚本保存于它们所从属的运行级别的特定子目录中,每个子目录的格式为 rcn.d,其中 n 表示运行级别:
      /etc/rc.d/rc2.d
      /etc/rc.d/rc3.d
      /etc/rc.d/rc4.d
      /etc/rc.d/rc5.d
      /etc/rc.d/rc6.d
      /etc/rc.d/rc7.d
      /etc/rc.d/rc8.d
      /etc/rc.d/rc9.d

      /etc/rc.d/rc 脚本将运行它在指定目录中发现的启动脚本,并在运行级别更改时执行该启动脚本。脚本将首先运行停止应用程序的脚本,然后运行启动应用程序的脚本。

      rc.* 文件的介绍

      rc 文件作为初始化过程中的一部分加以执行;它们为系统做好配置的准备,并做好运行的准备。

      rc.boot 文件

      /sbin/rc.boot 文件是一个可以由简单的 Shell init和标准 init 命令调用的、用来使系统启动的脚本。它可以控制计算机的启动进程。当系统启动时,在每个启动阶段都会调用 /sbin/rc.boot 文件,每次都使用一个不同的参数。

      根据启动设备的类型,rc.boot 文件对设备进行配置,并调用合适的应用程序。合适的应用程序包括:

      • 从磁盘进行启动(启动阶段 1)
      • 激活根卷组(启动阶段 2)
      • 启用文件系统(启动阶段 2)
      • 调用 BOS 安装程序或者诊断程序
      注意:rc.boot 程序只能由 init 进程调用;在一个正在运行的系统上执行 rc.boot 脚本会产生不可预知的结果。

      /etc/rc 文件

      /etc/rc 文件执行正常的启动初始化;在 /etc/inittab 文件中,它的条目位于 rc.boot 条目之后。init 命令将读取 /etc/inittab 文件,并为 /etc/rc 文件创建一个进程。对于不同的安装,/etc/rc 文件的内容也有所不同。如果所有必需的操作都已成功完成,那么文件会出现一个返回码 0,以便允许 init 命令启动登录程序来完成正常的初始化和启动。

      /etc/rc 文件可以完成许多启动功能,如:

      • 激活所有标记为自动激活的卷组。
      • 激活 /etc/swapspaces 文件中列出的所有分页空间(使用 swapon -a 命令)。
      • 配置所有的转储设备(使用 sysdumpdev -q 命令)。
      • 执行文件系统检查(使用 fsck -fp 命令)。
      • 装入在 /etc/filesystems 文件中列出的标记为 mount=true 的文件系统(使用 mount all 命令)。
      注意:/、/usr、/var 和 /tmp 文件系统会在启动过程(阶段 2)中自动地装入。/etc/rc 文件在运行 mount all 命令时不会尝试再次装入这些文件系统。

      rc.net 文件

      /etc/rc.net 文件是一个包含网络配置信息的 Shell 脚本。其中的一些节允许您启用网络接口和设置主机名、缺省网关以及当前主机的静态路由信息。这个文件可用于进行单步配置,作为单独配置主机所需的一组命令和文件的替代方法。

      rc.net Shell 脚本在配置过程的第二阶段中通过配置管理器程序运行。如果 TCP/IP 已经安装,那么在配置过程的第二阶段完成,并且 init 命令启动了 SRC 之后,由 init 命令运行第二个脚本 rc.tcp。

      应该显示该文件中的节,以便提示用户目前的运行状态。

      如果在系统配置完成之后运行 cfgmgr 命令,/etc/rc.net Shell 脚本还可以由配置管理器程序 (cfgmgr) 运行。它经常在系统添加新设备后,在系统启动时运行。如果 cfgmgr 命令运行 rc.net,那么配置方法和 rc.net 文件本身都要检查网络设备是否已经处于可用状态。如果是,那么就不改变设备的属性值,以避免覆盖启动之后的任何配置更改。

      如果在运行 /etc/rc.net 时没有调用 cfgmgr 命令,那么将设备属性重设为在 ODM 库中的属性值,而不管它当前的状态如何。这就允许系统配置恢复为 ODM 库中指定的属性值。

      rc.tcpip 文件

      /etc/rc.tcpip 文件是一个 Shell 脚本,当它执行时,使用 SRC 命令初始化所选择的守护进程。在系统每次重新启动时,rc.tcpip 脚本文件都会自动地执行。它也可以在任何时间从命令行加以执行。

      大多数守护进程可以由 TCP/IP 特定的 rc.tcpip 文件进行初始化。这些守护进程包括:

      • inetd(在缺省情况下会启动)
      • gated
      • routed
      • named
      • timed
      • rwhod

      注意:在一台主机上同时运行 routed 和 gated 会引起不可预知的结果。

      还有一些特定于基本操作系统或其他应用程序的守护进程,也可以在 rc.tcpip 文件中启动。这些守护进程包括:

      • lpd
      • portmap
      • sendmail
      • syslogd(在缺省情况下会启动)

      以下的示例可以作为参考:

      • 下面的命令将启动 syslogd 守护进程:
        #启动 syslog 守护进程(用于错误和事件日志记录)
        start /usr/sbin/syslogd “$src_running”
      • 下面的节将启动 lpd 守护进程:
        #启动 print 守护进程
        start /usr/sbin/lpd “$src_running”
      • 下面的节将启动 routed 守护进程,但是不启动 gated 守护进程:
        #启动 routing 守护进程(仅启动一个)
        start /usr/sbin/routed “$src_running” -g
        #start /usr/sbin/gated “$src_running”
      注意:要在启动时禁用一个进程,可以在启动该进程的那一行前面添加一个号 (#)。
      • Leave a comment... (0)

      AIX 系统初始化

      Posted on 06月 21st, 2009 in AIX 作者: rs6k  Tagged AIX

      在系统启动过程中,在预初始化过程中装入根文件系统之后,将发生下面这些事件:

      • 作为启动过程中的最后一个步骤,运行 init 命令。
      • init 命令尝试读取 /etc/inittab 文件。
      • 如果 /etc/inittab 文件存在,那么 init 命令将尝试在 /etc/inittab 文件中查找 initdefault 条目。
        • 如果 initdefault 条目存在,那么 init 命令使用指定的运行级别作为初始的系统运行级别。
        • 如果 initdefault 条目不存在,那么 init 命令将请求用户从系统控制台 (/dev/console) 输入一个运行级别。
        • 如果用户输入 S、s、M、或者 m 运行级别,那么 init 命令将进入维护运行级别。只有这些运行级别不需要经过正确格式化的 /etc/inittab 文件。
      • 如果 /etc/inittab 文件不存在,那么 init 命令在缺省情况下将使系统进入维护运行级别。
      • init 命令每隔 60 秒将再次读取 /etc/inittab 文件。如果在 init 命令上一次读取 /etc/inittab 文件之后,其中的内容发生了更改,那么将执行 /etc/inittab 文件中的新命令。

      /etc/inittab 文件

      /etc/inittab 文件用于控制初始化过程。

      /etc/inittab 文件提供了相应的脚本,以使得 init 命令的角色成为通用的进程调度器。init 命令的进程调度活动中的主要进程是 /etc/getty 线路进程,它将启动单独终端线路。通常由 init 命令进行调度的其他进程包括守护进程和 Shell。

      /etc/inittab 文件由一些与位置无关的条目组成,它们的格式如下所示:

      Identifier:RunLevel:Action:Command

      每个条目之间由一个换行符进行分隔。换行符前面加上一个反斜杠 (\) 表示继续该条目。在 /etc/inittab 文件中,对于条目的数目没有任何限制(但不能超过最大的条目大小)。最大的条目大小为 1024 个字符。

      条目字段包括:

      • Identifier,由一到十四个字符组成的字段,唯一地标识一个对象。
      • RunLevel,可以对该条目进行处理的运行级别。
        运行级别具有下面的属性:

         

        • 运行级别有效地对应于系统中的进程配置。
        • 可以为每个由 init 命令启动的进程分配一个或者多个运行级别(该进程可以存在于其中)。
        • 运行级别使用数字 0 到 9 进行表示。例如,如果系统处于运行级别 1,那么只有那些在运行级别字段中包含 1 的条目才会启动。
        • 当您请求 init 命令更改运行级别时,在运行级别字段中不包含匹配条目(对于目标运行级别)的所有进程都将接收到一个警告信号 (SIGTERM)。在使用删除信号 (SIGKILL) 强行结束这些进程之前,有 20 秒钟的过渡期。
        • 通过使用从 0 到 9 的任意组合,可以选择多个运行级别,从而在运行级别字段中为一个进程定义多个运行级别。如果没有指定运行级别,那么就假定该进程在所有的运行级别中都是有效的。
        • 在运行级别字段中,还可能出现其他四种取值,即使它们并不是真正的运行 级别:a、b、c 和 h。仅当使用 telinit 命令请求它们运行时(无论系统当前运行级别如何),才会处理那些运行级别字段中包含这些字符的条目。它们与运行级别的不同之处在于,init 命令不可能进入到运行级别 a、b、c 或者 h。另外,任何这些进程的执行请求都不会更改当前运行级别。而且,在 init 命令更改级别时,不会终止以 a、b 或者 c 命令开头的进程。只有在下面三种情况下才会终止它们:在 /etc/inittab 文件中,它们所在行的操作字段被标记为 off,从 /etc/inittab 中完全删除它们所在的行,或者 init 命令进入到单用户模式。
      • Action,用于告诉 init 命令如何处理在进程字段中指定的进程。init 命令能识别下列的操作:
        • respawn:如果进