如何通过添加新磁盘来增加Linux LVM的大小?
本文帮助我们向LVM(逻辑卷管理器)添加新磁盘,与常规磁盘分区相比,LVM的最大优势是它对“动态分区”的支持。您可以根据需要动态创建LVM卷并调整其大小(扩展或收缩)。LVM逻辑卷中的物理磁盘边界没有限制,因此您可以创建一个跨多个较小物理磁盘的大型LVM卷。这种灵活的分区功能使您可以随着磁盘使用量的不断变化而更有效地管理存储空间。
如果要将新磁盘添加到现有LVM卷以扩展其大小,则可以轻松完成此操作,以下是操作步骤-
组态
我们需要以root用户身份登录,然后运行fdisk来检查系统上的Linux是否检测到附加的新磁盘。
# fdisk -l Disk /dev/sda: 21.5 GB, 21474836480 bytes 255 heads, 63 sectors/track, 2610 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: 0x000c664e 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 2611 20458496 8e Linux LVM Disk /dev/sdb: 21.5 GB, 21474836480 bytes 255 heads, 63 sectors/track, 2610 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: 0x00000000 Disk /dev/sdc: 21.5 GB, 21474836480 bytes 255 heads, 63 sectors/track, 2610 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: 0x00000000 Disk /dev/mapper/VolGroup-lv_root: 18.8 GB, 18798870528 bytes 255 heads, 63 sectors/track, 2285 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: 0x00000000 Disk /dev/mapper/VolGroup-lv_swap: 2147 MB, 2147483648 bytes 255 heads, 63 sectors/track, 261 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: 0x00000000
在上面的命令中,我们找到了3个磁盘(/dev/sda,/dev/sdb,/dev/sdc)。LVM使用第一个磁盘(/dev/sda)来显示分区,而其他两个磁盘(/dev/sdb和/dev/sdc)未添加到LVM,并且磁盘上没有任何分区。
使用“lvs”命令检查LVM卷组和逻辑卷的可用性。
# lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert lv_root VolGroup -wi-ao---- 17.51g lv_swap VolGroup -wi-ao---- 2.00g
在该示例中,存在一个卷组(“lv”),并且在该卷组中创建了两个逻辑卷(“root”和“swap”)。
# df Filesystem 1K-blocks Used Available Use% Mounted on /dev/mapper/VolGroup-lv_root 17938864 1997688 15023264 12% / tmpfs 502384 0 502384 0% /dev/shm /dev/sda1 487652 41991 420061 10% /boot
根据df的输出,设备映射器将“根”逻辑卷映射到/dev/mapper/VolGroup-lv-root。
使用此信息,我将向您展示如何在下一步中将两个磁盘/dev/sdb和/dev/sdc添加到“根”逻辑卷。
在新磁盘上创建分区
第一步是在将每个新磁盘添加到LVM之前在每个新磁盘上创建一个分区。仅当您要将磁盘的仅一部分分配给LVM时,才需要执行此步骤。如果要将整个磁盘添加到LVM,则无需创建分区,并且可以跳过此步骤。
在新磁盘上创建物理卷
接下来,在每个新的磁盘分区(/dev/sdb1和/dev/sdc1)上创建一个物理卷。
# pvcreate /dev/sdb Physical volume "/dev/sdb" successfully created
这样,将第三个磁盘添加到物理卷。
# pvcreate /dev/sdc Physical volume "/dev/sdc" successfully created
使用lvmdiskscan,验证是否成功创建了物理卷。
#lvmdiskscan -l /dev/ram0 [ 16.00 MiB] /dev/root [ 17.51 GiB] /dev/ram1 [ 16.00 MiB] /dev/sda1 [ 500.00 MiB] /dev/VolGroup/lv_swap [ 2.00 GiB] /dev/ram2 [ 16.00 MiB] /dev/sda2 [ 19.51 GiB] LVM physical volume /dev/sdb [ 20.00 GiB] LVM physical volume /dev/sdc [ 20.00 GiB] LVM physical volume 2 disks 2 LVM physical volume whole disks 1 LVM physical volume
扩展现有逻辑卷
接下来,找到包含要扩展的逻辑卷的卷组,并通过向其添加新创建的物理卷来扩展该组。
在我们的示例中,“根”逻辑卷属于“VolGroup-lv”卷组。让我们添加一个/dev/sdb,而不是以下命令。
# vgextend yoda-vg /dev/sdb
卷组“VolGroup”成功扩展。要确认已添加或未运行该卷,请检查以下内容–
# vgs VG #PV #LV #SN Attr VSize VFree VolGroup 2 2 0 wz--n- 39.50g 20.00g # vgextend VolGroup /dev/sdc Volume group "VolGroup" successfully extended # vgs VG #PV #LV #SN Attr VSize VFree VolGroup 3 2 0 wz--n- 59.50g 39.99g
给定已调整大小的卷组,现在扩展“根”逻辑卷本身。
# lvextend -l+100%FREE /dev/VolGroup/lv_root Size of logical volume VolGroup/lv_root changed from 17.51 GiB (4482 extents) to 57.50 GiB (14720 extents). Logical volume lv_root successfully resized
上面的命令告诉“根”逻辑卷使用其卷组中的所有可用附加可用空间。请注意,/dev/VolGroup/lv_root是“根”卷映射到的设备。
最后一步是扩大在“根”卷中创建的文件系统。否则,文件系统将无法识别该卷中的其他可用空间。
# resize2fs -p /dev/VolGroup/lv_root resize2fs 1.41.12 (17-May-2010) Filesystem at /dev/VolGroup/lv_root is mounted on /; on-line resizing required old desc_blocks = 2, new_desc_blocks = 4 Performing an on-line resize of /dev/VolGroup/lv_root to 15073280 (4k) blocks. The filesystem on /dev/VolGroup/lv_root is now 15073280 blocks long.
该resize2fs命令支持EXT2调整/EXT3/EXT4文件系统。如果您扩展文件系统,它也支持在线调整大小。无需卸载文件系统。
此时,应将文件系统扩展为占据调整后的“根”逻辑卷的100%。
如果我们完成了上述步骤并添加了磁盘以增加卷数以扩展现有LVM,我们可以在不丢失数据的情况下增加空间,这将有助于管理员在停机期间管理其磁盘空间。