当前位置: 首页 > news >正文

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

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

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

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

逻辑卷管理常用操作命令
命令类型序号命令内容说明
硬盘分区1fdisk硬盘分区工具
parted硬盘分区工具
硬盘信息1df -hT查看Linux系统的硬盘空间使用情况及其文件系统类型
2lsblk显示Linux系统的所有可用设备信息

物理卷管理

【PV】

1pvcreate

将硬盘或分区初始化为物理卷【主要是添加LVM属性信息并划分PE存储单位

#1-将硬盘初始化为物理卷PV示例
pvcreate /sdb#2-将多个分区初始化为物理卷PV示例
pvcreate /dev/sdb1 /dev/sdb2 /dev/sdc1

注意:若将整个硬盘都设置为一个物理卷PV时,该硬盘必须没有任何分区表

2pvdisplay

显示物理卷信息

#1-显示所有物理卷PV的信息
pvdisplay#2-显示制定物理卷PV的信息示例
pvdisplay /dev/sdc1
3pvremove

将物理卷删除

【注意:删除之前必须用vgreduce命令把它从卷组中移除】

#删除/dev/sdc1物理卷
pvremove /dev/sdc1
4pvscan在系统LVM块设备中检索PV
5pvchange

允许管理员改变一个或多个物理卷的分配许可

#如果物理卷出现故障,可以使用pvchange命令禁止分配物理卷上的PE
#(如:禁止分配/dev/sdc1上的PE)
pvchange -x n /dev/sdc1

卷组管理

【VG】

1vgcreate

将一个或多个物理卷创建为一个卷组

#将多个物理卷【/dev/sdc1】【/dev/sdb2】创建为一个名为myvg1的卷组
vgcreate myvg /dev/sdc1 /dev/sdb2
2vgdisplay

显示LVM卷组的元数据信息【若不指定卷组则显示所有卷组属性】

#1-显示所有卷组的信息
vgdisplay#2-显示指定的卷组myvg1信息
vgdisplay myvg1
3vgremove

删除一个或多个卷组

【注意:卷组上必须没有任何逻辑卷PV并且为非活动状态】

#1-如删除指定的myvg1卷组
vgremove myvg1#2-#如删除指定的myvg1、myvg2卷组
vgremove myvg1 myvg2
4vgextend

动态添加一个或多个物理卷PV到指定卷组中

#如将/dev/sdb1物理卷添加到myvg1的卷组中
vgextend myvg1 /dev/sdb1
5vgreduce

从卷组中删除一个或多个无用的物理卷PV

【注意:在从卷组中移除PV前,需通过pvmove把PV上的逻辑卷LV移动到其他PV上】

#如从myvg1卷组中移除/dev/sdc1物理卷
vgreduce myvg1 /dev/sdc1
6vgscan查找系统中存在的LVM的所有卷组,仅显示找到的卷组名称和LVM元数据类型。若想得到卷组的详细信息需使用vgdisplay命令。
7vgchange

设置卷组为活动状态或非活动状态,或改变卷组的最大LV数量

#语法【vgchange [-a {y|n}] [-l MaxLogicalVolumes] VolumeGroupName】#1-将myvg1卷组设置为活动状态
vgchange –a y myvg1#2-改变一个当前非活动卷组myv1的最大逻辑卷PV数量为128
vgchange –l 128 myvg1

逻辑卷管理

【LV】

1lvcreate

创建LVM的逻辑卷LV

#语法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
2lvdisplay

显示逻辑卷空间大小、读写状态和快照信息等属性

#1-查看所有逻辑卷的卷空间大小、读写状态和快照信息等属性信息
lvdisplay#2-查看指定的逻辑卷/dev/myvg1/mylv1的卷空间大小、读写状态和快照信息等属性信息
lvdisplay -v /dev/myvg1/mylv1
3lvremove

删除一个或多个非活动的逻辑卷

【注意:如果逻辑卷已用mount指令挂载,则不能用lvremove删除。只有先用umount卸载后,该逻辑卷才能被删除】

#移除指定的/dev/myvg1/mylv1这个逻辑卷
lvremove /dev/myvg1/mylv1
4lvextend

在线扩展逻辑卷空间大小,可以指定扩展后的大小,也可以指定增量

#语法: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
5lvreduce

减少逻辑卷占用的空间大小(即收缩逻辑卷)

【注意:此命令有可能会删除逻辑卷上的已有数据,操作之前必须确认

#语法: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
6lvscan扫描系统中所有存在的逻辑卷LV
7lvchange

改变逻辑卷参数,或激活/禁止某个逻辑卷LV

#语法: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
格式化1mkfs.xfs

以xfs格式化指定的逻辑卷

#将/dev/myvg1/mylv1逻辑卷格式化为xfs的文件格式
mkfs.xfs /dev/myvg1/mylv1
2mkfs.ext4

以ext4格式化制定的逻辑卷

#将/dev/myvg1/mylv1逻辑卷格式化为ext4的文件格式
mkfs.ext4 /dev/myvg1/mylv1
逻辑卷挂载1mount

挂载指定的逻辑卷到指定路径上

#挂载/dev/myvg1/mylv1逻辑卷到/data2路径上【注意:该命令只是系统在当前运行时挂载上了,但是系统重启后就没了(若需要系统开机就自动挂载上请编辑/etc/fstab文件添加上这个逻辑卷的内容后保存退出即可)】
mount /dev/myvg1/mylv1 /data2
2umount

卸载指定路径的逻辑卷

#卸载/data2路径对应的逻辑卷或分区
umount /data2
3xfs_growfs

在线刷新【xfs】文件格式的逻辑卷容量到挂载的路径上

#在线刷新/dev/myvg1/mylv1逻辑卷的格式是xfs的容量空间内容到指定路径上
xfs_growfs /dev/myvg1/mylv1
4resize2fs

在线刷新【ext4】文件格式的逻辑卷容量到挂载的路径上

#在线刷新/dev/myvg1/mylv1逻辑卷的格式是ext4格式的容量空间内容到指定路径上
xfs_growfs /dev/myvg1/mylv1
5/etc/fstab

Linux开机后自动挂载逻辑卷或分区内容文件

#编辑该Linux开机自动挂载逻辑卷或分区文件的命令
vi /etc/fstabl

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

 2.1、场景描述

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

 2.2、问题分析

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

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

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

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

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

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

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

 2.3、解决方法

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

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

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

注意事项:

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

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

#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

http://www.lryc.cn/news/600084.html

相关文章:

  • ComfyUI中运行Wan 2.1工作流,电影级视频,兼容Mac, Windows
  • 一些常见的网络攻击方式
  • 与 TRON (波场) 区块链进行交互的命令行工具 (CLI): tstroncli
  • 关闭chrome自带的跨域限制,简化本地开发
  • 【Chrome】下载chromedriver的地址
  • 中国航天集团实习第一周总结
  • 低速信号设计之 SWD 篇
  • 随机抽签服务API集成指南
  • python学习DAY22打卡
  • 如何评估一个RWA项目的可信度?关键指标解析
  • 图书推荐-由浅入深的大模型构建《从零构建大模型》
  • C语言————原码 补码 反码 (日渐清晰版)
  • openGauss数据库在CentOS 7 中的单机部署与配置
  • 在幸狐RV1106板子上用gcc14.2本地编译安装ssh客户端/服务器、vim编辑器、sl和vsftpd服务器
  • 基础很薄弱如何规划考研
  • 解密负载均衡:如何轻松提升业务性能
  • QT开发---多线程编程
  • 【SpringAI实战】ChatPDF实现RAG知识库
  • XORIndex:朝鲜不断发展的供应链恶意软件再次瞄准 npm 生态系统
  • 从分治的思想下优化快速排序算法
  • 免模型控制
  • 蓝桥杯java算法例题
  • 计算机网络(第八版)— 第2章课后习题参考答案
  • [NLP]多电源域设计的仿真验证方法
  • 数字化转型-AI落地金字塔法则
  • 【日志】unity俄罗斯方块——边界限制检测
  • 深度学习篇---图像数据采集
  • 【VLAs篇】06:从动作词元化视角谈VLA模型的综述
  • JavaSE-图书信息管理系统
  • 9 个优秀帮助中心案例:打造提升客户体验的自助支持系统