统计
  • 文章总数:29 篇
  • 评论总数:7 条
  • 分类总数:5 个
  • 最后更新:2天前
知识文档 本文章已被<游历智慧冒险>专题收录

liunx系统分区硬盘扩容LVM硬盘格式扩容基于fdisk/gdisk

本文阅读 7 分钟
首页 知识文档 正文

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

特别注意下:这个方案我测试在30T存储内是没有任何问题,但是在Ubuan上的90T空间,使用gdisk方案不可行。
LVM:是一种技术,方便管理磁盘。如果不用LVM,那么就不好在之前的磁盘基础上扩容,比如我一块硬盘20G被写满了之后,我想将这块硬盘扩容到40G,就无法操作。只能新开一个磁盘。对于MySQL这种数据保存在本地磁盘路径/var/mysql/data这种就无法正确扩容。

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

1 概念
PV:物理卷,同一磁盘可划分为多个物理卷。VG:卷组,一个到多个PV可组成一个卷组。

LV:逻辑卷,卷组可划分为多个逻辑卷。PE:Physical extent物理区域,硬盘可供指派给逻辑卷的最小单位(通常为 4MB)

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

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。
mf5kck1q.png
2.1 相关基础命令
mf5kdtuv.png
2.2 开始给LVM扩容

  1. 查看fdisk:fdisk -l
    mf5kk6n2.png
    可以看到我们当前磁盘的基础信息,以及挂载情况。
    mf5kkqg5.png
    可以看到我/下可用容量只有50G,现在我需要给它扩容。
  2. 查看所有存储设备:fdisk -l |grep ‘/dev’
    mf5klvbp.png
    mf5km963.png
    手动给虚拟机或者物理机新增一块磁盘,再执行相同命令:
    mf5kmud9.png
  3. 给磁盘创建分区:fdisk /dev/vdb,这里我特别讲下,大盘的用gdisk命令,fdisk是属于小存储盘容量不大的情况。

    mf5kqgqf.png
    我们查看是否分区成功fdisk -lgrep'dev/vd'
    mf5ks09h.png
  4. 格式化磁盘:mkfs -t xfs /dev/vdb1
    文件系统类型centos6文件系统是ext4,因为设计较早,对于现今动辄上T的海量数据处理,性能较低。 centos7文件系统是xfs,适用于海量数据。

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

    mf5ktosd.png

  5. 创建pv:pvcreate /dev/vdb1

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

    mf5kum6z.png

  6. 扩容vg:vgextend centos /dev/vdb1
    我现在要给/扩容,所以要知道/属于哪个vg管理,可以理解VG是扩容目标位置命令,lvdisplay命令是查看你扩容目标的组织。

    查看lvdisplay

    mf5kxahu.png
    7.所以我现在要给centos这个VG扩展容量,可以理解为我要对这个组织要做容量变更,把我新建的硬盘分区交给这个组织。

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

    mf5l2jq1.png
    8.扩容lv:lvextend -l +100%FREE /dev/centos/root也可以 lvextend -L +10G /dev/centos/root

    后面的/dev/centos/root是被扩展目录,就是把我新建的要丢给他可以比例也可以固定容量,麒麟不能固定只有100%,如果忘记此时来一个df -h 命令查看下目录。

    df -h 查看目录命令

    mf5l6kb2.png
    然后再 lvdisplay查看下需要被扩容目标的组织是哪个。
    mf5li1ke.png
    我们要给/目录扩容,所以需要知道/目录对应的LVPath是什么
    下面就是给LV扩容:

    按固定大小追加(追加10G给/dev/centos/root这个LVPath)lvextend -L +10G /dev/centos/root

    这个就是给固定的分区增加固定的容,但是某些系统好像不行,最好用百分比兼容更好。

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

    mf5lnu5m.png
    以百分比追加为例,我将vg中剩下的所有容量全部分配给/
    修改完了之后再来一次lvdisplay,查看下你的分区是否扩容成功。
    mf5lqsa4.png
    LV Size成功由50G扩容到了100G

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

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

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

  8. 验证df -h
    扩容前:
    mf5ltq9p.png
    扩容后:
    mf5ltxif.png
    切记注意,注意: 不要卸载扩容的磁盘,可能出现丢失数据或是系统无法启动,你的盘已经融合到另一个盘的分区一起了,你卸载了,数据都熄火了。切记!!!
    因为多个LV对外提供的是一个VG,如果你卸载了其中一个磁盘导致LV失效,部分数据就可能丢失。类比:ES中的Shard

2.3 总结
新增磁盘

fdisk给磁盘创建分区,fdisk /dev/vdb,大盘选择gdisk,创建分区选择n主分区,1分区,默认默认保存即可。

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操作系统 服务器磁盘挂载分区/分区盘符显示
« 上一篇 07-14
Typecho修改相对路径访问/网址搬迁迁移数据
下一篇 » 09-24

发表评论

V注册会员 L评论等级
R1 条回复
  1. 微软 :
    2025-08-10     Win 10 /    Chrome

    感谢感谢

没有更多评论了
    热门文章

热门文章

标签TAG

热评文章