逻辑卷管理( LVM ) 是一个强大的工具,可以极大地简化磁盘空间管理。使用LVM,为文件系统分配额外空间的任务变得毫不费力。每当文件系统需要更多空间时,它都可以轻松地从相应卷组中的可用空间中提取。因此,文件系统可以动态调整大小以满足我们的特定需求。
此外,LVM在发生磁盘故障时提供强大的数据保护。如果磁盘开始出现故障迹象,还可以将替换磁盘作为新的物理卷无缝集成到卷组中。通过这种方法,LVM可以有效地迁移到新磁盘,确保连续性并防止任何潜在的数据丢失。
从本质上讲,LVM使管理员能够以无与伦比的灵活性和弹性处理磁盘空间分配和管理。其动态调整大小功能和内置冗余功能使其成为优化存储利用率和增强任何系统配置中的数据完整性不可或缺的资产。在本文中,小编详细介绍下如何在Linux系统中使用逻辑卷管理 (LVM) 创建磁盘存储。
在参考本教程进行设置LVM之前,请满足以下先决条件:
- 操作系统 – 带有LVM安装的 RHEL 9
- IP – 192.168.0.200
- 磁盘 – 3个磁盘,每个磁盘大小20GB。
检查Linux系统中的LVM磁盘存储
为了深入了解LVM设置,可以使用以下命令来显示不同的组件:物理卷 (PV)、卷组 (VG)和逻辑卷 (LV)。
#pvs #vgs #lvs
上面截图中显示的每个参数的说明如下所示:
- 物理磁盘大小(PV大小)
- 使用的磁盘是虚拟磁盘sda。
- 卷组大小(VG大小)
- 卷组名称 ( vg_tecmint )
- 逻辑卷名称(LogVol00、LogVol01)
- LogVol00分配大小为956MB的交换空间
- LogVol01分配大小为18.63GB的交换空间
所以,从这里我们知道VDA磁盘中没有足够的可用空间。
在LVM中创建新卷组
要创建新的卷组,需要向该服务器添加额外的3个硬盘。但是,并不强制要求使用3个驱动器;只需1个就足以创建一个新的VG和该VG内的LV(逻辑卷)。在这里添加以下3个磁盘,主要用于演示目的并提供更多功能命令说明。
sdb, sdc, sdd
要列出所有磁盘及其分区,例如磁盘名称、大小、分区类型、起始和结束扇区等,请使用fdisk实用程序,如下所示:
# fdisk -l
上面截图中显示的每个磁盘的描述如下所示:
- 默认磁盘上定义的分区如下:(sda1=boot)、(sda2=/)。
- 此外,添加的磁盘被称为Disk1、Disk2和Disk3。
每个磁盘的大小为20GB。
现在运行vgdisplay命令可查看有关系统上存在的所有卷组的详细信息,包括其名称、大小、可用空间、物理卷 (PV) 信息等:
# vgdisplay
上面截图中显示的每个参数的说明如下所示:
- VG名称–卷组名称。
- 格式–LVM架构使用lvm2。
- VG Access–卷组处于读写模式并可供使用。
- VG 状态–可以调整卷组的大小。如果我们需要添加更多空间,我们可以对其进行扩展。
- 当前LV–目前,此卷组中有2个逻辑卷。
- CurPV和Act PV – 当前使用的物理磁盘为1 (vda),并且处于活动状态。所以,可以使用这个卷组。
- PE大小– 磁盘的物理范围 (PE) 和大小可以使用PE或GB大小来定义。LVM的默认PE大小为4 MB。例如,如果需要创建一个5GB的逻辑卷,则总共可以使用1280个PE。这个应该能明白吧?
解释如下:1GB等于1024 MB,因此1024MB x 5=5120PE=5GB。现在,将5120除以4=1280。所以,4是默认PE大小。
- 总的PE – 该卷组有。
- 分配PE – 已使用的总PE,已使用的全部PE,5008 x 4PE =20032。
- 可用PE – 这里已经使用过,所以没有可用PE。
现在列出文件系统磁盘空间信息,这里只使用sda和/boot、/,并使用LVM在sda物理磁盘上进行swap,该磁盘上没有剩余空间。
# df -TH
上图显示了正在使用的挂载点,19GB已完全用于根目录,因此没有可用空间。
创建磁盘分区
接下来创建一个名为tecmint_add_vg的新物理卷 (PV) 和卷组 (VG) ,并在其中创建逻辑卷 (LV)。在这里,可以创建3个逻辑卷,分别为tecmint_documents、 tecmint_manager和tecmint_public。
我们可以扩展当前使用的VG的卷组来获得更多的空间。不过,在这种情况下,这里将创建一个新的卷组并对其进行操作。稍后,还可以看到如何扩展当前使用的卷组的文件系统。
在使用新磁盘之前,需要使用fdisk命令对磁盘进行分区,如下所示:
# fdisk -c /dev/sdb
接下来,按照以下步骤创建新分区,具体步骤如下:
- 选择
n
新建。 - 选择
p
创建主分区。 - 选择需要创建的分区数量。
- 按两次Enter键以使用磁盘的全部空间。
- 需要更改新创建的分区类型
t
。 - 需要更改哪个分区数量,选择我们创建的分区数量
1
。 - 需要更改类型,我们需要创建LVM,因此将使用LVM的类型代码为
8e
,如果不知道类型代码按L
列出所有类型代码。 - 输出我们创建的分区以进行确认。
- 这里可以看到ID为8e LINUX LVM。
- 写入更改并退出fdisk。
对另外2个磁盘sdc
和sdd
执行上述步骤创建新分区。然后重新启动机器,使用fdisk命令验证分区表:
# fdisk -l
创建LVM物理卷
现在使用所有3个磁盘创建物理卷了。在这里使用“ pvs ”命令列出了物理磁盘,所以只列出了一个默认PV 。
# pvs
然后创建新的物理磁盘并确认新创建的物理磁盘,命令如下:
# pvcreate /dev/sdb1 /dev/sdc1 /dev/sdd1 # pvs
创建LVM卷组
使用可用的32空闲大小PV和PE创建一个名为tecmint_add_vg的卷组。显示当前卷组,可以看到有1个卷组正在使用中。
# vgs
这将使用32MB PE大小和我们在最后步骤中创建的3个物理卷创建名为tecmint_add_vg的卷组。
# vgcreate -s 32M tecmint_add_vg /dev/sdb1 /dev/sdc1 /dev/sdd1
接下来,再次运行vgs命令来验证卷组。
# vgs
VGS命令输出详细说明如下:
- 卷组名称。
- 此卷组中使用的物理卷。
- 显示该卷组中的可用空间。
- 卷组的总大小。
- 该卷组内的逻辑卷,这里还没有创建,所以有0个。
- SN=卷组包含的快照数量。(稍后我们可以创建快照)。
- 卷组的状态为可写、可读、可调整大小、导出、部分和集群,这里是wz–n-表示 w = 可写,z = 可调整大小。
- 该卷组中使用的物理卷 (PV) 的数量。
要显示有关卷组的更多信息,请使用以下命令。
# vgs -v
要获取有关新创建的卷组的更多信息,请运行以下命令。
# vgdisplay tecmint_add_vg
下面是上面截图中显示的每个参数的说明,具体如下:
- 卷组名称
- 使用LVM架构。
- 可以处于读写状态,随时可以使用。
- 该卷组的大小是可以调整的。
- 未使用物理磁盘且它们处于活动状态。
- 卷组总大小。
- 这里的单个PE大小为 32。
- 该卷组中可用的PE总数。
- 目前还没有在这个VG中创建任何LV,所以它是完全可用的。
- 该卷组的UUID。
创建LVM逻辑卷
现在,创建3个逻辑卷,分别命名为tecmint_documents、tecmint_manager和tecmint_public。在这里,将简单演示如何使用PE大小和GB大小创建逻辑卷。首先,使用以下命令列出当前逻辑卷。
# lvs
这些逻辑卷位于vg_tecmint卷组中。要查看有多少可用空间可用于创建逻辑卷,请使用“ vgs ”命令列出卷组和可用物理卷。
# vgs
卷组大小将近60GB,并且未使用,因此可以在其中创建LVs。让我们将卷组划分为相等大小以创建3个逻辑卷。这意味着60GB/3=20GB。每个逻辑卷创建后大小为20GB。
方法一:使用PE大小创建逻辑卷
首先,使用物理盘区 (PE) 大小创建逻辑卷。我们需要知道分配给该卷组的默认PE大小以及创建新逻辑卷的可用PE总数。运行以下命令来获取此信息:
# vgdisplay tecmint_add_vg
- 分配给该VG的默认PE是32MB,这里单个PE大小将为32MB。
- 总可用PE为1917。
只需使用bc命令进行一些计算即可:
# bc
1917PE/3 = 639 PE. 639 PE x 32MB = 20448 --> 20GB
按CRTL+D退出bc。
现在让我们使用639个PE创建3个逻辑卷。这里-l
用于扩展大小且-n
分配逻辑卷名称。
# lvcreate -l 639 -n tecmint_documents tecmint_add_vg # lvcreate -l 639 -n tecmint_manager tecmint_add_vg # lvcreate -l 639 -n tecmint_public tecmint_add_vg
使用lvs命令列出创建的逻辑卷:
# lvs
方法2:使用GB大小创建逻辑卷
使用GB大小创建逻辑卷时,无法获得确切的大小。所以,更好的方法是使用extend来创建,具体如下:
# lvcreate -L 20G -n tecmint_documents tecmint_add_vg # lvcreate -L 20G -n tecmint_manager tecmint_add_vg # lvcreate -L 20G -n tecmint_public tecmint_add_vg # lvcreate -L 20G -n tecmint_public tecmint_add_vg
使用lvs命令列出创建的逻辑卷:
# lvs
在这里可以看到,在创建第三个LV时,我们无法舍入到20GB,这是因为大小变化很小,但在使用扩展大小创建LV时,这个问题基本上可以被忽略。
创建文件系统
为了使用逻辑卷,需要格式化。这里使用ext4文件系统来创建卷并将它们安装在/mnt/下:
# mkfs.ext4 /dev/tecmint_add_vg/tecmint_documents # mkfs.ext4 /dev/tecmint_add_vg/tecmint_public # mkfs.ext4 /dev/tecmint_add_vg/tecmint_manager
接下来我们在/mnt中创建目录并挂载我们创建的文件系统的逻辑卷。
# mount /dev/tecmint_add_vg/tecmint_documents /mnt/tecmint_documents/ # mount /dev/tecmint_add_vg/tecmint_public /mnt/tecmint_public/ # mount /dev/tecmint_add_vg/tecmint_manager /mnt/tecmint_manager/
列出并确认使用的安装点。
# df -h
永久挂载逻辑卷
现在它是临时挂载的,对于永久挂载,需要在fstab中添加条目,为此让我们使用mtab获取挂载条目:
# cat /etc/mtab
当从mtab输入挂载条目内容副本时,需要对fstab条目进行轻微更改,需要将rw更改为默认值:
# vi /etc/fstab
这里fstab条目应类似于以下示例:
/dev/mapper/tecmint_add_vg-tecmint_documents /mnt/tecmint_documents ext4 defaults 0 0 /dev/mapper/tecmint_add_vg-tecmint_public /mnt/tecmint_public ext4 defaults 0 0 /dev/mapper/tecmint_add_vg-tecmint_manager /mnt/tecmint_manager ext4 defaults 0 0
最后,在重新启动之前运行命令mount -a检查fstab条目。
# mount -av
通过以上教程可以了解如何通过物理磁盘到物理卷、物理卷到卷组、卷组到逻辑卷来设置逻辑卷的灵活存储。另外,在后面的文章将接入如何扩展卷组和逻辑卷、减少逻辑卷、拍摄快照以及从快照还原,欢迎届时查看。