linux lvm管理基础教程
linux lvm管理基础教程
本人是在redhat7.x系统上亲测lvm管理功能,至于文中所受的CentOS 6 没有亲自试过。
本文来自:
https://geekpeek.net/lvm-physical-volume-management/ (pv)
https://geekpeek.net/lvm-volume-group-management/ (vg)
https://geekpeek.net/lvm-logical-volume-management/ ( lv)
因为是百度直译过来的,所以很多地方不理解,具体请查看原文。
LVM快速理解通道:
在计算机存储中,逻辑卷管理或LVM提供了一种在大容量存储设备上分配空间的方法,该方法比传统的分区方案更灵活。尤其是,卷管理器可以连接,条纹一起或以其它方式结合分区成较大的虚拟的,管理员可以重新大小或移动,从而可能在不中断系统使用。
如LVM设计方案中所见,物理卷(PV)是LVM的底层。第二层是卷组(VG),最后的第三层是逻辑卷(LV)。首先,我们需要将硬盘添加到物理卷,然后我们将其添加到卷组。从卷组我们创建逻辑卷,我们可以在其上创建文件系统。
- 第1部分 - LVM - CentOS 6上的物理卷管理
- 第2部分 - LVM - CentOS 6上的卷组管理
- 第3部分 - LVM - CentOS 6上的逻辑卷管理
在这篇文章中
- 我们将学习如何创建,删除和移动物理卷(PV)。我们将学习如何准备要添加到卷组的物理卷。
- 我们将学习如何创建,删除,扩展,缩小,重命名,合并,拆分和更改卷组(VG)。我们将学习如何为逻辑卷准备卷组。
- 我们将学习如何使用文件系统调整大小来显示,创建和扩展,减少文件系统大小调整,调整大小,重命名和删除逻辑卷(LV)。
下图是基本的设计方案:
logical_volume 逻辑卷 (爷爷)
volume-group 卷组 (父亲)
physical-volume 物理卷 (儿子)
一、linux 下物理卷操作
1.1 显示物理卷
[root@despotic /]# pvdisplay WARNING: Device for PV Gvq9YV-oG4U-sLja-GEeh-CyQm-jUfZ-TssPji not found or rejected by a filter. --- Physical volume --- PV Name /dev/sda2 VG Name rhel PV Size <29.00 GiB / not usable 3.00 MiB Allocatable yes PE Size 4.00 MiB Total PE 7423 Free PE 1 Allocated PE 7422 PV UUID AnzTXd-H3Zb-wEa-HVxU-S0HS-y8Z-BtLBSS 我们还可以使用“ pvscan ”或“ pvs”命令显示物理卷,但是我们看到输出有点不同 - 使用您最喜欢的那个: [root@despotic /]# pvscan WARNING: Device for PV Gvq9YV-oG4U-sLja-GEeh-CyQm-jUfZ-TssPji not found or rejected by a filter. PV /dev/sda2 VG rhel lvm2 [<29.00 GiB / 4.00 MiB free] Total: 1 [<29.00 GiB] / in use: 1 [<29.00 GiB] / in no VG: 0 [0 ] [root@despotic /]# pvs WARNING: Device for PV Gvq9YV-oG4U-sLja-GEeh-CyQm-jUfZ-TssPji not found or rejected by a filter. PV VG Fmt Attr PSize PFree /dev/sda2 rhel lvm2 a-- <29.00g 4.00m [root@despotic /]#
我们看到目前只存在一种现有的PV。此PV称为/dev/sda2,是PV,用于保存系统根和交换分区。使用“ pvdisplay ”命令,我们可以获得额外的信息 - Total PE,Free PE和Allocated PE。这是物理范围。许多物理范围构建物理卷。
1.2 将硬盘添加到物理卷
我们使用“ pvcreate /dev/harddisk”命令将硬盘添加到物理卷。它非常简单,不需要额外的参数。让我们看一个向PV添加/dev/sdb硬盘的示例:
[root@despotic ~]# pvcreate /dev/sdb Physical volume "/dev/sdb" successfully created.
我们可以看到物理卷已成功创建。让我们再次使用“pvdisplay”检查:
[root@despotic ~]# pvdisplay WARNING: Device for PV Gvq9YV-oG4U-sLja-GEeh-CyQm-jUfZ-TssPji not found or rejected by a filter. --- Physical volume --- PV Name /dev/sda2 VG Name rhel PV Size <29.00 GiB / not usable 3.00 MiB Allocatable yes PE Size 4.00 MiB Total PE 7423 Free PE 1 Allocated PE 7422 PV UUID AnzTXd-H3Zb-wEa-HVxU-S0HS-y8Z-BtLBSS "/dev/sdb" is a new physical volume of "1.00 GiB" --- NEW Physical volume --- PV Name /dev/sdb VG Name PV Size 1.00 GiB Allocatable NO PE Size 0 Total PE 0 Free PE 0 Allocated PE 0 PV UUID bkXJBo-bUt-b0L-qJ0E-tJIs-fHVB-mh1Ue3
正如我们所说,我们还可以使用“ pvscan ”和“ pvs ”命令检查PV状态:
[root@despotic ~]# pvscan PV /dev/sda2 VG rhel lvm2 [<29.00 GiB / 4.00 MiB free] PV /dev/sdb lvm2 [1.00 GiB] Total: 2 [<30.00 GiB] / in use: 1 [<29.00 GiB] / in no VG: 1 [1.00 GiB] [root@despotic ~]# pvs PV VG Fmt Attr PSize PFree /dev/sda2 rhel lvm2 a-- <29.00g 4.00m /dev/sdb lvm2 --- 1.00g 1.00g
我们看到,/dev/sdbPV已创建,但不可分配。运行“pvscan”命令为我们提供了1GB空间(无VG(卷组))的信息 - 这是不可分配的原因。
1.3 删除物理卷
我们可以使用“ pvremove”命令删除物理卷。移除PV时应小心。在将PV从系统中移除之前,请确保没有为PV分配物理范围!您可以使用“ pvmove ”命令执行此操作。
如果您删除带有文件系统的PV,您将丢失/破坏数据!我将在另一篇文章中介绍如何做到这一点。
[root@despotic ~]# pvremove /dev/sdb Labels on physical volume "/dev/sdb" successfully wiped. [root@despotic ~]# pvscan PV /dev/sda2 VG rhel lvm2 [<29.00 GiB / 4.00 MiB free] Total: 1 [<29.00 GiB] / in use: 1 [<29.00 GiB] / in no VG: 0 [0 ]
正如我们所看到的,我们成功删除了我们添加的所有其他物理卷。
1.4 移动分配的物理范围(不会做)
“pvmove ”命令允许您将SourcePhysicalVolume上分配的物理盘区(PE)移动到一个或多个其他物理卷(PV)。当您想要移除某些PV但是必须将所有数据移离它时,这很方便。 要将/dev/sdb上任何逻辑卷的所有逻辑扩展区移动到卷组中其他位置的可用物理扩展区,请提供详细的运行时信息,请使用命令:
[root@foo ~]# pvmove -v /dev/sdc Finding volume group "geekpeek" Archiving volume group "geekpeek" metadata (seqno 14). Creating logical volume pvmove0 Moving 129 extents of logical volume geekpeek/LogVol01 Found volume group "geekpeek" activation/volume_list configuration setting not defined: Checking only host tags for geekpeek/LogVol01 Updating volume group metadata Found volume group "geekpeek" Found volume group "geekpeek" Creating geekpeek-pvmove0 Loading geekpeek-pvmove0 table (253:3) Loading geekpeek-LogVol01 table (253:2) Suspending geekpeek-LogVol01 (253:2) with device flush Suspending geekpeek-pvmove0 (253:3) with device flush Found volume group "geekpeek" activation/volume_list configuration setting not defined: Checking only host tags for geekpeek/pvmove0 Resuming geekpeek-pvmove0 (253:3) Found volume group "geekpeek" Loading geekpeek-pvmove0 table (253:3) Suppressed geekpeek-pvmove0 (253:3) identical table reload. Resuming geekpeek-LogVol01 (253:2) Creating volume group backup "/etc/lvm/backup/geekpeek" (seqno 15). Checking progress before waiting every 15 seconds /dev/sdc: Moved: 0.0% /dev/sdc: Moved: 78.3% /dev/sdc: Moved: 100.0% Found volume group "geekpeek" Found volume group "geekpeek" Loading geekpeek-LogVol01 table (253:2) Loading geekpeek-pvmove0 table (253:3) Suspending geekpeek-LogVol01 (253:2) with device flush Suspending geekpeek-pvmove0 (253:3) with device flush Found volume group "geekpeek" Resuming geekpeek-pvmove0 (253:3) Found volume group "geekpeek" Resuming geekpeek-LogVol01 (253:2) Found volume group "geekpeek" Removing geekpeek-pvmove0 (253:3) Removing temporary pvmove LV Writing out final volume group after pvmove Creating volume group backup "/etc/lvm/backup/geekpeek" (seqno 17).
使用“pvmove -v /dev/sdc”,我们将所有已分配的PE从/dev/sdc移动到另一个(空闲)物理卷。
只有现在我们才能安全地从我们的系统中删除名为/ dev / sdc的PV(preove)。
二、卷组操作
2.1 显示卷组
[root@despotic ~]# vgdisplay --- Volume group --- VG Name rhel System ID Format lvm2 Metadata Areas 1 Metadata Sequence No 8 VG Access read/write VG Status resizable MAX LV 0 Cur LV 7 Open LV 7 Max PV 0 Cur PV 1 Act PV 1 VG Size <29.00 GiB PE Size 4.00 MiB Total PE 7423 Alloc PE / Size 7422 / 28.99 GiB Free PE / Size 1 / 4.00 MiB VG UUID bGwqky-EWNn-Mq8U-ZusG-hIPn-Zei6-BU9H2T
我们还可以使用“vgscan”或“vgs”命令显示 卷组,但是我们看到输出有点不同-在下面的示例中,我将使用“vgdisplay”,因为 它为我提供了最多信息:
[root@despotic ~]# vgs VG #PV #LV #SN Attr VSize VFree rhel 1 7 0 wz--n- <29.00g 4.00m [root@despotic ~]# vgscan Reading volume groups from cache. Found volume group "rhel" using metadata type lvm2
我们看到目前只有一个现有的卷组。此VG称为rhel,是VG,用于保存系统根和交 换分区。使用“ vgdisplay”命令,我们可以获得额外的信息VG大小,PE大小,总PE ,......这是物理范围。许多物理范围构建物理卷。
2.2 将物理卷添加到卷组
首先创建一个物理卷
[root@despotic ~]# pvcreate /dev/sdb Physical volume "/dev/sdb" successfully created. [root@despotic ~]# pvs PV VG Fmt Attr PSize PFree /dev/sda2 rhel lvm2 a-- <29.00g 4.00m /dev/sdb lvm2 --- 1.00g 1.00g
将物理卷添加到卷组
[root@despotic ~]# vgcreate sunvg /dev/sdb Volume group "sunvg" successfully created [root@despotic ~]# vgdisplay --- Volume group --- VG Name sunvg System ID Format lvm2 Metadata Areas 1 Metadata Sequence No 1 VG Access read/write VG Status resizable MAX LV 0 Cur LV 0 Open LV 0 Max PV 0 Cur PV 1 Act PV 1 VG Size 1020.00 MiB PE Size 4.00 MiB Total PE 255 Alloc PE / Size 0 / 0 Free PE / Size 255 / 1020.00 MiB VG UUID YI70Ki-htIg-JRk9-M9CJ-VHad-TgXn-8kECDU
我们可以看到VG已成功创建。我们还可以看到“sunvg”VG的完整状态 VG Size,总PE,PE尺寸,......
2.3 扩展卷组
我们可以使用“vgextend”命令扩展卷组。简单的语法是“ vgextend name /dev/harddisk”。
通过扩展VG,您可以添加PV并扩展VG的大小。在我们的示例中,我们将通过添加/dev/sdc PV 将名为“ sun ”的VG 从1GB扩展到2GB
[root@despotic ~]# vgextend sunvg /dev/sdc WARNING: ext4 signature detected on /dev/sdc at offset 1080. Wipe it? [y/n]: y Wiping ext4 signature on /dev/sdc. Physical volume "/dev/sdc" successfully created. Volume group "sunvg" successfully extended [root@despotic ~]# vgdisplay --- Volume group --- VG Name sunvg System ID Format lvm2 Metadata Areas 2 Metadata Sequence No 2 VG Access read/write VG Status resizable MAX LV 0 Cur LV 0 Open LV 0 Max PV 0 Cur PV 2 Act PV 2 VG Size 1.99 GiB PE Size 4.00 MiB Total PE 510 Alloc PE / Size 0 / 0 Free PE / Size 510 / 1.99 GiB VG UUID HfRecO-9b2Y-4WqO-FJZv-2DoB-Odfq-DAbbhy
2.4 裁剪卷组
我们可以使用“vgreduce”命令减少卷组。
简单的语法是“vgreduce name /dev/harddisk”。通过降低VG,您可以从中移除PV并降低VG的尺寸。在我们的示例 中,我们将通过删除/ dev / sdd PV 将称为“ geekpeek ”的VG从2GB减少到1GB:
[root@despotic ~]# vgreduce sunvg /dev/sdc Removed "/dev/sdc" from volume group "sunvg" [root@despotic ~]# vgdisplay --- Volume group --- VG Name sunvg System ID Format lvm2 Metadata Areas 1 Metadata Sequence No 3 VG Access read/write VG Status resizable MAX LV 0 Cur LV 0 Open LV 0 Max PV 0 Cur PV 1 Act PV 1 VG Size 1020.00 MiB PE Size 4.00 MiB Total PE 255 Alloc PE / Size 0 / 0 Free PE / Size 255 / 1020.00 MiB VG UUID HfRecO-9b2Y-4WqO-FJZv-2DoB-Odfq-DAbbhy
2.5 拆分卷组
我们可以使用“vgsplit”命令拆分Volume Group.
简单的语法是“vgsplit name newname/dev/harddisk”. 通过拆分VG,您可以从中移除PV并降低VG的大小.。在我们的示例中,我们将拆分称为“sunvg”的VG并创建一个名为“runvg”的新VG
首先扩展一下卷组,保证可以拆分出来
[root@despotic ~]# vgextend sunvg /dev/sdc Volume group "sunvg" successfully extended [root@despotic ~]# vgs VG #PV #LV #SN Attr VSize VFree rhel 1 7 0 wz--n- <29.00g 4.00m sunvg 2 0 0 wz--n- 1.99g 1.99g
然后进行拆分
[root@despotic ~]# vgsplit sunvg runvg /dev/sdc New volume group "runvg" successfully split from "sunvg" [root@despotic ~]# vgdisplay --- Volume group --- VG Name sunvg System ID Format lvm2 Metadata Areas 1 Metadata Sequence No 4 VG Access read/write VG Status resizable MAX LV 0 Cur LV 0 Open LV 0 Max PV 0 Cur PV 1 Act PV 1 VG Size 1020.00 MiB PE Size 4.00 MiB Total PE 255 Alloc PE / Size 0 / 0 Free PE / Size 255 / 1020.00 MiB VG UUID MPDOtM-IAYu-kQSA-AL7m-Jq4t-3dKY-AGbjdt --- Volume group --- VG Name runvg System ID Format lvm2 Metadata Areas 1 Metadata Sequence No 2 VG Access read/write VG Status resizable MAX LV 0 Cur LV 0 Open LV 0 Max PV 0 Cur PV 1 Act PV 1 VG Size 1020.00 MiB PE Size 4.00 MiB Total PE 255 Alloc PE / Size 0 / 0 Free PE / Size 255 / 1020.00 MiB VG UUID 3r2F6u-wud4-4NBA-k17f-BdYy-R7cl-u5nKzy
2.6 合并卷组
在下一步中,我们将拆分的卷组(VG)合并在一起。我们可以将VG与vgmerge命令合并。简单的语法是"vgmerge name1 name2"
首先查看一下当前的卷组runvg,sunvg
[root@despotic ~]# vgs VG #PV #LV #SN Attr VSize VFree rhel 1 7 0 wz--n- <29.00g 4.00m runvg 1 0 0 wz--n- 1020.00m 1020.00m sunvg 1 0 0 wz--n- 1020.00m 1020.00m
然后对runvg和sunvg进行合并,合并成功之后就剩下一个runvg,但是同时runvg的容量由1G改变为了2G
[root@despotic ~]# vgmerge runvg sunvg Volume group "sunvg" successfully merged into "runvg" [root@despotic ~]# vgs VG #PV #LV #SN Attr VSize VFree rhel 1 7 0 wz--n- <29.00g 4.00m runvg 2 0 0 wz--n- 1.99g 1.99g [root@despotic ~]# vgdisplay --- Volume group --- VG Name runvg System ID Format lvm2 Metadata Areas 2 Metadata Sequence No 2 VG Access read/write VG Status resizable MAX LV 0 Cur LV 0 Open LV 0 Max PV 0 Cur PV 2 Act PV 2 VG Size 1.99 GiB PE Size 4.00 MiB Total PE 510 Alloc PE / Size 0 / 0 Free PE / Size 510 / 1.99 GiB VG UUID Bb77hr-MK5E-TXSX-anqL-aQkv-XMwn-lyUUxl
2.7 更改卷组
我们可以使用“vgchange”命令更改卷组参数。简单的语法是“vgchange name-parameter value”。
通过更改VG,您可以更改VG的参数有关详细信息,请查看“vgchange -help”。在我们的示例中,我们将更改名为“runvg”的VG的PE大小:
[root@despotic ~]# vgchange runvg -s 8144KB Physical Extent size must be a multiple of 128.00 KiB when not a power of 2. 物理范围大小必须是128 Kib的倍数,而不是2的幂。 [root@despotic ~]# vgchange runvg -s 8192KB New size 2088960 for /dev/sdc not an exact number of new extents. 新的大小为2088960 /DEV/SDC的新的大小不是新数量的确切数量。 [root@despotic ~]# vgdisplay --- Volume group --- VG Name runvg System ID Format lvm2 Metadata Areas 2 Metadata Sequence No 2 VG Access read/write VG Status resizable MAX LV 0 Cur LV 0 Open LV 0 Max PV 0 Cur PV 2 Act PV 2 VG Size 1.99 GiB PE Size 4.00 MiB Total PE 510 Alloc PE / Size 0 / 0 Free PE / Size 510 / 1.99 GiB VG UUID Bb77hr-MK5E-TXSX-anqL-aQkv-XMwn-lyUUxl 如上,此时依旧没有改变成功 [root@despotic ~]# vgchange runvg -s 2048KB Volume group "runvg" successfully changed [root@despotic ~]# vgdisplay --- Volume group --- VG Name runvg System ID Format lvm2 Metadata Areas 2 Metadata Sequence No 3 VG Access read/write VG Status resizable MAX LV 0 Cur LV 0 Open LV 0 Max PV 0 Cur PV 2 Act PV 2 VG Size 1.99 GiB PE Size 2.00 MiB Total PE 1020 Alloc PE / Size 0 / 0 Free PE / Size 1020 / 1.99 GiB VG UUID Bb77hr-MK5E-TXSX-anqL-aQkv-XMwn-lyUUxl
在这里,我们将他调小,可以看到PE Size 已然修改成功
2.8 重命名卷组
我们可以使用“vgrename”命令重命名Volume Group。简单的语法是“vgrename name1 name2”
在我们的实例中,我们将名为“runvg”的VG重命名为“sunvg”
[root@despotic ~]# vgs VG #PV #LV #SN Attr VSize VFree rhel 1 7 0 wz--n- <29.00g 4.00m runvg 2 0 0 wz--n- 1.99g 1.99g [root@despotic ~]# vgrename runvg sunvg Volume group "runvg" successfully renamed to "sunvg" [root@despotic ~]# vgdisplay --- Volume group --- VG Name sunvg System ID Format lvm2 Metadata Areas 2 Metadata Sequence No 4 VG Access read/write VG Status resizable MAX LV 0 Cur LV 0 Open LV 0 Max PV 0 Cur PV 2 Act PV 2 VG Size 1.99 GiB PE Size 2.00 MiB Total PE 1020 Alloc PE / Size 0 / 0 Free PE / Size 1020 / 1.99 GiB VG UUID Bb77hr-MK5E-TXSX-anqL-aQkv-XMwn-lyUUxl
2.9 删除卷组
我们可以使用“vgremove”命令删除卷组。简单的语法是“vgremove name”
在我们的实例中,我们将删除名为“sunvg”的卷组
[root@despotic ~]# vgremove sunvg Volume group "sunvg" successfully removed [root@despotic ~]# vgs VG #PV #LV #SN Attr VSize VFree rhel 1 7 0 wz--n- <29.00g 4.00m [root@despotic ~]# vgdisplay --- Volume group --- VG Name rhel System ID Format lvm2 Metadata Areas 1 Metadata Sequence No 8 VG Access read/write VG Status resizable MAX LV 0 Cur LV 7 Open LV 7 Max PV 0 Cur PV 1 Act PV 1 VG Size <29.00 GiB PE Size 4.00 MiB Total PE 7423 Alloc PE / Size 7422 / 28.99 GiB Free PE / Size 1 / 4.00 MiB VG UUID bGwqky-EWNn-Mq8U-ZusG-hIPn-Zei6-BU9H2T
已经看不到runvg
在管理卷组之前,要对逻辑卷进行适当的重新配置!如果没有,你可以松开或整理你的数据!
Before you manage your Volume Groups make appropriate reconfiguration of the Logical Volumes! If not, you can loose or corrput your data!
三、linux 下逻辑卷操作
3.1 显示逻辑卷
我们可以使用“ lvdisplay ”命令在系统上显示所有逻辑卷(LV)
[root@despotic ~]# lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert sunlv sunvg -wi-a----- 500.00m [root@despotic ~]# lvscan ACTIVE '/dev/sunvg/sunlv' [500.00 MiB] inherit [root@despotic ~]# lvdisplay --- Logical volume --- LV Path /dev/sunvg/sunlv LV Name sunlv VG Name sunvg LV UUID 9bMVAo-GIl8-EatT-OuGs-KPbK-nqhE-QLZ8O2 LV Write Access read/write LV Creation host, time despotic, 2018-12-05 11:37:58 +0800 LV Status available # open 0 LV Size 500.00 MiB Current LE 125 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 8192 Block device 253:7
3.2 创建逻辑卷
要创建新的逻辑卷(LV),我们首先必须检查所需的卷组(VG)以获得自由支配的物理范围(PE)自由的PE。
To create new Logical Volume (LV) we first have to check the desired Volume Group (VG) for free Physical Extent (PE) – Free PE’s.
检查卷组的可用空间
[root@despotic ~]# vgdisplay --- Volume group --- VG Name sunvg System ID Format lvm2 Metadata Areas 2 Metadata Sequence No 4 VG Access read/write VG Status resizable MAX LV 0 Cur LV 0 Open LV 0 Max PV 0 Cur PV 2 Act PV 2 VG Size 1.99 GiB PE Size 4.00 MiB Total PE 510 Alloc PE / Size 0 / 0 Free PE / Size 510 / 1.99 GiB VG UUID kl3yih-3Twc-YaqS-HDSF-0JCs-JDIQ-eCcRkh
可以清晰的看见卷组sunvg有1.99G的可用空间使用,我们可以使用lvcreate创建逻辑卷
简单的命令为“lvcreate -n lvname -L Size(500B/M/G/T) vgname”
[root@despotic ~]# lvcreate -n sunlv -L 500M sunvg Logical volume "sunlv" created.
创建完成,可以看见新加了大小为500M的一个逻辑卷,所属卷组为sunvg
[root@despotic ~]# lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert sunlv sunvg -wi-a----- 500.00m [root@despotic ~]# lvscan ACTIVE '/dev/sunvg/sunlv' [500.00 MiB] inherit [root@despotic ~]# lvdisplay --- Logical volume --- LV Path /dev/sunvg/sunlv LV Name sunlv VG Name sunvg LV UUID TV6RJ3-c7N2-yeFp-rbfs-73E6-Cu1f-t60PWk LV Write Access read/write LV Creation host, time despotic, 2018-12-05 11:52:04 +0800 LV Status available # open 0 LV Size 500.00 MiB Current LE 125 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 8192 Block device 253:7
查看一下sunvg卷组所剩余的容量
[root@despotic ~]# vgs VG #PV #LV #SN Attr VSize VFree sunvg 2 1 0 wz--n- 1.99g 1.50g
而如果我们使用的参数为-l,而不是-L,那么此时可以可以这样理解 ,要查看更详细的内容,请使用lvcreate --help
其他部分创建方式
- 从sunvg中拿出20个单位来给runlv,一个单位大小为4G
lvcreate -n runlv -l 20 sunvg
- 从sunvg中拿出一半给rsunlv,大小为1024
lvcreate -l 50%VG -n rsunlv sunvg
- 在卷组sunvg中创建大小为20M的逻辑卷,并命名为srunlv
lvcreate -L 20 -n srunlv sunvg
- 将卷组sunvg中剩余的空间全部分配给olv
lvcreate --name olv -l 100%FREE sunvg
我们看一下刚才创建的卷组
[root@despotic ~]# lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert olv sunvg -wi-a----- 420.00m rsunlv sunvg -wi-a----- 1020.00m runlv sunvg -wi-a----- 80.00m srunlv sunvg -wi-a----- 20.00m sunlv sunvg -wi-a----- 500.00m
3.3 扩展逻辑卷
我们可以使用“lvextend”命令扩展逻辑卷。简单的语法是“lvextend -L +size /dev/vgname/lvname”
您还可以调整文件系统的大小,但需要添加-r参数“lvextend -L + size /dev/vgname/lvname -r”。
在我们的例子中,我们将把sunlv又500M扩容至1G(+500M)
当然,您首先要检查VG中是否有足够的空间来完成操作!
[root@despotic ~]# lvextend -L +500M /dev/sunvg/sunlv Size of logical volume sunvg/sunlv changed from 500.00 MiB (125 extents) to 1000.00 MiB (250 extents). Logical volume sunvg/sunlv successfully resized. [root@despotic ~]# lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert sunlv sunvg -wi-a----- 1000.00m
要自动调整LV和文件系统的大小,请使用-r参数!我们可以在安装时动态调整文件系统的大小!
[root@despotic ~]# lvextend -L +200M /dev/sunvg/sunlv -r fsadm: Cannot get FSTYPE of "/dev/mapper/sunvg-sunlv". Filesystem check failed.
提示文件系统检查失败。先进行格式化一下
[root@despotic ~]# mkfs.ext4 /dev/sunvg/sunlv mke2fs 1.42.9 (28-Dec-2013) 文件系统标签= OS type: Linux 块大小=4096 (log=2) 分块大小=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 64000 inodes, 256000 blocks 12800 blocks (5.00%) reserved for the super user 第一个数据块=0 Maximum filesystem blocks=262144000 8 block groups 32768 blocks per group, 32768 fragments per group 8000 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376 Allocating group tables: 完成 正在写入inode表: 完成 Creating journal (4096 blocks): 完成 Writing superblocks and filesystem accounting information: 完成
格式化完成,重新进行调整
[root@despotic ~]# lvextend -L +200M /dev/sunvg/sunlv -r fsck,来自 util-linux 2.23.2 /dev/mapper/sunvg-sunlv: clean, 11/64000 files, 8748/256000 blocks Size of logical volume sunvg/sunlv changed from 1000.00 MiB (250 extents) to 1.17 GiB (300 extents). Logical volume sunvg/sunlv successfully resized. resize2fs 1.42.9 (28-Dec-2013) Resizing the filesystem on /dev/mapper/sunvg-sunlv to 307200 (4k) blocks. The filesystem on /dev/mapper/sunvg-sunlv is now 307200 blocks long. [root@despotic ~]# lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert sunlv sunvg -wi-a----- 1.17g
3.4 裁剪逻辑卷
我们可以使用“lvreduce”命令来对逻辑卷进行裁剪.
简单的命令是“lvreduce -L -size /dev/vgname/lvname”.
您也可以调整文件系统的大小,但需要添 加-r参数.
简单的命令是“lvreduce -L -size /dev/vgname/lvname -r”
在我们的实例中,我们将sunlv由1.2G裁剪到1G(-200M),我们应该首先使用“lvchange” 停用我们的LV ,然后重新激活它:
[root@despotic ~]# lvchange -an /dev/sunvg/sunlv
这里我犯了一个错误,使用lvchange命令之后就不能进行补全了,得自己手动将路径敲出来
[root@despotic ~]# ls /dev/s sda sda2 sdc sg1 sg3 snapshot sr0 stdin sda1 sdb sg0 sg2 shm/ snd/ stderr stdout [root@despotic ~]# lvreduce -L -200M /dev/sunvg/sunlv Size of logical volume sunvg/sunlv changed from 1.17 GiB (300 extents) to 1000.00 MiB (250 extents). Logical volume sunvg/sunlv successfully resized. [root@despotic ~]# lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert sunlv sunvg -wi------- 1000.00m [root@despotic ~]# lvchange -ay /dev/sunvg/sunlv -----激活
要自动调整LV和文件系统的大小,请使用-r参数:
[root@despotic ~]# lvreduce -L -200M /dev/sunvg/sunlv -r fsck,来自 util-linux 2.23.2 /dev/mapper/sunvg-sunlv: clean, 11/64000 files, 8748/256000 blocks resize2fs 1.42.9 (28-Dec-2013) Resizing the filesystem on /dev/mapper/sunvg-sunlv to 204800 (4k) blocks. The filesystem on /dev/mapper/sunvg-sunlv is now 204800 blocks long. Size of logical volume sunvg/sunlv changed from 1000.00 MiB (250 extents) to 800.00 MiB (200 extents). Logical volume sunvg/sunlv successfully resized. [root@despotic ~]# lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert sunlv sunvg -wi-a----- 800.00m
3.5 调整逻辑卷大小
我们可以使用“lvresize”命令扩展和减少LV 。
减少LV的简单语法是“lvresize -L -size /dev/vgname/lvname”
再次调整文件系统的大小以在末尾添加-r。
扩展LV的简单语法是“lvresize -L + size /dev/vgname/lvname”
再次调整文件系统的大小以在末尾添加-r。
我们将称为“sunlv”的LV 从800M降低到300M,然后从300M扩展到1000M。
减少到300M
[root@despotic ~]# lvresize -L -500M /dev/sunvg/sunlv -r fsck,来自 util-linux 2.23.2 /dev/mapper/sunvg-sunlv: clean, 11/56000 files, 8120/204800 blocks resize2fs 1.42.9 (28-Dec-2013) Resizing the filesystem on /dev/mapper/sunvg-sunlv to 76800 (4k) blocks. The filesystem on /dev/mapper/sunvg-sunlv is now 76800 blocks long. Size of logical volume sunvg/sunlv changed from 800.00 MiB (200 extents) to 300.00 MiB (75 extents). Logical volume sunvg/sunlv successfully resized. [root@despotic ~]# lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert sunlv sunvg -wi-a----- 300.00m
增加到1000M
[root@despotic ~]# lvresize -L +700M /dev/sunvg/sunlv -r fsck,来自 util-linux 2.23.2 /dev/mapper/sunvg-sunlv: clean, 11/24000 files, 5860/76800 blocks Size of logical volume sunvg/sunlv changed from 300.00 MiB (75 extents) to 1000.00 MiB (250 extents). Logical volume sunvg/sunlv successfully resized. resize2fs 1.42.9 (28-Dec-2013) Resizing the filesystem on /dev/mapper/sunvg-sunlv to 256000 (4k) blocks. The filesystem on /dev/mapper/sunvg-sunlv is now 256000 blocks long. [root@despotic ~]# lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert sunlv sunvg -wi-a----- 1000.00m
3.6 重命名逻辑卷
我们可以使用“lvrename”命令重命名逻辑卷。
简单的语法是
“lvrename vgname /dev/vgname/lvname_old /dev/vgname/lvname_new ”。
在我们的例子中,我们将卷组“sunvg”中的“sunlv”重命名为“runlv”
[root@despotic ~]# lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert sunlv sunvg -wi-a----- 1000.00m [root@despotic ~]# lvrename sunvg /dev/sunvg/sunlv /dev/sunvg/runlv Renamed "sunlv" to "runlv" in volume group "sunvg" [root@despotic ~]# lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert runlv sunvg -wi-a----- 1000.00m
3.7 删除逻辑卷
您将删除的LV的所有数据都将丢失!
我们可以使用“lvremove”命令删除逻辑卷。
简单的语法是“lvremove /dev/vgname/lvname ”。
在我们的例子中,我们删除卷组sunvg中的runlv这个逻辑卷
首先停用LV,然后将其删除:
[root@despotic ~]# lvchange -an /dev/sunvg/runlv [root@despotic ~]# lvremove /dev/sunvg/runlv Logical volume "runlv" successfully removed [root@despotic ~]# lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert var rhel -wi-ao---- 6.00g
总结一下
如果您想添加一个逻辑卷,按照如下步骤做,即可成功
1、创建物理卷 ----- pvcreate /dev/sdb
2、创建卷组 ----- vgcreate sunvg /dev/sdb
3、创建逻辑卷 ----- lvcreate -n sunlv -L 500M sunvg
4、格式逻辑卷 ----- mkfs.ext4 /dev/sunvg/sunlv
5、挂载 ----- mount /dev/sunvg/sunlv /disk
[root@despotic ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/sunvg-sunlv 477M 2.3M 445M 1% /disk