Linux之逻辑卷LV(挂载点)扩容教程

您所在的位置:网站首页 mount挂载教程 Linux之逻辑卷LV(挂载点)扩容教程

Linux之逻辑卷LV(挂载点)扩容教程

2023-08-16 19:19| 来源: 网络整理| 查看: 265

目录 前言1. 创建分区而不进行格式化1.1 `lsblk`查看本系统内所有磁盘及其分区信息1.2 `parted`查看磁盘分区类型与分区信息1.3 根据磁盘分区表类型使用`fdisk/gdisk`工具创建分区1.4 更新Linux磁盘分区表信息1.5 删除分区 2. 使用未格式化分区创建实体卷轴PV2.1 查看目前系统的PV状态2.2 使用未格式化分区创建PV2.3 再次查看文件系统的PV状态2.4 查看创建的PV详细信息 3. 将PV添加到卷轴群组VG3.1 查看所有VG状态3.2 确定需要扩容的LV及其所在的VG1)查看挂载点使用情况,定位需要扩容的挂载点2)查看需要扩容的挂载点所在磁盘分区及类型3)查看对应磁盘分区对应的LV4)查看对应的VG信息 3.3 添加新建的PV到需要扩容的VG中3.4 再次查看扩容后的VG状态 4. 给指定的LV扩容4.1 查看指定LV使用情况4.2 给指定LV扩容4.3 查看扩容后的LV使用情况4.4 查看扩容LV后挂载点文件系统使用情况4.5 增加挂载点对应文件系统容量1)查看指定挂载点文件系统容量2)对指定挂载点对应的文件系统进行扩容3)再次查看对应的挂载点文件系统容量至此就已经实现了指定LV(挂载点)的扩容 参考资料End~

前言

现在设置Linux挂载时,除了/boot启动项挂载点直接使用格式化后的物理分区进行挂载,其他分区一般都使用逻辑卷管理(Logical Volume Manager,LVM),即使用逻辑卷轴(Logical Volume,LV) 挂载文件路径,其最大的优点在于后期能够进行弹性扩容。本次主要演示如何使用磁盘剩余空间创建分区,进而对某逻辑卷轴LV(挂载点)进行扩容,挂载点扩容的前提是其挂载设备为逻辑卷轴LV类型。

扩展逻辑卷轴(Logical Volume,LV) 时,需要先使用未格式化的分区创建实体卷轴(Physical Volume, PV) ,然后再将其添加到卷轴群组(Volume Group, VG) 中,最后实现此VG对应的逻辑卷轴(Logical Volume,LV) 扩容。大致过程如下图所示:

大致过程

1. 创建分区而不进行格式化 1.1 lsblk查看本系统内所有磁盘及其分区信息 lsblk [root@localhost ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 20G 0 disk ├─sda1 8:1 0 200M 0 part /boot └─sda2 8:2 0 12G 0 part ├─centos-root 253:0 0 10G 0 lvm / └─centos-swap 253:1 0 2G 0 lvm [SWAP] sr0 11:0 1 1024M 0 rom 1.2 parted查看磁盘分区类型与分区信息 parted /dev/sda print # /dev/sda为需要创建分区的磁盘设备 [root@localhost ~]# parted /dev/sda print Model: VMware, VMware Virtual S (scsi) Disk /dev/sda: 21.5GB Sector size (logical/physical): 512B/512B Partition Table: msdos Disk Flags: Number Start End Size Type File system 标志 1 1049kB 211MB 210MB primary xfs 启动 2 211MB 13.1GB 12.9GB primary lvm

查看Partition Table一行的输出内容,其中msdos指的是MBR分区表,gpt指的是GPT分区表

1.3 根据磁盘分区表类型使用fdisk/gdisk工具创建分区

MBR分区表使用fdisk工具创建分区,GPT分区表使用gdisk工具创建分区。这里因为原有磁盘的分区表格式为MBR,因此此处使用fdisk来在指定磁盘上创建新分区。

fdisk /dev/sda 命令(输入 m 获取帮助):m 命令操作 a toggle a bootable flag b edit bsd disklabel c toggle the dos compatibility flag d delete a partition g create a new empty GPT partition table G create an IRIX (SGI) partition table l list known partition types m print this menu n add a new partition o create a new empty DOS partition table p print the partition table q quit without saving changes s create a new empty Sun disklabel t change a partition's system id u change display/entry units v verify the partition table w write table to disk and exit x extra functionality (experts only)

使用fdisk创建分区的过程总大致需要进行以下几个过程:

1)查看分区情况: 输入命令p

2)创建分区: 输入命令n,表示创建分区

选择分区类型: 此处选择Primary,即选择主分区类型选择分区号: 此处直接enter,即选择默认分区号,紧接上一个分区号选择起始扇区: 此处直接enter,即选择默认起始扇区,紧接上一个已使用扇区选择结束扇区: 此处不能直接enter**,如果直接enter选择默认则是将磁盘中所有剩余空间都分配给当前分区,建议使用+size{K,M,G}的方式手动选择需要分配给此分区的磁盘空间,如+5G则表示分配给当前分区5G磁盘空间,分区工具会自动计算其对应的扇区数量

3)修改分区system id: 输入命令t

选择分区号: 选择之前创建的分区号输入修改后分区号Hex代码: 此处输入8e

4)再次查看分区情况: 输入命令p,其中新建分区Id为8e,System为Linux LVM

5)写入分区: 输入命令w,表示将内存中的修改在磁盘中实现。

注意: 在写入分区之前,任何操作都可以使用q命令直接退出,如果修改错误直接退出即可,写入命令w使用之前需要三思!!!如果分区创建错误,则可以参考>1.5 删除分区

1.4 更新Linux磁盘分区表信息

由于本次扩容中,创建分区的磁盘正在使用,因此磁盘分区表并未被即使更新,因此需要将磁盘分区表更新后才能继续后续操作。

更新磁盘分区表的方式主要有二,此处使用后者:

①万能重启

②使用partprobe -s命令

1.5 删除分区

如果因为不小心创建了错误分区,则依旧可以使用fdisk/gdisk工具来删除分区,注意删除时也千万不要搞错分区号,删除前需要保证分区没有在使用中。以fdisk工具删除分区表格式为MBR的磁盘分区为例,只需要几步即可完成分区删除:

fdisk /dev/sda

1)查看所有分区: 输入命令p

2)删除分区: 输入命令d

3)再次查看分区: 输入命令p

4)写入修改: 输入命令w

最后更新磁盘分区表信息即可,更新磁盘分区表方式同>1.4 更新Linux磁盘分区表信息

2. 使用未格式化分区创建实体卷轴PV

与PV操作相关的命令工具有:

pvcreate:将实体partition创建成为PV;pvscan:搜寻目前系统中任何具有PV的磁盘;pvdisplay:显示出目前系统上的PV的状态;pvremove:将PV属性移除,使得指定分区Partition不再作为PV;

要创建实体卷轴PV其实很简单,只要直接使用pvcreate 工具即可,本次用于创建PV的分区为/dev/sda3。

2.1 查看目前系统的PV状态 pvscan [root@localhost ~]# pvscan PV /dev/sda2 VG centos lvm2 [12.00 GiB / 4.00 MiB free] Total: 1 [12.00 GiB] / in use: 1 [12.00 GiB] / in no VG: 0 [0 ] 2.2 使用未格式化分区创建PV pvcreate /dev/sda3 [root@localhost ~]# pvcreate /dev/sda3 Physical volume "/dev/sda3" successfully created. 2.3 再次查看文件系统的PV状态 pvscan [root@localhost ~]# pvscan PV /dev/sda2 VG centos lvm2 [12.00 GiB / 4.00 MiB free] PV /dev/sda3 lvm2 [5.00 GiB] Total: 2 [17.00 GiB] / in use: 1 [12.00 GiB] / in no VG: 1 [5.00 GiB] 2.4 查看创建的PV详细信息 pvdisplay /dev/sda3 [root@localhost ~]# pvdisplay /dev/sda3 "/dev/sda3" is a new physical volume of "5.00 GiB" --- NEW Physical volume --- PV Name /dev/sda3 VG Name PV Size 5.00 GiB Allocatable NO PE Size 0 Total PE 0 Free PE 0 Allocated PE 0 PV UUID 1dzbp0-d8ed-fyrp-OkN2-A9gv-uF1l-4jkLVB 3. 将PV添加到卷轴群组VG

操作卷轴群组(Volume Group, VG)的相关工具指令有:

vgcreate :创建VG;vgscan:搜寻当前系统上的VG;vgdisplay:目前系统上面的VG状态;vgextend:VG内增加额外的PV;vgreduce:VG内移除PV;vgchange:设置VG是否启动(active)vgremove:删除一个VG 3.1 查看所有VG状态 vgdisplay [root@localhost ~]# vgdisplay --- Volume group --- VG Name centos System ID Format lvm2 Metadata Areas 1 Metadata Sequence No 3 VG Access read/write VG Status resizable MAX LV 0 Cur LV 2 Open LV 2 Max PV 0 Cur PV 1 Act PV 1 VG Size 12.00 GiB PE Size 4.00 MiB Total PE 3073 Alloc PE / Size 3072 / 12.00 GiB Free PE / Size 1 / 4.00 MiB VG UUID eWCibX-KG8w-2OGl-A4N2-sfIW-v4hO-cIV1TT 3.2 确定需要扩容的LV及其所在的VG 1)查看挂载点使用情况,定位需要扩容的挂载点 df -Th [root@localhost ~]# df -Th 文件系统 类型 容量 已用 可用 已用% 挂载点 /dev/mapper/centos-root xfs 10G 9.2G 853M 92% / devtmpfs devtmpfs 894M 0 894M 0% /dev tmpfs tmpfs 910M 0 910M 0% /dev/shm tmpfs tmpfs 910M 82M 829M 9% /run tmpfs tmpfs 910M 0 910M 0% /sys/fs/cgroup /dev/sda1 xfs 197M 157M 41M 80% /boot tmpfs tmpfs 182M 0 182M 0% /run/user/1000 观察发现需要扩容的挂载点为/ 2)查看需要扩容的挂载点所在磁盘分区及类型 lsblk -ip [root@localhost ~]# lsblk -ip NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT /dev/sda 8:0 0 20G 0 disk |-/dev/sda1 8:1 0 200M 0 part /boot |-/dev/sda2 8:2 0 12G 0 part | |-/dev/mapper/centos-root 253:0 0 10G 0 lvm / | `-/dev/mapper/centos-swap 253:1 0 2G 0 lvm [SWAP] `-/dev/sda3 8:3 0 5G 0 part /dev/sr0 11:0 1 1024M 0 rom 观察发现需要扩容的挂载点所在的分区为/dev/mapper/centos-root 3)查看对应磁盘分区对应的LV lvdisplay /dev/mapper/centos-root [root@localhost ~]# lvdisplay /dev/mapper/centos-root --- Logical volume --- LV Path /dev/centos/root LV Name root VG Name centos LV UUID IAyAr7-NCfw-zOKq-8SNl-6cYJ-3CgN-dedM38 LV Write Access read/write LV Creation host, time localhost, 2020-02-02 06:48:11 +0800 LV Status available # open 1 LV Size 10.00 GiB Current LE 2560 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 8192 Block device 253:0 4)查看对应的VG信息 vgdisplay centos [root@localhost ~]# vgdisplay centos --- Volume group --- VG Name centos System ID Format lvm2 Metadata Areas 1 Metadata Sequence No 3 VG Access read/write VG Status resizable MAX LV 0 Cur LV 2 Open LV 2 Max PV 0 Cur PV 1 Act PV 1 VG Size 12.00 GiB PE Size 4.00 MiB Total PE 3073 Alloc PE / Size 3072 / 12.00 GiB Free PE / Size 1 / 4.00 MiB VG UUID eWCibX-KG8w-2OGl-A4N2-sfIW-v4hO-cIV1TT 通过VG Name一行可以知道需要扩容的挂载点对应LV的所属VG为centos,因此之后针对其进行扩容,即将新建的PV添加到此VG中 3.3 添加新建的PV到需要扩容的VG中

此处将之前新建的PV对应的分区/dev/sda3添加到需要扩容的VG中,本次需要扩容的VG为centos

vgextend centos /dev/sda3 [root@localhost ~]# vgextend centos /dev/sda3 Volume group "centos" successfully extended 3.4 再次查看扩容后的VG状态 vgdisplay [root@localhost ~]# vgdisplay --- Volume group --- VG Name centos System ID Format lvm2 Metadata Areas 2 Metadata Sequence No 4 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 17.00 GiB PE Size 4.00 MiB Total PE 4352 Alloc PE / Size 3072 / 12.00 GiB Free PE / Size 1280 / 5.00 GiB VG UUID eWCibX-KG8w-2OGl-A4N2-sfIW-v4hO-cIV1TT 至此已经实现了LV对应的VG的扩容,接下来就只需要将VG中的剩余空间分配给指定LV即可实现挂载点扩容 4. 给指定的LV扩容

根据上一小节中>3.2 确定需要扩容的LV及其所在的VG中找到的需要扩容的挂载点对应的LV,来对其进行扩容

4.1 查看指定LV使用情况 lvdisplay /dev/centos/root [root@localhost ~]# lvdisplay /dev/centos/root --- Logical volume --- LV Path /dev/centos/root LV Name root VG Name centos LV UUID IAyAr7-NCfw-zOKq-8SNl-6cYJ-3CgN-dedM38 LV Write Access read/write LV Creation host, time localhost, 2020-02-02 06:48:11 +0800 LV Status available # open 1 LV Size 10.00 GiB Current LE 2560 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 8192 Block device 253:0 4.2 给指定LV扩容 lvresize -L +1G /dev/centos/root [root@localhost ~]# lvresize -L +1G /dev/centos/root Size of logical volume centos/root changed from 10.00 GiB (2560 extents) to 11.00 GiB (2816 extents). Logical volume centos/root successfully resized. 4.3 查看扩容后的LV使用情况 lvdisplay /dev/centos/root [root@localhost ~]# lvdisplay /dev/centos/root --- Logical volume --- LV Path /dev/centos/root LV Name root VG Name centos LV UUID IAyAr7-NCfw-zOKq-8SNl-6cYJ-3CgN-dedM38 LV Write Access read/write LV Creation host, time localhost, 2020-02-02 06:48:11 +0800 LV Status available # open 1 LV Size 11.00 GiB Current LE 2816 Segments 3 Allocation inherit Read ahead sectors auto - currently set to 8192 Block device 253:0 4.4 查看扩容LV后挂载点文件系统使用情况 df -Th [root@localhost ~]# df -Th 文件系统 类型 容量 已用 可用 已用% 挂载点 /dev/mapper/centos-root xfs 10G 9.2G 852M 92% / devtmpfs devtmpfs 894M 0 894M 0% /dev tmpfs tmpfs 910M 0 910M 0% /dev/shm tmpfs tmpfs 910M 82M 829M 9% /run tmpfs tmpfs 910M 0 910M 0% /sys/fs/cgroup /dev/sda1 xfs 197M 157M 41M 80% /boot tmpfs tmpfs 182M 0 182M 0% /run/user/1000 结果发现,挂载点使用情况未发生任何变化,这是因为目前还只是扩容了LV,但是并未扩容其对应的文件系统,故还需要增加对应文件系统的容量 4.5 增加挂载点对应文件系统容量 1)查看指定挂载点文件系统容量 df -Th / [root@localhost ~]# df -Th / 文件系统 类型 容量 已用 可用 已用% 挂载点 /dev/mapper/centos-root xfs 10G 9.2G 865M 92% / 2)对指定挂载点对应的文件系统进行扩容

注意:因为上一步已经确定挂载点对应的文件系统为xfs类型,因此使用xfs_growfs工具对其进行扩容,若是其他文件系统类型,需要使用对应的工具

xfs_growfs / [root@localhost ~]# xfs_growfs / meta-data=/dev/mapper/centos-root isize=512 agcount=4, agsize=655360 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=0 spinodes=0 data = bsize=4096 blocks=2621440, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 ftype=1 log =internal bsize=4096 blocks=2560, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 data blocks changed from 2621440 to 3145728 3)再次查看对应的挂载点文件系统容量 df -Th / [root@localhost ~]# df -Th / 文件系统 类型 容量 已用 可用 已用% 挂载点 /dev/mapper/centos-root xfs 12G 9.2G 2.9G 77% / 发现已经扩容成功 至此就已经实现了指定LV(挂载点)的扩容 参考资料

《鸟哥的Linux私房菜基础学习篇》14.3.3 放大LV容量

End~


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3