文章目录
- 1. 直接上手
- 1.2 LVM 概念
- 1.2.1 关键术语
- 1.3 LVM使用步骤
- 1.3.1 创建物理卷(PV)
- 1.3.2 创建卷组(VG)
- 1.3.3 创建逻辑卷(LV)
- 1.3.4 格式化逻辑卷
- 1.3.5 挂载逻辑卷
- 1.3.6 扩展和缩小逻辑卷
- 1.3.6.1 扩展逻辑卷
- 1.3.6.2 缩小逻辑卷
- 2. 实战
- 2.1 从零开始创建LVM
- 2.1.2 操作步骤
- 2.2 已有LVM结构,扩容到指定目录
- 2.2.1 操作步骤
1. 直接上手
逻辑卷管理(Logical Volume Manager, LVM)是 Linux 中用于磁盘和分区管理的一种技术,它提供了一种更加灵活的方式来管理存储空间。
1.2 LVM 概念
LVM 是一种抽象层,位于物理存储设备之上,文件系统之下。通过 LVM,我们可以创建逻辑卷(Logical Volumes, LVs),这些逻辑卷可以从一个或多个物理卷(Physical Volumes, PVs)中分配空间。LVM 还支持卷组(Volume Groups, VGs),这是一种包含一个或多个物理卷的容器。
1.2.1 关键术语
- PV(物理卷):物理卷是LVM中的一个基本单元,通常是一个或多个磁盘分区,也可以是整个磁盘。
- VG(卷组):卷组是由一个或多个物理卷组成的集合,可以看作是一个存储池。
- LV(逻辑卷):逻辑卷是建立在卷组上的,它是卷组中的一个或多个物理卷的子集,通常用于挂载文件系统,可以看作是一个可以动态调整大小的分区。
- PE(物理扩展):物理卷中的最小可寻址单元,通常大小为 4MB。
- LE(逻辑扩展):逻辑卷中的最小可寻址单元,与 PE 对应。
1.3 LVM使用步骤
1.3.1 创建物理卷(PV)
1.使用 pvcreate
命令来创建物理卷。
pvcreate /dev/sdb1
1.3.2 创建卷组(VG)
1.使用 vgcreate
命令来创建卷组。
vgcreate myVG0 /dev/sdb1
这里的myVG0
是逻辑卷的名称。
1.3.3 创建逻辑卷(LV)
1.使用 lvcreate
命令来创建逻辑卷。
lvcreate -L 10G -n myVG0 myLV0
这里 -L
指定逻辑卷的大小,-n
指定逻辑卷的名称,这个命令的作用是在名为myVG0
的卷组中创建一个名为myLV0
的逻辑卷,其大小为10GB。
1.3.4 格式化逻辑卷
1.使用 mkfs
命令来格式化逻辑卷。
mkfs.ext4 /dev/myVG0/myLV0
1.3.5 挂载逻辑卷
1.使用 mount
命令来挂载逻辑卷到指定目录。
mkdir /mnt/myLVdisk
mount /dev/myVG0/myLV0 /mnt/myLVdisk
1.3.6 扩展和缩小逻辑卷
1.3.6.1 扩展逻辑卷
1.添加新的物理卷到卷组
pvcreate /dev/sdc
vgextend myVG /dev/sdc
2.扩展逻辑卷的大小。
lvextend -L +5G /dev/myVG0/myLV0
3.调整文件系统的大小以匹配新的逻辑卷大小。
resize2fs /dev/myVG0/myLV0
1.3.6.2 缩小逻辑卷
1.缩小文件系统的大小。
umount /mnt/myLV
resize2fs /dev/myVG0/myLV0 9G
2.缩小逻辑卷的大小。
lvreduce -L 9G /dev/myVG0/myLV0
2. 实战
2.1 从零开始创建LVM
假设你有两个512G的硬盘 /dev/sda
和 /dev/sdb
,现想要/dev/sdb
转换为 LVM 结构,创建一个名为 dataVG
的卷组,然后在其中创建一个大小为511.9GB
的逻辑卷 dataLV
。并将其格式化为 ext4 文件系统,最后挂载到 /mnt/tmp
目录。
lsblk
是一个在Linux系统中用来列出所有可用的块设备(例如硬盘驱动器、固态驱动器、USB驱动器等)的命令行工具。该命令提供了一个易于阅读的表格格式,显示了每个设备的名称、挂载点、分区布局等信息。
lsblk
2.1.2 操作步骤
1.下载并安装lvm2
软件包以及它所需的任何其他包。
apt install -y lvm2
2.创建物理卷。
pvcreate /dev/sdb
3.显示物理卷的相关信息。
pvdisplay
pvs
pvdisplay
:显示有关物理卷的详细信息,包括其大小、分配的PE(物理扩展)数量、以及它属于哪个卷组等。如果你需要查看特定物理卷的详细信息,可以使用 pvdisplay /dev/sdXN
。
pvs
:以表格形式显示所有物理卷的摘要信息,包括它们的名称、大小、PE大小和状态。
4.创建卷组。
vgcreate dataVG /dev/sdb
5.查看系统中所有卷组的详细信息。
vgdisplay
vgdisplay
是一个用于显示卷组(Volume Group)信息的命令行工具,它是LVM(逻辑卷管理器)的一部分。使用 vgdisplay
可以查看系统中所有卷组的详细信息,或者指定特定的卷组来获取详细信息。如果你想要查看特定卷组的信息,可以使用 -v
或 --volumes
选项,后面跟上卷组的名称。
6.创建逻辑卷
lvcreate -L 511.9G -n dataLV dataVG
因为PE Size
占了4MB,所以可用的VG Size
不足512GB。
7.显示逻辑卷的相关信息
lvdisplay
lvs
lvdisplay
命令显示特定逻辑卷的详细信息。如果你想查看特定逻辑卷的详细信息,可以在命令后面加上逻辑卷路径
。
lvs
命令以表格形式显示所有逻辑卷的摘要信息。它会列出每个逻辑卷的名称、所属卷组、当前大小、使用的PE(物理扩展)数量、以及是否激活等信息。
8.查看/dev
目录下的卷组和逻辑卷。
ls -l /dev/ | grep -i dataVG
ls -l /dev/dataVG
我们创建的VG
和LV
,本质上是在/dev
目录下创建了文件。
9.格式化逻辑卷。
mkfs.ext4 /dev/dataVG/dataLV
10.查看逻辑卷的分区信息和健康状态。
fdisk -l
fsck.ext4 /dec/dataVG/dataLV
使用 fsck
命令可以检查文件系统的完整性。请注意,在运行 fsck
之前,确保逻辑卷未被挂载。
fdisk
是一个用于磁盘分区的命令行工具,-l
选项表示列出所有分区表,而不需要交互式操作。
-
创建挂载点,并挂载逻辑卷。
mkdir /mnt/tmp mount /dev/dataVG/dataLV /mnt/tmp
12.查看文件系统信息。
df -Th
使用 df -Th
命令可以查看所有已挂载的文件系统及其类型。
2.2 已有LVM结构,扩容到指定目录
假设你有两个的硬盘 /dev/sdb
200G 和 /dev/sdc
100G,且/dev/sdb
已经是LVM 结构,现欲将/dev/sdc
100G硬盘扩容到/mnt/tmp
中。
2.2.1 操作步骤
1.查看已有文件系统信息。
df -Th
2.列出可用的块设备。
lsblk
3.创建物理卷。
pvcreate /dev/sdc
4.将物理卷添加到现有卷组:
vgextend dataVG /dev/sdc
vgextend
命令用于向现有的卷组(Volume Group)中添加一个或多个新的物理卷(Physical Volumes,PVs)。物理卷可以是磁盘、磁盘分区或整个磁盘设备。使用 vgextend
可以增加卷组的容量,从而允许在该卷组中创建更大的逻辑卷(Logical Volumes,LVs)。
5.确认卷组dataVG
中可用的空间量。
vgs --noheadings --units g --separator : --nosuffix --all --options vg_name,free
以简化格式输出卷组(VG)的名称及其可用的自由空间(单位为 GB),这里是对该命令各选项的解释:
-
--noheadings
: 不显示表头。 -
--units g
: 显示以 GB 为单位的值。 -
--separator :
: 使用冒号作为字段之间的分隔符。 -
--nosuffix
: 不显示单位后缀(如 G、T 等)。 -
--all
: 包括所有卷组的信息。 -
--options vg_name,free
: 只显示卷组名称和自由空间这两个字段。
6.扩展一定的大小,如40GB:
lvextend -L +40G /dev/dataVG/dataLV
7.调整文件系统大小。
resize2fs /dev/dataVG/dataLV
resize2fs
是一个用于调整 ext2
、ext3
或 ext4
文件系统大小的命令行工具。它允许你增加或减少文件系统的容量,以适应底层存储设备的大小变化。这个命令特别适用于以下情况:
- 当你使用
lvextend
增加了逻辑卷的大小,并且希望文件系统能够使用新增的空间。 - 当你需要缩小文件系统以释放空间给其他用途。
8.验证文件系统信息。
df -Th