什么是数据盘的扩容和缩容-如何完成Linux数据盘的扩容和缩容-一文详解

教程大全 2026-01-08 19:19:10 浏览
目录

1. 先明确:PE是LVM架构中的“最小存储管理单元”

要理解PE(Physical Extent,物理扩展块),需先掌握其所属的LVM(Logical Volume Manager,逻辑卷管理器)——它是Linux系统中一种灵活的存储管理工具,核心作用是 将多个分散的物理存储设备(如硬盘、分区、RAID阵列)抽象成一个统一的“存储池” ,再从“存储池”中按需划分可动态调整大小的逻辑卷,解决传统分区“大小固定、难以调整”的问题。

2. LVM的三大核心组件(PE藏在PV中)

LVM的架构由“物理层→池层→逻辑层”三层组成,PE是连接物理层与逻辑层的关键:

1)物理卷(PV,Physical Volume) 是LVM的“物理存储基础”,可以是物理硬盘(如/dev/sdb)、磁盘分区(如/dev/sdb1)、SAN存储卷或RAID阵列等。使用前需先将这些存储介质“初始化”为PV,初始化的核心操作就是 将PV划分为多个大小相等的“物理扩展块(PE)” ——PE是LVM管理存储的“最小单元”(默认大小4MB,可自定义),后续LVM的所有存储分配、迁移都以PE为单位。

2)卷组(VG,Volume Group) 是多个PV的“集合”,相当于一个“存储池”。比如将/dev/sdb1和/dev/sdc1两个PV加入同一个VG(如datavg),这个VG就拥有了两个PV的所有PE总和,后续划分逻辑卷时,直接从这个“池”中分配PE即可。

3)逻辑卷(LV,Logical Volume) 是从VG中“按需划分”的逻辑存储块,相当于传统分区(如/dev/mapper/datavg-datalv),可直接格式化(如XFS、EXT4)后挂载使用。LV的最小组成单位是“逻辑扩展块(LE,Logical Extent)”, 1个LE会直接映射到1个PE ——也就是说,LV的实际存储,本质是占用了VG中若干个PV的PE。

3. PE的核心作用:让存储“可迁移、可灵活调整”

正因为LVM以PE为最小管理单元,才实现了存储的灵活性:当需要更换旧硬盘、调整存储分布(如把数据从慢盘迁移到快盘)或优化性能时,无需重新分区或迁移文件,只需用pvmove命令将“旧PV上的PE”整体迁移到“同一VG内的新PV”即可——迁移完成后,LV的LE会自动重新映射到新PV的PE,上层系统和应用完全感知不到底层存储的变化。

要不要我帮你整理一份 LVM核心概念(PV/VG/LV/PE)的对比表 ?把每个概念的“定义、作用、关联对象”列清楚,方便你快速查阅。

4.开始测试

添加2块测试盘

两块盘都制作为逻辑卷

[root@myoracle ~]# fdisk /dev/sdb
[root@myoracle ~]# fdisk /dev/sdc

测试开始

[root@myoracle ~]# pvcreate /dev/sdb1[root@myoracle ~]# vgcreate>
方案1:[root@myoracle ~]# fallocate -l 4G /data/virtual_4g_file方案2:[root@myoracle ~]# dd if=/dev/zero of=/data/virtual_4g_file bs=1G count=4 status=progress

选其中1种即可。

[root@myoracle ~]# df -h

查看数据分布

[root@myoracle ~]# pvdisplay /dev/sdb1 -v -m

可以看到有1279个PE,都分给了/dev/datavg/datalv。

添加PV到VG 将第二块盘添加到卷组:

[root@myoracle ~]# pvcreate /dev/sdc1[root@myoracle ~]# vgextend src="/uploads/allimg/20251219/2-2512191HK33N.png">

缩容PE迁移指定PE迁移这里演示指定PE情况下,将指定的PE(0-1278)从sdb迁移到sdc,指定PE迁移时,一定要确保目标PV上有足够空闲的PE,否则迁移会失败。

[root@myoracle ~]# pvmove /dev/sdb1:0-1278 /dev/sdc1:0-1278
[root@myoracle ~]#pvdisplay /dev/sdb1 -v -m[root@myoracle ~]#pvdisplay /dev/sdc1 -v -m

将 /dev/sdb踢出VG

[root@myoracle ~]#pvdisplay /dev/sdb1 -v -m[root@myoracle ~]# pvs
[root@myoracle ~]#vgreduce src="/uploads/allimg/20251219/2-2512191HK4532.png">

到这里就完成了sdb1的数据往sdc1的数据迁移。

可以看到sdb1是空闲的。接下来验收整块盘迁移,这里也就是缩容了,从大盘迁移到小盘。只要小盘的空间够用。

[root@myoracle ~]# vgextend src="/uploads/allimg/20251219/2-2512191HK4333.png">

这里可以看到已经迁移成功了。/dev/sdc踢出VG,取消盘即可。

[root@myoracle ~]# vgreduce>

Linux初始化数据盘全流程

本文以 Ubuntu x86_64操作系统为例

查看新增数据盘

执行命令

查看新增数据盘。

当前的云主机有两块磁盘,/dev/vda是默认的系统盘,且已经拥有了一个分区/dev/vda1,/dev/vdb是本次新增需要初始化的数据盘,容量为200G。

创建MBR分区

下面介绍使用fdisk工具为新增数据盘/dev/vdb创建MBR分区的操作。

执行命令

fdisk /dev/vdb

进入fdisk分区工具。

输入“n”,按“Enter”,开始新建分区。

从回显信息可以看到,磁盘有两种分区类型:“p”表示主要分区,“e”表示延伸分区。

以创建一个主要分区为例,输入“p”,按“Enter”,开始创建一个主分区。

“Partition number”表示主分区编号,用户可以选择1到4之间的数字。

以分区编号选择“1”为例,用户在这里可以输入主分区编号“1”,按“Enter”。

“First sector”表示初始磁柱区域,可以选择2048-419430399,默认为2048。

以选择默认初始磁柱编号2048为例,直接按“Enter”。

“Last sector”表示截止磁柱区域,可以选择2048-419430399,默认为83886079。

以选择默认截止磁柱编号419430399为例,直接按“Enter”。

分区已经创建成功,您已经为200GB的数据盘新建了1个分区。

输入“p”,按“Enter”,查看新建分区的详细信息。

输入“w”,按“Enter”,将分区结果写入分区表中。回显如下:

出现以上信息说明为磁盘/dev/vdb创建分区/dev/vdb1完成。如果之前分区操作有误,用户可输入“q”来退出fdisk分区工具,并且之前的分区结果也不会被保留。

最后,执行命令 partprobe,将新的分区表变更同步至操作系统即可。

创建文件系统并挂载

执行命令

mkfs -t ext4 /dev/vdb1

为新建的分区创建文件系统,本示例中创建的是ext4格式的文件系统,请根据您的业务需求选择合适的文件系统。

说明

对于容量较大的云硬盘,mkfs命令可能执行时间较长,如需要缩短命令执行时间,您可以为mkfs命令添加如下参数:

ext2、ext3、ext4文件系统:添加-E nodISCard参数

xfs文件系统:添加-K参数

格式化需要等待一段时间,不要退出,直到显示格式化完成。

执行命令 ,新建挂载点。本示例中/mnt/sdc为挂载点。

mkdir /mnt/sdc

执行命令将新建分区挂载到新建的挂载路径下。

mount /dev/vdb1 /mnt/sdc

执行命令 查看挂载结果。

表示新建分区“/dev/vdb1”已挂载至“/mnt/sdc”。

设置开机自动挂载磁盘

如果您需要在主机系统启动时自动挂载磁盘,不能采用在/etc/fstab直接指定/dev/vdb1的方法,因为设备的顺序编码在关闭或者开启主机过程中可能发生改变,例如/dev/vdb1可能会变成/dev/vdb2。推荐使用UUID来配置自动挂载数据盘。磁盘的UUID(Universally Unique Identifier)是linux系统为磁盘分区提供的唯一的标识字符串。

执行命令,查询磁盘分区/dev/vdb1的UUID和文件系统类型。

blkid /dev/vdb1

执行命令

vi /etc/fstab

使用VI编辑器打开“fstab”文件。按“i”,进入编辑模式,将光标移至文件末尾,按“Enter”,添加如下内容,其中UUID=处的内容请输入您在上一步中查询到的UUID,操作如图所示:

此处内容有所区别:

在ubuntu中 前缀是 /dev/disk/by-uuid

在centos中 前缀是 UUID=

与已有的配置保持一致。

注意最后一个参数 是 2

按“ESC”后,输入“:wq”,按“Enter”。保存设置并退出编辑器。

验证自动挂载功能,首先卸载已挂载的分区,执行命令

umount /dev/vdb1

执行命令 来重新加载/etc/fstab文件的所有内容

执行命令 来查询文件系统挂载,操作及回显如图所示:

mount |grep /mnt/sdc

如果出现图中回显信息,说明自动挂载设置成功。

以上就是什么是数据盘的扩容和缩容?如何完成Linux数据盘的扩容和缩容的详细内容,更多相关资料请阅读主机测评网其它文章!

Xshell 8如何进行公钥私钥登录?使用Xshell 8进 Linux操作系统上安装软件包提示依赖不足的解决办法大全
本文版权声明本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请联系本站客服,一经查实,本站将立刻删除。

发表评论

热门推荐