当前位置: 代码网 > 服务器>服务器>Linux > Linux给磁盘扩容(LVM方式)的方法实现

Linux给磁盘扩容(LVM方式)的方法实现

2025年05月25日 Linux 我要评论
最近测试性能,在本地打数据时,发现磁盘空间不足,于是想手动给/挂载点添加空间。这里介绍通过lvm方式快速给磁盘扩容。lvm:是一种技术,方便管理磁盘。如果不用lvm,那么就不好在之前的磁盘基础上扩容,

最近测试性能,在本地打数据时,发现磁盘空间不足,于是想手动给/挂载点添加空间。这里介绍通过lvm方式快速给磁盘扩容。

lvm:是一种技术,方便管理磁盘。如果不用lvm,那么就不好在之前的磁盘基础上扩容,比如我一块硬盘20g被写满了之后,我想将这块硬盘扩容到40g,就无法操作。只能新开一个磁盘。对于mysql这种数据保存在本地磁盘路径/var/mysql/data这种就无法正确扩容。

  • 有人会说我直接新插一个更大的硬盘,然后把数据从旧磁盘复制到新磁盘上,显然这在数据量大的情况下是不合理的。会耗费大量的时间。

1 概念

pv:物理卷,同一磁盘可划分为多个物理卷。

vg:卷组,一个到多个pv可组成一个卷组。

lv:逻辑卷,卷组可划分为多个逻辑卷。

pe:physical extent物理区域,硬盘可供指派给逻辑卷的最小单位(通常为 4mb)

挂载点:lv与挂载点是1:1的关系。

在这里插入图片描述

1.1 物理卷 physical volume (pv)

可以在上面建立卷组的媒介,可以是硬盘分区,也可以是硬盘本身或者回环文件(loopback file)。物理卷包括一个特殊的 header,其余部分被切割为一块块物理区域(physical extents)

1.2 卷组 volume group (vg): 将一组物理卷收集为一个管理单元

1.3 逻辑卷 logical volume (lv): 虚拟分区,由物理区域(physical extents)组成

1.4 物理区域 physical extent (pe): 硬盘可供指派给逻辑卷的最小单位(通常为 4mb)

2 实战

我本地/目录下有50g空间,现在我想扩容到100g。

在这里插入图片描述

2.1 相关基础命令

# 查看挂载点
df -h 

# 查看逻辑卷( logical volume)
lvdisplay

# 查看当前的卷组(volume group),输出结果中的vg size表示当前卷组总大小
vgdisplay

# 查看当前的物理卷组(physical volume)
pvdisplay

# 执行fdisk /dev/vdb给vdb磁盘创建分区
fdisk /dev/vdb

# 格式化分区
mkfs -t xfs /dev/vdb1 # 一般用于centos7及以上
# mkfs -t ext4 /dev/vdb1 # 一般用于centos6

# 创建pv,方便将pv交给vg管理
pvcreate /dev/vdb1

# 给centos这个vg扩容
vgextend centos /dev/vdb1

# 给lv扩容 
lvextend -l +100%free /dev/centos/root

# 刷新分区
# resize2fs /dev/centos/root # 适用于centos6
xfs_growfs /dev/centos/root # centos7及以后

2.2 开始给lvm扩容

1. 查看fdisk:fdisk -l

fdisk -l

在这里插入图片描述

可以看到我们当前磁盘的基础信息,以及挂载情况。

# 查询挂载点情况
df -h 

在这里插入图片描述

可以看到我/下可用容量只有50g,现在我需要给它扩容。

2. 查看所有存储设备:fdisk -l |grep ‘/dev’

# 查看当前所有的存储设备
# fdisk -l |grep '/dev'
# 查看当前所有磁盘
fdisk -l |grep '/dev/vd'

在这里插入图片描述

手动给虚拟机或者物理机新增一块磁盘,再执行相同命令:

# 查看当前所有磁盘
fdisk -l |grep '/dev/vd'

在这里插入图片描述

3. 给磁盘创建分区:fdisk /dev/vdb

# 执行fdisk /dev/vdb给vdb磁盘创建分区
fdisk /dev/vdb
## n:新建分区
## l: 选择逻辑分区,如果没有,则首先创建主分区(p),然后再添加逻辑分区(硬盘最多四个分区 p-p-p-p 或 p-p-p-e)

在这里插入图片描述

# 查看是否分区成功
fdisk -l | grep 'dev/vd'

在这里插入图片描述

4. 格式化磁盘:mkfs -t xfs /dev/vdb1

文件系统类型centos6文件系统是ext4,因为设计较早,对于现今动辄上t的海量数据处理,性能较低。 centos7文件系统是xfs,适用于海量数据。

# 格式化分区
mkfs -t xfs /dev/vdb1 # 一般用于centos7及以上
# mkfs -t ext4 /dev/vdb1 # 一般用于centos6

在这里插入图片描述

5. 创建pv:pvcreate /dev/vdb1

# 创建pv,方便将pv交给vg管理
pvcreate /dev/vdb1
# pvscan查看卷组,观察是否创建成功
pvscan |  grep /dev/vdb1

在这里插入图片描述

6. 扩容vg:vgextend centos /dev/vdb1

我现在要给/扩容,所以要知道/属于哪个vg管理

# 查看lv
lvdisplay

在这里插入图片描述

所以我现在要给centos这个vg扩展容量

# 将/dev/vdb1这个pv交给centos这个vg管理
vgextend centos /dev/vdb1
# 查看vg状态
vgdisplay

在这里插入图片描述

7.扩容lv:lvextend -l +100%free /dev/centos/root

我们要给/目录扩容,所以需要知道/目录对应的lvpath是什么

# 查看/挂载点对应的信息
df -h 

在这里插入图片描述

# 查看lv虚拟卷信息,可以知道/对应的lvpath为/dev/centos/root
lvdisplay

在这里插入图片描述

下面就是给lv扩容:

# 按固定大小追加(追加10g给/dev/centos/root这个lvpath)
lvextend -l +10g /dev/centos/root

# 按百分比追加
lvextend -l +100%free /dev/centos/root

以百分比追加为例,我将vg中剩下的所有容量全部分配给/

lvextend -l +100%free /dev/centos/root

在这里插入图片描述

# 查看lv是否扩容成功
lvdisplay

在这里插入图片描述

lv size成功由50g扩容到了100g

8. 刷新分区:xfs_growfs /dev/centos/root

df 命令参看硬盘信息-t选项, 查看文件系统类型centos6文件系统是ext4,因为设计较早,对于现今动辄上t的海量数据处理,性能较低。 centos7文件系统是xfs,适用于海量数据。

# xfs格式的硬盘使用xfs_growfs
# ext4用resize2fs命令,
df -t # 查看文件系统类型(一般centos6是ext4,centos7及以后是xfs)
# resize2fs /dev/centos/root # 适用于centos6
xfs_growfs /dev/centos/root # centos7及以后

在这里插入图片描述

9. 验证df -h

扩容前:

在这里插入图片描述

扩容后:

在这里插入图片描述

注意: 不要卸载扩容的磁盘,可能出现丢失数据或是系统无法启动

因为多个lv对外提供的是一个vg,如果你卸载了其中一个磁盘导致lv失效,部分数据就可能丢失。类比:es中的shard

2.3 总结

新增磁盘

fdisk给磁盘创建分区,fdisk /dev/vdb

mkfs格式化磁盘,mkfs -t xfs /dev/vdb1

pvcreate创建pv,pvcreate /dev/vdb1

vgextend扩容vg,vgextend centos /dev/vdb1,给vg扩容(将/dev/vdb1交给centos这个vg管理)

lvextend扩容lv,lvextend -l +100%free /dev/centos/root(将vg剩余的容量全部分配给/dev/centos/root这个lv)

xfs_growfs刷新分区,# resize2fs /dev/centos/root # 适用于centos6
xfs_growfs /dev/centos/root # centos7及以后

df -h 查看挂载点大小变化,观察是否扩容成功

 到此这篇关于linux给磁盘扩容(lvm方式)的方法实现的文章就介绍到这了,更多相关linux 磁盘扩容内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com