LVM命令示例
显示物理卷(PV和PVDisplay)
要在系统上显示物理卷(PV),可以执行pvs命令:
[root@rhel01a ~]# pvs PV VG Fmt Attr PSize PFree /dev/sda2 vg_rhel01 lvm2 a-- 7.51g 0 /dev/sdb1 vg_rhel01 lvm2 a-- 4.99g 0
要显示有关PV的更多详细信息,可以执行pvdisplay命令:
[root@rhel01a ~]# pvdisplay --- Physical volume --- PV Name /dev/sda2 VG Name vg_rhel01 PV Size 7.51 GiB/not usable 3.00 MiB Allocatable yes (but full) PE Size 4.00 MiB Total PE 1922 Free PE 0 Allocated PE 1922 PV UUID 2fkPz2-8os0-4kJN-3moF-2prj-Z37s-cMC6Rh --- Physical volume --- PV Name /dev/sdb1 VG Name vg_rhel01 PV Size 4.99 GiB/not usable 2.41 MiB Allocatable yes (but full) PE Size 4.00 MiB Total PE 1278 Free PE 0 Allocated PE 1278 PV UUID Q3lBfV-tDi9-LJOw-nZKj-fge1-pqSQ-l0Cute
显示卷组(vgs和vgdisplay)
要显示有关Linux系统上的卷组的基本信息,可以执行vgs命令:
[root@rhel01a ~]# vgs VG #PV #LV #SN Attr VSize VFree vg_rhel01 2 2 0 wz--n- 12.50g 0
从上面的输出中,我们可以看到有两个物理卷(PV)分配给了卷组(VG)vg_rhel01
要在Linux系统上更详细地查看卷组,可以使用命令vgdisplay
[root@rhel01a ~]# vgdisplay vg_rhel01 --- Volume group --- VG Name vg_rhel01 System ID Format lvm2 Metadata Areas 2 Metadata Sequence No 5 VG Access read/write VG Status resizable MAX LV 0 Cur LV 2 Open LV 2 Max PV 0 Cur PV 2 Act PV 2 VG Size 12.50 GiB PE Size 4.00 MiB Total PE 3200 Alloc PE/Size 3200/12.50 GiB Free PE/Size 0/0 VG UUID ttO0aF-RgCq-OZM7-dKcj-sDr0-vfg1-TDFzj0
显示逻辑卷信息(lvs和lvdisplay)
要在Linux系统上显示逻辑卷(LV)信息,可以执行lvs命令:
[root@rhel01a ~]# lvs LV VG Attr LSize Pool Origin Data% Move Log Copy% Convert lv_root vg_rhel01 -wi-ao-- 10.53g lv_swap vg_rhel01 -wi-ao-- 1.97g
要在Linux系统上更详细地显示逻辑卷,可以使用命令lvdisplay:
[root@rhel01a ~]# lvdisplay /dev/vg_rhel01/lv_root --- Logical volume --- LV Path /dev/vg_rhel01/lv_root LV Name lv_root VG Name vg_rhel01 LV UUID 2LwbRo-KMuD-DQne-3NMI-Jndp-gClY-Zj3uL0 LV Write Access read/write LV Creation host, time rhel01, 2014-02-19 19:54:06 +0000 LV Status available # open 1 LV Size 10.53 GiB Current LE 2696 Segments 2 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 253:0
如果在未指定特定逻辑卷的情况下执行lvdisplay
命令,则将显示系统上的所有逻辑卷。在上面的示例中,参数/dev/vg_rhel01/lv_root
已传递到lvdisplay命令。
列出Linux系统上的分区类型
尽管此命令不是LVM命令,但它对于显示分区信息很有用。要在Linux系统上显示分区类型和磁盘信息,可以使用lsblk命令:
[root@rhel01a ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sr0 11:0 1 1024M 0 rom sda 8:0 0 8G 0 disk ├─sda1 8:1 0 500M 0 part /boot └─sda2 8:2 0 7.5G 0 part ├─vg_rhel01-lv_root (dm-0) 253:0 0 10.5G 0 lvm / └─vg_rhel01-lv_swap (dm-1) 253:1 0 2G 0 lvm [SWAP] sdb 8:16 0 5G 0 disk └─sdb1 8:17 0 5G 0 part └─vg_rhel01-lv_root (dm-0) 253:0 0 10.5G 0 lvm / sdc 8:32 0 2G 0 disk
列出Linux系统上的分区-fdisk
要在Linux系统上显示分区信息,可以执行fdisk -l命令:
[root@rhel01a ~]# fdisk -l /dev/sda Disk /dev/sda: 8589 MB, 8589934592 bytes 255 heads, 63 sectors/track, 1044 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes/512 bytes I/O size (minimum/optimal): 512 bytes/512 bytes Disk identifier: 0x00029be4 Device Boot Start End Blocks Id System /dev/sda1 * 1 64 512000 83 Linux Partition 1 does not end on cylinder boundary. /dev/sda2 64 1045 7875584 8e Linux LVM 8:32 0 2G 0 disk
如果在不指定磁盘的情况下执行命令fdisk -l
,则会显示所有磁盘信息。
有时将命令与grep
结合使用以限制显示的输出很有用:
[root@rhel01a ~]# fdisk -l | grep /dev/sd Disk /dev/sda: 8589 MB, 8589934592 bytes /dev/sda1 * 1 64 512000 83 Linux /dev/sda2 64 1045 7875584 8e Linux LVM Disk /dev/sdb: 5368 MB, 5368709120 bytes /dev/sdb1 1 652 5237158+ 8e Linux LVM Disk /dev/sdc: 2147 MB, 2147483648 bytes
从上面我们可以看到,我们的Red Hat系统/dev/sdc
上有一个备用磁盘。此命令有助于识别刚刚添加到系统中的磁盘。
创建物理卷(pvcreate)
要将新磁盘添加到要由LVM管理的系统中,必须使用命令pvcreate
[root@rhel01a ~]# pvcreate /dev/sdc Writing physical volume data to disk "/dev/sdc" Physical volume "/dev/sdc" successfully created
删除物理卷(pvremove)
要从系统中删除物理卷,请使用pvremove命令:
[root@rhel01a ~]# pvremove /dev/sdc Labels on physical volume "/dev/sdc" successfully wiped
创建一个新的卷组(vgcreate)
要创建新的卷组(VG),必须使用vgcreate命令。您还需要指定要将哪个物理卷(PV)与新的卷组关联。
在下面的示例中,我们使用新添加的磁盘/dev/sdc。在使用新添加的磁盘之前,请使用pvcreate命令。命令pvs用于显示它与任何现有的卷组都不相关。
[root@rhel01a ~]# pvcreate /dev/sdc Writing physical volume data to disk "/dev/sdc" Physical volume "/dev/sdc" successfully created [root@rhel01a ~]# pvs PV VG Fmt Attr PSize PFree /dev/sda2 vg_rhel01 lvm2 a-- 7.51g 0 /dev/sdb1 vg_rhel01 lvm2 a-- 4.99g 0 /dev/sdc lvm2 a-- 2.00g 2.00g [root@rhel01a ~]# vgcreate vg01 /dev/sdc Volume group "vg01" successfully created
现在,执行pvs命令时,我们可以看到该存储现在与新的卷组vg01
相关联。
[root@rhel01a ~]# pvs PV VG Fmt Attr PSize PFree /dev/sda2 vg_rhel01 lvm2 a-- 7.51g 0 /dev/sdb1 vg_rhel01 lvm2 a-- 4.99g 0 /dev/sdc vg01 lvm2 a-- 2.00g 2.00g
重命名卷组(vgrename)
要重命名现有的卷组,请使用vgrename命令:
[root@rhel01a ~]# vgs VG #PV #LV #SN Attr VSize VFree vg01 1 0 0 wz--n- 2.00g 2.00g vg_rhel01 2 2 0 wz--n- 12.50g 0 [root@rhel01a ~]# vgrename vg01 test_vg01 Volume group "vg01" successfully renamed to "test_vg01" [root@rhel01a ~]# vgs VG #PV #LV #SN Attr VSize VFree test_vg01 1 0 0 wz--n- 2.00g 2.00g vg_rhel01 2 2 0 wz--n- 12.50g 0
在上面的示例中,我们使用vgrename命令将现有的卷组vg01
重命名为test_vg01
。命令vgs用于显示之前和之后的结果。
删除卷组
要删除卷组,请使用命令vgremove:
[root@rhel01a ~]# vgremove test_vg01 Volume group "test_vg01" successfully removed
扩展卷组(vgextend)
要向现有的卷组添加额外的空间,请使用命令vgextend。您还需要提供要添加的物理卷(磁盘)的名称。在以下示例中,我们将向现有的卷组vg_rhel01添加2GB的空间
[root@rhel01a ~]# vgdisplay vg_rhel01 --- Volume group --- VG Name vg_rhel01 System ID Format lvm2 Metadata Areas 2 Metadata Sequence No 5 VG Access read/write VG Status resizable MAX LV 0 Cur LV 2 Open LV 2 Max PV 0 Cur PV 2 Act PV 2 VG Size 12.50 GiB PE Size 4.00 MiB Total PE 3200 Alloc PE/Size 3200/12.50 GiB Free PE/Size 0/0 VG UUID ttO0aF-RgCq-OZM7-dKcj-sDr0-vfg1-TDFzj0 [root@rhel01a ~]# vgextend vg_rhel01 /dev/sdc Volume group "vg_rhel01" successfully extended [root@rhel01a ~]# vgdisplay vg_rhel01 --- Volume group --- VG Name vg_rhel01 System ID Format lvm2 Metadata Areas 3 Metadata Sequence No 6 VG Access read/write VG Status resizable MAX LV 0 Cur LV 2 Open LV 2 Max PV 0 Cur PV 3 Act PV 3 VG Size 14.50 GiB PE Size 4.00 MiB Total PE 3711 Alloc PE/Size 3200/12.50 GiB Free PE/Size 511/2.00 GiB VG UUID ttO0aF-RgCq-OZM7-dKcj-sDr0-vfg1-TDFzj0
在上面的示例中,我们使用vgdisplay命令显示当前大小以及与卷组vg_rhel01
相关联的物理卷。
接下来,执行vgextend命令以及要使用的指定物理卷。执行命令后,使用vgdisplay命令显示指定卷组的新属性。从输出中,您可以看到大小和关联的PV计数已增加。
从卷组中删除物理卷(vgreduce)
要从卷组中删除存储,请使用命令vgreduce。此命令与vgextend命令相反。在以下示例中,我们将从卷组中删除指定的PV:
[root@rhel01a ~]# pvs PV VG Fmt Attr PSize PFree /dev/sda2 vg_rhel01 lvm2 a-- 7.51g 0 /dev/sdb1 vg_rhel01 lvm2 a-- 4.99g 0 /dev/sdc vg_rhel01 lvm2 a-- 2.00g 2.00g [root@rhel01a ~]# vgreduce vg_rhel01 /dev/sdc Removed "/dev/sdc" from volume group "vg_rhel01" [root@rhel01a ~]# pvs PV VG Fmt Attr PSize PFree /dev/sda2 vg_rhel01 lvm2 a-- 7.51g 0 /dev/sdb1 vg_rhel01 lvm2 a-- 4.99g 0 /dev/sdc lvm2 a-- 2.00g 2.00g
所述PVS命令最初用于显示物理卷和卷组之间的关系。执行vgreduce命令后,我们使用pvs命令验证物理卷/dev/sdc
是否不再附加到卷组vg_rhel01
创建逻辑卷(lvcreate)
要在现有卷组上创建逻辑卷,请使用命令lvcreate。
[root@rhel01a ~]# lvcreate -n lv01 -l 100%VG vg01 Logical volume "lv01" created
上面的示例将在卷组(VG)vg01上创建一个名为lv01的逻辑卷(LV)。我们还指定了逻辑卷应利用卷组(100%VG)中的 所有可用空间
创建具有指定大小的逻辑卷(lvcreate)
在以下示例中,命令lvcreate用于创建新的逻辑卷。这次,我们将从卷组中指定要使用的空间量。在该示例中,我们将从卷组中分配1GB的空间。
[root@rhel01a ~]# pvs PV VG Fmt Attr PSize PFree /dev/sda2 vg_rhel01 lvm2 a-- 7.51g 0 /dev/sdb1 vg_rhel01 lvm2 a-- 4.99g 0 /dev/sdc vg01 lvm2 a-- 2.00g 2.00g [root@rhel01a ~]# lvcreate -n lv01 -L1G vg01 Logical volume "lv01" created [root@rhel01a ~]# pvs PV VG Fmt Attr PSize PFree /dev/sda2 vg_rhel01 lvm2 a-- 7.51g 0 /dev/sdb1 vg_rhel01 lvm2 a-- 4.99g 0 /dev/sdc vg01 lvm2 a-- 2.00g 1020.00m
在上面的示例中,我们可以看到最初有2GB的空间分配给卷组vg01。然后,我们执行的命令:
使用lvcreate -n lv01上-L1G VG01 该命令将创建一个名为逻辑卷(LV)lv01上,拥有1GB的卷组(VG)的分配VG01
使用lvextend向文件系统添加空间
要为现有文件系统增加空间,请使用命令lvextend。在下面的示例中,我们可以看到存在一个名为testfs的文件系统,当前具有924MB的可用空间。在添加空间之前,您必须验证逻辑卷可用的空间。要查看文件系统当前的空间分配,我们使用df命令。要查看可用空间,我们可以执行命令pvs。在下面的示例中,我们可以看到卷组vg01中有1020MB的可用空间。
[root@rhel01a /]# df -h /testfs Filesystem Size Used Avail Use% Mounted on /dev/mapper/vg01-lv01 1008M 34M 924M 4% /testfs [root@rhel01a /]# pvs PV VG Fmt Attr PSize PFree /dev/sda2 vg_rhel01 lvm2 a-- 7.51g 0 /dev/sdb1 vg_rhel01 lvm2 a-- 4.99g 0 /dev/sdc vg01 lvm2 a-- 2.00g 1020.00m [root@rhel01a /]# lvextend /dev/vg01/lv01 -L+1000M -r Extending logical volume lv01 to 1.98 GiB Logical volume lv01 successfully resized resize2fs 1.41.12 (17-May-2010) Filesystem at /dev/mapper/vg01-lv01 is mounted on /testfs; on-line resizing required old desc_blocks = 1, new_desc_blocks = 1 Performing an on-line resize of /dev/mapper/vg01-lv01 to 518144 (4k) blocks. The filesystem on /dev/mapper/vg01-lv01 is now 518144 blocks long.
命令lvextend在的/dev/VG01/lv01上-L + 1000M -r用于增加由1000MB逻辑卷的大小。该-r选项被指定,因为这将在网上进行文件系统的大小调整。
现在,当我们使用df命令时,我们可以看到文件系统的大小已增加。
[root@rhel01a /]# df -h testfs/ Filesystem Size Used Avail Use% Mounted on /dev/mapper/vg01-lv01 2.0G 34M 1.9G 2% /testfs
使用lvextend指定文件系统的大小
如果您想指定文件系统的大小,我们可以使用选项-L。然后,我们可以在此处指定所需的大小(MB/GB)。在下面的示例中,我们将指定文件系统应使用的大小为1.5GB。当前只有435MB的空间可用于文件系统testfs
[root@rhel01a /]# df -h /testfs/ Filesystem Size Used Avail Use% Mounted on /dev/mapper/vg01-lv01 492M 33M 435M 8% /testfs [root@rhel01a /]# lvextend /dev/vg01/lv01 -L1.5GB -r Extending logical volume lv01 to 1.50 GiB Logical volume lv01 successfully resized resize2fs 1.41.12 (17-May-2010) Filesystem at /dev/mapper/vg01-lv01 is mounted on /testfs; on-line resizing required old desc_blocks = 1, new_desc_blocks = 1 Performing an on-line resize of /dev/mapper/vg01-lv01 to 393216 (4k) blocks. The filesystem on /dev/mapper/vg01-lv01 is now 393216 blocks long.
减少文件系统的大小(lvreduce)
为了减小文件系统的大小,可以使用lvreduce命令来更改基础逻辑卷的大小。 警告请谨慎使用此命令,因为如果收缩文件系统,可能会丢失数据。
在下面的示例中,我们将使用命令lvreduce /dev/vg01/lv01 -L500M -r
[root@rhel01a /]# df -h /testfs/ Filesystem Size Used Avail Use% Mounted on /dev/mapper/vg01-lv01 1.5G 34M 1.4G 3% /testfs [root@rhel01a /]# lvreduce /dev/vg01/lv01 -L500M -r Do you want to unmount "/testfs"? [Y|n] y fsck from util-linux-ng 2.17.2 /dev/mapper/vg01-lv01: 11/98304 files (9.1% non-contiguous), 14756/393216 blocks resize2fs 1.41.12 (17-May-2010) Resizing the filesystem on /dev/mapper/vg01-lv01 to 128000 (4k) blocks. The filesystem on /dev/mapper/vg01-lv01 is now 128000 blocks long. Reducing logical volume lv01 to 500.00 MiB Logical volume lv01 successfully resized [root@rhel01a /]# df -h testfs/ Filesystem Size Used Avail Use% Mounted on /dev/mapper/vg01-lv01 492M 33M 435M 8% /testfs
将文件系统减少指定数量
在以下示例中,我们将通过以下方式指定减小文件系统大小的大小:
[root@rhel01a /]# df -h /testfs/ Filesystem Size Used Avail Use% Mounted on /dev/mapper/vg01-lv01 492M 33M 435M 8% /testfs [root@rhel01a /]# lvreduce /dev/vg01/lv01 -L-235M -r Rounding size to boundary between physical extents: 232.00 MiB Do you want to unmount "/testfs"? [Y|n] y fsck from util-linux-ng 2.17.2 /dev/mapper/vg01-lv01: 11/32768 files (9.1% non-contiguous), 10449/128000 blocks resize2fs 1.41.12 (17-May-2010) Resizing the filesystem on /dev/mapper/vg01-lv01 to 68608 (4k) blocks. The filesystem on /dev/mapper/vg01-lv01 is now 68608 blocks long. Reducing logical volume lv01 to 268.00 MiB Logical volume lv01 successfully resized [root@rhel01a /]# df -h /testfs/ Filesystem Size Used Avail Use% Mounted on /dev/mapper/vg01-lv01 262M 33M 217M 14% /testfs