逻辑卷管理LVM是一个万能的硬盘系统工具。无论是在Linux还是其他类似的系统上,都非常好用。传统分区使用固定大小的分区,调整大小非常麻烦。但是,LVM可以创建和管理“逻辑”卷,而不是直接使用物理硬盘。允许管理员灵活管理逻辑卷的扩缩容,操作简单,不会损坏存储的数据。随意向LVM添加新硬盘以直接扩展现有逻辑卷。LVM不需要重新启动来让内核知道分区的存在。LVM采用层次结构,如下图所示。在图的顶部,首先是实际的物理磁盘、它的分区和它上面的物理卷(PV)。一个或多个物理卷可用于创建卷组(VG)。然后可以基于卷组创建逻辑卷(LV)。只要卷组中有空闲空间,就可以任意创建逻辑卷。文件系统在逻辑卷上创建,然后可以由操作系统安装和访问。LVM测试说明本文将介绍如何在linux中创建和管理LVM卷。我们将分成两部分。第一部分,我们首先需要在一个硬盘上创建多个逻辑卷,然后挂载到/lvm-mount目录下。然后我们将调整创建的卷的大小。在第二部分,我们将从另一个硬盘添加额外的卷到LVM。准备磁盘分区使用fdisk创建磁盘分区。我们需要创建三个1G的分区。请注意,分区的大小不需要相同。此外,分区需要使用类型“8e”才能使它们可用于LVM。#fdisk/dev/sdbCommand(mforhelp):n##NewCommandactioneextendedpprimarypartition(1-4)p##PrimarypartitionPartitionnumber(1-4):1##Partitionnumber第一柱面(1-1044),default1):##回车使用默认1Lastcylinders,+cylindersor+size{K,M,G}(1-1044,default1044):+1G##SizeCommand(mforhelp):t##ChangetypeSelectedpartition1Hexcode(typeLtolistcodes):8e##LVMPartitioncodeChangedsystemtypeofpartition1to8e(LinuxLVM)重复上述操作创建其他两个分区。创建分区后,我们应该有类似于以下的输出:#fdisk-lDeviceBootStartEndBlocksIdSystem/dev/sdb111321060258+8eLinuxLVM/dev/sdb213326410602908eLinuxLVM/dev/sdb326539610602908eLinuxLVM准备物理卷(PV)新建的分区用来存放物理卷。LVM可以使用不同大小的物理卷。#pvcreate/dev/sdb1#pvcreate/dev/sdb2#pvcreate/dev/sdb3使用以下命令检查物理卷的创建。下面是输出的部分屏幕截图。“/dev/sdb2”是一个新的“1.01GiB”物理卷。#pvdisplay---NEWPhysicalvolume---PVName/dev/sdb2VGNamePVSize1.01GiBAllocatableNOPESize0TotalPE0FreePE0AllocatedPE0PVUUIDjszvzz-ENA2-g5Pd-irhV-T9wi-ZfA3-0xo092使用以下命令删除物理卷滚动。#pvremove/dev/sdb1Preparevolumegroup(VG)以下命令用于创建名为'volume-group1'的卷组,使用/dev/sdb1、/dev/sdb2和/dev/sdb3创建。#vgcreatevolume-group1/dev/sdb1/dev/sdb2/dev/sdb3使用以下命令验证卷组。#vgdisplay---Volumegroup---VGNamevolume-group1SystemIDFormatlvm2MetadataAreas3MetadataSequenceNo1VGAccessread/writeVGStatusresizableMAXLV0CurLV0OpenLV0MaxPV0CurPV3ActPV3VGSize3.02GiBPEMiocPESize4.00Size0/0FreePE/Size774/3.02GiBVGUUIDbwd2pS-fkAz-lGVZ-qc7C-TaKv-fFUC-IzGNBK从输出中,我们可以看到卷组使用量/总量。物理卷为卷组提供空间。只要这个卷组中有可用空间,我们就可以随意创建逻辑卷。使用以下命令删除卷组。#vgremovevolume-group1创建逻辑卷(LV)以下命令创建一个名为“1v1”的逻辑卷,大小为100MB。我们使用小分区来减少执行时间。该逻辑卷使用先前创建的卷组的空间。#lvcreate-L100M-nlv1volume-group1逻辑卷可以用lvdisplay命令查看。#lvdisplay---逻辑卷---LV名称/dev/volume-group1/lv1VG名称volume-group1LVUUIDYNQ1aa-QVt1-hEj6-ArJX-I1Q4-y1h1-OFEtlWLV写访问读/写LV状态可用#open0LV大小100.00MiBCurrentLE25Segments1AllocationinheritReadaheadsectorsauto-currentlysetto256Blockdevice253:2现在逻辑卷已经准备好了,我们可以像任何其他ext2/3/4分区一样格式化和挂载逻辑卷!#mkfs.ext4/dev/volume-group1/lv1#mkdir/lvm-mount#mount/dev/volume-group1/lv1/lvm-mount/挂载逻辑卷后,我们可以到挂载点/lvm-挂载/读写。要创建和挂载其他逻辑卷,我们重复该过程。***,使用lvremove我们可以删除逻辑卷。#umount/lvm-mount/#lvremove/dev/volume-group1/lv1扩展LVM卷调整逻辑卷大小的能力是LVM最有用的特性。本节讨论我们如何扩展现有的逻辑卷。接下来,我们将之前创建的逻辑卷“lv1”扩展到200MB。请注意,调整逻辑卷大小后,文件系统调整大小也需要匹配。这个额外的步骤会有所不同,具体取决于正在创建的文件系统的类型。在本文中,我们使用'lv1'来创建一个ext4类型的文件系统,所以这里的操作都是针对ext4文件系统的。(ext2/3文件系统也类似)。命令执行的顺序很重要。首先,我们卸载lv1卷#umount/lvm-mount/然后,将卷的大小设置为200M#lvresize-L200M/dev/volume-group1/lv1接下来,检查磁盘错误#e2fsck-f/dev/volume-group1/lv1执行如下命令扩容文件系统后,ext4信息更新。#resize2fs/dev/volume-group1/lv1现在,这个逻辑卷应该已经扩展到200MB了。我们检查LV的状态来验证。#lvdisplay---逻辑卷---LV名称/dev/volume-group1/lv1VG名称volume-group1LVUUID9RtmMY-0RIZ-Dq40-ySjU-vmrj-f1es-7rXBwaLV写访问读/写LV状态可用#open0LV大小200.00MiBCurrentLE50Segments1AllocationinheritReadaheadsectorsauto-currentlysetto256Blockdevice253:2现在可以重新挂载这个逻辑卷,这个方法也可以用于其他分区。缩减LVM卷本章介绍缩减LVM卷大小的方法。命令的顺序同样重要。此外,以下命令对ext2/3/4文件系统也有效。注意,如果减小逻辑卷大小的值小于存储数据的大小,则后面存储的数据会丢失。首先,卸载卷。#umount/dev/volume-group1/lv1然后检测磁盘错误。#e2fsck-f/dev/volume-group1/lv1接下来,缩小文件系统并更新ext4信息。#resize2fs/dev/volume-group1/lv1完成100M后,减少逻辑卷大小#lvresize-L100M/dev/volume-group1/lv1警告:将活动逻辑卷减少到100.00MiB这可能会破坏您的数据(文件系统等).)你真的要降低lv1吗?[y/n]:y将逻辑卷lv1减少到100.00MiB逻辑卷lv1成功调整大小***,验证调整后的逻辑卷大小。#lvdisplay---逻辑卷---LV名称/dev/volume-group1/lv1VG名称volume-group1LVUUID9RtmMY-0RIZ-Dq40-ySjU-vmrj-f1es-7rXBwaLV写访问读/写LV状态可用#open0LV大小100.00MiBCurrentLE25Segments1AllocationinheritReadaheadsectorsauto-currentlysetto256Blockdevice253:2扩展卷组本节将讨论扩展卷组和向卷组添加物理卷的方法。假设我们的卷组“volume-group1”已满,需要扩大。手头的硬盘(sdb)没有其他空闲分区了,所以我们又加了一块硬盘(sdc)。我们将看到如何将sdc分区添加到卷组以进行扩展。查看当前卷组状态#vgdisplayvolume-group1---Volumegroup---VGNamevolume-group1SystemIDFormatlvm2MetadataAreas3MetadataSequenceNo8VGAccessread/writeVGStatusresizableMAXLV0CurLV1OpenLV0MaxPV0CurPV3ActPV3VG2Size3GiBPE大小4.00MiBTotalPE774AllocPE/大小25/100.00MiBFreePE/大小749/2.93GiBVGUUIDbwd2pS-fkAz-lGVZ-qc7C-TaKv-fFUC-IzGNBK首先,我们创建一个2GB分区sdc1,类型LVM(8e),正如本教程前面提到的。#fdisk/dev/sdcCommand(mforhelp):nCommandactioneextendedpprimarypartition(1-4)pPartitionnumber(1-4):1Firstcylinder(1-1044,default1):Usingdefaultvalue1Lastcylinders,+cylindersor+size{K,M,G}(1-1044,default1044):+2GCommand(mforhelp):tSelectedpartition1Hexcode(typeLtolistcodes):8eChangedsystemtypeofpartition1to8e(LinuxLVM)命令(m寻求帮助):w分区表已被更改!然后,我们创建一个物理卷/dev/sdc1#pvcreate/dev/sdc1现在物理卷已经准备好了,我们可以简单地将它增加到卷组“volume-group1”上的现有卷。#vgextendvolume-group1/dev/sdc1使用vgdisplay验证(可以看到卷组大小增加了)。#vgdisplay---Volumegroup---VGNamevolume-group1SystemIDFormatlvm2MetadataAreas4MetadataSequenceNo9VGAccessread/writeVGStatusresizableMAXLV0CurLV1OpenLV0MaxPV0CurPV4ActPV4VGSize5.03PE1BMiocPESize2.07AllSize25/100.00MiBFreePE/Size1262/4.93GiBVGUUIDbwd2pS-fkAz-lGVZ-qc7C-TaKv-fFUC-IzGNBK请注意,虽然我们使用单个磁盘进行演示,但任何类型为“8e”的磁盘分区都可以用于扩展卷组。总而言之,LVM是用于创建和管理可变大小分区的非常强大的工具。在本文中,我们介绍了如何在LVM中创建和使用动态分区。我们还介绍了如何扩展/收缩逻辑卷和卷组,以及如何向LVM添加新磁盘。希望对你有帮助。via:http://xmodulo.com/2014/05/use-lvm-linux.html译者:Vic___校对:wxy
