LVM Linux 磁盘管理详解

编程教程 > Linux (21) 2025-06-04 15:31:45

一、LVM的基本组成

1、物理卷 (PV,Physical Volume)

一个可供存储LVM的块设备. 如硬盘分区(MBR或GPT分区)、SAN 的硬盘、RAID 或 LUN,一个回环文件, 一个被内核映射的设备 (例如 dm-crypt),它包含一个特殊的LVM头,它是 LVM 构建的实际硬件或存储系统。

2、卷组 (VG,Volume Group)

卷组是对一个或多个物理卷的集合,并在设备文件系统中显示为 /dev/VG_NAME。

3、逻辑卷 (LV,Logical Volume)

逻辑卷是可供系统使用的最终元设备,它们在卷组中创建和管理,由物理块组成,实际上就是一个虚拟分区,并显示为 /dev/VG_NAME/LV_NAME,通常在其上可以创建文件系统。

4、物理块 (PE,Physical Extends)

一个卷组中最小的连续区域(默认为4 MiB),多个物理块将被分配给一个逻辑卷。你可以把它看成物理卷的一部分,这部分可以被分配给一个逻辑卷。

下面我画了一张lvm在linux磁盘管理中的位置图:

LVM Linux 磁盘管理详解_图示-c8d80e4db60347288b9678b740048391.png

依次为:disk -> partition -> PV -> VG -> LV -> fs,也即磁盘->分区->物理卷->卷组->逻辑卷->文件系统。

其创建也是按照这个顺序,下面会详细介绍。 

二、LVM的优缺点

1、优点

比起传统的硬盘分区管理方式,LVM更富于灵活性:

将多块硬盘看作一块大硬盘
使用逻辑卷(LV),可以创建跨越众多硬盘空间的分区。
可以创建小的逻辑卷(LV),在空间不足时再动态调整它的大小。
在调整逻辑卷(LV)大小时可以不用考虑逻辑卷在硬盘上的位置,不用担心没有可用的连续空间。
可以在线(online)对逻辑卷(LV)和卷组(VG)进行创建、删除、调整大小等操作。不过LVM上的文件系统也需要重新调整大小,好在某些文件系统(例如ext4)也支持在线操作。
无需重新启动服务,就可以将服务中用到的逻辑卷(LV)在线(online)/动态(live)迁移至别的硬盘上。
允许创建快照,可以保存文件系统的备份,同时使服务的下线时间(downtime)降低到最小。
支持各种设备映射目标(device-mapper targets),包括透明文件系统加密和缓存常用数据(caching of frequently used data)。这将允许你创建一个包含一个或多个磁盘、并用LUKS加密的系统,使用LVM on top 可轻松地管理和调整这些独立的加密卷 (例如. /, /home, /backup等) 并免去开机时多次输入密钥的麻烦。

2、缺点

在系统设置时需要更复杂的额外步骤。
Windows系统并不支持LVM,若使用双系统,你将无法在Windows上访问LVM分区。

三、LVM的使用

1、创建分区(partition)

在配置lvm之前,必须对存储设备进行分区,可以使用fdisk或者parted工具进行,创建分区时注意分区类型的设置(类型为linux lvm):

如果使用的是MBR,设置分区类型要为8e。
如果使用的是GPT,设置分区类型要为E6D6D379-F507-44C2-A23C-238F2A3DF928。
我虚拟机新加了个磁盘/dev/sdb,下面我们创建一个8G的分区:
 

LVM Linux 磁盘管理详解_图示-4e65a49317f544e68902f2bbc9c448de.png
LVM Linux 磁盘管理详解_图示-97ae621c284648a3ace3285ccad90dfa.png

以同样的方式,再创建一个10G的linux lvm类型的分区:

LVM Linux 磁盘管理详解_图示-f085aecea61848639264e7f4428c11b8.png

2、物理卷(PV)相关操作

①、通过lvmdiskscan命令列出可被用作pv的设备

LVM Linux 磁盘管理详解_图示-2c85e955a33649128d4796a68432dcd2.png

注:如果系统引导程序不支持LVM,则/boot不能置于LVM中。此刻必须创建一个独立的/boot分区并直接格式化后挂载到/boot。已知支持LVM的引导程序只有GRUB。

从上图可以看到//dev/sda2已经是PV了,所以只有dev/sda1、/dev/sdb1、/dev/sdb2可以用于创建PV,又因为/dev/sda1是boot引导区,所以下面我们可以对/dev/sdb1、/dev/sdb2创建PV
 

②、使用pvcreate命令创建pv

root# pvcreate device1 device2 ...
LVM Linux 磁盘管理详解_图示-be058b0f7713441b9ee4204a91976f39.png

③、查看当前所有PV信息

可以通过pvs、pvscan、pvdisplay这三个命令查看pv信息 

LVM Linux 磁盘管理详解_图示-f4afe2ae997e471c8b5d3da4daf306da.png

 注意: 如果你用的是未格式化过且擦除块(erase block)大小小于1M的SSD,请采用以下命令pvcreate --dataalignment 1m /dev/sda来设置对齐(alignment)。

3、卷组(VG)相关操作

①、创建卷组

使用命令vgcreate创建卷组

root# vgcreate vg_name pv1 pv2 ...
LVM Linux 磁盘管理详解_图示-62e629a2f4454647b2b501aabc26cffe.png

创建卷组vg_fedora_yg,并把pv /dev/sdb1加入该卷组。

②、查看卷组信息

LVM Linux 磁盘管理详解_图示-52fb36dfb531413bbb05d4a15b8767f5.png

此时,也可以通过pvs查看各个物理卷所在的卷组:

LVM Linux 磁盘管理详解_图示-4b75469f8cd44284acbff329405cb775.png

4、逻辑卷(LV)相关操作

①、创建LV

使用lvcreate命令

lvcreate -L <lv_size>  <vg_name> -n <lv_name>

# 将卷组vg_name下所有剩余空间给创建的lv_name逻辑卷

lvcreate -l +100%FREE  <vg_name> -n <lv_name>
lvcreate -L <lv_size> <vg_name> -n <lv_name>
LVM Linux 磁盘管理详解_图示-789db29f8cc04eaca486d77e8e501ee7.png

该逻辑卷创建完后,你就可以通过/dev/mapper/vg_fedora_yg-lv_yg01或/dev/vg_fedora_yg/lv_yg01来访问它:

LVM Linux 磁盘管理详解_图示-611c618bce3f40fe8fcc4ba9f8eacc31.png

②、查看lv

 命令lvs、lvscan、lvdisplay查看

LVM Linux 磁盘管理详解_图示-4a11871beff845dcb7243389b01e9360.png

③、扩容逻辑卷

通过命令lvextend:

root# lvextend -L <extend_size> <lv_path>
LVM Linux 磁盘管理详解_图示-c556a69f33a94199bd123b68cccb4999.png

 

注意:如果扩容的逻辑卷已经挂载到具体文件系统,则需要执行resize2fs或者xfs_growfs(针对xfs文件系统)命令使修改生效,可以通过df -Th或者blkid查看lv所挂载的文件系统类型。

5、格式化并挂载LV(逻辑卷)

上面逻辑卷LV创建之后,通常是已经可以在/dev/mapper/或者/dev/vg_name/下面找到该逻辑卷了,如果找不到的话,可以执行如下命令:

# modprobe dm-mod
# vgscan
# vgchange -ay

最后,可以看到如下:
 

LVM Linux 磁盘管理详解_图示-414b9f069b0a44b2a1fe958381229f44.png

 

①、格式化逻辑卷

现在可以在该逻辑卷上创建文件系统:

mkfs.<filesystem_type> /dev/mapper/<vg_name>-<lv_name> 
mkfs.xfs /dev/mapper/vg_fedora_yg-lv_yg01
LVM Linux 磁盘管理详解_图示-84a075f6c28c41d28c9ddece3a146ab6.png

②、挂载

mount /dev/mapper/<vg_name>-<lv_name> <mount_point>
LVM Linux 磁盘管理详解_图示-5fb29c0e70274a8fb1f317bea192e94d.png

 注:挂载点请选择你所新建的逻辑卷(例如:/dev/mapper/vg_fedora_yg-lv_yg01),不要使用逻辑卷所在的实际分区设备(即不要使用:/dev/sdb1

 

 最后,我画了一张图,来展示上面操作关系linux lvm:

LVM Linux 磁盘管理详解_图示-15e7f8f6ceb74adb9cd90ae5319a9586.png

你可以对照上面内容,理解下linux lvm的磁盘管理机制。

说明:

①、图中/dev/sda1是boot引导区,不能用lvm管理,所以直接格式化后挂载到目录/boot下,另外/dev/sdb2也是没有经过lvm直接格式化后挂载到目录的。

②、卷组vg_fedora1容量为139G,从其中分配出去了40+5+45=90G,还有49G空闲,这些空闲容量可以lvextend到下面的lv中;也可以再创建个lv,分配出去。

③、磁盘设置/dev/sdc还有50G空闲空间未分区,可以分区后使用。

关于lvm其它高级配置功能,可以查看参考链接。
 

  1. gentoo-LVM
  2. archlinux-LVM
  3. debian-LVM

 


评论
User Image
提示:请评论与当前内容相关的回复,广告、推广或无关内容将被删除。

相关文章
一、LVM的基本组成1、物理卷 (PV,Physical Volume)一个可供存储LVM的块设备. 如硬盘分区(MBR或GPT分区)、SAN 的硬盘、RAID
LVM的基本概念PD:物理磁盘(PhysicalDisk),如硬盘,或RAID硬盘。PP:物理分区(PhysicalPartition),如硬盘的分区,或RAID硬盘的分区。
Linux(centos)系统远程(SSH)登录输入错误密码多次锁定账号时间PAM实现方式
Linux后台下载工具(器)transmission 类似迅雷使用详解,transmission 是一款支持绝大多数Linux系统的下载工具,采用web进行管理。可以通过web添加bt下载文件下...
前言这里扩容的情况分为两种第一是:PVE系统之前安装到U盘,后面想安装到硬盘通过克隆将U盘上面的信息克隆到了硬盘,这导致硬盘大于U盘外的容量无法使用
Apine Linux 配置国内软件源echo "https://mirrors.tuna.tsinghua.edu.cn/alpine/v3.16/main" &gtl; /etc/apk/r...
一、规则分类1.进入本机,即访问本机规则2.出本机,即本机访问外面规则3.转发,即本地转发规则,如端口7001转发到80 二、使用1.允许来自IP 10.1.1
前言通过上一篇Fail2Ban安装和使用保护SSH免受暴力攻击-XQLEE'Blog安装和基本使用已经能满足Linux服务器对于ssh服务的防护工作了。这里接着
Linux系统分区Linux系统挂载硬盘Linux系统Linux系统增加交换分区swap1.分区介绍 Linux系统分区不同于windows,Linux下[IE
Linux查看BIOS版本/信息详情命令如下:#dmidecode -t 0例子:root@DS:~# dmidecode -t 0 # dmidecode 2.12 # SMBIOS en...
Alpine Linux 分区扩容切换国内源(已经操作则忽略该步骤)echo "https://mirror.tuna.tsinghua.edu.cn/alpine/v3.4/main/" &g...
Linux crontab常用表达式查看crontab任务crontab -l编辑crontab任务crontab -e每隔多少秒执行一次脚本* * * * * sleep 10; /bin/y...
Linux系统SSH命令基础用法,Linux,Linux系统
frp最新版服务端安装使用详解,本文将讲解内网穿透常用工具frp的安装配置和使用,平台为Linux平台+Windows 双平台测试。欢迎进来学习了解。