使用 LVM 为你的 Fedora 系统添加存储

运维 系统运维
有时需要在系统中添加另一块磁盘。这就是逻辑卷管理(LVM)的用武之地。LVM 的好处之处在于它相当灵活。有几种方法可以添加一块磁盘。这篇文章介绍了一种方法。

使用 LVM 为你的 Fedora 系统添加存储

有时需要在系统中添加另一块磁盘。这就是逻辑卷管理Logical Volume Management(LVM)的用武之地。LVM 的好处之处在于它相当灵活。有几种方法可以添加一块磁盘。这篇文章介绍了一种方法。

注意!

这篇文章并不包括将新的磁盘物理地安装到系统中的过程。请查阅你的系统和磁盘文档,了解如何正确地进行安装。

重要: 一定要确保你已经备份重要数据。如果新磁盘已有数据,那么本文中描述的步骤将破坏数据。

最好了解

本文并没有深入介绍 LVM 的每一个功能,重点是添加磁盘。但基本上你要了解,LVM 有卷组volume group(VG),它由一个或多个分区和/或磁盘组成。你把这些分区或磁盘以物理卷physical volume(PV)的方式添加到卷组。一个卷组可以分成许多逻辑卷logical volume(LV)。逻辑卷可以作为文件系统、ramdisk 等其他存储使用。更多信息可以在这里中找到。

可以看作是,把物理卷形成一个存储池(一个卷组),然后从这个存储池中划分出逻辑卷,供你的系统直接使用。

准备

确保你能看到你要添加的磁盘。在添加磁盘之前使用 lsblk 查看哪些存储空间已经可用或正在使用。

  1. $ lsblk
  2. NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
  3. zram0 251:0 0 989M 0 disk [SWAP]
  4. vda 252:0 0 20G 0 disk
  5. ├─vda1 252:1 0 1G 0 part /boot
  6. └─vda2 252:2 0 19G 0 part
  7. └─fedora_fedora-root 253:0 0 19G 0 lvm /

本文使用的是带有虚拟存储的虚拟机,因此设备名称以 vda 开头代表第一个磁盘,vdb 代表第二个磁盘,以此类推。你的设备名称可能不同。许多系统会将 sda 作为第一个物理磁盘,sdb 代表第二个磁盘,以此类推。

当已连接新磁盘,并且你的系统已备份且正在运行,再次使用 lsblk 来查看新的块设备。

  1. $ lsblk
  2. NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
  3. zram0 251:0 0 989M 0 disk [SWAP]
  4. vda 252:0 0 20G 0 disk
  5. ├─vda1 252:1 0 1G 0 part /boot
  6. └─vda2 252:2 0 19G 0 part
  7. └─fedora_fedora-root 253:0 0 19G 0 lvm /
  8. vdb 252:16 0 10G 0 disk

现在有一个名为 vdb 的新设备。该设备的位置是 /dev/vdb

  1. $ ls -l /dev/vdb
  2. brw-rw----. 1 root disk 252, 16 Nov 24 12:56 /dev/vdb

我们可以看到磁盘,但我们还不能用 LVM 来使用它。如果你运行 blkid,你应该不会看到它被列出。对于这个和之后的命令,你需要确保你的系统已配置好,这样你可以使用 sudo

  1. $ sudo blkid
  2. /dev/vda1: UUID="4847cb4d-6666-47e3-9e3b-12d83b2d2448" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="830679b8-01"
  3. /dev/vda2: UUID="k5eWpP-6MXw-foh5-Vbgg-JMZ1-VEf9-ARaGNd" TYPE="LVM2_member" PARTUUID="830679b8-02"
  4. /dev/mapper/fedora_fedora-root: UUID="f8ab802f-8c5f-4766-af33-90e78573f3cc" BLOCK_SIZE="4096" TYPE="ext4"
  5. /dev/zram0: UUID="fc6d7a48-2bd5-4066-9bcf-f062b61f6a60" TYPE="swap"

将磁盘添加到 LVM 中

使用 pvcreate 初始化磁盘。你需要传递设备的完整路径。在这个例子中,它是 /dev/vdb。在你的系统中,它可能是 /dev/sdb 或其他设备名。

  1. $ sudo pvcreate /dev/vdb
  2. Physical volume "/dev/vdb" successfully created.

当你运行 blkid 时,你应该看到磁盘已经被初始化为一个 LVM2_member

  1. $ sudo blkid
  2. /dev/vda1: UUID="4847cb4d-6666-47e3-9e3b-12d83b2d2448" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="830679b8-01"
  3. /dev/vda2: UUID="k5eWpP-6MXw-foh5-Vbgg-JMZ1-VEf9-ARaGNd" TYPE="LVM2_member" PARTUUID="830679b8-02"
  4. /dev/mapper/fedora_fedora-root: UUID="f8ab802f-8c5f-4766-af33-90e78573f3cc" BLOCK_SIZE="4096" TYPE="ext4"
  5. /dev/zram0: UUID="fc6d7a48-2bd5-4066-9bcf-f062b61f6a60" TYPE="swap"
  6. /dev/vdb: UUID="4uUUuI-lMQY-WyS5-lo0W-lqjW-Qvqw-RqeroE" TYPE="LVM2_member"

你可以使用 pvs 列出当前所有可用的物理卷:

  1. $ sudo pvs
  2. PV VG Fmt Attr PSize PFree
  3. /dev/vda2 fedora_fedora lvm2 a-- <19.00g 0
  4. /dev/vdb lvm2 --- 10.00g 10.00g

/dev/vdb 被列为一个 PV (物理卷),但还没有分配到一个 VG (卷组)。

将物理卷添加到一个卷组

你可以使用 vgs 找到可用的卷组列表:

  1. $ sudo vgs
  2. VG #PV #LV #SN Attr VSize VFree
  3. fedora_fedora 1 1 0 wz--n- 19.00g 0

在本例中,只有一个卷组可用。接下来,将物理卷添加到 fedora_fedora

  1. $ sudo vgextend fedora_fedora /dev/vdb
  2. Volume group "fedora_fedora" successfully extended

你现在应该看到物理卷已被添加到卷组中:

  1. $ sudo pvs
  2. PV VG Fmt Attr PSize PFree
  3. /dev/vda2 fedora_fedora lvm2 a <19.00g 0
  4. /dev/vdb fedora_fedora lvm2 a <10.00g <10.00g

看一下卷组:

  1. $ sudo vgs
  2. VG #PV #LV #SN Attr VSize VFree
  3. fedora_fedora 2 1 0 wzn- 28.99g <10.00g

你也可以获得具体卷组和物理卷的详细列表:

  1. $ sudo vgdisplay fedora_fedora
  2. --- Volume group ---
  3. VG Name fedora_fedora
  4. System ID
  5. Format lvm2
  6. Metadata Areas 2
  7. Metadata Sequence No 3
  8. VG Access read/write
  9. VG Status resizable
  10. MAX LV 0
  11. Cur LV 1
  12. Open LV 1
  13. Max PV 0
  14. Cur PV 2
  15. Act PV 2
  16. VG Size 28.99 GiB
  17. PE Size 4.00 MiB
  18. Total PE 7422
  19. Alloc PE / Size 4863 / 19.00 GiB
  20. Free PE / Size 2559 / 10.00 GiB
  21. VG UUID C5dL2s-dirA-SQ15-TfQU-T3yt-l83E-oI6pkp

看下物理卷:

  1. $ sudo pvdisplay /dev/vdb
  2. --- Physical volume ---
  3. PV Name /dev/vdb
  4. VG Name fedora_fedora
  5. PV Size 10.00 GiB / not usable 4.00 MiB
  6. Allocatable yes
  7. PE Size 4.00 MiB
  8. Total PE 2559
  9. Free PE 2559
  10. Allocated PE 0
  11. PV UUID 4uUUuI-lMQY-WyS5-lo0W-lqjW-Qvqw-RqeroE

现在我们已经添加了磁盘,我们可以为逻辑卷 (LV) 分配空间:

  1. $ sudo lvs
  2. LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
  3. root fedora_fedora -wi-ao---- 19.00g

看一下逻辑卷。下面是详细的逻辑卷信息:

  1. $ sudo lvdisplay fedora_fedora/root
  2. --- Logical volume ---
  3. LV Path /dev/fedora_fedora/root
  4. LV Name root
  5. VG Name fedora_fedora
  6. LV UUID yqc9cw-AvOw-G1Ni-bCT3-3HAa-qnw3-qUSHGM
  7. LV Write Access read/write
  8. LV Creation host, time fedora, 2020-11-24 11:44:36 -0500
  9. LV Status available
  10. LV Size 19.00 GiB
  11. Current LE 4863
  12. Segments 1
  13. Allocation inherit
  14. Read ahead sectors auto
  15. - currently set to 256
  16. Block device 253:0

查看根文件系统(/)的大小,并将它与逻辑卷大小进行比较。

  1. $ df -h /
  2. Filesystem Size Used Avail Use% Mounted on
  3. /dev/mapper/fedora_fedora-root 19G 1.4G 17G 8% /

逻辑卷和文件系统大小都为 19G。让我们给根逻辑卷(root)增加 5G。

  1. $ sudo lvresize -L +5G fedora_fedora/root
  2. Size of logical volume fedora_fedora/root changed from 19.00 GiB (4863 extents) to 24.00 GiB (6143 extents).
  3. Logical volume fedora_fedora/root successfully resized.

我们现在有 24G 的逻辑卷可用。看看根文件系统(/)。

  1. $ df -h /
  2. Filesystem Size Used Avail Use% Mounted on
  3. /dev/mapper/fedora_fedora-root 19G 1.4G 17G 8% /

我们仍然显示只有 19G 的空闲空间,这是因为逻辑卷与文件系统不一样。要使用增加到逻辑卷的新空间,请调整文件系统的大小。

  1. $ sudo resize2fs /dev/fedora_fedora/root
  2. resize2fs 1.45.6 (20-Mar-2020)
  3. Filesystem at /dev/fedora_fedora/root is mounted on /; on-line resizing required
  4. old_desc_blocks = 3, new_desc_blocks = 3
  5. The filesystem on /dev/fedora_fedora/root is now 6290432 (4k) blocks long.

看看文件系统的大小。

  1. $ df -h /
  2. Filesystem Size Used Avail Use% Mounted on
  3. /dev/mapper/fedora_fedora-root 24G 1.4G 21G 7% /

正如你所看到的,根文件系统(/)已经占用了逻辑卷上的所有可用空间,而且不需要重新启动。

 

现在你已经将一个磁盘初始化为物理卷,并使用新的物理卷扩展了卷组。之后,你增加了逻辑卷的大小,并调整了文件系统的大小,以使用逻辑卷的新空间。

 

责任编辑:庞桂玉 来源: Linux中国
相关推荐

2021-12-14 15:03:58

LVM系统运维

2019-08-20 13:22:36

LVMFedoraLinux

2012-04-11 13:42:53

ibmdw

2020-06-19 13:53:47

BokehPython绘图

2019-01-30 14:04:57

Fedora存储库

2011-12-13 09:55:47

虚拟化QuorumSoftXenServer

2013-09-09 16:37:48

iOS应用添加内置收费In App Purc

2021-05-26 14:39:27

FedoraLinux企业域

2010-02-26 09:11:09

Fedora 6

2014-10-24 09:55:12

FedoraDocker

2010-01-11 09:12:15

Fedora LAMP

2009-02-17 23:28:48

添加删除程序安装盘

2009-12-09 09:41:56

Linux系统

2020-01-17 18:40:38

Python游戏代码

2009-12-23 18:43:05

Fedora Linu

2022-02-25 19:29:07

Vue2esbuild项目

2011-04-22 11:12:42

JavaScript

2023-07-30 17:34:53

KV存储ChunkPosit

2021-05-08 14:00:58

FedoraLinux

2018-12-25 13:45:54

Fedora IoT树莓派Linux
点赞
收藏

51CTO技术栈公众号