跳到内容 中国
HP.com 主页 产品与服务 支持及驱动程序 解决方案 如何购买
» 联系惠普
更多选项
HP.com 主页
HP-UX 系统管理员指南:逻辑卷管理: HP-UX 11i v3 > 第 3 章 管理 LVM

常见 LVM 任务

» 

技术文档资料

完整的 PDF 手册
» 反馈
内容从此开始:

 » 目录

 » 词汇表

 » 索引

本节包含下列主题:

初始化磁盘供 LVM 使用

注意:使用 pvcreate 初始化磁盘会导致当前磁盘上的任何现有数据的丢失。
注释:如果磁盘已经连接到系统,请跳过该过程的前四步。

要初始化磁盘以便用作物理卷,请执行下列步骤:

  1. 关闭系统并断开系统电源。

  2. 将磁盘连接到系统和电源。有关添加特定类型磁盘的详细信息和说明,请参阅相应的设备文档。

  3. 打开磁盘电源。

  4. 引导系统。

  5. 确定磁盘的关联设备文件。要显示连接到系统的磁盘及其设备文件名,请输入带 -f-N-n 选项的 ioscan 命令。例如:

    # ioscan -f -n -N -C disk

    有关详细信息,请参阅 ioscan(1M)

  6. 使用 pvcreate 命令将磁盘初始化为物理卷。例如:

    # pvcreate /dev/rdisk/disk3

    对磁盘使用字符设备文件。

    如果正在初始化一个磁盘以便用作引导设备,请在 pvcreate 中添加 -B 选项,以便在磁盘上为 LIF 卷和引导实用程序保留一个区域。如果要在 HP Integrity 服务器上创建引导磁盘,请确保设备文件指定 HP-UX 分区号 (2)。例如:

    # pvcreate -B /dev/rdisk/disk3_p2
    注释:2.0 版卷组不支持可引导物理卷。如果要在 2.0 版卷组中使用该磁盘,请不要使用 -B 选项。

磁盘初始化后,即被称为物理卷。

创建卷组

要创建卷组,请使用 vgcreate 命令。根据要创建的是 1.0 版卷组还是 2.0 版卷组,选项会有所不同。

创建卷组设备文件

自 2008 年 3 月发行的 HP-UX 11i v3 起,无论卷组版本如何,vgcreate 命令均会自动创建设备文件 /dev/vgname/group 来管理卷组。如果使用的是 2008 年 3 月之前的 HP-UX 发行版,或者如果要指定 group 文件的次编号,则在运行 vgcreate 命令之前必须创建 /dev/卷组名/group

如果 group 文件不存在,并且 vgcreate 无法创建它,vgcreate 将显示以下消息:

vgcreate: "/dev/vgname/group": not a character device.

要创建卷组设备文件,请执行下列步骤:

  1. 为卷组创建一个目录。例如:

    # mkdir /dev/vgname

    按照约定,vgnamevgnn,其中 nn 是所有卷组中的唯一编号。但可以选择长度不超过 255 个字符的任意唯一名称。

  2. 使用 mknod 命令在卷组目录中创建一个名为 group 的设备文件。例如:

    # mknod /dev/vgname/group c major 0xminor

    跟在设备文件名后面的 c 指定 group 是字符设备文件。

    主编号group 设备文件的主编号。对于 1.0 版卷组,该编号为 64。对于 2.0 版卷组,该编号为 128。

    次编号group 文件的次编号,以十六进制形式表示。对于 1.0 版卷组,次编号的格式为 0xnn0000,其中 nn 是在所有 1.0 版卷组中唯一的编号。对于 2.0 版卷组,次编号的格式为 0xnnn000,其中 nnn 是在所有 2.0 版卷组中唯一的编号。

    有关 mknod 的详细信息,请参阅 mknod(1M);有关主编号和次编号的详细信息,请参阅“设备号格式”

创建 1.0 版卷组

要创建 1.0 版卷组,请使用 vgcreate 命令,并指定卷组中包含的每个物理卷。例如:

# vgcreate /dev/vgname /dev/disk/disk3

使用块设备文件来包含卷组中的每个磁盘。可以用一个命令将所有物理卷分配给卷组,也可以创建只有一个物理卷的卷组。其中任何物理卷都不能属于现有卷组。

可以使用下列选项设置卷组属性:

-V 1.0

1.0 版卷组(缺省值)

-s 物理盘区大小

以 MB 为单位表示的物理盘区大小(缺省值为 4)

-e 最大物理盘区数

每个物理卷的最大物理盘区数(缺省值为 1016)

-l 最大逻辑卷数

最大逻辑卷数(缺省值为 255)

-p 最大物理卷数

最大物理卷数(缺省值为 255)

物理卷的大小受物理盘区大小最大物理盘区数的乘积的限制。如果要向该卷组分配一个大约大于 4 GB (1016 * 4 MB) 的磁盘,请使用一个更大的物理盘区大小值或最大物理盘区数值。

每个磁盘上的 LVM 元数据的大小取决于最大逻辑卷数最大物理卷数最大物理盘区数。如果 vgcreate 选项会导致元数据超过它的可用空间,则 vgcreate 不会创建该卷组。必须选择一个新的最大逻辑卷数最大物理卷数最大物理盘区数值。例如,如果要使用大于 100 GB 的磁盘,请考虑减小最大物理卷数

创建 2.0 版卷组

对于 2.0 版卷组,vgcreate 命令不需要物理卷数 (-p)、逻辑卷数 (-l) 或每个物理卷的盘区数 (-e) 的最大值。相反,只需指定盘区大小 (-s) 以及卷组可以增大到的最大大小 (-S) 即可。例如:

# vgcreate -V 2.0 -s pe_size -S vg_size /dev/vgname /dev/disk/disk3

使用块设备文件来包含卷组中的每个磁盘。可以用一个命令将所有物理卷分配给卷组,也可以创建只有一个物理卷的卷组。其中任何物理卷都不能属于现有卷组。

必须使用下列选项:

-V 2.0

2.0 版卷组

-s 物理盘区大小

物理盘区的大小 (MB)

-S 卷组大小

卷组将来的最大大小

卷组大小是指分配给卷组的所有物理卷上的用户数据空间的总和。卷组大小并不是创建卷组时的卷组大小;它是卷组将来可以增大到的大小。可以通过分别添加字符 mgtp 来以 MB、GB、TB 或 PB 为单位指定该值。例如,要指定一个 2 TB 的最大大小,请使用 -S 2t

在 2.0 版卷组中,卷组中的物理盘区数具有体系结构限制,因此用户选择的物理盘区大小会影响卷组的最大大小。要显示针对给定物理盘区大小的最大卷组大小,请将 vgcreate-E 选项与 -s 选项一起使用。例如:

# vgcreate -V 2.0 -E -s 256
Max_VG_size=2p:extent_size=256m

反之,要显示针对给定卷组大小的最小物理盘区大小,请将 vgcreate-E 选项与 -S 一起使用。例如:

# vgcreate -V 2.0 -E -S 2t
Max_VG_size=2t:extent_size=1m

将磁盘添加到卷组

通常,将新磁盘添加到系统中时,必须将其添加到现有的卷组,而不是创建一个全新的卷组。如果添加新磁盘是为了存储用户数据(如文件系统或数据库),请不要将其添加到根卷组,而应保持根卷组中只包含根文件系统和系统文件系统(如 /usr/tmp 等)的磁盘。

要向卷组中添加磁盘,请执行下列步骤:

  1. 使用 pvcreate 命令将磁盘初始化为物理卷,如“初始化磁盘供 LVM 使用”中所述。

  2. 使用 vgextend 命令和磁盘的块设备文件将该物理卷添加到卷组中。例如:

    # vgextend /dev/vgname /dev/disk/disk3

从卷组删除磁盘

要从卷组中删除磁盘,请执行下列步骤:

  1. 使用 pvdisplay 命令确保磁盘中没有已分配的物理盘区。例如:

    # pvdisplay /dev/disk/disk3
    -- Physical volumes --
    PV Name                     /dev/disk/disk3
    VG Name                     /dev/vg00
    PV Status                   available
    Allocatable                 yes
    VGDA                        2
    Cur LV                      9
    PE Size (Mbytes)            4
    Total PE                    1023
    Free PE                     494
    Allocated PE                529
    Stale PE                    0
    IO Timeout (Seconds)        default
    Autoswitch                  On
    Proactive Polling           On
    
    -- Distribution of physical volume --
    LV Name            LE of LV  PE for LV
    /dev/vg00/lvol1    25        25
    /dev/vg00/lvol2    25        25
    /dev/vg00/lvol3    50        50
    
    --- Physical extents ---
    PE   Status   LV                 LE
    0000 current  /dev/vg00/lvol1    0000
    0001 current  /dev/vg00/lvol1    0001
    0002 current  /dev/vg00/lvol1    0002
    1021 free                        0000
    1022 free                        0000
    

    检查可用物理盘区数 (Free PE) 是否与物理盘区总数 (Total PE) 相一致。如果不一致,请执行下列任务之一:

    • 从磁盘中删除逻辑卷,如“删除逻辑卷”中所述。磁盘中包含物理盘区的逻辑卷在 pvdisplay 列表的末尾显示。

  2. 磁盘不再包含任何物理盘区后,可使用 vgreduce 命令将其从卷组中删除。例如:

    # vgreduce /dev/vgnn /dev/disk/disk3
    重要信息:如果要使用 LVM pvlink(如“通过多路径增加硬件路径冗余”中所述),则必须针对到磁盘的每个链路运行 vgreduce 命令。

创建逻辑卷

要创建逻辑卷,请执行下列步骤:

  1. 确定逻辑卷所需要的磁盘空间。

    例如,可以添加 200 MB 的设备交换空间,也可以创建一个预计会增大到 10 GB 的新项目。

  2. 找到一个具有足够可用空间的卷组。

    要确定是否有足够的磁盘空间可供卷组内的逻辑卷使用,请使用 vgdisplay 命令计算此信息。vgdisplay 将输出有关一个或多个卷组的数据,包括物理盘区大小(在 PE Size (Mbytes) 下)和可用物理盘区的数目(在 Free PE 下)。将这两个数字相乘,就可以得到卷组内的可用 MB 数。有关详细信息,请参阅 vgdisplay(1M)

  3. 使用 lvcreate 创建逻辑卷。例如:

    # lvcreate /dev/vgnn -L size_in_MB

    此命令创建逻辑卷 /dev/vgnn/lvoln,LVM 自动分配 lvoln 中的 n

LVM 创建逻辑卷时,它会为该逻辑卷创建块设备文件和字符设备文件,并将它们放置在 /dev/vgnn 目录中。

创建条带化逻辑卷

要创建条带化逻辑卷,请使用带 -i-I 选项的 lvcreate 命令分别指定磁盘数和条带宽度。例如,假设要跨三个磁盘进行条带化,且条带大小为 32K。则逻辑卷大小为 240 MB。要创建条带化逻辑卷,请输入以下命令:

# lvcreate -i 3 -I 32 -l 240 -n lvol1 /dev/vg01

lvcreate 命令自动将逻辑卷大小向上舍入为磁盘数与盘区大小相乘后的倍数。 例如,如果要在三个磁盘上进行条带化,并且盘区大小为 4 MB,则即使指明逻辑卷大小为 200 MB (-L 200),lvcreate 仍将创建 204 MB 的逻辑卷,因为 200 不是 12 的倍数。

注释:在多个磁盘上进行条带化时,条带化的卷大小不能超过其中最小磁盘的容量乘以条带化中使用的磁盘数所得的数值。

创建镜像逻辑卷

要创建镜像逻辑卷,请使用带 -m 选项的 lvcreate 命令选择镜像副本数。要控制镜像副本的管理方式,请从下列选项中进行选择:

严格盘区分配、非严格盘区分配或 PVG 严格盘区分配

-s y

严格分配(缺省值)

-s n

非严格分配

-s g

PVG 严格分配

连续盘区分配或非连续盘区分配

-C y

连续分配

-C n

非连续分配(缺省值)

镜像调度策略

-d p

并行调度(缺省值)

-d s

顺序调度

镜像一致性策略

-M y

启用 MWC(缺省值,在崩溃恢复期间进行最佳镜像重新同步)

-M n -c y

启用 MCR(在崩溃恢复期间进行完全镜像重新同步)

-M n -c n

禁用 MCR(在崩溃恢复期间不进行镜像重新同步)

例如,要创建一个大小为 240 MB、具有一个镜像副本、使用非严格分配、并行调度并且不进行镜像重新同步的镜像逻辑卷,请输入以下命令:

# lvcreate -m 1 -s n -d p -M n -c n -L 240 -n lvol1 /dev/vg01
提示:要更改现有镜像逻辑卷的特性,请使用 lvchange 命令。它支持 -C-c-d-M-s 选项。有关详细信息,请参阅 lvchange(1M)

扩展逻辑卷

注释:向逻辑卷中添加空间不会自动将该空间分配给使用该逻辑卷的实体。例如,如果要向包含在逻辑卷中的文件系统添加空间,必须在扩展逻辑卷之后运行 extendfs。有关详细信息,请参阅“管理文件系统逻辑卷”“管理交换逻辑卷”
  1. 确定逻辑卷另外还需要多少磁盘空间。

    例如,可以添加 200 MB 的交换空间,或某个现有项目可能额外需要 1 GB 的空间。

  2. 使用 vgdisplay 命令找出任何可用空间。例如:

    # vgdisplay vg00
    --- Volume groups ---
    VG Name                     /dev/vg00
    VG Write Access             read/write
    VG Status                   available
    Max LV                      255    
    Cur LV                      8      
    Open LV                     8      
    Max PV                      16     
    Cur PV                      1      
    Act PV                      1
    Max PE per PV               2000
    VGDA                        2   
    PE Size (Mbytes)            4
    Total PE                    249
    Alloc PE                    170    
    Free PE                     79    
    Total PVG                   0 
    Total Spare PVs             0 
    Total Spare PVs in use      0
    VG Version                  1.0
    VG Max Size                 1082g
    VG Max Extents              69248

    Free PE 条目显示了可用空间为 4 MB 的盘区的数量,本例中是 79 个 (316 MB)。

  3. 扩展逻辑卷。例如:

    # /sbin/lvextend -L 332 /dev/vg00/lvol7

    该命令将此卷的大小增加至 332 MB。

将逻辑卷扩展到特定磁盘

出于性能方面的原因,可以强制逻辑卷跨越多个磁盘。例如,如果要创建一个 30 GB 的逻辑卷,将 10 GB 放在第一个磁盘上,10 GB 放在第二个磁盘上,另外 10 GB 放在第三个磁盘上,并假定盘区大小是 4 MB,则该逻辑卷总共需要 7680 个盘区。要扩展逻辑卷,请执行下列步骤:

  1. 使磁盘成为物理卷并创建卷组后,请创建大小为 0 且名为 lvol1 的逻辑卷。例如:

    # lvcreate -n lvol1 /dev/vg01
  2. 将三分之一的盘区分配给第一个物理卷上的逻辑卷。例如:

    # lvextend -l 2560 /dev/vg01/lvol1 /dev/disk/disk7
  3. 然后,对其余的物理卷,将分配给逻辑卷的物理盘区的总数增加 2560。在每个例子中,另有 2560 个盘区分配给指定的磁盘。例如:

    # lvextend -l 5120 /dev/vg01/lvol1 /dev/disk/disk8
    # lvextend -l 7680 /dev/vg01/lvol1 /dev/disk/disk9

    如果使用 lvextend-l 选项,则可以指定以逻辑盘区为单位的空间。

再如,假设卷组中有两个磁盘,具有相同的磁盘模式。目前有 24 GB 的逻辑卷只驻留在其中一个磁盘上。您要将逻辑卷大小扩展到 40 GB,并确保其中增加的 16 GB 被分配给另一个磁盘。

将逻辑卷扩展到特定磁盘,如下所示:

# lvextend -L 40960 /dev/vg01/lvol2 /dev/disk/disk3

在这里,当使用 -L 选项(大写)时,可指定以 MB 为单位(而不是以逻辑盘区为单位)的空间。

有关命令选项的完整信息,请参阅 lvextend(1M)

减小逻辑卷

注意:在减小逻辑卷之前,必须通知该逻辑卷的用户。

例如,在减小包含文件系统的逻辑卷之前,请先备份文件系统。即使文件系统当前占用的空间小于新的(减小后的)逻辑卷大小,减小逻辑卷后数据仍然很可能会丢失。有关适用于文件系统和交换设备的相应步骤,请参阅“管理文件系统逻辑卷”“管理交换逻辑卷”

要减小逻辑卷,请执行下列步骤:

  1. 要找出正在使用逻辑卷的应用程序,请使用 fuser 命令。例如:

    # fuser -cu /dev/vg01/lvol5

    如果逻辑卷正在使用中,请确保基础应用程序可以处理大小减小。可能必须停止应用程序。

  2. 确定新的逻辑卷大小。

    例如,如果将逻辑卷挂接到了某个文件系统上,则新的大小必须大于文件系统中的数据当前占用的空间。bdf 命令显示所有已挂接的卷的大小。第一列显示分配给该卷的空间;第二列显示实际使用了多少空间。逻辑卷的新大小必须大于 bdf 输出的第二列中所显示的大小。

  3. 减小逻辑卷的大小,如下所示:

    # lvreduce -L 500 /dev/vg01/lvol5

    使用此命令可将逻辑卷 /dev/vg01/lvol5 减小到 500 MB。

为逻辑卷添加镜像

注释:镜像需要安装可选产品 HP MirrorDisk/UX。
提示:使用 HP SMH 可更轻松地执行此任务。HP SMH 将确认是否有足够的可用磁盘空间来保存镜像副本,以及可用空间是否满足任何分配策略。

要向逻辑卷中添加镜像,请执行下列步骤:

  1. 确定要创建的镜像副本数。

    对于本示例,将创建一个镜像;也就是说,您将拥有两个联机数据副本(原始数据和镜像副本)。

  2. 确保包含要镜像的逻辑卷的卷组有足够的可用空间。

    该卷组至少需要与当前要镜像的逻辑卷分配给它的空间一样多的可用空间,也就是说,此卷所需的物理空间的量将增大一倍。

    要使用严格镜像(由于严格镜像将镜像副本存放在单独的磁盘上,因此 HP 推荐使用严格镜像),此可用空间必须位于要镜像的卷当前未使用的磁盘上。

  3. 使用带 -m 选项的 lvextend 命令添加额外所需的副本数目。例如:

    # lvextend -m 1 /dev/vg00/lvol1

    此示例添加给定逻辑卷的一个镜像副本。

    要将镜像副本强制添加到特定物理卷上,请将该特定物理卷添加到命令行的末尾。例如:

    # lvextend -m 1 /dev/vg00/lvol1 /dev/disk/disk4

从逻辑卷中删除镜像

要删除镜像副本,请使用 lvreduce 命令,同时指定要保留的镜像副本数目。例如,要删除逻辑卷的所有镜像,请输入以下命令:

# lvreduce -m 0 /dev/vg00/lvol1

这会将镜像副本的数目减小到 0,也就是只保留原始副本。

要从特定磁盘中删除镜像副本,请使用 lvreduce,并指定要从中删除镜像副本的磁盘。例如:

# lvreduce -m 0 /dev/vg00/lvol1 /dev/disk/disk4

重命名逻辑卷

要更改逻辑卷名称,请执行下列步骤:

  1. 确保逻辑卷拥有两个现有设备文件:一个块设备文件和一个字符或原始设备文件。这些设备文件必须具有相同的名称,不同的是,字符设备文件名以 r 开头。例如,要将卷组 vg00 中某个逻辑卷的名称从 lvol1 更改为 database,请列出 /dev/vg00 目录的内容。例如:

    # cd /dev/vg00
    # ls -l
    total 0
    crw-r-----   1 root       sys  64 0x000000 Nov 16 02:49 group
    brw-r-----   1 root       sys  64 0x000001 Nov 16 02:49 lvol1
    brw-r-----   1 root       sys  64 0x000002 Nov 16 02:49 lvol2
    brw-r-----   1 root       sys  64 0x000003 Nov 16 02:49 lvol3
    brw-r-----   1 root       sys  64 0x000004 Nov 16 02:49 lvol4
    crw-r-----   1 root       sys  64 0x000001 Nov 16 02:49 rlvol1
    crw-r-----   1 root       sys  64 0x000002 Nov 16 02:49 rlvol2
    crw-r-----   1 root       sys  64 0x000003 Nov 16 02:49 rlvol3
    crw-r-----   1 root       sys  64 0x000004 Nov 16 02:49 rlvol4
  2. 使用 mv 命令重命名相应的两个文件。例如:

    # mv /dev/vg00/lvol1 /dev/vg00/database
    # mv /dev/vg00/rlvol1 /dev/vg00/rdatabase
  3. 在系统上的任何其他文件中更新对旧名称的所有引用。其中包括已挂接文件系统或交换设备的 /etc/fstab,以及来自 vgexport 命令的现有映射文件。

删除逻辑卷

注意:删除逻辑卷将使其内容不可用,并且可能会被覆盖。具体来说,包含在逻辑卷中的任何文件系统都将被破坏。

要删除逻辑卷,请执行下列步骤:

  1. 确保逻辑卷未以文件系统或应用程序的原始磁盘空间的形式被使用。按如下方式使用 fuser 命令:

    # fuser -cu /dev/vg01/lvol5

    如果逻辑卷已在使用,请确认基础应用程序不再需要它。可能需要停止应用程序。

  2. 使用 lvremove 命令删除逻辑卷。例如:

    # lvremove /dev/vg01/lvol5

    现在即可使用此空间扩展现有的逻辑卷,或创建新的逻辑卷。

导出卷组

导出卷组将从系统中删除有关该卷组的所有数据,但是这些数据会完整地保留在磁盘上。可通过物理方式移动导出卷的磁盘或将其连接到其他系统,而卷组可以导入到相应位置。

导出卷组将从 /etc/lvmtab/etc/lvmtab_p 中删除有关该卷组及其相关物理卷的信息,并删除该卷组的目录以及 /dev 目录中的设备文件。

  1. 确保卷组中的所有逻辑卷均未在使用。可能需要停止那些正在使用卷组中任何逻辑卷的应用程序,并卸除卷组中包含的文件系统。

    对每个逻辑卷执行 fuser 命令。例如:

    # fuser -cu /dev/vgnn/lvoln
  2. 停用卷组。例如:

    # vgchange -a n vgnn
  3. 使用 vgexport 命令导出卷组。例如:

    # vgexport -v -m /tmp/vgnn.map vgnn

    如果计划将卷组移动到其他系统,请使用带 -m 选项的 vgexport 创建映射文件。此 ASCII 文件包含逻辑卷名称,因为它们未存储在磁盘上。如果不使用卷组中逻辑卷的缺省名称 /dev/vgnn/lvoln,必须创建一个映射文件。

    如果卷组中包含多个磁盘,请使用带 –s 选项的 vgexport 命令;该选项会向映射文件中添加卷组标识符 (VGID)。导入卷组后,可以不必按名称指定所有磁盘。请参阅“导入卷组”

vgexport 完成后,便从系统中删除了有关该卷组的所有信息。现在可以将磁盘移动到其他系统,也可以将卷组导入到相应位置。

导入卷组

要导入卷组,请执行下列步骤:

  1. 将磁盘连接到系统。

  2. 如果使用的是 2008 年 3 月之前的 HP-UX 发行版,或者要指定卷组设备文件的次编号,请执行“创建卷组设备文件”中的步骤创建该卷组。

  3. 使用 vgimport 命令导入卷组:

    # vgimport -v -N -m /tmp/vgnn.map /dev/vgnn list_of_disks

    如果卷组中包含多个磁盘,且 VGID 保存在映射文件中(也就是说,运行了带 –s–m 选项的 vgexport 命令),则通过使用 -s 选项可以不必在 vgimport 命令行中指定所有这些磁盘。这会使 vgimport 扫描系统中的所有磁盘。VGID 与映射文件中的一个标识符相匹配的任何物理卷都会自动包含在该卷组中。

  4. 激活卷组,如下所示:

    # vgchange -a y vgnn
注释:如果卷组包含任何多路径磁盘,HP 建议使用 HP-UX 的本地多路径,而该本地多路径是 LVM 备用链路的超集。有关详细信息,请参阅“通过多路径增加硬件路径冗余”

如果要使用 LVM 的备用链路功能,则导入卷组具有多种影响:

  • 必须省略 vgimport 命令中的 -N 选项。

  • vgimport 将找到的第一个链路设置为所有物理卷的主链路。如果导入后链路未按所需顺序排列,则针对要更改主链路的每个物理卷的主链路,使用 vgreducevgextend

  • 可调参数 maxfiles 的值必须大于可用磁盘数的两倍。

修改卷组参数

注释:vgmodify 命令不支持 2.0 版卷组。

创建卷组时,会设置卷组的某些特性,如每个物理卷的最大物理盘区数、最大物理卷数以及最大逻辑卷数。使用 vgmodify 命令可以调整这些参数,而不必删除并重新创建卷组,也不必移动数据。

执行下列步骤可调整这些卷组参数:

  1. 运行 vgmodify 收集有关卷组的信息。

    保存以下三个命令的输出:

    # vgmodify -o -r vgnn
    # vgmodify -v -t vgnn
    # vgmodify -v -n -t vgnn

    -o 选项会尝试通过充分利用现有的 LVM 元数据空间对这些值进行优化。-t 选项可报告设置的优化范围而不重新计算物理盘区数目;通过 -n 选项可重新计算物理盘区的数目。

  2. 根据上一步中收集的信息,选择新的卷组参数值。

  3. 这些新值可能会增加每个物理卷上卷组保留区域 (VGRA) 的大小。VGRA 驻留在 LVM 标头中,因此增加其大小可能需要移动物理卷上第一个物理盘区的任何用户数据。使用 pvmove 命令可将第一个物理盘区移动到其他位置。

  4. 按照新的设置运行带 -r 选项的 vgmodify 检查这些值。

  5. 停用卷组。

  6. 运行不带 -r 选项的 vgmodify 提交新值。

  7. 激活卷组。运行 vgdisplay 命令验证设置是否已应用。

例如,希望向卷组 vg32 中添加更大的磁盘。希望增加每个物理卷的最大物理盘区数 (max_pe) 和最大物理卷数 (max_pv)。以下是相关步骤:

  1. 运行 vgmodify 收集有关卷组的信息。

    保存以下三个命令的输出:

    # vgmodify -o -r vg32
    当前卷组设置:
                                                   最多 LV 数      255
                                                   最多 PV 数       16
                                     每个物理卷的最大物理盘区     1016
                                            物理盘区大小 (MB)       32
                                               VGRA 大小 (KB)      176
    新配置要求将“max_pes”从 1016 增加到 6652
    当前卷组参数和新卷组参数不同。
    需要更新卷组
    
    新卷组设置:
                                                  最多 LV 数      255
                                                  最多 PV 数       16
                                    每个物理卷的最大物理盘区     6652
                                           物理盘区大小 (MB)      32
                                              VGRA 大小 (KB)     896
    审阅完成。卷组未被修改
    
    # vgmodify -v -t vg32
    当前卷组设置:
                                                    最多 LV 数      255
                                                    最多 PV 数       16
                                      每个物理卷的最大物理盘区     1016
                                             物理盘区大小 (MB)       32
                                                VGRA 大小 (KB)      176
    盘区正在使用中的物理卷上的 VGRA 空间 (KB):
    PV                      当前      -n
    /dev/rdisk/disk6        896       32768
    /dev/rdisk/disk5        896       32768
    摘要                    896       32768
    卷组优化设置(PE 未重新编号):
    max_pv(-p) max_pe(-e)  磁盘容量 (Mb)
       2          53756     1720193 
       3          35836     1146753 
    ...
       213         296         9473 
       255         252         8065
    
    # vgmodify -v -n -t vg32
    /dev/vg32 的卷组配置已保存在 /etc/lvmconf/vg32.conf 中
    当前卷组设置:
                                                    最多 LV 数      255
                                                    最多 PV 数       16
                                      每个物理卷的最大物理盘区     1016
                                              物理盘区大小 (MB)      32
                                                 VGRA 大小 (KB)     176
    盘区正在使用中的物理卷上的 VGRA 空间 (KB):
    PV                      当前      -n
    /dev/rdisk/disk6        896       32768
    /dev/rdisk/disk5        896       32768
    Summary                 896       32768
    编号为零的物理盘区在所有物理卷上都不是空闲的。无法达到这些值,
    直到所有下列磁盘上的第一个盘区空闲为止(请参阅 pvmove(1M)):
    /dev/rdisk/disk6
    /dev/rdisk/disk5
    
    卷组优化设置(PE 重新编号更低):
    max_pv(-p) max_pe(-e) 磁盘容量 (Mb)
    61          65535      2097152 
    62          65532      2097056 
    ...
    252         16048       513568 
    255         15868       507808
  2. 根据 vgmodify -n -t 的输出,为 max_pvmax_pe 分别选择 255 和 15868。

  3. 由于新值要求物理盘区 0 可用,请使用 pvmove 将其移动到其他位置:

    # pvmove /dev/disk/disk5:0 /dev/disk/disk5
    Transferring logical extents of logical volume "/dev/vg32/lvol2"...
    Physical volume "/dev/disk/disk5" has been successfully moved.
    Volume Group configuration for /dev/vg32 has been saved in
     /etc/lvmconf/vg32.conf
    
    # pvmove /dev/disk/disk6:0 /dev/disk/disk6
    Transferring logical extents of logical volume "/dev/vg32/lvol1"...
    Physical volume "/dev/disk/disk6" has been successfully moved.
    Volume Group configuration for /dev/vg32 has been saved in
     /etc/lvmconf/vg32.conf
  4. 使用带 -r 选项的 vgmodify 预览更改:

    # vgmodify -p 255 -e 15868 -r -n vg32
    当前卷组设置:
                             最多 LV 数    255
                             最多 PV 数     16
               每个物理卷的最大物理盘区   1016
                      物理盘区大小 (MB)     32
                         VGRA 大小 (KB)    176
    当前卷组参数和新卷组参数不同。
    需要更新卷组
    
    新卷组设置:
                             最多 LV 数    255
                             最多 PV 数    255
               每个物理卷的最大物理盘区  15868
                      物理盘区大小 (MB)     32
                         VGRA 大小 (KB)  32640
    审阅完成。卷组未被修改
  5. 停用卷组:

    # vgchange -a n vg32
    Volume group "vg32" has been successfully changed.
  6. 提交新值:

    # vgmodify -p 255 -e 15868 -n vg32
    当前卷组设置:
                             最多 LV 数    255
                             最多 PV 数     16
               每个物理卷的最大物理盘区   1016
                      物理盘区大小 (MB)     32
                        VGRA 大小 (KB)     176
    当前卷组参数和新卷组参数不同。
    需要更新卷组
    
    新卷组设置:
                             最多 LV 数    255
                             最多 PV 数    255
               每个物理卷的最大物理盘区  15868
                      物理盘区大小 (MB)     32
                         VGRA 大小 (KB)  32640
    “vg32”的新卷组配置已保存在“/etc/lvmconf/vg32.conf”中
    “vg32”的旧卷组配置已保存在“/etc/lvmconf/vg32.conf.old”中
    通过写入所有物理卷开始修改
    将此配置应用于“/etc/lvmconf/vg32.conf”中的所有物理卷
    已完成修改过程。
    “vg32”的新卷组配置已保存在“/etc/lvmconf/vg32.conf.old”中
    卷组“vg32”已更改成功。
  7. 激活卷组并验证更改:

    # vgchange -a y vg32
    Activated volume group
    Volume group "vg32" has been successfully changed.
    
    # vgdisplay vg32
    --- Volume groups ---
    VG Name                     /dev/vg32
    VG Write Access             read/write
    VG Status                   available
    Max LV                      255
    Cur LV                      0
    Open LV                     0
    Max PV                      255
    Cur PV                      2
    Act PV                      2
    Max PE per PV               15868
    VGDA                        4
    PE Size (Mbytes)            32
    Total PE                    1084
    Alloc PE                    0
    Free PE                     1084
    Total PVG                   0
    Total Spare PVs             0
    Total Spare PVs in use      0
    VG Version                  1.0

暂停并恢复使用卷组

如果计划使用磁盘管理实用程序创建卷组中所有磁盘的备份映像或“快照”,必须确保在创建快照时 LVM 未对任何磁盘执行写入操作,否则,某些磁盘可能会包含一部分写入的 LVM 元数据或不一致的 LVM 元数据。要保持卷组磁盘映像处于一致状态,必须停用或暂停该卷组。

停用卷组需要关闭卷组中的所有逻辑卷,而这可能具有一定的破坏性。例如,必须卸除使用卷组中的逻辑卷的任何文件系统。然而,通过临时暂停卷组,可以使得在快照操作过程中卷组保持激活状态,并且逻辑卷处于打开状态,从而将对系统的影响降到最低。

可以同时暂停对卷组执行读取和写入操作,也可以仅暂停写入操作。卷组处于暂停状态时,vgdisplay 命令会将卷组访问模式报告为“quiesced”。在卷组恢复使用之前将会始终暂停指定的 I/O 操作,用于修改卷组配置的命令将立即失败。

注释:使用此功能不能暂停单个物理卷或逻辑卷。要临时暂停物理卷以便禁用或替换它,请参阅“禁用物理卷路径”。要暂停逻辑卷,请先暂停或停用卷组。要提供逻辑卷的稳定映像而不停用卷组,请镜像该逻辑卷,然后分离其中的一个镜像,如“备份镜像逻辑卷”中所述。

暂停卷组不会保持到重新引导之后。

要暂停卷组,请使用带 -Q 选项的 vgchange 命令,如下所示:

# vgchange -Q mode vgnn

mode 参数可以是 rww,前者同时阻止读取和写入操作,后者允许读取操作但阻止写入操作。

缺省情况下,在明确恢复使用之前,卷组将一直保持暂停状态。可以使用 -t 选项指定最长暂停时间(以秒为单位)。过了暂停时间,卷组将自动恢复使用。例如,要暂停卷组 vg08(最长 10 分钟,即 600 秒)但允许执行读取操作,请输入以下命令:

# vgchange -Q w -t 600 vg08

要恢复使用暂停的卷组,请使用带 -R 选项的 vgchange 命令,如下所示:

# vgchange -R vgnn

重命名卷组

要更改卷组的名称,请导出该卷组,然后使用新名称将其导入。有关如何导出和导入卷组的详细信息,请参阅“导出卷组”“导入卷组”

要将卷组 vg01 重命名为 vgdb,请执行下列步骤:

  1. 停用卷组,如下所示:

    # vgchange -a n vg01
  2. 如果要为卷组保留相同的次编号,请检查卷组的 group 文件,如下所示:

    # ls -l /dev/vg01/group
    crw-r--r-- 1 root sys 64 0x010000 Mar 28  2004 /dev/vg01/group

    对于本示例,卷组的主编号为 64,次编号为 0x010000。

  3. 导出卷组,如下所示:

    # vgexport -m vg01.map vg01
  4. 如果使用的是 2008 年 3 月之前的 HP-UX 发行版,或者要指定卷组设备文件的次编号,请执行“创建卷组设备文件”中的步骤为卷组的新名称创建设备文件。

    由于本示例中的 group 文件的主编号为 64,次编号为 0x010000,因此请输入下列命令:

    # mkdir /dev/vgdb
    # mknod /dev/vgdb/group c 64 0x010000
  5. 在其新名称下导入卷组,如下所示:

    # vgimport -m vg01.map /dev/vgdb
  6. 备份卷组配置信息,如下所示:

    # vgcfgbackup /dev/vgdb
  7. 激活卷组,如下所示:

    # vgchange -a y /dev/vgdb
  8. 删除已保存的基于旧卷组名的配置信息,如下所示:

    # rm /etc/lvmconf/vg01.conf
  9. 在系统上的任何其他文件中更新对旧名称的所有引用。其中包括用于已挂接的文件系统或交换设备的 /etc/fstab,以及来自 vgexport 命令的现有映射文件。

拆分卷组

可以使用 vgchgid 将现有卷组拆分为两个或更多卷组,前提是要拆分的物理卷是独立的,也就是说,物理卷上的任何逻辑卷都必须完整地包含在这些物理卷上。例如,在一个可拆分的卷组中,逻辑卷 1、2 和 3 位于物理卷 0 和 1 上,而逻辑卷 4、5 和 6 位于物理卷 2、3、4 和 5 上。

在本示例中,卷组 vgold 包含物理卷 /dev/disk/disk0/dev/disk/disk5。逻辑卷 lvol1lvol2lvol3 位于物理卷 /dev/disk/disk0/dev/disk/disk1 上,而逻辑卷 lvol4lvol5lvol6 位于其余的物理卷上。

要将 /dev/disk/disk0/dev/disk/disk1 保留在 vgold 中,而将其余物理卷拆分并组成名为 vgnew 的新卷组,请执行下列步骤:

  1. 停用卷组,如下所示:

    # vgchange -a n vgold
  2. 导出卷组,如下所示:

    # vgexport vgold
  3. 更改要分配给新卷组的物理卷的 VGID,如下所示:

    # vgchgid -f /dev/rdisk/disk2 /dev/rdisk/disk3 \
         /dev/rdisk/disk4 /dev/rdisk/disk5
  4. 如果使用的是 2008 年 3 月之前的 HP-UX 发行版,或者要指定 vgold 组文件的次编号,请执行“创建卷组设备文件”中的步骤创建它。

  5. 如果使用的是 2008 年 3 月之前的 HP-UX 发行版,或者要指定 vgnew 组文件的次编号,请执行“创建卷组设备文件”中的步骤创建它。

  6. 将物理卷导入旧卷组,如下所示:

    # vgimport /dev/vgold /dev/rdisk/disk0 /dev/rdisk/disk1
  7. 将物理卷导入新卷组,如下所示:

    # vgimport /dev/vgnew /dev/rdisk/disk2 /dev/rdisk/disk3 \
         /dev/rdisk/disk4 /dev/rdisk/disk5
  8. 激活卷组。对旧卷组禁用 Quorum 检查(该旧卷组将丢失一半以上的磁盘),如下所示:

    # vgchange -a y -q n /dev/vgold
    # vgchange -a y /dev/vgnew
  9. 当前在两个卷组中均定义了逻辑卷。从不再包含重复逻辑卷的卷组中删除这些重复的逻辑卷,如下所示:

    # lvremove -f vgold/lvol4 vgold/lvol5 vgold/lvol6
    # lvremove -f vgnew/lvol1 vgnew/lvol2 vgnew/lvol3
  10. 当前在两个卷组中均定义了物理卷。从两个卷组中删除丢失的物理卷,如下所示:

    # vgreduce -f vgold
    # vgreduce -f vgnew
  11. 对旧卷组启用 Quorum 检查,如下所示:

    # vgchange -a y -q y /dev/vgold

完成后,原始卷组将包含三个逻辑卷(lvol1lvol2lvol3)以及物理卷 /dev/disk/disk0/dev/disk/disk1。新卷组 vgnew 包含三个逻辑卷(lvol4lvol5lvol6),这些逻辑卷跨越物理卷 /dev/disk/disk2/dev/disk/disk3/dev/disk/disk4/dev/disk/disk5

删除卷组

提示:导出卷组比删除卷组容易,因为删除卷组需要在运行 vgremove 之前删除卷组中的所有逻辑卷和物理卷。此外,导出卷组不会损坏磁盘上的 LVM 信息,这对以后重新导入卷组很有帮助。有关导出卷组的步骤,请参阅“导出卷组”

要删除卷组,请执行下列步骤:

  1. 备份所有用户数据。

  2. 找到卷组中所有逻辑卷和物理卷的名称。输入以下命令:

    # vgdisplay -v /dev/vgnn
  3. 确保这些逻辑卷均未使用。这可能需要停止那些使用卷组中任何逻辑卷的应用程序,并卸除卷组中包含的文件系统。

    针对每个逻辑卷使用 fuser 命令:

    # fuser -cu /dev/vgnn/lvoln
  4. 删除每个逻辑卷,如下所示:

    # lvremove /dev/vgnn/lvoln

    有关详细信息,请参阅“删除逻辑卷”

  5. 只保留一个物理卷,删除其余物理卷,如下所示:

    # vgreduce /dev/vgnn /dev/disk/diskn

    有关详细信息,请参阅“从卷组删除磁盘”

  6. 使用 vgremove 命令删除卷组,如下所示:

    # vgremove vgnn

备份镜像逻辑卷

注释:镜像需要安装可选产品 HP MirrorDisk/UX。

可以将一个镜像逻辑卷拆分成两个逻辑卷,以便在一个副本联机的时候对脱机副本执行备份。备份完脱机副本后,可以将两个逻辑卷合并回一个。为了使两个副本重新同步,LVM 将基于对使用中的副本所做的更改来更新脱机副本中的物理盘区。

可以使用 HP SMH 来拆分和合并逻辑卷,或者使用 lvsplitlvmerge 命令。

要使用 lvsplitlvmerge 备份包含文件系统的镜像逻辑卷,请执行下列步骤:

  1. 将逻辑卷 /dev/vg00/lvol1 拆分为两个单独的逻辑卷,如下所示:

    # lvsplit /dev/vg00/lvol1

    这样就创建了新的逻辑卷 /dev/vg00/lvol1b。原来的逻辑卷 /dev/vg00/lvol1 仍保持联机。

  2. 对要备份的逻辑卷执行文件系统一致性检查,如下所示:

    # fsck /dev/vg00/lvol1b
  3. 挂接文件系统,如下所示:

    # mkdir /backup_dir
    # mount /dev/vg00/lvol1b /backup_dir
  4. 使用选择的实用程序执行备份。

  5. 卸除文件系统,如下所示:

    # umount /backup_dir
  6. 将拆分的逻辑卷与原始逻辑卷重新进行合并,如下所示:

    </