目录
一、LVM的基本组成
1、物理卷 (PV,Physical Volume)
2、卷组 (VG,Volume Group)
3、逻辑卷 (LV,Logical Volume)
4、物理块 (PE,Physical Extends)
二、LVM的优缺点
1、优点
2、缺点
三、LVM的使用
1、创建分区(partition)
2、物理卷(PV)相关操作
①、通过lvmdiskscan命令列出可被用作pv的设备
②、使用pvcreate命令创建pv
③、查看当前所有PV信息
3、卷组(VG)相关操作
①、创建卷组
②、查看卷组信息
4、逻辑卷(LV)相关操作
①、创建LV
②、查看lv
③、扩容逻辑卷
5、格式化并挂载LV(逻辑卷)
①、格式化逻辑卷
②、挂载
首页 运维 linux运维 Linux磁盘管理之LVM磁盘操作命令怎么使用

Linux磁盘管理之LVM磁盘操作命令怎么使用

May 23, 2023 pm 01:58 PM
linux lvm

LVM,Logical Volume Manger,是linux内核提供的一种逻辑卷管理功能,由内核驱动和应用层工具组成,它是在硬盘的分区基础上,创建了一个逻辑层,可以非常灵活且非常方便的管理存储设备。

LVM利用Linux内核的device-mapper功能来实现存储系统的虚拟化(系统分区独立于底层硬件)。 通过LVM,可以实现存储空间的抽象化并在上面建立虚拟分区(virtual partitions),可以更简便地扩大和缩小分区,可以增删分区时无需担心某个硬盘上没有足够的连续空间,避免为正在使用的磁盘重新分区的麻烦、为调整分区而不得不移动其他分区的不便,它相比传统的分区系统可以更灵活地管理磁盘。

一、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磁盘管理中的位置图:

Linux磁盘管理之LVM磁盘操作命令怎么使用

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

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

二、LVM的优缺点

1、优点

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

  • 将多块硬盘看作一块大硬盘

  • 使用逻辑卷(LV),可以创建跨越众多硬盘空间的分区。

  • 可以创建小的逻辑卷(LV),在空间不足时再动态调整它的大小。

  • 在调整逻辑卷(LV)大小时可以不用考虑逻辑卷在硬盘上的位置,不用担心没有可用的连续空间。

  • 在线进行逻辑卷和卷组的创建、删除、大小调整等操作是可行的。对于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的分区:

Linux磁盘管理之LVM磁盘操作命令怎么使用

Linux磁盘管理之LVM磁盘操作命令怎么使用

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

Linux磁盘管理之LVM磁盘操作命令怎么使用

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

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

Linux磁盘管理之LVM磁盘操作命令怎么使用

 注:如果系统引导程序不支持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 ...
登录后复制

Linux磁盘管理之LVM磁盘操作命令怎么使用

③、查看当前所有PV信息

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

Linux磁盘管理之LVM磁盘操作命令怎么使用

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

3、卷组(VG)相关操作

①、创建卷组

使用命令vgcreate创建卷组

root# vgcreate vg_name pv1 pv2 ...
登录后复制

Linux磁盘管理之LVM磁盘操作命令怎么使用

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

②、查看卷组信息

Linux磁盘管理之LVM磁盘操作命令怎么使用

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

Linux磁盘管理之LVM磁盘操作命令怎么使用

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

①、创建LV

使用lvcreate命令

root# lvcreate -L <lv_size>  <vg_name> -n <lv_name>
 
# 将卷组vg_name下所有剩余空间给创建的lv_name逻辑卷
root# lvcreate -l +100%FREE  <vg_name> -n <lv_name>
登录后复制
root# lvcreate -L <lv_size> <vg_name> -n <lv_name>
登录后复制

Linux磁盘管理之LVM磁盘操作命令怎么使用

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

Linux磁盘管理之LVM磁盘操作命令怎么使用

②、查看lv

命令lvs、lvscan、lvdisplay查看

Linux磁盘管理之LVM磁盘操作命令怎么使用

③、扩容逻辑卷

通过命令lvextend:

root# lvextend -L <extend_size> <lv_path>
登录后复制

Linux磁盘管理之LVM磁盘操作命令怎么使用

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

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

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

# modprobe dm-mod
# vgscan
# vgchange -ay
登录后复制

最后,可以看到如下:

Linux磁盘管理之LVM磁盘操作命令怎么使用

①、格式化逻辑卷

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

# mkfs.<filesystem_type> /dev/mapper/<vg_name>-<lv_name>
 
# 
# mkfs.xfs /dev/mapper/vg_fedora_yg-lv_yg01
登录后复制

Linux磁盘管理之LVM磁盘操作命令怎么使用

②、挂载
# mount /dev/mapper/<vg_name>-<lv_name> <mount_point>
登录后复制

Linux磁盘管理之LVM磁盘操作命令怎么使用

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

 最后,我画了一张图,来展示linux lvm:

Linux磁盘管理之LVM磁盘操作命令怎么使用

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

说明:

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

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

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

以上是Linux磁盘管理之LVM磁盘操作命令怎么使用的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

docker desktop怎么用 docker desktop怎么用 Apr 15, 2025 am 11:45 AM

如何使用 Docker Desktop?Docker Desktop 是一款工具,用于在本地机器上运行 Docker 容器。其使用步骤包括:1. 安装 Docker Desktop;2. 启动 Docker Desktop;3. 创建 Docker 镜像(使用 Dockerfile);4. 构建 Docker 镜像(使用 docker build);5. 运行 Docker 容器(使用 docker run)。

怎么看docker进程 怎么看docker进程 Apr 15, 2025 am 11:48 AM

Docker 进程查看方法:1. Docker CLI 命令:docker ps;2. Systemd CLI 命令:systemctl status docker;3. Docker Compose CLI 命令:docker-compose ps;4. Process Explorer(Windows);5. /proc 目录(Linux)。

docker镜像失败怎么办 docker镜像失败怎么办 Apr 15, 2025 am 11:21 AM

Docker镜像构建失败的故障排除步骤:检查Dockerfile语法和依赖项版本。检查构建上下文中是否包含所需源代码和依赖项。查看构建日志以获取错误详细信息。使用--target选项构建分层阶段以识别失败点。确保使用最新版本的Docker引擎。使用--t [image-name]:debug模式构建镜像以调试问题。检查磁盘空间并确保足够。禁用SELinux以防止干扰构建过程。向社区平台寻求帮助,提供Dockerfile和构建日志描述以获得更具体的建议。

vscode需要什么电脑配置 vscode需要什么电脑配置 Apr 15, 2025 pm 09:48 PM

VS Code 系统要求:操作系统:Windows 10 及以上、macOS 10.12 及以上、Linux 发行版处理器:最低 1.6 GHz,推荐 2.0 GHz 及以上内存:最低 512 MB,推荐 4 GB 及以上存储空间:最低 250 MB,推荐 1 GB 及以上其他要求:稳定网络连接,Xorg/Wayland(Linux)

vscode 无法安装扩展 vscode 无法安装扩展 Apr 15, 2025 pm 07:18 PM

VS Code扩展安装失败的原因可能包括:网络不稳定、权限不足、系统兼容性问题、VS Code版本过旧、杀毒软件或防火墙干扰。通过检查网络连接、权限、日志文件、更新VS Code、禁用安全软件以及重启VS Code或计算机,可以逐步排查和解决问题。

vscode 可以用于 mac 吗 vscode 可以用于 mac 吗 Apr 15, 2025 pm 07:36 PM

VS Code 可以在 Mac 上使用。它具有强大的扩展功能、Git 集成、终端和调试器,同时还提供了丰富的设置选项。但是,对于特别大型项目或专业性较强的开发,VS Code 可能会有性能或功能限制。

vscode是什么 vscode是干什么用的 vscode是什么 vscode是干什么用的 Apr 15, 2025 pm 06:45 PM

VS Code 全称 Visual Studio Code,是一个由微软开发的免费开源跨平台代码编辑器和开发环境。它支持广泛的编程语言,提供语法高亮、代码自动补全、代码片段和智能提示等功能以提高开发效率。通过丰富的扩展生态系统,用户可以针对特定需求和语言添加扩展程序,例如调试器、代码格式化工具和 Git 集成。VS Code 还包含直观的调试器,有助于快速查找和解决代码中的 bug。

Linux的主要目的是什么? Linux的主要目的是什么? Apr 16, 2025 am 12:19 AM

Linux的主要用途包括:1.服务器操作系统,2.嵌入式系统,3.桌面操作系统,4.开发和测试环境。Linux在这些领域表现出色,提供了稳定性、安全性和高效的开发工具。

See all articles