Linux系统中磁盘管理LVM与挂载
本文以属于Linux系统基本概念,如果以查找教程教程,解决问题为主,只需要查看本文后半部分。如需要系统性学习请查看本文前半部分。
本文操作极容易导致主机无法自动重启,请慎重操作。操作前务必要进行备份操作!
文章目录
- Linux系统中磁盘管理LVM与挂载
- 0. 引言
- 1. Linux系统磁盘分区
- 1.1 分区的基本概念
- 2. Linux磁盘管理LVM
- 2.1 LVM的主要组成部分
- 2.2 pv,vg ,lv的关系
- 2.3 LVM设计的目的
- 3. LVM实操讲解
- 3.1 创建物理分区
- 3.2 创建物理卷
- 3.3 创建卷组
- 3.4 创建逻辑卷
- 3.5 挂载逻辑卷
- 3.5 卷组扩容与缩容
- 3.6 逻辑卷扩容与缩容
- 6. 答疑
- 6.1 为什么创建物理卷后的容量小于物理分区的容量
- 6.2为什么创建逻辑卷后的总容量小于物理卷容量之和
- 7. 参考资料
0. 引言
在Linux系统中,分区(Partition)是一个物理硬盘驱动器(HDD)或固态硬盘(SSD)上被划分出来的独立存储区域。每个分区都有自己独立的文件系统,可以包含不同类型的文件和数据,并且可以被操作系统独立地访问和管理。分区又可以分为物理分区和逻辑分区。
挂载指的是将一个文件系统连接到一个已存在的目录树中的某个点上,这个点称为“挂载点”(mount point)。挂载点既可以是本地路径,也可以是网络路径。一旦文件系统被挂载,用户就可以通过该挂载点访问和操作文件系统中的文件和目录。
本文将主要讲解Linux系统的分区,挂载概念以及如何进行屋里分区,逻辑分区,分组分卷,挂载的概念和操作实例,相关常见问题等。
1. Linux系统磁盘分区
1.1 分区的基本概念
- 物理分区:直接在物理硬盘上划分出的存储区域,它们占据了硬盘的一部分物理空间。物理分区是磁盘分区的最基本形式。
tips:一块实体磁盘是一个物理分区吗?
“块实体磁盘”通常指的是物理硬盘本身,它是存储数据的物理媒介。而“物理分区”则是指在物理硬盘上定义的逻辑区域,用于组织和管理数据。这两个概念并不完全等同。
- 块实体磁盘: 这个术语中的“块”通常指的是磁盘上数据的最小读写单位——块(block)。块实体磁盘是指整个物理磁盘设备,它可以是一个硬盘驱动器(HDD)、固态硬盘(SSD)、甚至是闪存驱动器或其他任何形式的非易失性存储设备。在较低层次,磁盘被划分为一系列的块,操作系统通过这些块来读写数据。
- 物理分区: 物理分区是物理硬盘上的一部分,是通过分区表(例如MBR或GPT)定义的逻辑区域。一个物理硬盘可以被分成一个或多个物理分区,每个分区可以有自己的文件系统,可以独立地被格式化和挂载。物理分区是操作系统用来区分和管理磁盘空间的一种方式。
- 逻辑分区:在扩展分区内部创建的分区称为逻辑分区。在MBR(主引导记录)分区表类型的硬盘上,一个硬盘最多可以有四个主分区,或者三个主分区加上一个扩展分区,扩展分区内可以包含多个逻辑分区。GPT(GUID分区表)分区表类型则不受这个限制,支持更多的分区数量。
- 分区表:分区表是硬盘上用于存储分区信息的结构GPT是一种分区表格式。GPT提供了对更大磁盘和更多分区的支持,并且是许多现代Linux发行版的默认选择。
2. Linux磁盘管理LVM
逻辑卷管理器LVM(LVM,Logical Volume Manager)允许用户将一个或多个物理硬盘上的分区组合成更大的存储池,并在这个池上创建逻辑卷(Logical Volumes,LVs),这些逻辑卷可以独立于底层物理磁盘进行扩展和收缩,从而提供了更好的磁盘空间利用率和管理效率。
LVM系统和磁盘的关系如图所示
依次为:disk -> partition -> PV -> VG -> LV -> fs,也即磁盘->分区->物理卷->卷组->逻辑卷->文件系统。
2.1 LVM的主要组成部分
- 物理卷(Physical Volume,PV): 物理卷是LVM的基本构建单元,可以是一个物理硬盘或其上的分区,也可以是软件RAID设备或任何其他形式的块设备。物理卷被划分为若干个物理区域(Physical Extents,PEs),这是LVM内部的最小存储单元。
- 卷组(Volume Group,VG): 卷组是由一个或多个物理卷组成的集合,相当于一个大的存储池。在卷组中,物理区域(PEs)被统一管理和分配。卷组为逻辑卷提供了存储空间。
- 逻辑卷(Logical Volume,LV): 逻辑卷是从卷组中分配出来的存储空间,它看起来就像一个普通的硬盘分区,可以被格式化为各种文件系统并挂载使用。逻辑卷的大小可以动态调整,而不必关心底层物理磁盘的限制。
2.2 pv,vg ,lv的关系
一个物理硬盘可以组成一个物理分区,一个物理硬盘也可以组成多个物理分区(一般最多四个)。一个物理分区为一个物理卷(pv)。
1个至多个物理卷可以组成一个卷组(vg),一个卷组又可以分成多个逻辑卷。
- PV与VG的关系:一个或多个物理卷可以组成一个卷组。在创建卷组时,需要指定包含哪些物理卷。卷组中的物理卷可以来自不同的物理磁盘,也可以来自同一个物理磁盘的不同分区。
- VG与LV的关系:一个卷组可以划分出多个逻辑卷。逻辑卷的大小和数量取决于卷组的总容量和实际需求。在卷组上创建逻辑卷时,可以指定逻辑卷的大小和名称等属性。
- 整体关系:PV(物理卷)-> VG(卷组)-> LV(逻辑卷)。这种层次结构使得Linux系统能够灵活地管理存储资源,实现数据的动态分配和扩展。
物理卷,卷组,逻辑卷的关系图如下所示
2.3 LVM设计的目的
这种分层的架构允许用户更灵活地管理存储空间,例如动态调整逻辑卷的大小、在卷组之间移动物理卷,或者在一个卷组中创建多个逻辑卷来满足不同的应用需求。
当给逻辑卷分配的空间较大时,我们可以动态减小逻辑卷的大小。当给逻辑卷分配的空间较小时,我们可以动态扩大逻辑卷的大小。
同事还可以给卷组扩容。
3. LVM实操讲解
本次我使用的Linux主机位vm下的虚拟机,openeuler for BClinux 21.10
在操作前我们首先查看系统的磁盘分区情况
可以看到系统共有两个磁盘。第一个磁盘创建成物理分区sda1,sda2。sda1和sda2分别各自成为一个物理卷。sda2下有三个逻辑卷,分别挂载在不同的目录下。
下面我们给虚拟机新增一个10G的磁盘,一个20G的磁盘和一个30G的磁盘(具体步骤此处不做讨论)来模拟物理机插入磁盘操作。
可以参考文章:VMware虚拟机添加磁盘
查看磁盘目录
可以看到已经有多余的三个磁盘。
LVM操作的基本命令如下
3.1 创建物理分区
在sdb,sdc,sdd三个磁盘分别创建三个物理分区(使用fdisk),物理分区类型都为lvm
此处为使用fdisk工具在sdb创建了一个10G大小的物理分区sdb1,其余物理分区创建过程类似
按要求创建完分区后磁盘物理分区情况如下图所示
3.2 创建物理卷
创建物理卷使用的命令为pvcreate
下面我们使用pvcreate
将上述创建的9个物理分区设置为初始化物理卷
部分物理卷信息如下
3.3 创建卷组
卷组是由一个或多个物理卷(PV)组成的集合。物理卷可以是硬盘上的分区、整个硬盘、软件RAID设备或其他任何形式的块设备。卷组的作用是将这些物理卷的存储空间汇集在一起,形成一个更大的、逻辑上连续的存储池,供逻辑卷使用。
使用vgcreate来创建卷组
3.4 创建逻辑卷
逻辑卷是在卷组(Volume Group,VG)之上创建的,用于存储数据的逻辑单元。它提供了比传统分区更灵活的存储管理方式,允许动态调整大小而不影响上层的文件系统或应用程序。
使用lvcreate
命令可以创建逻辑卷。
在创建逻辑卷之前,我们看一下各个卷组的大小
其中最大的卷为xianggu
卷组,空间略小于22G
我们使用xianggu卷组创建一个10G的逻辑卷,逻辑卷名称为logical,并将其设置为ext4类型
使用lsblk查看挂载情况
查看逻辑卷
3.5 挂载逻辑卷
在上面的操作,我们创建了逻辑卷logical,现在我们挂载逻辑卷。
3.5 卷组扩容与缩容
物理卷(Physical Volume, PV)本身不能直接动态扩容,因为物理卷是基于底层存储设备(如硬盘分区或裸设备)的固定部分。
给卷组扩容的方法就是将新的物理卷pv添加到卷组。给卷组缩容的方法就是将物理卷pv从卷组中拿出。
扩容使用的命令是vgextend
用法如下
看到香菇卷的大小为约12G
现在我们将xianggu卷组中加入sdd3,可以看到卷组容量为约27G,卷组成功扩容
下面我们对卷组进行缩容,xianggu卷组是由sdb1,sdc1,sdd1,sdd3组成的
缩减逻辑卷是一项风险较高的操作,可能导致数据丢失。
下面我们要在xianggu卷组中删除sdc1
如果发现物理卷上有逻辑卷,这将导致数据丢失,务必先备份
使用的命令是vgreduce
,用法如下
3.6 逻辑卷扩容与缩容
逻辑卷扩容与缩容允许用户在不丢失数据的情况下动态地调整逻辑卷的大小
缩减逻辑卷是一项风险较高的操作,可能导致数据丢失。
逻辑卷扩容使用的命令为lvextend
,缩容使用的是lvreduce
语法如下
下面进行实际操作
- 对于
ext2
、ext3
、ext4
文件系统,你可以使用resize2fs
命令:
注意:在大多数情况下,resize2fs
会自动检测并扩展文件系统到逻辑卷的新大小,但最好先检查其手册页以确认。
- 对于
xfs
文件系统,xfs_growfs
命令用于扩展文件系统:
其中/mount_point
是逻辑卷挂载的点。
上述扩容和缩容也可以直接来指定逻辑卷容量大小
6. 答疑
6.1 为什么创建物理卷后的容量小于物理分区的容量
当物理分区被初始化为物理卷时,其容量会基于PE的大小进行划分。如果物理分区的总容量不能被PE大小整除,那么最后一部分空间可能会被浪费或保留为未分配空间,从而导致物理卷的容量小于物理分区的原始容量。
LVM可能会为物理卷预留一定的空间用于管理目的,如快照、镜像、恢复点等。这些预留空间会减少可用于实际数据存储的容量。
6.2为什么创建逻辑卷后的总容量小于物理卷容量之和
卷组(Volume Group, VG)是由一个或多个物理卷(Physical Volume, PV)组成的集合。VG的容量是所有PV容量的总和,但并非所有这些容量都会直接分配给逻辑卷。
LVM可能会为VG或LV预留一定的空间用于管理目的,如快照、镜像等。这些预留空间会减少可用于逻辑卷的实际容量。
7. 参考资料
- linux磁盘分区
- Linux LVM的基本使用
- Linux系统磁盘(硬盘)逻辑卷分区和介绍
- VMware虚拟机添加磁盘