当前位置: 首页 > 科技观察

逻辑卷管理(LVM)Linux用户指南

时间:2023-03-18 23:29:19 科技观察

管理磁盘空间是系统管理员的一项重要日常工作。一旦磁盘空间耗尽,就需要执行一系列耗时且复杂的任务来增加磁盘分区中的可用磁盘空间。它还需要系统离线进行处理。通常这个任务会涉及安装一个新的硬盘驱动器,启动到恢复模式或单用户模式,在新的硬盘驱动器上创建一个分区和一个文件系统,挂载到一个临时挂载点以从一个数据太小的文件系统移动到一个更大的新位置,修改/etc/fstab文件的内容以反映新分区的正确设备名称,然后重新启动以在正确的挂载点重新挂载新文件系统。我想告诉大家的是,当FedoraLinux中出现LVM(LogicalVolumeManagement)***时,我是非常抵触的。我最初的反应是我真的不需要我和我的设备之间的这个额外的抽象层。事实证明我错了,逻辑卷管理非常有用。LVM使磁盘空间管理非常灵活。它提供了一些功能,例如在文件系统挂载和活动时可靠地向逻辑卷及其文件系统添加磁盘空间,它还允许您将多个物理磁盘和分区合并到单个卷组(VG)中的可拆分部分,这些卷组组织成一个逻辑卷(LV)。卷管理还允许您减少分配给逻辑卷的磁盘空间量,但是,这里有两个要求,***,必须卸载该卷。其次,必须先减小文件系统本身的大小,然后才能调整卷的大小。一个重要的警告是文件系统本身必须允许调整大小操作。在调整文件系统大小时,EXT2、3和4文件系统都允许离线(未挂载状态)或在线(挂载状态)调整大小。您应该详细了解您计划调整大小的文件系统,以验证它们是否可以完全调整大小,特别是如果它们可以在线调整大小。即时扩展文件系统在我将新发行版安装到生产机器之前,我总是喜欢在VirtualBox虚拟机中运行新发行版一段时间,以确保它不存在任何严重问题。几年前的一天早上,我在我的主工作站上的虚拟机中安装了Fedora的新版本。我想我已经分配了足够的磁盘空间来安装虚拟机的主文件系统。但是,我错了,在安装过程的三分之一左右,我的文件系统空间用完了。幸运的是,VirtualBox检测到磁盘空间不足的情况并停止了虚拟机,然后显示一条错误消息,清楚地指出了问题所在。请注意,这个问题不是虚拟机磁盘太小造成的,而是由于宿主机空间不足,虚拟机上的虚拟磁盘没有足够的空间在宿主机上的逻辑卷中扩展。由于许多现代发行版默认使用逻辑卷管理,并且在我的卷组中有一些可用空间,我可以为适当的逻辑卷分配额外的磁盘空间,并即时扩展主机的文件系统。这意味着我不必重新格式化整个硬盘驱动器、重新安装操作系统甚至重新启动机器。我只是为适当的逻辑卷分配了一些可用空间并调整了文件系统的大小——所有这些都是在文件系统在线并运行时,虚拟机仍在使用它的主机文件系统。调整逻辑卷和文件系统的大小后,我恢复了虚拟机并继续安装过程,就好像什么也没发生一样。虽然你可能从来没有遇到过这种问题,但是很多人都遇到过在重要程序运行过程中磁盘空间不足的问题。此外,虽然许多程序(尤其是Windows程序)的编写和弹性不如VirtualBox,但Linux逻辑卷管理允许它在不丢失数据或不需要耗时的安装过程的情况下进行恢复。LVM结构化逻辑卷管理的磁盘环境结构如下图1所示。逻辑卷管理允许将多个单独的硬盘和/或磁盘分区组合成单个卷组(VG)。然后可以将卷组细分为逻辑卷(LV)或用于作为一个大的单个卷进行分发。可以在逻辑卷上创建普通文件系统,例如EXT3或EXT4。在图1中,两个完整的物理硬盘和第三个硬盘的一个分区组合成一个卷组。在这个卷组中创建了两个逻辑卷和文件系统。例如,可以在每个逻辑卷上创建一个EXT3或EXT4文件系统。图1:LVM允许将分区和整个硬盘合并到卷组中增加主机上的磁盘空间非常简单,根据我的经验,这样的事情很少见。下面列出了基本步骤。您还可以创建一个全新的卷组或向现有逻辑卷添加新空间,或创建一个新的逻辑卷。添加新的逻辑卷有时需要在主机上添加新的逻辑卷。例如,在提示我的VirtualBox虚拟机的包含虚拟磁盘的/home文件系统快满了之后,我决定创建一个新的逻辑卷来存储包括虚拟磁盘在内的虚拟机数据。这释放了我的/home文件系统上的大量空间,还允许我独立管理虚拟机的磁盘空间。添加新逻辑卷的基本步骤如下:如有必要,安装新硬盘。可选:在硬盘上创建分区。在硬盘上创建完整的物理卷(PV)或分区。将新的物理卷分配给现有的卷组(VG),或创建新的卷组。从卷空间创建一个新的逻辑卷(LV)。在新的逻辑卷中创建文件系统。在/etc/fstab中添加适当的条目以挂载文件系统。挂载文件系统。更详细的介绍,将以一个例子作为实验讲授Linux文件系统。示例此示例说明如何使用命令行扩展现有的卷组、向其添加更多空间、在该空间上创建新的逻辑卷,然后在逻辑卷上创建文件系统。这个过程总是在运行和挂载的文件系统上执行。警告:只有EXT3和EXT4文件系统可以在运行和挂载时调整大小。许多其他文件系统,包括BTRFS和ZFS,都无法做到这一点。安装硬盘如果系统中现有硬盘上的卷组空间不够增加,可能需要添加新硬盘,然后创建空间添加到逻辑卷中。首先,安装物理硬盘,然后进行下一步。从硬盘创建物理卷首先需要创建一个新的物理卷(PV)。使用下面的命令,它假定新硬盘已分配为/dev/hdd。pvcreate/dev/hdd不需要在新硬盘上创建任意分区。创建的物理卷将被逻辑卷管理器识别为新安装的原始磁盘或83类型的Linux分区。如果要使用整个硬盘,创建分区并没有什么特别的优势,用于元数据的磁盘空间也可以作为PV的一部分使用。扩展现有的卷组在这个例子中,我将扩展一个现有的卷组而不是创建一个新的卷组;您可以选择其他方法。创建物理磁盘后,扩展现有卷组(VG)以包含新PV的空间。在这个例子中,现有的卷组被命名为:MyVG01。vgextend/dev/MyVG01/dev/hdd创建逻辑卷首先,从卷组中现有的空闲空间创建一个逻辑卷。下面的命令创建一个大小为50GB的LV。卷组的名称是MyVG01,逻辑卷的名称是Stuff。lvcreate-L+50G--nameStuffMyVG01创建文件系统创建逻辑卷不会创建文件系统。此任务必须单独执行。下面的命令在新创建的逻辑卷中创建一个EXT4文件系统。mkfs-text4/dev/MyVG01/Stuff添加文件系统卷标添加文件系统卷标,方便日后文件系统出现问题时识别。e2label/dev/MyVG01/StuffStuff挂载文件系统此时您可以创建挂载点并在/etc/fstab文件系统中添加适当的条目以挂载文件系统。您还可以检查并验证创建的卷是否正确。您可以使用df、lvs和vgs命令来执行此操作。LVM文件系统中调整逻辑卷的大小从Unix第一版开始,文件系统扩展的需求就一直伴随着,Linux也不例外。有了逻辑卷管理(LVM),现在变得更容易了。如有必要,请安装新硬盘。可选:在硬盘上创建分区。在硬盘上创建完整的物理卷(PV)或分区。将新的物理卷分配给现有的卷组(VG),或创建新的卷组。从卷空间创建新的逻辑卷(LV),或使用卷组中的部分或全部空间扩展现有逻辑卷。如果创建了一个新的逻辑卷,则会在其上创建一个文件系统。如果向现有逻辑卷添加空间,请使用resize2fs命令增加文件系统以填充逻辑卷。在/etc/fstab中添加适当的条目以挂载文件系统。挂载文件系统。示例此示例显示如何使用命令行扩展现有的卷组。它将向/Staff文件系统添加大约50GB。这将生成一个可挂载的文件系统,在Linux2.6内核(及更高版本)上具有开箱即用的EXT3和EXT4文件系统。我不建议您将它用于任何关键系统,但它确实有效,而且我已经多次成功;即使在根(/)文件系统上。使用风险自负。警告:只有EXT3和EXT4文件系统可以在运行和挂载时调整大小。许多其他文件系统,包括BTRFS和ZFS,都无法做到这一点。安装硬盘如果系统中现有硬盘上的卷组空间不够增加,可能需要添加新硬盘,然后创建空间添加到逻辑卷中。首先,安装物理硬盘,然后进行下一步。从硬盘创建物理卷首先需要创建一个新的物理卷(PV)。使用下面的命令,它假定新硬盘已分配为/dev/hdd。pvcreate/dev/hdd不需要在新硬盘上创建任意分区。创建的物理卷将被逻辑卷管理器识别为新安装的原始磁盘或83类型的Linux分区。如果要使用整个硬盘,创建分区并没有什么特别的优势,用于元数据的磁盘空间也可以作为PV的一部分使用。将物理卷添加到现有卷组在本示例中,我将使用新物理卷扩展现有卷组。创建物理卷后,扩展现有卷组(VG)以包含新PV的空间。在这个例子中,现有的卷组被命名为:MyVG01。vgextend/dev/MyVG01/dev/hdd扩展逻辑卷首先,从卷组中现有的空闲空间创建一个逻辑卷。下面的命令创建一个大小为50GB的LV。卷组的名称是MyVG01,逻辑卷的名称是Stuff。lvcreate-L+50G--nameStuffMyVG01扩展文件系统如果使用-r选项,扩展逻辑卷也会扩展文件系统。如果不使用-r选项,则不能单独执行此操作。以下命令在新调整大小的逻辑卷中调整文件系统的大小。resize2fs/dev/MyVG01/Stuff您也可以去检查并验证调整大小的卷是否正确。您可以使用df、lvs和vgs命令执行此操作。技巧在过去的几年里,我学会了如何做一些事情来简化逻辑卷的管理,希望这些技巧对您有用。除非您有明确的理由使用其他文件系统,否则建议使用可扩展文件系统。并非所有文件系统都支持调整大小,EXT2、3和4除外。EXT文件系统不仅速度快,而且效率高。在任何情况下,如果默认参数不能满足您的需要,它们(指文件系统参数)可以由知识渊博的系统管理员进行调整。使用有意义的卷和卷组名称。使用EXT文件系统标签,我知道大多数系统管理员都像我一样抵制逻辑卷管理。我希望本文鼓励您至少尝试一下LVM。如果你能做到,我会很高兴;因为,自从我使用它后,我的硬盘驱动器管理任务变得如此简单。关于作者DavidBoth是住在北卡罗来纳州罗利市的Linux和开源软件倡导者。他在IT行业工作了40多年,在IBM工作了20多年。在IBM期间,他于1981年为最初的IBMPC编写了第一个培训课程。他教授过RedHat的RHCE课程,并曾在MCIWorldcom、Cisco和NorthCarolina工作。他从事Linux和开源软件工作近20年。