Linux的磁盘存储管理实操——(下二)——逻辑卷管理LVM的扩容、缩容

Linux的磁盘存储管理实操------(中)------逻辑卷管理实战-CSDN博客https://coffeemilk.blog.csdn.net/article/details/149471808

一、逻辑卷管理的常用操作命令

创建逻辑卷的流程是:硬盘分区-->物理卷(PV)-->卷组(VG)-->逻辑卷(LV)-->文件系统.

|--------------------|--------|----------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 命令类型 | 序号 | 命令内容 | 说明 |
| 硬盘分区 | 1 | fdisk | 硬盘分区工具 |
| 硬盘分区 | 1 | parted | 硬盘分区工具 |
| ||||
| 硬盘信息 | 1 | df -hT | 查看Linux系统的硬盘空间使用情况及其文件系统类型 |
| 硬盘信息 | 2 | lsblk | 显示Linux系统的所有可用设备信息 |
| ||||
| 物理卷管理 【PV】 | 1 | pvcreate | 将硬盘或分区初始化为物理卷【主要是添加LVM属性信息并划分PE存储单位bash #1-将硬盘初始化为物理卷PV示例 pvcreate /sdb #2-将多个分区初始化为物理卷PV示例 pvcreate /dev/sdb1 /dev/sdb2 /dev/sdc1 注意:若将整个硬盘都设置为一个物理卷PV时,该硬盘必须没有任何分区表 |
| 物理卷管理 【PV】 | 2 | pvdisplay | 显示物理卷信息 bash #1-显示所有物理卷PV的信息 pvdisplay #2-显示制定物理卷PV的信息示例 pvdisplay /dev/sdc1 |
| 物理卷管理 【PV】 | 3 | pvremove | 将物理卷删除 【注意:删除之前必须用vgreduce命令把它从卷组中移除】 bash #删除/dev/sdc1物理卷 pvremove /dev/sdc1 |
| 物理卷管理 【PV】 | 4 | pvscan | 在系统LVM块设备中检索PV |
| 物理卷管理 【PV】 | 5 | pvchange | 允许管理员改变一个或多个物理卷的分配许可 bash #如果物理卷出现故障,可以使用pvchange命令禁止分配物理卷上的PE #(如:禁止分配/dev/sdc1上的PE) pvchange -x n /dev/sdc1 |
| ||||
| 卷组管理 【VG】 | 1 | vgcreate | 将一个或多个物理卷创建为一个卷组 bash #将多个物理卷【/dev/sdc1】【/dev/sdb2】创建为一个名为myvg1的卷组 vgcreate myvg /dev/sdc1 /dev/sdb2 |
| 卷组管理 【VG】 | 2 | vgdisplay | 显示LVM卷组的元数据信息【若不指定卷组则显示所有卷组属性】 bash #1-显示所有卷组的信息 vgdisplay #2-显示指定的卷组myvg1信息 vgdisplay myvg1 |
| 卷组管理 【VG】 | 3 | vgremove | 删除一个或多个卷组 【注意:卷组上必须没有任何逻辑卷PV并且为非活动状态】 bash #1-如删除指定的myvg1卷组 vgremove myvg1 #2-#如删除指定的myvg1、myvg2卷组 vgremove myvg1 myvg2 |
| 卷组管理 【VG】 | 4 | vgextend | 动态添加一个或多个物理卷PV到指定卷组中 bash #如将/dev/sdb1物理卷添加到myvg1的卷组中 vgextend myvg1 /dev/sdb1 |
| 卷组管理 【VG】 | 5 | vgreduce | 从卷组中删除一个或多个无用的物理卷PV 【注意:在从卷组中移除PV前,需通过pvmove把PV上的逻辑卷LV移动到其他PV上】 bash #如从myvg1卷组中移除/dev/sdc1物理卷 vgreduce myvg1 /dev/sdc1 |
| 卷组管理 【VG】 | 6 | vgscan | 查找系统中存在的LVM的所有卷组,仅显示找到的卷组名称和LVM元数据类型。若想得到卷组的详细信息需使用vgdisplay命令。 |
| 卷组管理 【VG】 | 7 | vgchange | 设置卷组为活动状态或非活动状态,或改变卷组的最大LV数量 bash #语法【vgchange [-a {y|n}] [-l MaxLogicalVolumes] VolumeGroupName】 #1-将myvg1卷组设置为活动状态 vgchange --a y myvg1 #2-改变一个当前非活动卷组myv1的最大逻辑卷PV数量为128 vgchange --l 128 myvg1 |
| ||||
| 逻辑卷管理 【LV】 | 1 | lvcreate | 创建LVM的逻辑卷LV bash #语法1: lvcreate -L 容量大小 -n 逻辑卷名 卷组名 #示例:使用myvg1的卷组创建一个名为mylv1的逻辑卷,且设置这个逻辑卷的大小为16g lvcreate -L 16g -n mylv1 myvg1 #语法2:lvcreate -l LE数 -n 逻辑卷名 卷组名 #示例:使用myvg1的卷组创建一个名为mylv2的逻辑卷,且设置这个逻辑卷的大小为997个LE lvcreate -l 997 -n mylv2 myvg1 |
| 逻辑卷管理 【LV】 | 2 | lvdisplay | 显示逻辑卷空间大小、读写状态和快照信息等属性 bash #1-查看所有逻辑卷的卷空间大小、读写状态和快照信息等属性信息 lvdisplay #2-查看指定的逻辑卷/dev/myvg1/mylv1的卷空间大小、读写状态和快照信息等属性信息 lvdisplay -v /dev/myvg1/mylv1 |
| 逻辑卷管理 【LV】 | 3 | lvremove | 删除一个或多个非活动的逻辑卷 【注意:如果逻辑卷已用mount指令挂载,则不能用lvremove删除。只有先用umount卸载后,该逻辑卷才能被删除】 bash #移除指定的/dev/myvg1/mylv1这个逻辑卷 lvremove /dev/myvg1/mylv1 |
| 逻辑卷管理 【LV】 | 4 | lvextend | 在线扩展逻辑卷空间大小,可以指定扩展后的大小,也可以指定增量 bash #语法:lvextend {-l [+]LogicalExtentsNumber}{ -L [+]LogicalVolumeSize] #示例1:将/dev/myvg1/mylv1逻辑卷进行拓展【前提是/dev/myvg1卷组有空闲空间】 lvextend -l +700 /dev/myvg1/mylv1 #示例2:给/dev/myvg1/mylv1这个逻辑卷LV增加6g空间【前提是/dev/myvg1卷组有空闲空间】 lvextend -L +6g /dev/myvg1/mylv1 |
| 逻辑卷管理 【LV】 | 5 | lvreduce | 减少逻辑卷占用的空间大小(即收缩逻辑卷) 【注意:此命令有可能会删除逻辑卷上的已有数据,操作之前必须确认】 bash #语法:lvreduce [-l [-]LogicalExtentsNumber] [--L [-]LogicalVolumeSize] LogicalVolumePath #示例1:将/dev/myvg1/mylv1逻辑卷进行收缩【执行此命令有可能会删除逻辑卷上的已有数据,操作之前必须确认】 lvextend -l -700 /dev/myvg1/mylv1 #示例2:将/dev/myvg1/mylv1逻辑卷进行收缩【执行此命令有可能会删除逻辑卷上的已有数据,操作之前必须确认】 lvextend -L -6g /dev/myvg1/mylv1 |
| 逻辑卷管理 【LV】 | 6 | lvscan | 扫描系统中所有存在的逻辑卷LV |
| 逻辑卷管理 【LV】 | 7 | lvchange | 改变逻辑卷参数,或激活/禁止某个逻辑卷LV bash #语法:lvchange [-a {y|n}] [-p r|rw] LogicalVolumePath [LogicalVolumePath...] #示例1:让逻辑卷/dev/myvg1/mylv1禁止使用 lvchange --a n /dev/myvg1/mylv1 #示例2:让逻辑卷/dev/myvg1/mylv1激活使用且有读写权限 lvchange -a y --p rw /dev/myvg1/mylv1 |
| ||||
| 格式化 | 1 | mkfs.xfs | 以xfs格式化指定的逻辑卷 bash #将/dev/myvg1/mylv1逻辑卷格式化为xfs的文件格式 mkfs.xfs /dev/myvg1/mylv1 |
| 格式化 | 2 | mkfs.ext4 | 以ext4格式化制定的逻辑卷 bash #将/dev/myvg1/mylv1逻辑卷格式化为ext4的文件格式 mkfs.ext4 /dev/myvg1/mylv1 |
| ||||
| 逻辑卷挂载 | 1 | mount | 挂载指定的逻辑卷到指定路径上 bash #挂载/dev/myvg1/mylv1逻辑卷到/data2路径上【注意:该命令只是系统在当前运行时挂载上了,但是系统重启后就没了(若需要系统开机就自动挂载上请编辑/etc/fstab文件添加上这个逻辑卷的内容后保存退出即可)】 mount /dev/myvg1/mylv1 /data2 |
| 逻辑卷挂载 | 2 | umount | 卸载指定路径的逻辑卷 bash #卸载/data2路径对应的逻辑卷或分区 umount /data2 |
| 逻辑卷挂载 | 3 | xfs_growfs | 在线刷新【xfs】文件格式的逻辑卷容量到挂载的路径上 bash #在线刷新/dev/myvg1/mylv1逻辑卷的格式是xfs的容量空间内容到指定路径上 xfs_growfs /dev/myvg1/mylv1 |
| 逻辑卷挂载 | 4 | resize2fs | 在线刷新【ext4】文件格式的逻辑卷容量到挂载的路径上 bash #在线刷新/dev/myvg1/mylv1逻辑卷的格式是ext4格式的容量空间内容到指定路径上 xfs_growfs /dev/myvg1/mylv1 |
| 逻辑卷挂载 | 5 | /etc/fstab | Linux开机后自动挂载逻辑卷或分区内容文件 bash #编辑该Linux开机自动挂载逻辑卷或分区文件的命令 vi /etc/fstabl |
[逻辑卷管理常用操作命令]

二、逻辑卷的扩容缩容实战

2.1、场景描述

场景描述:在我们生产环境中的Linux系统,根分区快满了,且目前没有可用的新增磁盘,现在如何解决这个问题?

2.2、问题分析

1、先查看当前的根分区是哪些文件夹占用较大,然后确认这些较大文件夹或文件能否删除?若能删除则可空出容量解决问题。

2、可对当前出问题的分区进行扩容(寻找另外一个有较大空闲容量的分区进行缩容,然后对该快满的分区扩容),执行思路如下:

先确定当前Linux系统出现问题的分区使用的是什么分区?(是标准分区还是逻辑卷管理LVM分区):

《1》若是标准分区可参考《Linux的磁盘存储管理实操------(下一)------标准分区扩容》;

《2》若是逻辑卷管理LVM分区则先查看当前系统的分区是否还存在有较大空闲容量的逻辑分区:

<1>若是不存在较大空闲容量的逻辑分区则只能(查看是否有可清理的内容腾出空间;或是新增硬盘扩容)。

<2>若是存在较大空闲容量的逻辑分区则可以考虑将现有的空闲容量较大的逻辑分区容量缩容给当前快满的根分区扩容。

2.3、解决方法

1、针对根分区需要查看哪个文件夹或文件占用空间较大后进行查看是否能删除

bash 复制代码
#1-查看指定路径下子目录所有文件的空间占用信息,方便查找出最大的文件或文件夹(如查看根目录)
du -sh /*

2、查看Linux系统的磁盘占用情况并对空闲容量大的缩容给需要的分区扩容操作

注意事项:

《1》xfs文件系统没有工具来缩小文件系统的大小,您只能增大 XFS 文件系统的大小。

《2》ext4文件系统支持扩展和缩小文件系统的大小,但缩减只能离线操作。

bash 复制代码
#1-查看磁盘是否属于标准分区(带LVM则表示是逻辑分区)
lsblk

#2-查看当前Linux的磁盘空间占用情况和类型命令
df -hT

#3-查找到硬盘空闲容量较大的分区后【备份该分区的所有数据】(可以使用scp向其他服务器传输备份或者直接物理备份)【比如我们这里是/home分区的空闲容量较大,就备份该分区内容】


#4-空闲容量较大的分区内容备份完成后就可以执行如下的空闲容量逻辑卷卸载和移除操作(如:我们这里卸载【/home】挂载点及其对应的逻辑卷【/dev/mapper/rl-home】移除)
umount /home
lvdisplay
lvremove /dev/mapper/rl-home
vgdisplay

#5-先给空闲容量少的逻辑卷进行扩容(如:我们这里给根分区挂载点对应的逻辑卷【/dev/mapper/rl-root】扩容增加30g)
lvextend -L +30g /dev/mapper/rl-root
df -hT
xfs_growfs /dev/mapper/rl-root
df -hT

#6-给原有的空闲容量多的逻辑卷进行重建缩容(如:新增的逻辑卷名称是home且使用rl这个卷组剩下的所有空间)
lvcreate -n home -l 100%free r1
lvdisplay
vgdisplay

#7-格式化我们新创建好的逻辑卷并挂载上【这里之所以使用ext4格式是因为方便后续如果其他逻辑卷容量不够的时候就可以直接使用这个逻辑卷进行缩容操作(且不用将这个逻辑卷卸载、移除格式化等一系列的操作)】【还有在这里如果直接使用mount /home挂载报错,那是因为Linux系统的开机后自动挂载硬盘的/etc/fstab文件里面配置有原来的逻辑卷内容与现在新创建的逻辑卷内容不一致导致的,需要到该文件里面修改一致】
mkfs.ext4 /dev/rl/home
mount /dev/r1/home /home
vi /etc/fstab

说明:df -hT命令展示的挂载点对应的路径(如【/dev/mapper/rl-root 】)与lvdisplay命令展示的路径都是指向同一个设备(可以使用【ll 路径】命令查看),所以两个路径的使用效果是一样的,如下图所示:

三、其他资料

第 5 章 LVM 配置示例 | 逻辑卷管理器管理 | Red Hat Enterprise Linux | 7 | Red Hat Documentationhttps://docs.redhat.com/zh-cn/documentation/red_hat_enterprise_linux/7/html/logical_volume_manager_administration/lvm_examples1.5. XFS 和 ext4 的比较 | 管理文件系统 | Red Hat Enterprise Linux | 10 | Red Hat Documentationhttps://docs.redhat.com/zh-cn/documentation/red_hat_enterprise_linux/10/html/managing_file_systems/comparison-of-xfs-and-ext4Linux 文件系统选择指南:EXT4、XFS、Btrfs -- 启鑫的黑板报https://www.qixinlee.com/archives/482

相关推荐
牛奶咖啡1313 小时前
Linux文件系统管理——NFS服务端的安装配置与NFS客户端的安装与挂载实操教程
linux文件系统·linux云计算·网络文件系统nfs·linux安装配置nfs服务端·nfs客户端挂载nfs资源
牛奶咖啡136 天前
Linux的磁盘存储管理实操——(中)——逻辑卷管理实战
linux云计算·逻辑卷的简介与构成·逻辑卷的优势与劣势·逻辑卷的创建挂载与扩展流程实操·逻辑卷的卸载移除实操
牛奶咖啡1320 天前
Linux系统的常用操作命令——文件远程传输、文件编辑、软件安装的四种方式
运维·服务器·软件安装·linux云计算·scp文件远程传输·vi文件编辑·设置yum的阿里云源