Bootstrap

【Linux】磁盘扩容到根目录逻辑卷(LVM)

目录

一、物理卷和逻辑卷

1.物理卷和逻辑卷的区别

 2.在Linux系统中查看所有物理卷的信息

3.在Linux系统中查看所有逻辑卷的信息

二、文件系统

三、实操-对root(/)目录进行扩容 

1.使用lsblk命令查看新加入的磁盘信息

2.fdisk -l命令查看系统中磁盘分区详细信息

3.使用fdisk分区新磁盘,并将分区标记为Linux文件系统类型(83)

4.检查是否分区成功

5.创建物理卷

 6.将磁盘扩容到卷组

7.扩展逻辑分区

8.使其扩展生效(xfs_growfs)

9.验证是否生效

四、物理卷、逻辑卷常用命令

1.物理卷

(1)创建物理卷

(2)显示物理卷信息

(3)扩展物理卷

(4)移除物理卷:

2.逻辑卷

(1)创建逻辑卷:

(2)显示逻辑卷信息:

(3)扩展逻辑卷:

(5)缩小逻辑卷:

(6)移除逻辑卷:


一、物理卷和逻辑卷

1.物理卷和逻辑卷的区别

逻辑卷(Logical Volume)和物理卷(Physical Volume)是Linux系统中LVM(Logical Volume Manager,逻辑卷管理器)概念中的两个重要组成部分。

物理卷是由物理磁盘或分区组成的存储设备。在LVM中,物理卷被组合成一个或多个卷组(Volume Group),以提供更大的存储池。

逻辑卷则是由物理卷划分出来的一部分空间,类似于传统的分区概念。在LVM中,逻辑卷可以跨越多个物理卷扩展,从而允许您更灵活地管理和分配存储空间。

具体来说,LVM的工作流程如下:

  1. 将一个或多个物理卷划分为一个或多个卷组。
  2. 在卷组上创建一个或多个逻辑卷。
  3. 将文件系统格式化为逻辑卷上,然后将其挂载到操作系统上。

 2.在Linux系统中查看所有物理卷的信息

命令:pvdisplay

将显示系统上所有物理卷的信息,包括它们的名称、UUID、总大小等。如果物理卷已经被分配给卷组,则还会显示所属的卷组名称。如下图所示:

在LVM中,物理卷是由物理磁盘或分区组成的。上图中,/dev/vda2 是一个物理磁盘分区,被用作LVM物理卷。该物理卷属于VG(卷组) klas。 

以下是每个字段的含义:

  • PV Name:物理卷的名称。
  • VG Name:物理卷所属的卷组的名称。
  • PV Size:物理卷的总容量。
  • Allocatable:指示物理卷是否可以分配给逻辑卷。
  • PE Size:物理卷的物理扩展大小(通常为4MiB)。
  • Total PE:物理卷中的总扩展数。
  • Free PE:物理卷中当前未分配的扩展数。
  • Allocated PE:物理卷中已分配的扩展数。
  • PV UUID:物理卷的唯一标识符。

3.在Linux系统中查看所有逻辑卷的信息

命令:lvdisplay

将显示系统上所有逻辑卷的信息,包括它们的名称、UUID、大小等。如果逻辑卷已经被格式化为一个文件系统,则还会显示文件系统类型和挂载点。 

参数说明:

  • LV Path:逻辑卷的设备路径,这里是 /dev/klas/swap。
  • LV Name:逻辑卷的名称,这里是 swap。
  • VG Name:属于哪个卷组,这里是 klas 卷组。
  • LV UUID:逻辑卷的唯一标识符。
  • LV Write Access:读写权限,这里为可读写。
  • LV Creation host, time:逻辑卷的创建主机和时间。LV Status:逻辑卷的状态,这里为 available 表示可用。
  • open:当前打开了多少个文件描述符,这里为 2。
  • LV Size:逻辑卷的大小,这里小于 3.92 GiB。
  • Current LE:逻辑卷当前使用的物理区块数。
  • Segments:逻辑卷的段数(由于这里只有一个物理区块,所以只有一个段)。
  • Allocation:分配方式,这里继承自卷组设置。
  • Read ahead sectors:预读区块数,这里设置为自动调整。
  • Block device:逻辑卷对应的块设备文件,这里是 /dev/253:1。

二、文件系统

在Linux中,文件系统是挂载磁盘的重要概念。文件系统是指一种组织数据的方式,可以帮助我们在磁盘上存储和管理文件。常见的Linux文件系统有ext2、ext3、ext4、XFS等。

(1)ext2(第二扩展文件系统):是 Linux 最早引入的日志文件系统之一。它使用索引节点(inode)来管理文件和目录,并使用位图来管理磁盘块的分配。然而,ext2 没有日志功能,这使得在发生意外掉电或系统崩溃时恢复文件系统变得较慢。

(2)ext3(第三扩展文件系统):是 ext2 文件系统的升级版本。它引入了日志功能,使用日志记录(journaling)来跟踪文件系统操作。这样,在系统异常关机后可以更快地进行恢复,减少数据丢失的风险。与 ext2 相比,ext3 提供了更好的可靠性和性能。

(3)ext4(第四扩展文件系统):是 ext3 文件系统的进一步改进和扩展。它增强了文件系统的大小和性能,并支持更大的文件和分区。ext4 引入了多块分配、延迟分配和其他改进,以提高文件系统的性能和可靠性。它是目前最常用的 Linux 文件系统之一。

(4)XFS:是一个高性能的日志文件系统,最初由 SGI 开发。它设计用于处理大型文件和大容量存储,并针对高吞吐量的工作负载进行了优化。XFS 支持快速分配和回收磁盘空间,并具有出色的可扩展性和鲁棒性。它被广泛用于服务器环境和高性能计算领域。

在挂载磁盘之前,我们需要先在磁盘上创建文件系统。创建文件系统的命令为mkfs。

查看系统某个目录使用的文件系统类型,如下图:

举例:查看系统根目录的文件类型:df -T /

并且可以看到根目录挂载卷组(klas)和逻辑分区(root)

三、实操-对root(/)目录进行扩容 

1.使用lsblk命令查看新加入的磁盘信息

上述中我们可以看到vdb就是系统新增的磁盘,并且没有挂载任何目录。 

2.fdisk -l命令查看系统中磁盘分区详细信息

包括磁盘设备名称、分区表类型、起始扇区、结束扇区、总扇区数等。

3.使用fdisk分区新磁盘,并将分区标记为Linux文件系统类型(83)

这里采用对这个磁盘(/dev/vdb)进行分区2个,1一个是100G,一个是200G,并将100G的磁盘大小扩展到 根目录下。

命令:sudo fdisk /dev/vdb

按照命令依次输入:

n  (新建分区)p  (主分区)1  (分区号,即vdb1)[回车]  (默认起始扇区)

+100G  (分区大小)

n  (新建分区)p  (主分区)2  (分区号,即vdb2)[回车]  (默认起始扇区)

+200G  (分区大小)

w  (保存并退出)

具体操作如下:

Command (m for help): n

Partition type

   p   primary (0 primary, 0 extended, 4 free)

   e   extended (container for logical partitions)

Select (default p): p

Partition number (1-4, default 1): 1

First sector (2048-629145599, default 2048):

Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-629145599, default 629145599): +100G

Created a new partition 1 of type 'Linux' and of size 100 GiB.

Command (m for help): n

Partition type

   p   primary (1 primary, 0 extended, 3 free)

   e   extended (container for logical partitions)

Select (default p): p

Partition number (2-4, default 2): 2

First sector (209717248-629145599, default 209717248):

Last sector, +/-sectors or +/-size{K,M,G,T,P} (209717248-629145599, default 629145599):

Created a new partition 2 of type 'Linux' and of size 200 GiB.

Command (m for help): t

Partition number (1,2, default 2): 1

Hex code (type L to list all codes): L

             

Hex code (type L to list all codes): 83

Changed type of partition 'Linux' to 'Linux'.

说明:

n: 创建新分区。出现选择分区类型的提示时,默认选择主分区(primary)。

p: 选择分区类型为 "p",即主分区。

1: 输入分区号码为 "1",表示创建第一个分区,如果不选默认就是1。

First sector: 输入第一个扇区的起始位置,默认值为 2048。你可以保持默认值(按 Enter 键),这样分区将从第一个可用扇区开始。

Last sector: 输入最后一个扇区的位置,可以输入结束位置或者分区大小。默认值为设备的最大扇区数(2048-209715199)。你可以输入具体的扇区数或者可选的单位表示分区大小(如 "100G" 表示 100GB)。根据你的输入,分区大小将为 100 GiB。例如:+100G 就是分区大小100G

t: 更改分区类型。选择分区编号为 1 的分区。

L: 查看当前系统的文件类型。根据前面序号选择。如图:

83: 设置分区类型为 83,表示 Linux 文件系统类型。

w: 保存并写入分区表更改。

最后几行提示分区表已经被修改,并且正在同步磁盘。

4.检查是否分区成功

lsblk

5.创建物理卷

pvcreate /dev/vdb1

 6.将磁盘扩容到卷组

vgextend klas /dev/vdb1

说明:klas是系统有的一个卷组名称,并且它下面有个逻辑卷挂载到了根目录下,因此我们对根目录扩容,还是先将分好的磁盘大小先扩展到对应的卷组上。

7.扩展逻辑分区

说明:这一步就是将上一步加入的100G大小区域进行扩展到我们目前这个根目录的逻辑分区上,可自行选择将扩容到卷组大小的内存分配到逻辑卷中。

lvextend -l+100%FREE /dev/klas/root

/dev/klas/root:是目前系统已经存在的一个逻辑分区,可以用lvdisplay查看

其中100%是将所有的磁盘空间扩容到指定分区,也可以根据需要进行调整比例

也支持指定大小比如10G等等(指定固定值时参数-l需要修改为-L)

8.使其扩展生效(xfs_growfs)

xfs_growfs /dev/klas/root

说明:如果使用ext4文件系统,resize2fs替换xfs_growfs命令.

9.验证是否生效

(1)先检查磁盘使用情况df -h

(2)检查磁盘详细信息 lsblk

上图所示:磁盘root目录扩容成功,由原来的35.1G变成了135.1G,这是和步骤1之前的图片对比得来的结果。 

四、物理卷、逻辑卷常用命令

1.物理卷

(1)创建物理卷

pvcreate 磁盘分区1 磁盘分区2 ...

如:pvcreate /dev/sdb1   # 创建一个名为 /dev/sdb1 的物理卷

(2)显示物理卷信息

pvdisplay    # 显示所有物理卷的详细信息

(3)扩展物理卷

pvresize /dev/sdb1    # 调整 /dev/sdb1 物理卷的大小

(4)移除物理卷:

 pvremove /dev/sdb1    # 移除 /dev/sdb1 物理卷的 LVM 标记

2.逻辑卷

(1)创建逻辑卷:

lvcreate -L 10G -n my_volume my_vg   

# 在名为 my_vg 的卷组中创建一个名为 my_volume 大小为 10G 的逻辑卷.

(2)显示逻辑卷信息:

 lvdisplay             # 显示所有逻辑卷的详细信息

(3)扩展逻辑卷:

 lvextend -L +5G /dev/my_vg/my_volume   # 将名为 my_volume 的逻辑卷扩展 5G

(5)缩小逻辑卷:

 lvreduce -L 5G /dev/my_vg/my_volume    # 将名为 my_volume 的逻辑卷缩小至 5G

(6)移除逻辑卷:

lvremove /dev/my_vg/my_volume          # 移除名为 my_volume 的逻辑卷

;