Linux 磁盘管理命令:LVM命令列表

在这里插入图片描述

LVM命令列表

​ LVM(Logical Volume Manager,逻辑卷管理器)是一种把硬盘驱动器空间分配成逻辑卷的 方法,使硬盘不必使用分区也能被简单地重新划分大小。LVM 是 Linux 环境下对磁盘分区进行 管理的一种机制,它将多个物理分区汇聚为一个卷组(Volume Group),而且这些物理卷的大 小可以不同,甚至类型也可以不同(如 SCSI 和 SATA 磁盘)。组成的卷组就像一块大硬盘,然 后从中分割出一块一块的逻辑卷(Logical Volume),并进一步在逻辑卷组上创建文件系统。LVM 有一整套的命令集,下表列出了 LVM 命令摘要。

下表 LVM 命令摘要和示例

物理卷(PV) 管理命令

命令名称 功能描述 主要参数
pvcreate 将物理硬盘分区初始化为物理卷,以便被LVM 使用 -f:强制创建物理卷,不需要用户确认-u:指定设备的 UUID-y:所有的问题都回答“yes”-Z:是否利用前 4 个扇区
pvdisplay 显示物理卷的属性(大小,PE 大小,被卷组描述符使用的空间) -s:以短格式输出-m:显示PE 到 LV 和LE 的映射
pvchange 设置PV 的性能,允许或拒绝从这个磁盘上分配另外的 PE -u:生成新的 UUID-x:是否允许分配PE
pvmove 在一个卷组中从源到目的移动已经分配的PE -d:调试模式-f:强制删除-y:对提问回答“yes”
pvck 检查一致性 -d:调试模式
pvs 输出格式化的物理卷信息报表。使用 pvs 命令仅能得到物理卷的概要信息,如果要得到更加详细的信息,可以使用pvdisplay 命令 –noheadings:不输出标题头–nosuffix:不输出空间大小的单位
pvscan 扫描系统中连接的所有硬盘,列出找到的物理卷列表 -d:调试模式-e:仅显示属于输出卷组的物理卷-n:仅显示不属于任何卷组的物理卷-s:短格式输出-u:显示UUID

卷组(VG)管理命令

命令名称 功能描述 主要参数
vgcreate 创建卷组 -l:卷组中允许创建的最大逻辑卷数-p:卷组中允许添加的最大物理卷数-s:卷组中的物理卷的 PE 大小
vgdisplay 显示LVM 卷组的元数据信息 -A:仅显示活动卷组的属性-s:使用短格式输出信息
vgchange 修改卷组的属性,经常被用来设置卷组是处于活动状态还是非活动状态 -a:设置卷组的活动状态
vgextend 用于动态扩展LVM 卷组,它通过向卷组中添加物理卷来增加卷组的容量 -d:调试模式-t:仅测试
vgscan 查找系统中存在的 LVM 卷组,并显示找到的卷组列表 -d:调试模式–ignorelockingfailure:忽略锁定失败的错误
vgreduce 通过删除 LVM 卷组中的物理卷来减少卷组容量。不能删除 LVM 卷组中剩余的最后一个物理卷 -a:如果命令行中没有指定要删除的物理卷,则删除所有的空物理卷–removemissing:删除卷组中丢失的物理卷,使卷组恢复正常状态
vgremove 删除卷组 -f:强制删除
vgexport 从系统中删除一个卷组,但不修改基于物理卷的信息 -a,–all:导出所有非活动卷组
vgcfgrestore 恢复卷组的配置信息 –force:强制恢复 LVM:配置数据-l:列出在指定的配置备份文件中保存的配置信息-f,–file:filename:从指定的配置备份文件中获取配置信息
vgimport 通过扫描使用 vgexport 命令输出物理卷在系统中增加的一个卷组 -d:调试模式-a,–all:导入所有卷组
vgcfgbackup 保存卷组的配置信息,记住一个卷组由一个或多个物理卷组成 -d:调试模式
vgck 检查一致性 -d:调试模式
vgsplit 把一个卷组拆分为两个 -A:autobackup 此次调用设置自动备份-d:调试模式
vgmknodes 重新建立已有卷组的卷组目录和其中的设备文件 –refresh:如果卷组中的任何逻辑卷处于活动状态,则重新载入它的元数据

逻辑卷(LV)管理命令

命令名称 功能描述 主要参数
lvcreate 创建逻辑卷 -L:指定逻辑卷的大小,单位为“kKmMgGtT”字节-l:指定逻辑卷的大小(LE 数)-n:后面跟逻辑卷名
lvdisplay 显示逻辑卷的信息 -m,–maps:显示逻辑盘区物理卷和物理盘区的映射–columns,-C:显示输出列-c,–colon:生成冒号分隔输出的脚本
lvchange 改变逻辑卷的特性:可用性、调度策略、权限、块重定位、分配策略、镜像缓存的可用性 -A autobackup:此次调用设置自动备份-C contiguous:设置连续分配策略
lvextend 增加逻辑卷的空间 -L:指定逻辑卷的大小,单位为“kKmMgGtT”字节-l:指定逻辑卷的大小(LE 数)
lvreduce 减少逻辑卷的空间 -L:指定逻辑卷的大小,单位为“kKmMgGtT”字节-l:指定逻辑卷的大小(LE 数)
lvremove 删除逻辑卷 -f:强制删除
lvrename 修改逻辑卷名称 –noudevsync:禁用udev 的同步-d:调试模式-t:仅测试
lvmdiskscan 检测所有的 SCSI、IDE 等存储设备,并输出摘要信息,包括名称、大小、类型等 -l,–lvmpartition:只报告物理卷
lvscan 扫描当前系统中存在的所有 LVM 逻辑卷 -b:显示逻辑卷的主设备号和次设备号
lvmsar 收集的逻辑卷的读/写统计数据 -d:调试模式

案例练习

扩展LVM 需要执行如下步骤。

若卷组中无剩余空间,首先扩展卷组。

  • 添加硬盘。

  • 在硬盘上创建 LVM 分区。

  • 在 LVM 分区上创建物理卷。

  • 将物理卷添加到卷组中。

若卷组中有剩余空间,则扩展卷组中的逻辑卷。 对已扩展的逻辑卷中的文件系统要进行容量扩展。

以下是使用 LVM 安装 RHEL 5.4 后扩展LogVolHome 逻辑卷的操作过程。

  • 在系统中添加一块新硬盘。

  • 在新硬盘上创建物理卷。

  • 将新创建的物理卷扩展到 VolGroup00 卷组。

  • 扩展 VolGroup00 卷组中的 LogVolHome 逻辑卷。

  • 对 LogVolHome 逻辑卷上的文件系统进行容量扩展。

1) 创建LVM 类型的分区

可以用前面介绍的 fdsik 进行分区,也可以用 parted 命令。下面给出一个使用 parted 命令进行分区的过程示例。

# parted /dev/sdc mktable msdos
Information: Don't forget to update /etc/fstab, if necessary. # parted /dev/sdc mkpart primary 0 4GB
# parted /dev/sdc mkpart extended 4GB 8GB # parted /dev/sdc mkpart logical 4GB 8GB # parted /dev/sdc set 1 lvm on
Information: Don't forget to update /etc/fstab, if necessary. # parted /dev/sdc set 5 lvm on
Information: Don't forget to update /etc/fstab, if necessary.
# parted /dev/sdc print
Model: VMware, VMware Virtual S (scsi) Disk /dev/sdc: 17.2GB
Sector size (logical/physical): 512B/512B Partition Table: msdos
Number Start End Size Type File system Flags
1 32.3kB 3997MB 3997MB primary lvm
2 3997MB 8003MB 4006MB extended lba
5 3998MB 8003MB 4006MB logical lvm
Information: Don't forget to update /etc/fstab, if necessary. # partprobe

2) 创建物理卷

扩展卷组 : 扩展卷组需要使用 vgextend 命令,其命令格式如下:

vgextend <卷组名> <物理卷设备名> [<物理卷设备名> ...]

首先查看系统中的卷组。

# vgscan
Reading all physical volumes. This may take a while... Found volume group "wwwVG" using metadata type lvm2 Found volume group "VolGroup00" using metadata type lvm2

下面的命令将新创建的两个物理卷扩展到已存在的 VolGroup00 卷组中。

# vgextend VolGroup00 /dev/sdc1 /dev/sdc5
Volume group "VolGroup00" successfully extended

扩展后查看卷组状态。

# vgdisplay

扩展逻辑卷: 要扩展卷组中的逻辑卷,需要使用 lvextend 命令,其命令格式如下:

lvextend <-L/--size+逻辑卷增量[kKmMgGtT]><逻辑卷设备名称>

在创建逻辑卷时直接指定增量,单位可以是 k/K、m/M、g/G、t/T,默认为 M。首先显示已存在的 LogVolHome 逻辑卷的状态。

# lvdisplay /dev/VolGroup00/LogVolHome
--- Logical volume ---
LV Name /dev/VolGroup00/LogVolHome VG Name VolGroup00
LV UUID q6j2U1-g5u9-inAj-zWNy-hrK7-T71j-N59hMZ
LV Write Access read/write LV Status available
# open 1
LV Size 2.91 GB
Current LE 93
Segments 1 Allocation inherit Read ahead sectors 0 Block device 253:1

下面的命令用于在 VolGroup00 卷组中扩展 LogVolHome 逻辑卷,扩展大小为 6GB。

# lvextend -L +6G /dev/VolGroup00/LogVolHome Extending logical volume LogVolHome to 8.91 GB
Logical volume LogVolHome successfully resized

重新显示 LogVolHome 逻辑卷的状态。

# lvdisplay /dev/VolGroup00/LogVolHome
--- Logical volume ---
LV Name /dev/VolGroup00/LogVolHome
…

扩展文件系统容量

下面是对已挂装的 Ext3 类型的 home 文件系统扩充容量的操作。

# df /home
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/mapper/VolGroup00-LogVolHome 2951952 107668 2691916 4% /home
# umount /home
# resize2fs -f /dev/VolGroup00/LogVolHome resize2fs 1.39 (29-May-2006)
Resizing the filesystem on /dev/VolGroup00/LogVolHome to 2334720 (4k) blocks. The filesystem on /dev/VolGroup00/LogVolHome is now 2334720 blocks long. # mount -a
# df /home
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/mapper/VolGroup00-LogVolHome 9052536 109888 8569096 2% /home

对文件系统调整大小是非常危险的操作,虽然从技术上考虑是可行的,但是仍然有很大风险,因此,用户在使用 resize2fs 命令调整文件系统容量之前必须进行完整备份。使用 resize2fs命令之前需卸载文件系统,若要对/分区、/usr 分区等进行操作,需要使用 Live-CD 的 rescue 模式启动系统。