在本指南中，我们将逐步介绍如何在 Linux 中创建 LVM 分区。LVM 代表 “ 逻辑卷管理 Logical Volume Management ”，它是专门为服务器管理 Linux 系统上的磁盘或存储的推荐方式。 LVM 分区的主要优点之一是我们可以实时扩展其大小而无需停机。 LVM 分区也可以缩小，但不推荐。为了演示，我在我的 Ubuntu 22.04 系统上连接了 15GB 磁盘，我们将从命令行在该磁盘上创建 LVM 分区。准备连接到 Linux 系统的原始磁盘具有 sudo 权限的本地用户预装 lvm2 包事不宜迟，让我们深入了解这些步骤。步骤 1、识别新连接的原始磁盘登录到你的系统，打开终端并运行以下 dmesg 命令：$ sudo dmesg | grep -i sd 在输出中，查找大小为 15GB 的新磁盘。识别新连接的原始磁盘的另一种方法是通过 fdisk 命令：$ sudo fdisk -l | grep -i /dev/sd 输出：从上面的输出，可以确认新连接的磁盘是 /dev/sdb。步骤 2、创建 PV（物理卷）在开始在磁盘 /dev/sdb 上创建 物理卷 Physical Volume （PV）之前，请确保已安装 lvm2 包。如果未安装，请运行以下命令：$ sudo apt install lvm2 // On Ubuntu / Debian $ sudo dnf install lvm2 // on RHEL / CentOS 运行以下 pvcreate 命令在磁盘 /dev/sdb 上创建 PV：$ sudo pvcreate /dev/sdb Physical volume "/dev/sdb" successfully created. $ 要验证 PV 状态，运行：$ sudo pvs /dev/sdb 或者 $ sudo pvdisplay /dev/sdb 步骤 3、创建 VG（卷组）要创建 卷组 Volume Group （VG），我们将使用 vgcreate 命令。创建 VG 意味着将 PV 添加到其中。语法：$ sudo vgcreare <vg_name> <pv> 在我们的例子中，命令是：$ sudo vgcreate volgrp01 /dev/sdb Volume group "volgrp01" successfully created $ 运行以下命令以验证 VG（volgrp01）的状态：$ sudo vgs volgrp01 或者 $ sudo vgdisplay volgrp01 上述命令的输出：以上输出确认大小为 15 GiB 的卷组 volgrp01 已成功创建，一个 物理扩展Physical Extend（PE）的大小为 4 MB。创建 VG 时可以更改 PE 大小。步骤 4、创建 LV（逻辑卷）lvcreate 命令用于从 VG 中创建 逻辑卷 Logical Volume LV。 lvcreate 命令的语法如下所示：$ sudo lvcreate -L <Size-of-LV> -n <LV-Name> <VG-Name> 在我们的例子中，以下命令将用于创建大小为 14 GB 的 LV：$ sudo lvcreate -L 14G -n lv01 volgrp01 Logical volume "lv01" created. $ 验证 LV 的状态，运行：$ sudo lvs /dev/volgrp01/lv01 或者 $ sudo lvdisplay /dev/volgrp01/lv01 输出：上面的输出显示 LV（lv01）已成功创建，大小为 14 GiB。步骤 5、格式化 LVM 分区使用 mkfs 命令格式化 LVM 分区。在我们的例子中，LVM 分区是 /dev/volgrp01/lv01。注意：我们可以将分区格式化为 ext4 或 xfs，因此请根据你的设置和要求选择文件系统类型。运行以下命令将 LVM 分区格式化为 ext4 文件系统。$ sudo mkfs.ext4 /dev/volgrp01/lv01 执行下面的命令，用 xfs 文件系统格式化 LVM 分区：$ sudo mkfs.xfs /dev/volgrp01/lv01 要使用上述格式化分区，我们必须将其挂载到某个文件夹中。所以，让我们创建一个文件夹 /mnt/data：$ sudo mkdir /mnt/data 现在运行 mount 命令将其挂载到 /mnt/data 文件夹：$ sudo mount /dev/volgrp01/lv01 /mnt/data/ $ df -Th /mnt/data/ Filesystem Type Size Used Avail Use% Mounted on /dev/mapper/volgrp01-lv01 ext4 14G 24K 13G 1% /mnt/data $ 尝试创建一些没用的文件，运行以下命令：$ cd /mnt/data/ $ echo "testing lvm partition" | sudo tee dummy.txt $ cat dummy.txt testing lvm partition $ $ sudo rm -f dummy.txt 完美，以上命令输出确认我们可以访问 LVM 分区。要永久挂载上述 LVM 分区，请使用以下 echo 命令将其条目添加到 fstab 文件中：$ echo '/dev/volgrp01/lv01 /mnt/data ext4 defaults 0 0' | sudo tee -a /etc/fstab $ sudo mount -a 以上就是本指南的全部内容，感谢阅读。请在下面的评论区发表你的问题和反馈。via: https://www.linuxtechi.com/how-to-create-lvm-partition-in-linux/作者：James Kiarie 选题：lkxed 译者：geekpi 校对：wxy本文由 LCTT 原创编译，Linux 中国 荣誉推出
LVM 为你配置存储的方式提供了极大的灵活性。 逻辑卷管理器 Logical Volume Manager （LVM）允许在操作系统和硬件之间建立一个抽象层。通常，你的操作系统会查找磁盘（/dev/sda、/dev/sdb 等）和这些磁盘中的分区（/dev/sda1、/dev/sdb1 等）。LVM 在操作系统和磁盘之间创建了一个虚拟层。LVM 不是一个驱动器持有一定数量的分区，而是创建一个统一的存储池（称为 卷组 Volume Group ），跨越任意数量的物理驱动器（称为 物理卷 Physical Volume ）。使用卷组中可用的存储，LVM 可以为你的操作系统提供类似磁盘和分区的功能。操作系统完全没有意识到它被“欺骗”了。由于 LVM 虚拟地创建卷组和逻辑卷，因此即使在系统运行时，也可以轻松调整它们的大小或移动它们，或者创建新卷。此外，LVM 提供了其它情况下不存在的特性，比如创建逻辑卷的活动快照时无需首先卸载磁盘。LVM 中的卷组是一个命名的虚拟容器，将底层物理磁盘组合在一起。它充当一个池，可以从中创建不同大小的 逻辑卷 Logical Volume 。逻辑卷包含实际的文件系统并且可以跨越多个磁盘，并且不需要物理上连续。特性分区名称通常具有系统名称，例如 /dev/sda1。LVM 具有便于人们理解的名称，例如 home 或者 media。分区的总大小受底层物理磁盘大小的限制。在 LVM 中，卷可以跨越多个磁盘，并且仅受 LVM 中所有物理磁盘总大小的限制。分区通常只有在磁盘未使用且已卸载时才能调整大小、移动或删除。LVM 卷可以在系统运行时进行操作。只能通过分配与分区相邻的可用空间来扩展分区。LVM 卷可以从任何地方占用可用空间。扩展分区涉及移动数据以腾出可用空间，这非常耗时，并且可能会在断电期间导致数据丢失。LVM 卷可以从卷组中的任何地方占用可用空间，甚至可以在另一块磁盘上。因为在 LVM 中创建卷非常容易，所以它鼓励创建不同的卷，例如创建单独的卷来测试功能或尝试不同的操作系统。对于分区，此过程将非常耗时并且容易出错。快照只能在 LVM 中创建。它允许你创建当前逻辑卷的时间点镜像，即使在系统运行时也可以。这非常适合备份。测试设置作为演示，假设你的系统具有以下驱动器配置：NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT xvda 202:0 0 8G 0 disk `-xvda1 202:1 0 8G 0 part / xvdb 202:16 0 1G 0 disk xvdc 202:32 0 1G 0 disk xvdd 202:48 0 2G 0 disk xvde 202:64 0 5G 0 disk xvdf 202:80 0 8G 0 disk 步骤 1. 初始化磁盘以用于 LVM运行 pvcreate /dev/xvdb /dev/xvdc /dev/xvdd /dev/xvde /dev/xvdf。输出应如下：Physical volume "/dev/xvdb" successfully created Physical volume "/dev/xvdc" successfully created Physical volume "/dev/xvdd" successfully created Physical volume "/dev/xvde" successfully created Physical volume "/dev/xvdf" successfully created 使用 pvs 或者 pvdisplay 查看结果："/dev/xvde" is a new physical volume of "5.00 GiB" --- NEW Physical volume --- PV Name /dev/xvde VG Name PV Size 5.00 GiB Allocatable NO PE Size 0 Total PE 0 Free PE 0 Allocated PE 0 PV UUID 728JtI-ffZD-h2dZ-JKnV-8IOf-YKdS-8srJtn "/dev/xvdb" is a new physical volume of "1.00 GiB" --- NEW Physical volume --- PV Name /dev/xvdb VG Name PV Size 1.00 GiB Allocatable NO PE Size 0 Total PE 0 Free PE 0 Allocated PE 0 PV UUID zk1phS-7uXc-PjBP-5Pv9-dtAV-zKe6-8OCRkZ "/dev/xvdd" is a new physical volume of "2.00 GiB" --- NEW Physical volume --- PV Name /dev/xvdd VG Name PV Size 2.00 GiB Allocatable NO PE Size 0 Total PE 0 Free PE 0 Allocated PE 0 PV UUID R0I139-Ipca-KFra-2IZX-o9xJ-IW49-T22fPc "/dev/xvdc" is a new physical volume of "1.00 GiB" --- NEW Physical volume --- PV Name /dev/xvdc VG Name PV Size 1.00 GiB Allocatable NO PE Size 0 Total PE 0 Free PE 0 Allocated PE 0 PV UUID FDzcVS-sq22-2b13-cYRj-dXHf-QLjS-22Meae "/dev/xvdf" is a new physical volume of "8.00 GiB" --- NEW Physical volume --- PV Name /dev/xvdf VG Name PV Size 8.00 GiB Allocatable NO PE Size 0 Total PE 0 Free PE 0 Allocated PE 0 PV UUID TRVSH9-Bo5D-JHHb-g0NX-8IoS-GG6T-YV4d0p 步骤 2. 创建卷组运行 vgcreate myvg /dev/xvdb /dev/xvdc /dev/xvdd /dev/xvde /dev/xvdf。通过 vgs 或者 vgdisplay 查看结果：--- Volume group --- VG Name myvg System ID Format lvm2 Metadata Areas 5 Metadata Sequence No 1 VG Access read/write VG Status resizable MAX LV 0 Cur LV 0 Open LV 0 Max PV 0 Cur PV 5 Act PV 5 VG Size 16.98 GiB PE Size 4.00 MiB Total PE 4347 Alloc PE / Size 0 / 0 Free PE / Size 4347 / 16.98 GiB VG UUID ewrrWp-Tonj-LeFa-4Ogi-BIJJ-vztN-yrepkh 步骤 3: 创建逻辑卷运行以下命令：lvcreate myvg --name media --size 4G lvcreate myvg --name home --size 4G 使用 lvs 或者 lvdisplay 验证结果：--- Logical volume --- LV Path /dev/myvg/media LV Name media VG Name myvg LV UUID LOBga3-pUNX-ZnxM-GliZ-mABH-xsdF-3VBXFT LV Write Access read/write LV Creation host, time ip-10-0-5-236, 2017-02-03 05:29:15 +0000 LV Status available # open 0 LV Size 4.00 GiB Current LE 1024 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 252:0 --- Logical volume --- LV Path /dev/myvg/home LV Name home VG Name myvg LV UUID Hc06sl-vtss-DuS0-jfqj-oNce-qKf6-e5qHhK LV Write Access read/write LV Creation host, time ip-10-0-5-236, 2017-02-03 05:29:40 +0000 LV Status available # open 0 LV Size 4.00 GiB Current LE 1024 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 252:1 步骤 4: 创建文件系统使用以下命令创建文件系统：vgcreate myvg /dev/xvdb /dev/xvdc /dev/xvdd /dev/xvde /dev/xvdf mkfs.ext3 /dev/myvg/media mkfs.ext3 /dev/myvg/home 挂载它：mount /dev/myvg/media /media mount /dev/myvg/home /home 使用 lsblk 命令查看完整配置：NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT xvda 202:0 0 8G 0 disk `-xvda1 202:1 0 8G 0 part / xvdb 202:16 0 1G 0 disk xvdc 202:32 0 1G 0 disk xvdd 202:48 0 2G 0 disk xvde 202:64 0 5G 0 disk `-myvg-media 252:0 0 4G 0 lvm /media xvdf 202:80 0 8G 0 disk `-myvg-home 252:1 0 4G 0 lvm /home 步骤 5: 扩展 LVM添加一块新的 /dev/xvdg 磁盘。要扩展 home 卷，运行以下命令：pvcreate /dev/xvdg vgextend myvg /dev/xvdg lvextend -l 100%FREE /dev/myvg/home resize2fs /dev/myvg/home 运行 df -h，你应该可以看到新的磁盘大小。就是这样！LVM 为你配置存储的方式提供了极大的灵活性。尝试一下，并享受 LVM 的乐趣！本文首发于 作者个人博客，经授权改编。via: https://opensource.com/article/21/9/add-storage-lvm作者：Ayush Sharma 选题：lujun9972 译者：perfiffer 校对：wxy本文由 LCTT 原创编译，Linux中国 荣誉推出
一个关于让 Linux Mint 20.2 与逻辑卷管理器（LVM）一起工作的教程。几周前，Linux Mint 的人员发布了他们的开源操作系统的 20.2 版本。Live ISO 中内置的安装程序非常好，只需要点击几下就可以安装操作系统。如果你想定制你的分区，你甚至有一个内置的分区软件。安装程序重点关注在简单的安装上：定义你的分区并安装到这些分区。对于那些想要更灵活的设置的人来说， 逻辑卷管理器 logical volume manager （LVM）是个不错的选择，你可以通过设置卷组（VG）并在其中定义你的逻辑卷（LV）。LVM 是一个硬盘管理系统，允许你在多个物理驱动器上创建存储空间。换句话说，你可以把几个小驱动器“拴”在一起，这样你的操作系统就会把它们当作一个驱动器。除此之外，它还有实时调整大小、文件系统快照和更多的优点。这篇文章并不是关于 LVM 的教程（网上已经有很多 这方面不错的信息了）。相反，我的目标是贴合这篇文章的主题，只关注让 Linux Mint 20.2 与 LVM 一起工作。作为一个桌面操作系统，其安装程序致力于简单化，在 LVM 上安装 Linux Mint 20.2 会略微复杂一些，但不会太复杂。如果你在安装程序中选择了 LVM，你会得到一个由 Linux Mint 开发者定义的设置，而且你在安装时无法控制各个卷。然而，有一个解决方案：在临场 ISO 中，该方案只需要在终端中使用几个命令来设置 LVM，然后你可以继续使用常规安装程序来完成工作。我安装了 Linux Mint 20.2 和 XFCE 桌面，但其他 Linux Mint 桌面的过程也类似。分区驱动器在 Linux Mint 临场 ISO 中，你可以通过终端和 GUI 工具访问 Linux 命令行工具。如果你需要做任何分区工作，你可以使用命令行 fdisk 或 parted 命令，或者 GUI 应用 gparted。我想让这些操作简单到任何人都能遵循，所以我会在可能的情况下使用 GUI 工具，在必要时使用命令行工具。首先，为安装创建几个分区。使用 gparted（从菜单中启动），完成以下工作：首先，创建一个 512MB 的分区，类型为 FAT32（这是用来确保系统可启动）。512MB 对大多数人来说是富余的，你可以用 256MB 甚至更少，但在今天的大容量磁盘中，即使分配 512MB 也不是什么大问题。接下来，在磁盘的其余部分创建一个 lvm2 pv 类型（LVM 2 物理卷）的分区（这是你的 LVM 的位置）。现在打开一个终端窗口，并将你的权限提升到 root：$ sudo -s # whoami root 接下来，你必须找到你之前创建的 LVM 成员（那个大分区）。使用下列命令之一：lsblk -f 或 pvs 或 pvscan。# pvs PV VG Fmt [...] /dev/sda2 lvm2 [...] 在我的例子中，该分区位于 /dev/sda2，但你应该用你的输出中得到的内容来替换它。现在你知道了你的分区有哪些设备，你可以在那里创建一个 LVM 卷组（VG）：# vgcreate vg /dev/sda2 你可以使用 vgs 或 vgscan 看到你创建的卷组的细节。创建你想在安装时使用的逻辑卷（LV）。为了简单，我分别创建了 root 根分区（/）和 swap 交换分区，但是你可以根据需要创建更多的分区（例如，为 /home 创建一个单独的分区）。# lvcreate -L 80G -n root vg # lvcreate -L 16G -n swap vg 我的例子中的分区大小是任意的，是基于我可用的空间。使用对你的硬盘有意义的分区大小。你可以用 lvs 或 lvdisplay 查看逻辑卷。终端操作到这就结束了。安装 Linux现在从桌面上的图标启动安装程序：进入 “Installation type”，选择 “Something else”。编辑 512Mb 的分区并将其改为 EFI。编辑根逻辑卷，将其改为 ext4（或一个你选择的文件系统）。选择将其挂载为根目录（/），并选择将其格式化。编辑 swap 分区并将其设置为交换分区。继续正常的安装过程。Linux Mint 安装程序会将文件放在正确的位置并为你创建挂载点。完成了。在你的 Linux Mint 安装中享受 LVM 的强大。如果你需要调整分区大小或在系统上做任何高级工作，你会感谢选择 LVM。via: https://opensource.com/article/21/8/install-linux-mint-lvm作者：Kenneth Aaron 选题：lujun9972 译者：geekpi 校对：wxy本文由 LCTT 原创编译，Linux中国 荣誉推出
Fedora 33 在其各类桌面版本中引入了新的默认文件系统 Btrfs。多年以来，Fedora 一直在 逻辑卷管理 Logical Volume Manager （LVM） 卷之上使用 ext4，引入 Brtfs 对 Fedora 来说是一个很大的转变。更改默认文件系统需要 令人信服的原因。虽然 Btrfs 是令人兴奋的下一代文件系统，但 LVM 上的 ext4 是成熟而稳定的。本指南旨在探索各自的高级特性，使得更容易在 Btrfs 和 LVM-ext4 之间进行选择。先说结论最简单的建议是坚持使用默认值。全新安装的 Fedora 33 环境默认为 Btrfs，升级之前的 Fedora 版本将继续使用最初安装的设置，通常是 LVM-ext4。对于现有的 Fedora 用户来说，获取 Btrfs 的最简单方式是全新安装。然而，全新安装比简单升级更具破坏性。除非有特殊需要，否则这种干扰可能是不必要的。Fedora 开发团队仔细考虑了这两个默认值，因此对任何一个选择都要有信心。那么其他文件系统呢？现在有很多 Linux 系统的文件系统。在加上卷管理器、加密方法和存储机制的组合后，这一数字呈爆炸式增长。那么，为什么要关注 btrfs 和 LVM-ext4 呢？对于 Fedora 的用户来说，这两种设置可能是最常见的。在 Fedora 11 中，LVM 之上的 ext4 成为了默认磁盘布局，在此之前则使用的是 ext3。既然 Btrfs 是 Fedora 33 的默认设置，那么绝大多数现有用户会考虑是应该原地踏步还是向前跳跃。面对全新安装的 Fedora 33 环境，有经验的 Linux 用户可能会想知道是使用这个新的文件系统，还是退回到他们熟悉的文件系统。因此，在众多可能的存储选项中，许多 Fedora 用户会想知道如何在 Btrfs 和 LVM-ext4 之间进行选择。两者的共性尽管两个文件系统之间存在核心差异，但 Btrfs 和 LVM-ext4 实际上有很多共同之处。两者都是成熟且经过充分测试的存储技术。从 Fedora Core 的早期开始，就一直在使用 LVM，而 ext4 在 2009 年成为 Fedora 11 的默认设置。Btrfs 在 2009 年并入 Linux 主线内核，并且 Facebook 广泛使用了该文件系统。SUSE Linux Enterprise 12 在 2014 年使其成为默认文件系统。因此，它在生产环境中也有着长久的运行时间。这两个系统都能很好地防止因意外停电而导致的文件系统损坏，尽管它们的实现方式不同。它们支持的配置包括使用单盘设置和跨越多个设备，并且这两种配置都能够创建近乎即时的快照。有各种工具可以帮助管理这两种系统，包括命令行和图形界面。这两种解决方案在家用台式机和高端服务器上都同样有效。LVM-ext4 的优势ext4 文件系统 专注于高性能和可伸缩性，没有太多额外的花哨之处。它能有效地防止长时间后的碎片化，并当碎片化出现后提供了 很好的工具。ext4 之所以坚如磐石，是因为它构建在前代的 ext3 文件系统之上，带来了多年的系统内测试和错误修复。LVM-ext4 环境中的大多数高级功能都来自 LVM 本身。LVM 位于文件系统的“下方”，这意味着它支持任何文件系统。 逻辑卷 Logical volume （LV）是通用的块设备，因此 虚拟机可以直接使用它们。这种灵活性使得每个逻辑卷都可以使用合适的文件系统，用合适的选项应对各种情况。这种分层方法还遵循了“小工具协同工作”的 Unix 哲学。从硬件抽象出来的 卷组 volume group （VG）允许 LVM 创建灵活的逻辑卷。每个逻辑卷都提取自同一个存储池，但具有自己的设置。调整卷的大小比调整物理分区的大小容易得多，因为没有数据有序放置的限制。LVM 物理卷 physical volume （PV）可以是任意数量的分区，甚至可以在系统运行时在设备之间移动。LVM 支持只读和读写的 快照，这使得从活动系统创建一致的备份变得很容易。每个快照都有一个定义的大小，更改源卷或快照卷将占用其中的空间。又或者，逻辑卷也可以是 稀疏配置池 thinly provisioned pool 的一部分。这允许快照自动使用池中的数据，而不是使用在创建卷时定义的固定大小的块。有多个磁盘驱动器的 LVM当有多个设备时，LVM 才真正大放异彩。它原生支持大多数 RAID 级别，每个逻辑卷可以具有不同的 RAID 级别。LVM 将自动为 RAID 配置选择适当的物理设备，或者用户可以直接指定它。基本的 RAID 支持包括用于性能的数据条带化（RAID0）和用于冗余的镜像（RAID1）。逻辑卷也可以使用 RAID5、RAID6 和 RAID10 等高级设置。LVM RAID 支持已经成熟，因为 LVM 在底层使用的 设备映射器（dm） 和 多设备（md） 内核支持， 与 mdadm 使用的一样。对于具有快速和慢速驱动器的系统，逻辑卷也可以是 缓存卷。经典示例是 SSD 和传统磁盘驱动器的组合。缓存卷使用较快的驱动器来存储更频繁访问的数据（或用作写缓存），而慢速的驱动器则用于处理大量数据。LVM 中大量稳定的功能以及 ext4 的可靠性在既往的使用中早已被证明了。当然，功能越多就越复杂。在配置 LVM 时，要找到合适的功能选项是很有挑战性的。对于单驱动器的台式机系统，LVM 的功能（例如 RAID 和缓存卷）不适用。但是，逻辑卷比物理分区更灵活，快照也很有用。对于正常的桌面使用，LVM 的复杂性会成为典型的用户可能遇到的问题恢复的障碍。Btrfs 的优势从前几代文件系统中学到的经验指导了构建到 Btrfs 的功能设计。与 ext4 不同，它可以直接跨越多个设备，因此它具有通常仅在卷管理器中才能找到的功能。它还具有 Linux 文件系统空间中独有的功能（ZFS 具有相似的功能集，但不要指望它在 Linux 内核中出现）。Btrfs 的主要功能也许最重要的功能是对所有数据进行 校验和 checksumming 。校验和与 写时复制 copy-on-write （COW）一起，提供了在意外断电后确保文件系统完整性的 关键方法。更独特的是，校验和可以检测数据本身中的错误。悄然的数据损坏（有时也称为 bitrot）比大多数人意识到的更常见。如果没有主动验证，损坏最终可能会传播到所有可用的备份中。这使得用户没有有效的副本。通过透明地校验所有数据，Btrfs 能够立即检测到任何此类损坏。启用正确的 dup 或 raid 选项，文件系统也可以透明地修复损坏。写时复制也是 Btrfs 的基本功能，因为它在提供文件系统完整性和即时子卷快照方面至关重要。从公共子卷创建快照后，快照会自动共享底层数据。另外，事后的 重复数据删除 deduplication 使用相同的技术来消除相同的数据块。单个文件可以通过使用 cp 的 reflink 选项 来使用 COW 功能。reflink 副本对于复制大型文件（例如虚拟机镜像）特别有用，这些文件往往随着时间的推移具有大部分相同的数据。Btrfs 支持跨越多个设备，而无需卷管理器。多设备支持可提供数据镜像功能以实现冗余和条带化以提高性能。此外，还实验性地支持更高级的 RAID 级别，例如 RAID 5 和 RAID 6。与标准 RAID 设置不同，Btrfs 的 RAID1 实际上允许奇数个设备。例如，它可以使用 3 个设备，即使它们的大小不同。所有 RAID 和 dup 选项都是在文件系统级别指定的。因此，各个子卷不能使用不同的选项。请注意，使用多设备的 RAID1 选项意味着即使一个设备发生故障，卷中的所有数据都是可用的，并且校验功能可以保持数据本身的完整性。这超出了当前典型的 RAID 设置所能提供的范围。附加功能Btrfs 还支持快速简便的远程备份。子卷快照可以 发送到远程系统 进行存储。通过利用文件系统中固有的 COW 元数据，这些传输通过仅发送先前发送的快照中的增量更改而非常有效。诸如 snapper 之类的用户应用程序使管理这些快照变得容易。另外，Btrfs 卷可以具有 透明压缩 功能，并且 chattr +c 可以标记进行压缩的单个文件或目录。压缩不仅可以减少数据消耗的空间，还可以通过减少写入操作量来帮助延长 SSD 的寿命。压缩当然会带来额外的 CPU 开销，但是有很多选项就可以权衡取舍。Btrfs 集成了文件系统和卷管理器功能，这意味着总体维护比 LVM-ext4 更简单。当然，这种集成的灵活性较低，但是对于大多数台式机甚至服务器而言，设置已足够。LVM 上使用 BtrfsBtrfs 可以 就地转换 ext3/ext4 文件系统。就地转换意味着无需将数据复制出来然后再复制回去。数据块本身甚至都不需要修改。因此，对于现有的 LVM-ext4 系统，一种选择是将 LVM 保留在原处，然后简单地将 ext4 转换为 Btrfs。虽然可行且受支持，但有一些原因使它不是最佳选择。Btrfs 的吸引力之一是与卷管理器集成的文件系统所带来的更轻松的管理。要是在 LVM 之上运行，对于系统维护，仍然要对额外的卷管理器进行一些设置。同样，LVM 设置通常具有多个固定大小的逻辑卷，并具有独立文件系统。虽然 Btrfs 支持给定的计算机上的多个卷，但是许多不错的功能都需要单一卷具有多个子卷。如果每个 LVM 卷都有一个独立的 Btrfs 卷，则用户仍然需要手动管理固定大小的 LVM 卷。虽然能够收缩挂载的 Btrfs 文件系统的能力确实使处理固定大小的卷的工作变得更轻松。通过在线收缩功能，就无需启动 实时镜像 了。在使用 Btrfs 的多设备支持时，必须仔细考虑逻辑卷的物理位置。对于 Btrfs 而言，每个逻辑卷都是一个单独的物理设备，如果实际情况并非如此，则某些数据可用性功能可能会做出错误的决定。例如，如果单个驱动器发生故障，对数据使用 RAID1 通常可以提供保护。如果实际逻辑卷在同一物理设备上，则没有冗余。如果强烈需要某些特定的 LVM 功能，例如原始块设备或高速缓存的逻辑卷，则在 LVM 之上运行 Btrfs 是有意义的。在这种配置下，Btrfs 仍然提供其大多数优点，例如校验和和易于发送的增量快照。尽管使用 LVM 会产生一些操作开销，但 Btrfs 的这种开销并不比任何其他文件系统大。总结当尝试在 Btrfs 和 LVM-ext4 之间进行选择时，没有一个正确的答案。每个用户都有独特的要求，并且同一用户可能拥有具有不同需求的不同系统。看一下每个配置的功能集，并确定是否有令人心动的功能。如果没有，坚持默认值没有错。选择这两种设置都有很好的理由。via: https://fedoramagazine.org/choose-between-btrfs-and-lvm-ext4/作者：Troy Curtis Jr 选题：lujun9972 译者：Chao-zhi 校对：wxy本文由 LCTT 原创编译，Linux中国 荣誉推出
有时需要在系统中添加另一块磁盘。这就是 逻辑卷管理 Logical Volume Management （LVM）的用武之地。LVM 的好处之处在于它相当灵活。有几种方法可以添加一块磁盘。这篇文章介绍了一种方法。注意！这篇文章并不包括将新的磁盘物理地安装到系统中的过程。请查阅你的系统和磁盘文档，了解如何正确地进行安装。重要： 一定要确保你已经备份重要数据。如果新磁盘已有数据，那么本文中描述的步骤将破坏数据。最好了解本文并没有深入介绍 LVM 的每一个功能，重点是添加磁盘。但基本上你要了解，LVM 有 卷组 volume group （VG），它由一个或多个分区和/或磁盘组成。你把这些分区或磁盘以 物理卷 physical volume （PV）的方式添加到卷组。一个卷组可以分成许多 逻辑卷 logical volume （LV）。逻辑卷可以作为文件系统、ramdisk 等其他存储使用。更多信息可以在这里)中找到。可以看作是，把物理卷形成一个存储池（一个卷组），然后从这个存储池中划分出逻辑卷，供你的系统直接使用。准备确保你能看到你要添加的磁盘。在添加磁盘之前使用 lsblk 查看哪些存储空间已经可用或正在使用。$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT zram0 251:0 0 989M 0 disk [SWAP] vda 252:0 0 20G 0 disk ├─vda1 252:1 0 1G 0 part /boot └─vda2 252:2 0 19G 0 part └─fedora_fedora-root 253:0 0 19G 0 lvm / 本文使用的是带有虚拟存储的虚拟机，因此设备名称以 vda 开头代表第一个磁盘，vdb 代表第二个磁盘，以此类推。你的设备名称可能不同。许多系统会将 sda 作为第一个物理磁盘，sdb 代表第二个磁盘，以此类推。当已连接新磁盘，并且你的系统已备份且正在运行，再次使用 lsblk 来查看新的块设备。$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT zram0 251:0 0 989M 0 disk [SWAP] vda 252:0 0 20G 0 disk ├─vda1 252:1 0 1G 0 part /boot └─vda2 252:2 0 19G 0 part └─fedora_fedora-root 253:0 0 19G 0 lvm / vdb 252:16 0 10G 0 disk 现在有一个名为 vdb 的新设备。该设备的位置是 /dev/vdb。$ ls -l /dev/vdb brw-rw----. 1 root disk 252, 16 Nov 24 12:56 /dev/vdb 我们可以看到磁盘，但我们还不能用 LVM 来使用它。如果你运行 blkid，你应该不会看到它被列出。对于这个和之后的命令，你需要确保你的系统已配置好，这样你可以使用 sudo：$ sudo blkid /dev/vda1: UUID="4847cb4d-6666-47e3-9e3b-12d83b2d2448" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="830679b8-01" /dev/vda2: UUID="k5eWpP-6MXw-foh5-Vbgg-JMZ1-VEf9-ARaGNd" TYPE="LVM2_member" PARTUUID="830679b8-02" /dev/mapper/fedora_fedora-root: UUID="f8ab802f-8c5f-4766-af33-90e78573f3cc" BLOCK_SIZE="4096" TYPE="ext4" /dev/zram0: UUID="fc6d7a48-2bd5-4066-9bcf-f062b61f6a60" TYPE="swap" 将磁盘添加到 LVM 中使用 pvcreate 初始化磁盘。你需要传递设备的完整路径。在这个例子中，它是 /dev/vdb。在你的系统中，它可能是 /dev/sdb 或其他设备名。$ sudo pvcreate /dev/vdb Physical volume "/dev/vdb" successfully created. 当你运行 blkid 时，你应该看到磁盘已经被初始化为一个 LVM2_member：$ sudo blkid /dev/vda1: UUID="4847cb4d-6666-47e3-9e3b-12d83b2d2448" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="830679b8-01" /dev/vda2: UUID="k5eWpP-6MXw-foh5-Vbgg-JMZ1-VEf9-ARaGNd" TYPE="LVM2_member" PARTUUID="830679b8-02" /dev/mapper/fedora_fedora-root: UUID="f8ab802f-8c5f-4766-af33-90e78573f3cc" BLOCK_SIZE="4096" TYPE="ext4" /dev/zram0: UUID="fc6d7a48-2bd5-4066-9bcf-f062b61f6a60" TYPE="swap" /dev/vdb: UUID="4uUUuI-lMQY-WyS5-lo0W-lqjW-Qvqw-RqeroE" TYPE="LVM2_member" 你可以使用 pvs 列出当前所有可用的物理卷：$ sudo pvs PV VG Fmt Attr PSize PFree /dev/vda2 fedora_fedora lvm2 a-- <19.00g 0 /dev/vdb lvm2 --- 10.00g 10.00g /dev/vdb 被列为一个 PV （物理卷），但还没有分配到一个 VG （卷组）。将物理卷添加到一个卷组你可以使用 vgs 找到可用的卷组列表：$ sudo vgs VG #PV #LV #SN Attr VSize VFree fedora_fedora 1 1 0 wz--n- 19.00g 0 在本例中，只有一个卷组可用。接下来，将物理卷添加到 fedora_fedora：$ sudo vgextend fedora_fedora /dev/vdb Volume group "fedora_fedora" successfully extended 你现在应该看到物理卷已被添加到卷组中：$ sudo pvs PV VG Fmt Attr PSize PFree /dev/vda2 fedora_fedora lvm2 a– <19.00g 0 /dev/vdb fedora_fedora lvm2 a– <10.00g <10.00g 看一下卷组：$ sudo vgs VG #PV #LV #SN Attr VSize VFree fedora_fedora 2 1 0 wz–n- 28.99g <10.00g 你也可以获得具体卷组和物理卷的详细列表：$ sudo vgdisplay fedora_fedora --- Volume group --- VG Name fedora_fedora System ID Format lvm2 Metadata Areas 2 Metadata Sequence No 3 VG Access read/write VG Status resizable MAX LV 0 Cur LV 1 Open LV 1 Max PV 0 Cur PV 2 Act PV 2 VG Size 28.99 GiB PE Size 4.00 MiB Total PE 7422 Alloc PE / Size 4863 / 19.00 GiB Free PE / Size 2559 / 10.00 GiB VG UUID C5dL2s-dirA-SQ15-TfQU-T3yt-l83E-oI6pkp 看下物理卷：$ sudo pvdisplay /dev/vdb --- Physical volume --- PV Name /dev/vdb VG Name fedora_fedora PV Size 10.00 GiB / not usable 4.00 MiB Allocatable yes PE Size 4.00 MiB Total PE 2559 Free PE 2559 Allocated PE 0 PV UUID 4uUUuI-lMQY-WyS5-lo0W-lqjW-Qvqw-RqeroE 现在我们已经添加了磁盘，我们可以为逻辑卷 （LV） 分配空间：$ sudo lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert root fedora_fedora -wi-ao---- 19.00g 看一下逻辑卷。下面是详细的逻辑卷信息：$ sudo lvdisplay fedora_fedora/root --- Logical volume --- LV Path /dev/fedora_fedora/root LV Name root VG Name fedora_fedora LV UUID yqc9cw-AvOw-G1Ni-bCT3-3HAa-qnw3-qUSHGM LV Write Access read/write LV Creation host, time fedora, 2020-11-24 11:44:36 -0500 LV Status available LV Size 19.00 GiB Current LE 4863 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 253:0 查看根文件系统（/）的大小，并将它与逻辑卷大小进行比较。$ df -h / Filesystem Size Used Avail Use% Mounted on /dev/mapper/fedora_fedora-root 19G 1.4G 17G 8% / 逻辑卷和文件系统大小都为 19G。让我们给根逻辑卷（root）增加 5G。$ sudo lvresize -L +5G fedora_fedora/root Size of logical volume fedora_fedora/root changed from 19.00 GiB (4863 extents) to 24.00 GiB (6143 extents). Logical volume fedora_fedora/root successfully resized. 我们现在有 24G 的逻辑卷可用。看看根文件系统（/）。$ df -h / Filesystem Size Used Avail Use% Mounted on /dev/mapper/fedora_fedora-root 19G 1.4G 17G 8% / 我们仍然显示只有 19G 的空闲空间，这是因为逻辑卷与文件系统不一样。要使用增加到逻辑卷的新空间，请调整文件系统的大小。$ sudo resize2fs /dev/fedora_fedora/root resize2fs 1.45.6 (20-Mar-2020) Filesystem at /dev/fedora_fedora/root is mounted on /; on-line resizing required old_desc_blocks = 3, new_desc_blocks = 3 The filesystem on /dev/fedora_fedora/root is now 6290432 (4k) blocks long. 看看文件系统的大小。$ df -h / Filesystem Size Used Avail Use% Mounted on /dev/mapper/fedora_fedora-root 24G 1.4G 21G 7% / 正如你所看到的，根文件系统（/）已经占用了逻辑卷上的所有可用空间，而且不需要重新启动。现在你已经将一个磁盘初始化为物理卷，并使用新的物理卷扩展了卷组。之后，你增加了逻辑卷的大小，并调整了文件系统的大小，以使用逻辑卷的新空间。via: https://fedoramagazine.org/add-storage-to-your-fedora-system-with-lvm/作者：Tim Bosse 选题：lujun9972 译者：geekpi 校对：wxy本文由 LCTT 原创编译，Linux中国 荣誉推出
LVM 是一个逻辑卷管理工具，包括分配磁盘、条带化、镜像和调整逻辑卷的大小。它在 Fedora 安装中被普遍使用（在 BTRFS 作为默认文件系统之前是 LVM + Ext4）。但是你是否曾经遇到过启动系统时，GNOME 提示 home 卷几乎没有空间了！幸运的是，很有可能有一些空间在另一个卷中，而未被使用，可以用于重新分配。下面就来看看如何用 LVM 回收硬盘空间。在卷之间轻松重新分配空间的关键是逻辑卷管理器（LVM）。Fedora 32 及以前的系统默认使用 LVM 来划分磁盘空间。这种技术类似于标准的硬盘分区，但 LVM 更加灵活。LVM 不仅可以实现灵活的卷大小管理，还可以实现一些高级功能，比如读写快照、在多个硬盘上进行数据条带化或镜像、将高速硬盘作为慢速硬盘的缓存等等。所有这些高级选项可能会让人有点不知所措，但调整卷的大小很简单的。LVM 基础卷组（VG）作为 LVM 系统中的主要容器。默认情况下，Fedora 只定义了一个卷组，但你可以根据需要定义多个卷组。实际的硬盘和硬盘分区被添加到卷组中作为物理卷（PV）。物理卷会将可用的空间添加到卷组中。一个典型的 Fedora 安装有一个格式化的启动分区，其余的硬盘是一个配置为 LVM 物理卷的分区。从这个可用空间池中，卷组分配了一个或多个逻辑卷（LV）。这些卷类似于硬盘分区，但没有磁盘上连续空间的限制。LVM 的逻辑卷甚至可以跨越多个设备！就像硬盘分区一样，逻辑卷有一个定义的大小，可以包含任何文件系统，然后可以挂载到特定的目录。需要什么在 gnome-disks 应用中确认系统使用 LVM ，并确保其他卷中有可用的空间。如果没有可以从另一个卷中回收的空间，这个指南就没有用。还需要一个 Fedora 临场 CD/USB。任何需要收缩的文件系统都必须卸载。从 临场 Live 镜像运行，可以让硬盘上的所有卷保持未挂载状态，甚至包括像 / 和 /home 这样的重要目录。一句话警告按照这个指南，应该不会丢失任何数据，但它确实会使用一些非常底层和强大的命令。一个错误可能会破坏硬盘上的所有数据。所以要先备份磁盘上的所有数据！调整 LVM 卷的大小开始时，启动 Fedora 临场镜像并在对话框中选择 “Try Fedora”。接下来，使用 “Run Command” 启动 “blivet-gui” 应用（按 Alt-F2，输入 blivet-gui，然后按回车）。选择左侧 “LVM” 下的卷组。逻辑卷在右边。逻辑卷标签由卷组名称和逻辑卷名称组成。在本例中，卷组是 fedora_localhost-live，分配了 home、root 和 swap 逻辑卷。要找到完整的卷，选择每一个卷，点击“齿轮”图标，然后选择 “resize”。调整大小对话框中的滑块表示卷的允许大小。左边的最小值是文件系统中已经使用的空间，所以这是最小可能的尺寸大小（不删除数据）。右边的最大值是基于卷组中的最大可用空间。灰色的 “resize” 选项意味着该卷已经满了，而且卷组中没有可用空间。现在可以更改大小了！查看所有的卷，就像上面的截图那样，找到一个有足够空间的卷。并像上面的截图那样，在所有的卷中找到一个有大量额外空间的卷。向左移动滑块来设置新的大小。腾出足够的空间对整个卷有用，但仍然要为未来的数据增长留出足够的空间。否则，这个卷将是下一个被填满的卷。点击 “resize”，注意卷列表中出现了一个新项目：“free space”。现在选择这次要调整的卷，并将滑块一直向右移动。按 “resize” 键，并查看新改进的卷的布局。然而，硬盘驱动器上的任何东西现在都还没有改变。点击“勾选”选项将更改提交到磁盘。查看更改的摘要，如果一切看起来都是正确的，点击 “Ok” 继续。等待 “blivet-gui” 完成。现在重新启动回到 Fedora，可以使用之前被充满的卷上的新空间了。为未来计划要知道任何特定卷在未来需要多少空间是很困难的。与其立即分配所有可用的空闲空间，不如考虑在卷组中留出空闲空间。事实上，Fedora Server 默认在卷组中保留空间。当一个卷处于在线和使用中时，扩展卷是可能的。不需要临场镜像或重启。当一个卷几乎满的时候，可以使用部分可用空间轻松扩展卷并继续工作。遗憾的是，默认的磁盘管理器 gnome-disks 不支持 LVM 卷的大小调整，所以安装 blivet-gui 作为图形化管理工具。另外，还有一个简单的终端命令来扩展卷：lvresize -r -L +1G /dev/fedora_localhost-live/root 总结用 LVM 回收硬盘空间只是 LVM 功能的表面。大多数人，特别是在桌面中，可能不需要更高级的功能。然而，当需要的时候，LVM 就在那里，尽管它的实现可能会变得有点复杂。从 Fedora 33 开始，BTRFS 是默认的文件系统，没有 LVM。BTRFS 可以更容易管理，同时对于大多数常见的使用来说也足够灵活。查看最近 Fedora Magazine 关于 BTRFS 的文章了解更多。via: https://fedoramagazine.org/reclaim-hard-drive-space-with-lvm/作者：Troy Curtis Jr 选题：lujun9972 译者：geekpi 校对：wxy本文由 LCTT 原创编译，Linux中国 荣誉推出
如果你的 LVM 不再需要使用某个设备，你可以使用 vgreduce 命令从卷组中删除物理卷。vgreduce 命令可以通过删除物理卷来缩小卷组的容量。但要确保该物理卷没有被任何逻辑卷使用，请使用 pvdisplay 命令查看。如果物理卷仍在使用，你必须使用 pvmove 命令将数据转移到另一个物理卷。数据转移后，它就可以从卷组中删除。最后使用 pvremove 命令删除空物理卷上的 LVM 标签和 LVM 元数据。第一部分：如何在 Linux 中创建/配置 LVM（逻辑卷管理）第二部分：如何在 Linux 中扩展/增加 LVM 大小（逻辑卷调整）第三部分：如何在 Linux 中减少/缩小 LVM 大小（逻辑卷调整）将扩展块移动到现有物理卷上使用 pvs 命令检查是否使用了所需的物理卷（我们计划删除 LVM 中的 /dev/sdc 磁盘）。# pvs -o+pv_used PV VG Fmt Attr PSize PFree Used /dev/sda myvg lvm2 a- 75.00G 14.00G 61.00G /dev/sdb myvg lvm2 a- 50.00G 45.00G 5.00G /dev/sdc myvg lvm2 a- 17.15G 12.15G 5.00G 如果使用了，请检查卷组中的其他物理卷是否有足够的空闲 扩展块 extent 。如果有的话，你可以在需要删除的设备上运行 pvmove 命令。扩展块将被分配到其他设备上。# pvmove /dev/sdc /dev/sdc: Moved: 2.0% … /dev/sdc: Moved: 79.2% … /dev/sdc: Moved: 100.0% 当 pvmove 命令完成后。再次使用 pvs 命令检查物理卷是否有空闲。# pvs -o+pv_used PV VG Fmt Attr PSize PFree Used /dev/sda myvg lvm2 a- 75.00G 1.85G 73.15G /dev/sdb myvg lvm2 a- 50.00G 45.00G 5.00G /dev/sdc myvg lvm2 a- 17.15G 17.15G 0 如果它是空闲的，使用 vgreduce 命令从卷组中删除物理卷 /dev/sdc。# vgreduce myvg /dev/sdc Removed "/dev/sdc" from volume group "vg01" 最后，运行 pvremove 命令从 LVM 配置中删除磁盘。现在，磁盘已经完全从 LVM 中移除，可以用于其他用途。# pvremove /dev/sdc Labels on physical volume "/dev/sdc" successfully wiped. 移动扩展块到新磁盘如果你在卷组中的其他物理卷上没有足够的可用扩展。使用以下步骤添加新的物理卷。向存储组申请新的 LUN。分配完毕后，运行以下命令来在 Linux 中发现新添加的 LUN 或磁盘。# ls /sys/class/scsi_host host0 # echo "- - -" > /sys/class/scsi_host/host0/scan # fdisk -l 操作系统中检测到磁盘后，使用 pvcreate 命令创建物理卷。# pvcreate /dev/sdd Physical volume "/dev/sdd" successfully created 使用以下命令将新的物理卷 /dev/sdd 添加到现有卷组 vg01 中。# vgextend vg01 /dev/sdd Volume group "vg01" successfully extended 现在，使用 pvs 命令查看你添加的新磁盘 /dev/sdd。# pvs -o+pv_used PV VG Fmt Attr PSize PFree Used /dev/sda myvg lvm2 a- 75.00G 14.00G 61.00G /dev/sdb myvg lvm2 a- 50.00G 45.00G 5.00G /dev/sdc myvg lvm2 a- 17.15G 12.15G 5.00G /dev/sdd myvg lvm2 a- 60.00G 60.00G 0 使用 pvmove 命令将数据从 /dev/sdc 移动到 /dev/sdd。# pvmove /dev/sdc /dev/sdd /dev/sdc: Moved: 10.0% … /dev/sdc: Moved: 79.7% … /dev/sdc: Moved: 100.0% 数据移动到新磁盘后。再次使用 pvs 命令检查物理卷是否空闲。# pvs -o+pv_used PV VG Fmt Attr PSize PFree Used /dev/sda myvg lvm2 a- 75.00G 14.00G 61.00G /dev/sdb myvg lvm2 a- 50.00G 45.00G 5.00G /dev/sdc myvg lvm2 a- 17.15G 17.15G 0 /dev/sdd myvg lvm2 a- 60.00G 47.85G 12.15G 如果空闲，使用 vgreduce 命令从卷组中删除物理卷 /dev/sdc。# vgreduce myvg /dev/sdc Removed "/dev/sdc" from volume group "vg01" 最后，运行 pvremove 命令从 LVM 配置中删除磁盘。现在，磁盘已经完全从 LVM 中移除，可以用于其他用途。# pvremove /dev/sdc Labels on physical volume "/dev/sdc" successfully wiped. via: https://www.2daygeek.com/linux-remove-delete-physical-volume-pv-from-volume-group-vg-in-lvm/作者：Magesh Maruthamuthu 选题：lujun9972 译者：geekpi 校对：wxy本文由 LCTT 原创编译，Linux中国 荣誉推出
如何在 Linux 中减少/缩小 LVM 大小（逻辑卷调整）
减少/缩小逻辑卷是数据损坏的最高风险。所以，如果可能的话，尽量避免这种情况，但如果没有其他选择的话，那就继续。缩减 LVM 之前，建议先做一个备份。当你在 LVM 中的磁盘空间耗尽时，你可以通过缩小现有的没有使用全部空间的 LVM，而不是增加一个新的物理磁盘，在卷组上腾出一些空闲空间。需要注意的是： 在 GFS2 或者 XFS 文件系统上不支持缩小。如果你是逻辑卷管理 （LVM） 的新手，我建议你从我们之前的文章开始学习。第一部分：如何在 Linux 中创建/配置 LVM（逻辑卷管理）第二部分：如何在 Linux 中扩展/增加 LVM（逻辑卷调整）减少逻辑卷涉及以下步骤：卸载文件系统检查文件系统是否有任何错误缩小文件系统的大小缩小逻辑卷的大小重新检查文件系统是否存在错误（可选）挂载文件系统检查减少后的文件系统大小比如： 你有一个 100GB 的没有使用全部空间的 LVM，你想把它减少到 80GB，这样 20GB 可以用于其他用途。# df -h /testlvm1 Filesystem Size Used Avail Use% Mounted on /dev/mapper/vg01-lv002 100G 15G 85G 12% /testlvm1 卸载文件系统使用 umount 命令卸载文件系统：# umount /testlvm1 检查文件系统是否有任何错误使用 e2fsck 命令检查文件系统是否有错误：# e2fsck -f /dev/mapper/vg01-lv002 e2fsck 1.42.9 (28-Dec-2013) Pass 1: Checking inodes, blocks, and sizes Pass 2: Checking directory structure Pass 3: Checking directory connectivity Pass 4: Checking reference counts Pass 5: Checking group summary information /dev/mapper/vg01-lv002: 13/6553600 files (0.0% non-contiguous), 12231854/26212352 blocks 缩小文件系统下面的命令将把 testlvm1 文件系统从 100GB 缩小到 80GB。文件系统大小调整的常用语法（resize2fs）：resize2fs [现有逻辑卷名] [新的文件系统大小] 实际命令如下：# resize2fs /dev/mapper/vg01-lv002 80G resize2fs 1.42.9 (28-Dec-2013) Resizing the filesystem on /dev/mapper/vg01-lv002 to 28321400 (4k) blocks. The filesystem on /dev/mapper/vg01-lv002 is now 28321400 blocks long. 减少逻辑卷 （LVM） 容量现在使用 lvreduce 命令缩小逻辑卷（LVM） 的大小。通过下面的命令， /dev/mapper/vg01-lv002 将把逻辑卷 （LVM） 从 100GB 缩小到 80GB。LVM 缩减 （lvreduce） 的常用语法：lvreduce [新的 LVM 大小] [现有逻辑卷名称] 实际命令如下：# lvreduce -L 80G /dev/mapper/vg01-lv002 WARNING: Reducing active logical volume to 80.00 GiB THIS MAY DESTROY YOUR DATA (filesystem etc.) Do you really want to reduce lv002? [y/n]: y Reducing logical volume lv002 to 80.00 GiB Logical volume lv002 successfully resized 可选：检查文件系统是否有错误缩减 LVM 后再次检查文件系统是否有错误：# e2fsck -f /dev/mapper/vg01-lv002 e2fsck 1.42.9 (28-Dec-2013) Pass 1: Checking inodes, blocks, and sizes Pass 2: Checking directory structure Pass 3: Checking directory connectivity Pass 4: Checking reference counts Pass 5: Checking group summary information /dev/mapper/vg01-lv002: 13/4853600 files (0.0% non-contiguous), 1023185/2021235 blocks 挂载文件系统并检查缩小后的大小最后挂载文件系统，并检查缩小后的文件系统大小。使用 mount 命令挂载逻辑卷：# mount /testlvm1 使用 df 命令检查挂载的卷。# df -h /testlvm1 Filesystem Size Used Avail Use% Mounted on /dev/mapper/vg01-lv002 80G 15G 65G 18% /testlvm1 via: https://www.2daygeek.com/reduce-shrink-decrease-resize-lvm-logical-volume-in-linux/作者：Magesh Maruthamuthu 选题：lujun9972 译者：geekpi 校对：wxy本文由 LCTT 原创编译，Linux中国 荣誉推出
如何在 Linux 中扩展/增加 LVM 大小（逻辑卷调整）
扩展逻辑卷非常简单，只需要很少的步骤，而且不需要卸载某个逻辑卷就可以在线完成。LVM 的主要目的是灵活的磁盘管理，当你需要的时候，可以很方便地调整、扩展和缩小逻辑卷的大小。如果你是逻辑卷管理（LVM） 新手，我建议你从我们之前的文章开始学习。第一部分：如何在 Linux 中创建/配置 LVM（逻辑卷管理）扩展逻辑卷涉及到以下步骤：检查逻辑卷（LV）所在的卷组中是否有足够的未分配磁盘空间如果有，你可以使用这些空间来扩展逻辑卷如果没有，请向系统中添加新的磁盘或 LUN将物理磁盘转换为物理卷（PV）扩展卷组增加逻辑卷大小扩大文件系统检查扩展的文件系统大小如何创建 LVM 物理卷？使用 pvcreate 命令创建 LVM 物理卷。当在操作系统中检测到磁盘，使用 pvcreate 命令初始化 LVM 物理卷：# pvcreate /dev/sdc Physical volume "/dev/sdc" successfully created 请注意：上面的命令将删除磁盘 /dev/sdc 上的所有数据。物理磁盘可以直接添加到 LVM 物理卷中，而不是磁盘分区。使用 pvdisplay 命令来显示你所创建的物理卷：# pvdisplay /dev/sdc "/dev/sdc" is a new physical volume of "10.00 GiB" --- NEW Physical volume --- PV Name /dev/sdc VG Name PV Size 10.00 GiB Allocatable NO PE Size 0 Total PE 0 Free PE 0 Allocated PE 0 PV UUID 69d9dd18-36be-4631-9ebb-78f05fe3217f 如何扩展卷组使用以下命令在现有的卷组（VG）中添加一个新的物理卷：# vgextend vg01 /dev/sdc Volume group "vg01" successfully extended 使用 vgdisplay 命令来显示你所创建的物理卷：# vgdisplay vg01 --- Volume group --- VG Name vg01 System ID Format lvm2 Metadata Areas 2 Metadata Sequence No 1 VG Access read/write VG Status resizable MAX LV 0 Cur LV 0 Open LV 0 Max PV 0 Cur PV 2 Act PV 2 VG Size 14.99 GiB PE Size 4.00 MiB Total PE 3840 Alloc PE / Size 1280 / 4.99 Free PE / Size 2560 / 9.99 GiB VG UUID d17e3c31-e2c9-4f11-809c-94a549bc43b7 如何扩展逻辑卷？使用以下命令增加现有逻辑卷大小。逻辑卷扩展（lvextend）的常用语法：lvextend [要增加的额外空间] [现有逻辑卷名称] 使用下面的命令将现有的逻辑卷增加 10GB：# lvextend -L +10G /dev/mapper/vg01-lv002 Rounding size to boundary between physical extents: 5.90 GiB Size of logical volume vg01/lv002 changed from 5.00 GiB (1280 extents) to 15.00 GiB (3840 extents). Logical volume var successfully resized 使用 PE 大小来扩展逻辑卷：# lvextend -l +2560 /dev/mapper/vg01-lv002 要使用百分比（%）扩展逻辑卷，请使用以下命令：# lvextend -l +40%FREE /dev/mapper/vg01-lv002 现在，逻辑卷已经扩展，你需要调整文件系统的大小以扩展逻辑卷内的空间：对于基于 ext3 和 ext4 的文件系统，运行以下命令：# resize2fs /dev/mapper/vg01-lv002 对于 xfs 文件系统，使用以下命令：# xfs_growfs /dev/mapper/vg01-lv002 使用 df 命令查看文件系统大小：# df -h /lvmtest1 Filesystem Size Used Avail Use% Mounted on /dev/mapper/vg01-lv002 15360M 34M 15326M 4% /lvmtest1 via: https://www.2daygeek.com/extend-increase-resize-lvm-logical-volume-in-linux/作者：Magesh Maruthamuthu 选题：lujun9972 译者：geekpi 校对：wxy本文由 LCTT 原创编译，Linux中国 荣誉推出
逻辑卷管理 Logical Volume Management （LVM）在 Linux 系统中扮演着重要的角色，它可以提高可用性、磁盘 I/O、性能和磁盘管理的能力。LVM 是一种被广泛使用的技术，对于磁盘管理来说，它是非常灵活的。它在物理磁盘和文件系统之间增加了一个额外的层，允许你创建一个逻辑卷而不是物理磁盘。LVM 允许你在需要的时候轻松地调整、扩展和减少逻辑卷的大小。如何创建 LVM 物理卷？你可以使用任何磁盘、RAID 阵列、SAN 磁盘或分区作为 LVM 物理卷 Physical Volume （PV）。让我们想象一下，你已经添加了三个磁盘，它们是 /dev/sdb、/dev/sdc 和 /dev/sdd。运行以下命令来发现 Linux 中新添加的 LUN 或磁盘：# ls /sys/class/scsi_host host0 # echo "- - -" > /sys/class/scsi_host/host0/scan # fdisk -l 创建物理卷 （pvcreate） 的一般语法：pvcreate [物理卷名] 当在系统中检测到磁盘，使用 pvcreate 命令初始化 LVM PV：# pvcreate /dev/sdb /dev/sdc /dev/sdd Physical volume "/dev/sdb" successfully created Physical volume "/dev/sdc" successfully created Physical volume "/dev/sdd" successfully created 请注意：上面的命令将删除给定磁盘 /dev/sdb、/dev/sdc 和 /dev/sdd 上的所有数据。物理磁盘可以直接添加到 LVM PV 中，而不必是磁盘分区。使用 pvdisplay 和 pvs 命令来显示你创建的 PV。pvs 命令显示的是摘要输出，pvdisplay 显示的是 PV 的详细输出：# pvs PV VG Fmt Attr PSize PFree /dev/sdb lvm2 a-- 15.00g 15.00g /dev/sdc lvm2 a-- 15.00g 15.00g /dev/sdd lvm2 a-- 15.00g 15.00g # pvdisplay "/dev/sdb" is a new physical volume of "15.00 GiB" --- NEW Physical volume --- PV Name /dev/sdb VG Name PV Size 15.00 GiB Allocatable NO PE Size 0 Total PE 0 Free PE 0 Allocated PE 0 PV UUID 69d9dd18-36be-4631-9ebb-78f05fe3217f "/dev/sdc" is a new physical volume of "15.00 GiB" --- NEW Physical volume --- PV Name /dev/sdc VG Name PV Size 15.00 GiB Allocatable NO PE Size 0 Total PE 0 Free PE 0 Allocated PE 0 PV UUID a2092b92-af29-4760-8e68-7a201922573b "/dev/sdd" is a new physical volume of "15.00 GiB" --- NEW Physical volume --- PV Name /dev/sdd VG Name PV Size 15.00 GiB Allocatable NO PE Size 0 Total PE 0 Free PE 0 Allocated PE 0 PV UUID d92fa769-e00f-4fd7-b6ed-ecf7224af7faS 如何创建一个卷组 卷组 Volume Group （VG）是 LVM 结构中的另一层。基本上，卷组由你创建的 LVM 物理卷组成，你可以将物理卷添加到现有的卷组中，或者根据需要为物理卷创建新的卷组。创建卷组 （vgcreate） 的一般语法：vgcreate [卷组名] [物理卷名] 使用以下命令将一个新的物理卷添加到新的卷组中：# vgcreate vg01 /dev/sdb /dev/sdc /dev/sdd Volume group "vg01" successfully created 请注意：默认情况下，它使用 4MB 的 物理范围 Physical Extent （PE），但你可以根据你的需要改变它。使用 vgs 和 vgdisplay 命令来显示你创建的 VG 的信息：# vgs vg01 VG #PV #LV #SN Attr VSize VFree vg01 3 0 0 wz--n- 44.99g 44.99g # vgdisplay vg01 --- Volume group --- VG Name vg01 System ID Format lvm2 Metadata Areas 3 Metadata Sequence No 1 VG Access read/write VG Status resizable MAX LV 0 Cur LV 0 Open LV 0 Max PV 0 Cur PV 3 Act PV 3 VG Size 44.99 GiB PE Size 4.00 MiB Total PE 11511 Alloc PE / Size 0 / 0 Free PE / Size 11511 / 44.99 GiB VG UUID d17e3c31-e2c9-4f11-809c-94a549bc43b7 如何扩展卷组如果 VG 没有空间，请使用以下命令将新的物理卷添加到现有卷组中。卷组扩展 （vgextend）的一般语法：vgextend [已有卷组名] [物理卷名] # vgextend vg01 /dev/sde Volume group "vg01" successfully extended 如何以 GB 为单位创建逻辑卷？ 逻辑卷 Logical Volume （LV）是 LVM 结构中的顶层。逻辑卷是由卷组创建的块设备。它作为一个虚拟磁盘分区，可以使用 LVM 命令轻松管理。你可以使用 lvcreate 命令创建一个新的逻辑卷。创建逻辑卷（lvcreate） 的一般语法：lvcreate –n [逻辑卷名] –L [逻辑卷大小] [要创建的 LV 所在的卷组名称] 运行下面的命令，创建一个大小为 10GB 的逻辑卷 lv001：# lvcreate -n lv001 -L 10G vg01 Logical volume "lv001" created 使用 lvs 和 lvdisplay 命令来显示你所创建的 LV 的信息：# lvs /dev/vg01/lvol01 LV VG Attr LSize Pool Origin Data% Move Log Cpy%Sync Convert lv001 vg01 mwi-a-m-- 10.00g lv001_mlog 100.00 # lvdisplay /dev/vg01/lv001 --- Logical volume --- LV Path /dev/vg01/lv001 LV Name lv001 VG Name vg01 LV UUID ca307aa4-0866-49b1-8184-004025789e63 LV Write Access read/write LV Creation host, time localhost.localdomain, 2020-09-10 11:43:05 -0700 LV Status available # open 0 LV Size 10.00 GiB Current LE 2560 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 253:4 如何以 PE 大小创建逻辑卷？或者，你可以使用物理范围（PE）大小创建逻辑卷。如何计算 PE 值？很简单，例如，如果你有一个 10GB 的卷组，那么 PE 大小是多少？默认情况下，它使用 4MB 的物理范围，但可以通过运行 vgdisplay 命令来检查正确的 PE 大小，因为这可以根据需求进行更改。10GB = 10240MB / 4MB （PE 大小） = 2560 PE 用 PE 大小创建逻辑卷 （lvcreate） 的一般语法：lvcreate –n [逻辑卷名] –l [物理扩展 （PE） 大小] [要创建的 LV 所在的卷组名称] 要使用 PE 大小创建 10GB 的逻辑卷，命令如下：# lvcreate -n lv001 -l 2560 vg01 如何创建文件系统在创建有效的文件系统之前，你不能使用逻辑卷。创建文件系统的一般语法：mkfs –t [文件系统类型] /dev/[LV 所在的卷组名称]/[LV 名称] 使用以下命令将逻辑卷 lv001 格式化为 ext4 文件系统：# mkfs -t ext4 /dev/vg01/lv001 对于 xfs 文件系统：# mkfs -t xfs /dev/vg01/lv001 挂载逻辑卷最后，你需要挂载逻辑卷来使用它。确保在 /etc/fstab 中添加一个条目，以便系统启动时自动加载。创建一个目录来挂载逻辑卷：# mkdir /lvmtest 使用挂载命令挂载逻辑卷：# mount /dev/vg01/lv001 /lvmtest 在 /etc/fstab 文件中添加新的逻辑卷详细信息，以便系统启动时自动挂载：# vi /etc/fstab /dev/vg01/lv001 /lvmtest xfs defaults 0 0 使用 df 命令检查新挂载的卷：# df -h /lvmtest Filesystem Size Used Avail Use% Mounted on /dev/mapper/vg01-lv001 15360M 34M 15326M 4% /lvmtest via: https://www.2daygeek.com/create-lvm-storage-logical-volume-manager-in-linux/作者：Magesh Maruthamuthu 选题：lujun9972 译者：geekpi 校对：校对者ID本文由 LCTT 原创编译，Linux中国 荣誉推出