CentOS 8 逻辑卷管理LVM详解(扩容、快照等)

2023-11-17

一、概述

逻辑卷是什么?
逻辑卷之前我们已经用标准分区在硬盘上创建了文件系统,但是你只能在同一个物理硬盘的可用范围内调整分区大小,如果硬盘没有地方了,你就必须要弄一块更大的硬盘,然后手动将数据移动到新的硬盘上。但是,这时候可以通过将另外一个硬盘上的分区加入已有的文件系统,动态的添加存储空间,LVM(逻辑卷管理器)就是用来做这个的,它可以让你无需重建整个文件系统的情况下,轻松的管理磁盘空间。

二、逻辑卷管理布局

  • 物理卷:在逻辑卷管理的世界里,硬盘分区称作物理卷(PV)每个物理卷都是硬盘上物理分区的映射

  • 卷组:把多个物理卷集中在一起就形成一个卷组(VG),逻辑卷管理系统将卷组视为一个物理硬盘,事实上是分布在多个物理硬盘上的多个物理分区组成的

  • 逻辑卷:整个结构最后一层就是逻辑卷(LV)它为linux提供了创建文件系统的分区环境,类似于物理硬盘分区,linux也将逻辑卷视为物理分区

  • PE(physical extents):PV物理卷中可以分配的最小存储单元,PE的大小是可以指定的,默认为4MB

  • LE(logical extent): LV逻辑卷中可以分配的最小存储单元,在同一个卷组中,LE的大小和PE是相同的,并且一一对应

  • 可以使用任意一种标准的linux文件系统格式化逻辑卷,再将它挂载到系统中使用

三、LVM1和LVM2

linux的LVM有两个可用的版本:

  • LVM1:最初的LVM包于1998年发布,只能用于linux内核2.4版本,它仅提供了基本的逻辑卷管理功能
  • LVM2:LVM的更新版本,可用于linux内核2.6版本,现在的CentOS都默认安装的是LVM2版本,它在标准的LVM1功能外提供了额外的功能:
    1、快照 2、条带化 3、镜像

四、使用LVM管理逻辑卷

实验环境:虚拟机共添加5块硬盘,做如下分配

硬盘 总大小 卷组
/dev/sdb 100G vg01
/dev/sdc 100G vg01
/dev/sdd 20G vg01
/dev/sde 1G vg02
/dev/sdf 1G vg02

1、物理卷

(1)创建物理卷

pvcreate:创建物理卷
pvscan:扫描物理卷信息(包含哪些物理硬盘和大小还有总览)
在这里插入图片描述
pvdisplay:显示物理卷详情
在这里插入图片描述

(2)删除物理卷

pvremove:删除物理卷
在这里插入图片描述

2、卷组

(1)创建卷组

vgcreate:创建卷组(后跟卷组名称)
在这里插入图片描述
vgdisplay:显示卷组详情
在这里插入图片描述

(2)扩展卷组

在这里插入图片描述
vgextend:扩展卷组
在这里插入图片描述

(3)删除卷组

vgremove:删除卷组
删除卷组是删除整个卷组,跟把物理卷从卷组中移除的概念是不一样的
在这里插入图片描述

(4)减小卷组

减小卷组之前如果卷组划分了逻辑卷并且已经储存了数据,必须先迁移数据才能做减小的操作,现在给虚拟机新添加两块1G大小的硬盘sde和sdf,给sde划分逻辑卷,大小500M,格式化挂载到系统使用,并且在里面写入一些数据
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
将sdf这块硬盘也加入sde所在的卷组vg02,这样,我们可以把sde的数据迁移到sdf上
在这里插入图片描述
在这里插入图片描述
pvmove:迁移卷组数据
在这里插入图片描述

vgreduce:减小卷组
sde没有数据了之后就可以把它从卷组vg02中移除了,卷组就减小了,实际上现在的数据已经被转移到/dev/sdf上了,不影响逻辑卷的使用,这也是它灵活的地方

在这里插入图片描述

3、逻辑卷

(1)创建逻辑卷

lvcreate:创建逻辑卷(卷组名写在最后)

  • -L 50G 指定大小为50G
  • -n 指定名称

lvdisplay:显示逻辑卷详情
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(2)删除逻辑卷

在这里插入图片描述
lvremove:删除逻辑卷
在这里插入图片描述

(3)扩展逻辑卷

lvextend:扩展逻辑卷大小

  • -L +50G 指定大小增加50G
  • -L 50G 指定大小为50G
    在这里插入图片描述
    逻辑卷没有减小操作,不建议减小,会出问题

(4)格式化逻辑卷

跟物理磁盘一样,划分好逻辑卷之后也是需要先格式化文件系统然后挂载到系统中才可以像一块物理硬盘一样使用的。这里分别用xfs和ext4两种文件系统来格式化不同的逻辑卷,发现他们的不同了吗?
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(5)扩容文件系统

在实际的应用中,光扩展逻辑卷是没有任何意义的,因为只扩展了逻辑卷之后,扩展后的那部分也是不能够被系统使用的,所以还需要扩展文件系统,其实就是使扩容生效,否则df -Th是看不到的
在这里插入图片描述
扩展逻辑卷之前需要确定所属卷组剩余空间大小,扩展的大小应该要小于剩余卷组空间的大小
在这里插入图片描述
在这里插入图片描述
xfs_growfs:xfs文件系统使用该命令使扩容生效
resize2fs:ext文件系统使用该命令使扩容生效
在这里插入图片描述
在这里插入图片描述

(6)逻辑卷快照

LVM2的逻辑卷具有快照功能,就是将逻辑卷的某一时刻的状态保存下来也做成一种特殊的逻辑卷叫做快照卷,挂载到系统中,但是逻辑卷之后做的操作快照卷不会同步,常用于数据库备份还原的场景
在这里插入图片描述
快照卷跟创建普通的逻辑卷方式几乎一样,只是最后需要指定是哪一个逻辑卷的快照卷,用-s参数
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
注意:如果是xfs的逻辑卷做快照卷挂载时,需要mount -o nouuid,因为xfs的快照不支持uuid
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

五、命令关键字总结

扫描 创建 查看 删除 扩展 缩减
物理卷 pvscan pvcreate pvdisplay pvremove
卷组 vgscan vgcreate vgdisplay vgremove vgextend vgreduce
逻辑卷 lvscan lvcreate lvdisplay lvremove lvextend 有命令但不推荐

六、两种方式的扫描命令

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CentOS 8 逻辑卷管理LVM详解(扩容、快照等) 的相关文章

  • CentOS目录结构是树形的吗?

    CentOS 上有相当于树的东西吗 如果你的 Centos 系统上没有安装 tree 无论如何我通常建议服务器设置使用最小安装磁盘 你应该在命令行中输入以下内容 yum install tree y 如果没有安装 那是因为您没有正确的存储库
  • python:numpy 运行脚本两次

    当我将 numpy 导入到 python 脚本中时 该脚本会执行两次 有人可以告诉我如何阻止这种情况 因为我的脚本中的所有内容都需要两倍的时间 这是一个例子 usr bin python2 from numpy import print t
  • 无法仅在控制台中启动 androidstudio

    你好 我的问题是下一个 我下载了Android Studio如果我去 路径 android studio bin 我执行studio sh 我收到以下错误 No JDK found Please validate either STUDIO
  • 如何查明 Ubuntu 上安装了哪个版本的 GTK+?

    我需要确定 Ubuntu 上安装了哪个版本的 GTK 男人似乎不帮忙 这个建议 https stackoverflow com a 126145 会告诉您安装了哪个 2 0 的次要版本 不同的主要版本将具有不同的包名称 因为它们可以在系统上
  • touch命令在一个目录下创建多个文件(不同名称)

    我想制作一个在 bash 中创建目录和文件结构的脚本 我尝试过这样的事情 mkdir p 1 2 touch 1 2 a b c a b c 应该是在一个命令或其他命令中创建的文件 但由于某种原因 结构是这样的 current folder
  • 如何成功使用RDAP协议代替whois

    我对新的 RDAP 协议有点困惑 也不知道何时进一步追求它有意义 在我看来 每个人都同意它是 whois 的继承者 但他们的数据库似乎是空的 在 ubuntu 上我尝试了 rdapper nicinfo 甚至他们的 RESTful API
  • 如何用X11复制到剪贴板?

    使用 OS X 上的框架 我可以使用以下命令将 PNG 复制到粘贴板 在 C 中 显然我可以将 NSPasteboard 与 Cocoa 一起使用 include
  • 怎样才能使 Windows 成为一个开箱即用的 POSIX 兼容操作系统?

    这个问题的动机是我的一个牵强的梦想 即 nix 平台上可用的许多优秀软件可以轻松移植到 Windows 微软最近对开源和开放性采取了不同的方法 所以我真的很想知道如果微软有这样的倾向 这样的事情会有多可行 我很好奇的一些更具体的事情是 是否
  • git在Windows和Linux之间切换后强制刷新索引

    我有一个Windows和Linux共享的磁盘分区 格式 NTFS 它包含一个 git 存储库 约 6 7 GB 如果我只使用Windows or 只使用Linux操作 git 存储库一切正常 但是每次切换系统的时候git status命令将
  • 在 LINUX 上使用 Python 连接到 OLAP 多维数据集

    我知道如何在 Windows 上使用 Python 连接到 MS OLAP 多维数据集 嗯 至少有一种方法 通常我使用 win32py 包并调用 COM 对象进行连接 import win32com client connection wi
  • 为 Qt 应用程序创建 Linux 安装

    我刚刚用 Qt Creator 制作了一个很棒的程序 我对自己很满意 如何将其从台式机移至笔记本电脑 那么 最好的方法是安装程序 对吗 对于 Ubuntu 这是一个 Debian 软件包 对吗 我怎么做 有人这样做过吗 他们可以分享 QT
  • 在 Ubuntu 16.04 上找不到 printf.c

    我最近切换到Ubuntu 16 04 我在用vscode作为 Ubuntu 上的 IDE 我配置了其他语言 但我无法做到这一点C C 我创建c cpp properties json launch json tasks json 当我开始编
  • 适用于 KDE 和 Gnome 的 Gui [重复]

    这个问题在这里已经有答案了 我想为一个现在是 CLI 的应用程序编写一个 gui 它需要在 KDE 和 Gnome DE 中 看起来不错 充分利用用户的外观设置 如果我选择 Qt 或 GTK 我能够做到这一点吗 它们与两个 DE 集成良好吗
  • 从多线程程序中调用 system()

    我们正在开发一个用 C 编写的多线程内存消耗应用程序 我们必须执行大量的 shellscript linux 命令 并获取返回码 读完之后article http www linuxprogrammingblog com threads a
  • 为什么 Linux 对目录使用 getdents() 而不是 read()?

    我浏览 K R C 时注意到 为了读取目录中的条目 他们使用了 while read dp gt fd char dirbuf sizeof dirbuf sizeof dirbuf code Where dirbuf是系统特定的目录结构
  • 在 /dev/input/eventX 中写入事件需要哪些命令?

    我正在开发一个android需要将触摸事件发送到 dev input eventX 的应用程序 我知道C执行此类操作的代码结构如下 struct input event struct timeval time unsigned short
  • 在主目录中安装库

    在 Linux Ubuntu 中 我尝试运行一个工具 但它显示错误 库丢失 我无权在系统中安装任何内容 或者根本无法从我的用户帐户执行 sudo 是否可以在我的主目录 没有 sudo 中安装缺少的库 在我的例子中为 libstdc so 6
  • arm-linux-gnueabi 编译器选项

    我在用 ARM Linux gnueabi gcc在 Linux 中为 ARM 处理器编译 C 程序 但是 我不确定它编译的默认 ARM 模式是什么 例如 对于 C 代码 test c unsigned int main return 0x
  • 如何制作和应用SVN补丁?

    我想制作一个SVN类型的补丁文件httpd conf这样我就可以轻松地将其应用到其他主机上 If I do cd root diff Naur etc httpd conf httpd conf original etc httpd con
  • 如何更改 Ubuntu 14.04 上的 php-cli 版本?

    我是 Linux 新手 在篡改时破坏了一些 php 设置 如果我执行一个包含以下内容的 php 脚本 phpinfo 它显示 php 版本为 5 6 但通过命令行 如果我运行php v它返回 7 0 版本 我想让两个版本匹配 我怎样才能修复

随机推荐