如果您认为管理磁盘分区意味着关闭系统并希望重新启动后一切正常,那么我为您感到遗憾。抱歉,您错过了 Linux LVM 挂载功能,并意识到存储管理不必那么痛苦。
本指南向您展示如何在 Linux 中创建 LVM、挂载 LVM 分区以及在不停机的情况下管理逻辑卷。您将学习在 Ubuntu LVM 和 CentOS 系统(或者更确切地说,它们的现代替代品)上运行的基本 Linux LVM 命令。
长话短说
- LVM 在物理磁盘和文件系统之间创建灵活的存储层,使您可以在系统运行时调整分区大小
- 安装与 容易安装lvm2 在 Ubuntu 或 dnf安装lvm2 在 Rocky Linux/AlmaLinux 上(CentOS 已死,请使用这些)
- 通过初始化驱动器来创建 LVM 光伏发电,将它们分组为 创建vg,并用雕刻逻辑卷 lv创建
- 格式化后像任何其他分区一样挂载 LVM 分区 mkfs.ext4 并将条目添加到 /etc/fstab
- 关键命令: 光伏发电, VG, LVS 显示您的设置; 调整大小 动态改变尺寸; lvcreate-s 创建快照
Linux 中的 LVM 是什么?

LVM(逻辑卷管理器)位于物理磁盘和文件系统之间。 LVM 不是直接在驱动器上划分固定分区,而是创建了一个灵活的层,您可以在其中调整存储大小、移动存储并创建快照,同时一切都保持在线。
这是幕后发生的事情。您的物理驱动器成为“物理卷”。这些集合在一起形成“卷组”。从这些组中,您可以创建“逻辑卷”,其作用类似于常规分区,但具有实际的灵活性。
当您需要更多空间时,实际差异就会显现出来。传统分区会迫使您关机、从 USB 启动,并祈祷不要丢失数据。使用 LVM,您可以在系统保持工作的同时运行单个命令。我在扩展时的服务器迁移过程中了解到这一点 /家 200GB 需要大约 30 秒而不是整个周末。
物理卷如何工作
物理卷是 LVM 可以使用的任何存储设备。硬盘、SSD、RAID 阵列,甚至循环设备都算在内。你用以下命令初始化它们 光伏发电,它写入 LVM 元数据并将设备标记为可用于卷组。
物理卷并不关心下面的硬件是什么。对于 LVM 来说,500GB 旋转磁盘和新的 2TB NVMe 驱动器看起来是一样的。当您混合和匹配存储时,这一点很重要。
了解卷组
卷组将多个物理卷集中到一个存储单元中。考虑将三个 1TB 驱动器合并到一个 3TB 池中。您可以使用以下命令创建卷组 创建vg 并且可以在容量发生变化时添加或删除物理卷。
这种池方法意味着您不会受限于每个磁盘的规划。需要更多空间?将另一个驱动器添加到卷组中。更换旧驱动器?将数据移出 移动 当系统运行时,然后交换硬件。
逻辑卷的作用

逻辑卷是您实际使用的。它们是从卷组中划分出来的,其行为类似于常规分区。使用 ext4 或 xfs 格式化它们,将它们安装在任何地方,并随时调整它们的大小。不同之处在于它们不依赖于物理磁盘边界。
当你跑步时 lvcreate -L 50G -n 数据 datavg,您将从卷组池中分配 50GB。该空间可能来自一个驱动器,也可能分布在多个驱动器上。你并不关心,因为 LVM 会处理分配。
物理范围解释
物理盘区是 LVM 中的最小分配单元,通常为 4MB 块。创建逻辑卷时,LVM 从卷组中分配物理盘区。这种精细的方法可以让您精确地调整卷的大小。
范围大小对于大卷很重要。更大的范围意味着更少的元数据开销,但分配更粗。 4MB 默认值适用于大多数情况。我从未在大型存储阵列之外更改过它,因为数学上倾向于更大的范围。
时间点备份的快照
快照捕获逻辑卷在特定时刻的状态。 LVM 使用写时复制技术。原始数据保留在原处。当发生变化时,LVM 会将旧块保留在快照中,同时将新数据写入主卷。
想测试系统更新吗?先拍一张快照。有什么东西坏了?从快照恢复。整个操作需要几秒钟,因为 LVM 只跟踪更改的块,而不复制所有内容。
我在重大架构更改之前对生产数据库进行快照。这种安心几乎不需要任何开销,而且我通过回滚失败的迁移已经避免了三次完全重建。
何时使用 LVM 条带化
条带化将数据分割到多个物理卷上, 类似于RAID 0。当您写入文件时,LVM 会将块同时分配到不同的驱动器。这种并行化可以加快读取和写入的速度,尤其是对于大型文件或数据库。
性能提升取决于您的工作负载。对大文件的顺序读取受益最大。随机访问模式的改进较少。数据库服务器和视频编辑工作站注意到了真正的差异。
用于冗余的 LVM 镜像
镜像跨物理卷复制数据。如果其中一个驱动器发生故障,您的数据将在镜像上保留下来。 LVM 自动处理同步。当停机成本比额外存储成本更高时,性能损失是值得的。
现代设置通常使用 RAID 来实现冗余,并使用 LVM 来实现灵活性。您可以获得硬件级保护和软件级管理。这种组合比单独依赖其中任何一种效果更好。
如果您正在比较存储管理方法,请查看 LVM 与 ZFS 了解每种方法何时对您的工作量有意义。
如何在 Ubuntu 和 CentOS 上安装 LVM?

如果您知道正确的命令,安装 LVM 大约需要 60 秒。现代 Linux 发行版会自动处理依赖关系。您安装该软件包,验证其是否正常工作,然后就可以配置存储了。
在我们开始之前,有一个重要的说明:CentOS 将于 2020 年结束生命。如果您仍在运行 CentOS,请切换到 Rocky Linux 或 AlmaLinux。它们是实际上获得安全更新的直接替代品。此处的命令在 Rocky Linux 9、AlmaLinux 9、Ubuntu 24.04 和当前 Debian 版本上的工作方式相同。
首先更新您的系统
首先更新系统的软件包列表。这可确保您获得最新的 LVM2 版本以及所有安全补丁和错误修复。
对于 Ubuntu 系统:
须藤apt更新
对于基于 CentOS 的系统 (Rocky Linux/AlmaLinux):
须藤 dnf 更新
基于 RHEL 的现代系统使用 dnf 作为包管理器。如果您看到旧教程提到 嗯,忽略他们。 DNF 在 2015 年取代了 yum,具有更好的依赖解析和性能。
安装LVM2包
包名称是 LVM2 跨所有发行版。安装会自动引入依赖项,包括设备映射器工具和相关库。
Ubuntu 逻辑卷管理器安装:
须藤安装lvm2
CentOS 逻辑卷管理器安装 (Rocky/AlmaLinux):
须藤 dnf 安装 lvm2
等待安装完成。在互联网良好的现代硬件上需要 10-15 秒。包大小很小,加上依赖项大约 2-3MB。
验证安装成功
检查 LVM2 是否安装正确并查看您正在运行哪个版本:
sudo lvm版本
您将看到版本信息和构建详细信息。当前版本运行 2.03.x 或更高版本。如果命令失败或返回“未找到命令”,则表明安装出现问题。
现代基于 systemd 的发行版在引导期间自动激活 LVM。您不需要像使用旧的 init 系统那样手动启用服务。 lvm2-activation-generator 处理一切。这就少了一件需要配置的事情。
想要在不存储关键数据的系统上测试 LVM?考虑旋转一个 最好的 Linux VPS 您可以在其中进行实验,而不会危及生产文件。
如何在 Linux 中创建 LVM?

创建LVM涉及三个步骤:初始化物理卷、将它们分组为卷组、以及划分逻辑卷。这个过程听起来比实际要复杂。您总共可能会运行六个命令。
开始之前,确定您要使用哪些驱动器。这里的例子使用 /dev/sdX 作为占位符。您的实际设备名称会有所不同。跑步 LSBLK 查看连接到您的系统的内容。
初始化物理卷
物理卷告诉 LVM 它可以使用哪些驱动器。初始化驱动器 光伏发电:
sudo pvcreate /dev/sdb
代替 /dev/sdb 与您的实际设备。这会将 LVM 元数据写入驱动器并将其标记为可用。驱动器不再需要传统的分区方案。
想要一次初始化多个驱动器?全部列出:
sudo pvcreate /dev/sdb /dev/sdc /dev/sdd
LVM 将它们一起处理。检查您创建的内容:
须藤PV
这显示了所有物理卷、它们的大小以及它们所属的卷组(还没有)。
创建卷组
卷组将物理卷集中到一个存储单元中。创建一个名为“datavg”的卷组:
sudo vgcreate datavg /dev/sdb
创建过程中将多个驱动器添加到同一组:
sudo vgcreate datavg /dev/sdb /dev/sdc
现在这些驱动器充当一个池。检查卷组:
须藤VGG
您将看到总大小、分配给逻辑卷的大小以及剩余的空间可供将来分配。
创建逻辑卷
逻辑卷是您实际格式化和安装的卷。它们是从卷组的可用空间中雕刻出来的。创建 50GB 卷:
sudo lvcreate -L 50G -n 数据 datavg
这将从“datavg”卷组创建一个名为“data”的逻辑卷。完整的设备路径变为 /dev/datavg/数据.
想要使用所有可用空间而不是指定大小?
sudo lvcreate -l 100%FREE -n 数据 datavg
这 -l 100%免费 选项分配每个剩余字节。对于一个逻辑卷使用整个卷组的简单设置很有用。
格式化逻辑卷
与任何分区一样,逻辑卷也需要文件系统。使用 ext4 格式化:
须藤 mkfs.ext4 /dev/datavg/data
对于小体积,这需要几秒钟,对于大体积,需要更长的时间。输出显示块计数和索引节点信息。除非出现问题,否则您可以忽略细节。
想要 xfs 吗?将 ext4 替换为 xfs。两者都工作正常。 Ext4 在 Ubuntu 系统上更常见。对于大多数用例,Rocky Linux 默认使用 xfs。
使用 LVM 命令时要格外小心。他们直接修改您的存储基础设施。我曾经打错了一个设备名称并擦除了 2TB 的客户端文件。在运行任何更改存储配置的操作之前,请先备份关键数据。
如何挂载LVM分区?
挂载 LVM 分区的方式与挂载任何其他分区完全相同。您创建一个挂载点目录,运行挂载命令,并可以选择添加一个条目 /etc/fstab 用于启动时自动安装。
唯一的区别是设备路径。而不是 /dev/sda1,你使用 /dev/卷组/逻辑卷。其他一切都保持不变。
创建挂载点目录
挂载点只是您访问文件系统的目录。在对您的用例有意义的地方创建一个:
须藤 mkdir /mnt/数据
使用描述性名称。 /mnt/数据, /mnt/备份, /home/共享 所有工作。该位置不影响功能。有些人更喜欢 /mnt 用于临时挂载和专用目录 / 对于永久的。
挂载逻辑卷
将格式化的逻辑卷挂载到挂载点:
sudo 安装 /dev/datavg/data /mnt/data
将设备路径和安装点替换为您的实际值。现在可以通过以下位置访问文件系统 /mnt/数据。您在那里创建的任何文件都位于逻辑卷上。
验证挂载是否成功:
df -h /mnt/数据
您将看到卷的总大小、已用空间、可用空间和安装点。如果没有显示任何内容,则挂载命令失败。检查您的设备路径并确保逻辑卷存在 LVS.
使坐骑永久化
临时安装在重启后消失。将条目添加到 /etc/fstab 对于永久安装:
须藤纳米 /etc/fstab
在最后添加这一行:
/dev/datavg/data /mnt/data ext4 默认值 0 0
格式为:设备、挂载点、文件系统类型、挂载选项、转储优先级、fsck 顺序。末尾的零适合大多数情况。改变 外部4 以匹配您实际使用的任何文件系统。
保存并退出编辑器。无需重新启动即可测试 fstab 条目:
须藤挂载-a
这会挂载 fstab 中尚未挂载的所有内容。如果您看到错误,则表明您在 fstab 中输入了错误的内容。在重新启动之前修复它,否则您的系统可能无法正常启动。
当您为生产工作负载安装卷时,性能很重要。设置 LVM 配置后, Linux下测试磁盘速度 来衡量实际吞吐量和延迟。
Ubuntu 安装期间挂载 LVM
Ubuntu 的安装程序 支持系统设置期间的 LVM 配置。当您到达分区屏幕时,选择“手动”分区,然后选择“配置逻辑卷管理器”。
这种方法非常适合新安装。您可以在安装操作系统之前设置卷组和逻辑卷。安装程序处理 /etc/fstab 自动输入。
对于现有系统,上面的命令行方法为您提供了更多控制权,并让您准确了解每个步骤发生的情况。
解决安装问题
如果您的 LVM 分区无法挂载,请首先检查以下常见问题:
卷组未激活:
sudo vgchange -ay
这将激活所有卷组。有时,它们在添加新驱动器或重新启动后不会自动激活。
设备路径错误: 验证逻辑卷是否存在 LVS 并使用完整路径,例如 /dev/卷组/逻辑卷,不是捷径。
文件系统错误: 对已卸载的卷运行文件系统检查:
须藤 fsck /dev/datavg/data
文件系统损坏会阻止安装。 fsck 工具可以自动修复许多问题。
Linux LVM 的基本命令有哪些?
Linux LVM 命令可让您从命令行管理整个存储设置。这些是您在实践中实际使用的命令,而不是过时文档中的理论命令。
显示物理卷
查看系统中的所有物理卷:
须藤PV
这显示了一个简洁的表格,其中包含设备名称、卷组、格式、属性、大小和可用空间。有关特定物理卷的详细信息:
sudo pvdisplay /dev/sdb
详细视图包括物理盘区大小、总盘区、已分配盘区和 UUID。当您需要精确的数字来规划容量时非常有用。
显示卷组
列出所有卷组:
须藤VGG
您将看到卷组名称、物理卷计数、逻辑卷计数、属性、总大小和可用空间。欲了解全面的详细信息:
sudo vg显示数据vg
这显示了一切:范围大小、总范围、分配策略和 UUID。我在规划新的逻辑卷时使用它来准确查看剩余的空间。
显示逻辑卷
列出所有逻辑卷:
须藤lvs
输出显示逻辑卷名称、卷组、属性、大小以及它们使用的物理盘区。欲了解完整信息:
sudo lvdisplay /dev/datavg/data
这揭示了逻辑卷的路径、块设备、创建时间、状态和段。有助于解决挂载问题或检查快照关系。
扩展卷组
当您需要更多容量时,将物理卷添加到现有卷组:
sudo vgextend datavg /dev/sdd
这增加了 /dev/sdd 到“datavg”卷组。可用空间立即可用于现有逻辑卷或创建新逻辑卷。无需重新启动。
当备份正在运行时,我以这种方式向我的备份卷组添加了 2TB 驱动器。整个操作大约持续了5秒。
调整逻辑卷大小
扩展逻辑卷以为其提供更多空间:
sudo lvresize -L +50G /dev/datavg/data
这将为逻辑卷添加 50GB。调整大小后,扩展文件系统以使用新空间:
对于 ext4:
sudo resize2fs /dev/datavg/data
对于 xfs:
sudo xfs_growfs /mnt/数据
文件系统不断增长以填满逻辑卷。当卷保持安装和使用状态时,一切都会发生。除了更多的可用空间之外,用户不会注意到任何事情。
想要缩小吗?这风险更大,需要先卸载。在缩小卷之前始终进行备份。
创建卷快照
快照捕获逻辑卷的当前状态以进行备份或测试:
sudo lvcreate -s -L 10G -n 数据快照 /dev/datavg/data
这将创建“data”逻辑卷的名为“data-snapshot”的 10GB 快照。快照使用写时复制技术。它只需要用于更改块的空间,而不是整个卷。
将快照挂载为只读以实现一致备份:
须藤 mkdir /mnt/快照
sudo mount -o ro /dev/datavg/data-snapshot /mnt/snapshot
备份自 /mnt/快照 而原始卷不断被写入。这彻底解决了“如何备份实时数据库”的问题。
删除逻辑卷
删除不再需要的逻辑卷:
sudo lvremove /dev/datavg/旧数据
该命令在删除之前要求确认。这将永久破坏逻辑卷及其上的所有数据。确保您有所有重要内容的备份。
移动物理范围
在删除物理卷之前将数据移出物理卷:
sudo pvmove /dev/sdb
LVM 自动将所有物理盘区从 /dev/sdb 到卷组中的其他物理卷。当系统保持在线时,该操作在后台运行。
当驱动器开始显示 SMART 错误时,这救了我。我将所有内容从故障驱动器上移走,将其从卷组中删除,并在维护时段期间将其替换。零停机时间。
扫描卷组
有时,添加新驱动器或重新启动后,卷组不会显示。强制扫描:
须藤vgscan
sudo vgchange -ay
第一个命令扫描卷组。第二个激活它找到的所有内容。您的逻辑卷可以再次访问。
如果您正在为开发环境设置 Ubuntu LVM,您可能还需要以下指南 在 Ubuntu 上安装 Hadoop, 在 Ubuntu 上安装 Redis, 或者 在 Ubuntu 上安装 XRDP 用于远程访问 LVM 管理的系统。
结论
LVM 将 Linux 存储管理从严格的分区规划转变为灵活的容量分配。您可以获得动态调整大小、时间点快照以及将不同驱动器池化到统一存储空间的能力。同时保持系统在线。
核心工作流程在各个发行版中保持一致。初始化物理卷 光伏发电,将它们合并到卷组中 创建vg,雕刻逻辑卷 lv创建,使用您喜欢的文件系统格式化它们,然后像任何分区一样安装它们。这些命令在 Ubuntu LVM 和 Rocky Linux 设置上的工作方式相同。
如果您不熟悉逻辑卷管理,请从小处开始。在备用驱动器上创建测试卷组。练习调整逻辑卷大小、拍摄快照以及在物理卷之间移动数据。当错误发生在非生产存储上时,造成的伤害较小。
关于 CentOS 的一个提醒:它已经死了。请改用 Rocky Linux 或 AlmaLinux。它们与 RHEL 二进制兼容并得到实际维护。 LVM 命令的工作方式相同,但您可以获得重要的安全更新。
想要练习 LVM 而又不给本地文件带来风险吗?旋转一个 乌班图VPS 在这里你可以自由地进行实验。在将命令应用到生产系统之前,打破常规、从错误中学习并掌握命令。
以最便宜的价格为自己购买经济型或高级 Linux VPS 来托管您的网站或远程桌面。 VPS 在 Linux KVM 上运行以提高效率,并在具有 NVMe SSD 存储的强大硬件上运行以提高速度。
阅读更多