• 如何从 LVM 的卷组中删除物理卷?
  • 多块弹性云硬盘构建 LVM 逻辑卷—腾讯云
  • centos7根目录扩容(根目录在sda3 vgdisplay为空)—【简单有效】
  • resize2fs 详解和 LVM 逻辑卷缩减
  • Linux分区调整(LVM和非LVM环境中扩容和缩小)—【详细】

构建 LVM 逻辑卷

逻辑卷管理(Logical Volume Manager,LVM)通过在硬盘和分区之上建立一个逻辑层,将磁盘或分区划分为相同大小的 PE(Physical Extents)单元,不同的磁盘或分区可以划归到同一个卷组(VG,Volume Group),在 VG 上可以创建逻辑卷(LV,Logical Volume),在 LV 上可以创建文件系统。
相较于直接使用磁盘分区的方式,LVM 的优势在于弹性调整文件系统的容量:

  • 文件系统不再受限于物理磁盘的大小,可以分布在多个磁盘中。
    例如,您可以购买3块4TB的弹性云硬盘并使用 LVM 创建一个将近12TB的超大文件系统。
  • 可以动态调整逻辑卷大小,不需要对磁盘重新分区。
    当 LVM 卷组的空间无法满足您的需求时,您可以单独购买弹性云硬盘并挂载到相应的云服务器上,然后将其添加到 LVM 卷组中进行扩容操作。

0️⃣:准备工作:

  • 两个空分区(没有创建文件系统),假设有 /dev/sda4/dev/sdb 两个分区
  • 已使用 root 用户登录服务器

1️⃣:创建物理卷 PV

$ pvcreate /dev/sda4 /dev/vdd /dev/sdb

创建成功,如图所示(因为sdb 分区之前创建了文件系统,所以要擦除)

通过以下命令,查看现在系统中的物理卷

$ lvmdiskscan | grep LVM# 或者
$ pvdisplay

2️⃣:创建卷组 VG

创建一个名为 lvm_demo 的卷组

$ vgcreate lvm_demo /dev/sda4 /dev/sdb

创建成功则如图所示

可以通过以下命令,向卷组中添加新的物理卷

# vgextend 卷组名 新物理卷路径
# 假设有一个物理卷为 sda5
$ vgextend lvm_demo /dev/sda5

通过 vgsvgdisplay 等命令可以查看当前系统中的卷组信息

3️⃣:创建逻辑卷 LV

创建大小是500MB,名为 lv_demo 的逻辑卷

$ lvcreate -L 500MB -n lv_demo lvm_demo

创建成功后,如图所示,物理卷 /dev/sda4 被使用了 500MB 的空间

4️⃣:创建并挂载文件系统

$ mkfs.ext4 /dev/lvm_demo/lv_demo

创建成功后,如图所示

挂载至目录 /tmp/test

$ mkdir /tmp/test
$ mount /dev/lvm_demo/lv_demo /tmp/test/

说明:

​ 通过 fdisk -l 可以看到逻辑卷 /dev/lvm_demo/lv_demo 的信息

可以通过 df -TH 命令查看是否挂载成功

5️⃣:动态扩展逻辑卷及文件系统大小

扩展前提:

​ 仅当卷组 VG 容量有剩余时,LV 容量可动态扩展。扩展 LV 容量后,需一并扩展创建在该 LV 上的文件系统的大小。

扩展逻辑卷大小,增加 500MB

# lvextend [-L +/- <增减容量>] <逻辑卷路径>
$ lvextend -L +500MB /dev/lvm_demo/lv_demo

说明:如图所示 两个物理卷被使用了 1000MB 的空间

此时逻辑卷虽然变为 1000MB,但是文件系统并没有变大,还需要执行以下命令

$ resize2fs /dev/lvm_demo/lv_demo

最后可以通过 df -h 命令,查看容量是否变为 1000MB

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OiOL2q2F-1652022822997)(E:/%E7%AC%94%E8%AE%B0/pic/image-20220502235714069.png)]

压缩逻辑卷

​ 假设 /tmp/test 文件夹需要的最大容量是 500MB,现在想要压缩逻辑卷 lvm_demo_lv_demo,由 1000MB 变为 500MB,并且将分区 /dev/sdb 移出卷组 lv_demo,用作其他用途。

❗️ 注意:压缩逻辑卷前,要保证逻辑卷的总容量大于逻辑卷所有文件的总容量。

1️⃣:对 LVM 强制执行文件系统检测

$ e2fsck -f /dev/mapper/lvm_demo-lv_demo

2️⃣:调整文件系统大小

压缩为文件系统大小为 500M (其中文件总共小于500M)

# 大小单位可以为 'K', 'M', 'G', 'T',大小写均可
$ resize2fs /dev/lvm_demo/lv_demo 500M

注意:resize2fs 的大小参数不支持小数。

如:

$ resize2fs /dev/lvm_demo/lv_demo 0.5G
# 报错
resize2fs 1.42.9 (28-Dec-2013)
resize2fs: 无效的新大小(Invalid new size):500MB

3️⃣:压缩逻辑卷大小

# 压缩逻辑卷至 500MB
$ lvreduce -L 500M /dev/lvm_demo/lv_demo

通过 pvs 可以看到 /dev/sdb 完全空闲,可以将其移出

4️⃣:将物理卷 /dev/sdb 移出卷组 lvm_demo

$ vgreduce lvm_demo /dev/sdb

通过 vgs 可以看到 卷组的情况

5️⃣:擦除物理卷 /dev/sdb

$ pvremove /dev/sdb

之后就可以将 /dev/sdb 用作其他用途了

非 LVM 分区调整分区大小

总的来说调整分区大小步骤就是:

  • 1、卸载分区 —> 2、扩容或缩小分区和文件系统 —> 3、重新挂载分区

但是在非 LVM 分区,可以在线扩容,但是不可以在线缩小分区(在线即挂载了目录)。

​ 如图所示,不能够在线调整文件系统(ext4)的大小,必需要先卸载分区(umount)才能调整大小。但是根目录( / )在系统运行状态是不能卸载的。

​ 不同的文件系统格式下可以做的操作有所不同,这里只以 ext4 为例。

​ ext4支持扩容和缩小,home分区(你的私人分区)扩容或缩小均可以在root用户登录做卸载后调整,其他分区必须进救援模式进行扩容或缩小。

扩容分区

扩容分区可以通过将待扩容分区的相邻分区,划分到一起进行扩容。 ===> 参考

或者构建逻辑卷进行扩容,这里不再赘述。

缩小分区

​ 现有一个分区 /dev/sdb1,大小为 500MB,但是平常最多只会使用 250MB,所以计划缩小分区为 250MB

​ 通过 df -TH 查看挂载分区的使用情况 (以下图片仅供参考)

1️⃣:卸载待修改分区(/dev/sdb1)

umount /dev/sdb1

2️⃣:检查该分区,并且缩小文件系统的大小

# 先检查格式系统
$ e2fsck –f /dev/sdb1
#开启journal,在系统事故,或者掉电的情况下, journal 可以帮助文件系统找回丢失的文件。 (可选)
$ tune2fs -o has_journal /dev/sdb1# 缩小文件系统大小,缩小为 250M
resize2fs -f /dev/sdb1 250M

3️⃣:缩小分区大小

$ fdisk /dev/sdb1# 1.删除原分区 /dev/sdb1
# 2.创建新分区 /dev/sdb1    ===> 容量只有一半(根据Unit大小和扇区起始位置计算即可)
# 3.创建新分区 /dev/sdb2  (可选)  ===> 默认即可

4️⃣:调整文件系统,并挂载

# 让文件系统自动适应分区
resize2fs -f /dev/sdb1# 重新挂载到文件夹
mount /dev/sdb1 /tmp/test

逻辑卷与分区大小调整相关推荐

  1. 关于 Linux中逻辑卷/物理分区等知识的一些总结

    我的需求: 准备红帽考试,这块听课听得稀里糊涂的. 我是这样做的: 请教了公司大佬,书里找了些资料.这里整理笔记加以记忆,不足之处请小伙伴指出来.生活加油.2021.01.08 一,思维导图梳理关系 ...

  2. Linux使用LVM逻辑卷 给分区扩容 不重启 热扩容

    虚拟机的硬盘不够用了,里面又正在跑着服务 不能重新格式化分区 该怎么办呢?跟大家说一下 如何使用LVM来进行动态热扩容. 首先:确定你的操作系统安装时 是使用LVM进行分区的,否则是无法使用LVM进行 ...

  3. 新服务挂载1T硬盘进行逻辑卷的分区

    本片文章介绍有关linux的磁盘分区,磁盘分区的租用和好处,小伙伴自行去查阅资料脑补一下吧,这里不做更多的相关介绍了. 进入正题!(这里针对的是linux系统) 首先无论是自己搭建的服务器或者购买的服 ...

  4. windows下调整linux分区大小,fdisk、parted无损调整普通分区大小 (附:win的c盘分区大小调整)...

    版权声明:本文为haibing.org原创文章,转载请附上本文链接. 本文永久链接:http://haibing.org/123 环境:oracle linux 6.4 #fdisk -v fdisk ...

  5. android8.1新建分区并挂载,Android8.1 MTK Vendor分区大小调整无效分析

    最近想修改一下MTK Vendor分区大小,结果被 坑.只能说MTK真的太laji. 查找资料,正规的流程是: 1.  device/mediatek/build/build/tools/ptgen/ ...

  6. linux调小根目录,Linux根目录分区大小调整教程

    1.备份 home 查看未调整前的根目录容量,可以看到默认是分配 50G,但大都数的软件安装都默认在根目录 所以这里将home的容量分给根目录. [root@localhost ~]# df -h 文 ...

  7. linux缩小根目录分区如何缩小,Linux根目录分区大小调整教程

    1.备份 home 查看未调整前的根目录容量,可以看到默认是分配 50G,但大都数的软件安装都默认在根目录 所以这里将home的容量分给根目录. [root@localhost ~]# df -h 文 ...

  8. 支持win7的无损分区大小调整软件

    以前win xp一直用PQ magic.现在win7了,使用卷的概念来分区了,很多以前的分区软件都无法支持. 在网上找到一款使用方便,速度不错的无损调整分区的软件,支持win7!用下来挺强大的,写出来 ...

  9. Linux分区大小调整

    这是很久之前遇到的问题了,参考的博客加了书签,最近闲下来,转成自己的. 先简述一下之前的情况,本地的一台测试服务器,一直只使用root用户,但安装系统时默认只给root用户分配了50G空间,使用一段时 ...

最新文章

  1. RequestResponseServletContext
  2. Flink 和 Iceberg 如何解决数据入湖面临的挑战
  3. 从内存中加载并运行exe(两种方法)
  4. qq纵横四海源码_【0基础】纵横中文网python爬虫实战
  5. 【转】C++学习三 模板类出错总结(Missing template arguments before ‘L‘)
  6. java字符串拼接_这样写Java,同事直呼666
  7. Java基础学习总结(124)——Java9逆天的十大新特性
  8. 编写算法判别给定二叉树是否为完全二叉树_推荐一位实力超强的平安前端算法大佬:瓶子君...
  9. docker容器资源配额控制
  10. 【Django 2021年最新版教程6】前端传递数据到后端处理 POST方法
  11. Ubuntu 8.04和Windows Server 2008 双体系的安置与卸载记
  12. Layui 数据表格:用户个性化定制列(拖拽,隐藏)
  13. 计算机专业四次评估,教育部第四次学科评估:信息与通信工程一级学科排行,仅供参考...
  14. 有机酸的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  15. linux系列---常见命令
  16. 【前端】你真的理解JavaScript中的变量和数据类型吗
  17. 【ES6】let、const变量提升的验证,以及TDZ死区的理解
  18. element audio 标签 不显示_青云神书【陆鸣】=书虫强推amp;不容错过
  19. 猿圈 题库_小猿圈总结常见HTML5基础知识面试题汇总
  20. 【趣味】一个将任意数字分解成 114514 构成的公式的工具

热门文章

  1. java如何查看安卓打包签名的md5_Android查看应用签名方法
  2. 南华大学第十五届ACM程序设计竞赛(重现赛) E 免费机票
  3. 算力网络智能选路新向导
  4. SQL Server(3)——一道关于员工与部门查询的SQL笔试题
  5. 2022年全国最新消防设施操作员(中级消防设施操作员)模拟试题及答案
  6. ext2文件系统源代码之super.c
  7. HCIE--MAC,ARPSTP
  8. GBase 8a JDBC连接方法
  9. Golang和Erlang消息传递机制对比
  10. 五种方式释放你的压力!