GNU/Linux 的强大功能毋庸置疑。但或许有些用户并不了解它提供的一些工具和功能,这些工具和功能可以简化日常任务,甚至让他们完成令人惊叹的事情。本文将介绍 LVM(逻辑卷管理器),虽然它最初并非为 Linux 开发,但后来被移植到 Linux 平台,现在 Linux 用户也能享受到它的强大功能。
顾名思义,LVM 是一种逻辑卷管理器。它最初由 Heinz Mauelshagen 于 1998 年为 HP-UX 操作系统(惠普的 UNIX 版本)创建。后来,它被集成到 Linux 内核中。借助 LVM,您可以调整逻辑组和逻辑卷的大小,创建只读快照,管理 RAID 阵列等等。但本文重点介绍的是它合并多个硬盘驱动器的功能。
LVM 可以将磁盘和分区组视为一个整体,而不是管理许多独立的空间。这使我们能够将多个分区合并为一个,将某些分区扩展到不同的物理磁盘上,在 RAID 模式下使用多个磁盘,热插拔硬盘,甚至使用“快照”功能创建备份。
这是如何实现的呢?基本上,这要归功于对三个概念的巧妙运用:
- PV(物理量):是物理卷,即计算机的硬盘驱动器或分区。
- VG(卷组):体积组,是PV和VL相遇的区域。
- LV(逻辑卷):可以创建文件系统或FS的逻辑卷或设备。
要使用 LVM,我们可以通过终端使用以下三个主要工具:
- pvcreate: 您可以通过连接几个不同的硬盘驱动器或分区来创建物理卷。 例如,让我们加入分区/ dev / sda3和/ dev / sdb1:
pvcreate /dev/sda3 /dev/sdb1
- vgcreate: 您可以创建卷组,即分区或物理磁盘属于一个组。 例如,创建一个名为“数据”的组:
vgcreate datos /dev/sdb1
- lvcreate: 定义将在组内的逻辑卷。 例如,假设您要在“数据”组中创建一个名为“ new”的卷,其大小为8GB:
lvcreate --name nuevo --size 8G datos
我们来看一个实际例子。假设你有一台电脑,硬盘容量为 x GB,你决定通过添加另一块硬盘来扩展容量。在这种情况下,操作系统会将其视为一块新的硬盘,你需要创建一个或多个分区才能使用它。更具体地说,假设你原来的硬盘容量为 120 GB,并且你创建了一系列分区,其中包括占用 80 GB 的 /home 分区(名为 /dev/sda3),/dev/sda1 是根分区,/dev/sda2 是交换分区……
现在你有了一块新的硬盘,额外拥有 500GB 的空间(/dev/sdb1),但你不想再创建一个分区,而是希望你的 /home 目录拥有 580GB 的空间。这可以通过 LVM 实现,它将 /dev/sda 和 /dev/sdb对操作系统而言视为一个单一的设备,一个物理上位于两块不同硬盘上的单一分区。这只是 LVM 众多功能之一,具体操作如下:
—在进行任何格式化之前,请先备份/ home的备份副本,因为它会被格式化-
sudo -i unmount /dev/sda3 unmount /dev/sdb1 vgcreate lvm /dev/sda3 /dev/sdb1 modprobe dm-mod lvcreate -n home -l 100% VG lvm mkfs.ext4 /dev/lvm/home mount /dev/lvm/home /home
剩下的就是编辑 /etc/fstab 文件,使其在系统启动时不挂载 /dev/sda3 和 /dev/sdb1 分区,而是挂载 /dev/lvm/home 和 /home 分区。如果我们输入以下内容(可以使用 gedit、nano 或任何你喜欢的文本编辑器):
sudo gedit /etc/fstab
我们可以查看内容进行编辑。我们会看到注释 (#) 和其他用于挂载当前发行版分区的行。请注意,这些空格并非普通空格;编辑时,请使用 TAB 键分隔内容!您会看到类似 UUID=XXX-XXX-XXX-XXX 的内容,但这些乱码可以毫无问题地替换为 /dev/sdx——也就是说,替换为分区名称,无需任何修改。在本例中,您需要删除(或者更好的是,在行首添加 # 以将其注释掉。这样,如果出现问题或配置无效,我们可以编辑 fstab 文件,只需删除新添加的行并移除 # 即可恢复到之前的配置)对应于 /dev/sda3 和 /dev/sdb1 的两行,并添加:
/ dev / lvm / home / home ext4默认值0 1
重启后,您将拥有一个 580GB 的 /home 目录,两个硬盘合并后就像一个硬盘一样。当然,您可以根据自己的喜好自定义设置,使用任何您想要的分区、任何您喜欢的文件系统(这里我们使用的是 EXT4,但您可以使用任何您需要的文件系统),等等。请留下您的留言、问题、评论等等。