1、列出分区表

命令:fdisk -l

查看到目前挂载了 vda1、vda2、vda3,并且查看到还有vdb 100G没有挂载,以及现在的LV大小仅为29G

root@JumpServer-DB-T01:~# fdisk -l
Disk /dev/vda:60 GiB,64424509440 字节,125829120 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:gpt
磁盘标识符:4A7F1857-B833-4D08-9D5C-3A0A3DB2D192 设备 起点 末尾 扇区 大小 类型
/dev/vda1 2048 4095 2048 1M BIOS 启动
/dev/vda2 4096 4198399 4194304 2G Linux 文件系统
/dev/vda3 4198400 125827071 121628672 58G Linux 文件系统 Disk /dev/vdb:100 GiB,107374182400 字节,209715200 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节 Disk /dev/mapper/ubuntu--vg-ubuntu--lv:28.102 GiB,31134318592 字节,60809216 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
root@JumpServer-DB-T01:~#

2、将新增加的 /dev/vdb磁盘创建

命令:fdisk /dev/vdb

操作:n(添加新分区)→→p(打印分区表)→→1(选择分区号1)→→回车(起始扇区默认最小)→→回车(终止扇区默认最大)→→t(更改分区类型)→→8e(分区“Linux”的类型更改为“Linux LVM”)→→p(打印分区表)→→w(将分区表写入磁盘并退出)

root@JumpServer-APP-T02:~# fdisk /dev/vdb

欢迎使用 fdisk (util-linux 2.34)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。 设备不包含可识别的分区表。
创建了一个磁盘标识符为 0xa8f54781 的新 DOS 磁盘标签。 命令(输入 m 获取帮助): n
分区类型
p 主分区 (0个主分区,0个扩展分区,4空闲)
e 扩展分区 (逻辑分区容器)
选择 (默认 p): p
分区号 (1-4, 默认 1): 1
第一个扇区 (2048-209715199, 默认 2048):
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-209715199, 默认 209715199): 创建了一个新分区 1,类型为“Linux”,大小为 100 GiB。 命令(输入 m 获取帮助): t
已选择分区 1
Hex 代码(输入 L 列出所有代码): 8e
已将分区“Linux”的类型更改为“Linux LVM”。 命令(输入 m 获取帮助): p
Disk /dev/vdb:100 GiB,107374182400 字节,209715200 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xa8f54781 设备 启动 起点 末尾 扇区 大小 Id 类型
/dev/vdb1 2048 209715199 209713152 100G 8e Linux LVM 命令(输入 m 获取帮助): w
分区表已调整。
将调用 ioctl() 来重新读分区表。
正在同步磁盘。 root@JumpServer-APP-T02:~#

3、再次查看列出分区表

命令:fdisk -l

可以看到新建的分区/dev/vdb1

root@JumpServer-APP-T02:~# fdisk -l

Disk /dev/vda:60 GiB,64424509440 字节,125829120 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:gpt
磁盘标识符:4A7F1857-B833-4D08-9D5C-3A0A3DB2D192 设备 起点 末尾 扇区 大小 类型
/dev/vda1 2048 4095 2048 1M BIOS 启动
/dev/vda2 4096 4198399 4194304 2G Linux 文件系统
/dev/vda3 4198400 125827071 121628672 58G Linux 文件系统 Disk /dev/vdb:100 GiB,107374182400 字节,209715200 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xa8f54781 设备 启动 起点 末尾 扇区 大小 Id 类型
/dev/vdb1 2048 209715199 209713152 100G 8e Linux LVM Disk /dev/mapper/ubuntu--vg-ubuntu--lv:28.102 GiB,31134318592 字节,60809216 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
root@JumpServer-APP-T02:~#

4、查看PV

命令:pvs

此时PV只有一个/dev/vda3

所以VG也只有一个ubuntu-vg

root@JumpServer-APP-T02:~# pvs
PV VG Fmt Attr PSize PFree
/dev/vda3 ubuntu-vg lvm2 a-- <58.00g 29.00g
root@JumpServer-APP-T02:~#

5、创建新PV 并查看到新增的/dev/vdb1 容量为100G

命令:pvcreate /dev/vdb1

root@JumpServer-APP-T02:~# pvcreate /dev/vdb1
Physical volume "/dev/vdb1" successfully created.
root@JumpServer-APP-T02:~# pvs
PV VG Fmt Attr PSize PFree
/dev/vda3 ubuntu-vg lvm2 a-- <58.00g 29.00g
/dev/vdb1 lvm2 --- <100.00g <100.00g
root@JumpServer-APP-T02:~#

6、把新建的pv:/dev/vdb1 扩容给vg:ubuntu-vg  查看vg的扩容前后对比

命令:vgextend ubuntu-vg /dev/vdb1

root@JumpServer-APP-T02:~# vgs
VG #PV #LV #SN Attr VSize VFree
ubuntu-vg 1 1 0 wz--n- <58.00g 29.00g
root@JumpServer-APP-T02:~# vgextend ubuntu-vg /dev/vdb1
Volume group "ubuntu-vg" successfully extended
root@JumpServer-APP-T02:~# vgs
VG #PV #LV #SN Attr VSize VFree
ubuntu-vg 2 1 0 wz--n- 157.99g <129.00g
root@JumpServer-APP-T02:~#

7、再次查看PV 可以看到已经划分给VG

命令:pvs

root@JumpServer-APP-T02:~# pvs
PV VG Fmt Attr PSize PFree
/dev/vda3 ubuntu-vg lvm2 a-- <58.00g 0
/dev/vdb1 ubuntu-vg lvm2 a-- <100.00g <39.50g
root@JumpServer-APP-T02:~#

8、查看LV,现在是29G,并记下LV Path为/dev/ubuntu-vg/ubuntu-lv

命令:lvdisplay

root@JumpServer-APP-T02:~# lvdisplay
--- Logical volume ---
LV Path /dev/ubuntu-vg/ubuntu-lv
LV Name ubuntu-lv
VG Name ubuntu-vg
LV UUID wDo2pg-iIhK-ig7s-2Hwy-swrW-j1cp-Y2zpQ1
LV Write Access read/write
LV Creation host, time ubuntu-server, 2023-02-24 02:09:04 +0000
LV Status available
# open 1
LV Size <29.00 GiB
Current LE 7423
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:0 root@JumpServer-APP-T02:~#

9、扩容LV,两种方法:

命令:

lvextend -L +50G /dev/ubuntu-vg/ubuntu-lv

lvextend -l +50%free /dev/ubuntu-vg/ubuntu-lv

这里-L -l 需要注意大小写

root@JumpServer-APP-T02:~# lvextend -L +50G /dev/ubuntu-vg/ubuntu-lv
Size of logical volume ubuntu-vg/ubuntu-lv changed from <29.00 GiB (7423 extents) to <79.00 GiB (20223 extents).
Logical volume ubuntu-vg/ubuntu-lv successfully resized.
root@JumpServer-APP-T02:~# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
ubuntu-lv ubuntu-vg -wi-ao---- <79.00g
root@JumpServer-APP-T02:~# lvextend -l +50%free /dev/ubuntu-vg/ubuntu-lv
Size of logical volume ubuntu-vg/ubuntu-lv changed from <79.00 GiB (20223 extents) to <118.50 GiB (30335 extents).
Logical volume ubuntu-vg/ubuntu-lv successfully resized.
root@JumpServer-APP-T02:~# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
ubuntu-lv ubuntu-vg -wi-ao---- <118.50g

10、刷新LV的空间,使其生效

命令:lvscan

root@JumpServer-APP-T02:~# lvscan
ACTIVE '/dev/ubuntu-vg/ubuntu-lv' [<118.50 GiB] inherit
root@JumpServer-APP-T02:~#

11、查看vdb1文件系统类型

对于ext4文件系统类型,resize2fs让文件系统识别扩容的容量,如果是xfs可以使用xfs_growfs命令识别。

命令:lsblk -f 或df -Th

root@JumpServer-APP-T02:~# lsblk -f
NAME FSTYPE LABEL UUID FSAVAIL FSUSE% MOUNTPOINT
loop1 squashfs 0 100% /snap/core20/1828
loop2 squashfs 0 100% /snap/lxd/22753
loop3 squashfs 0 100% /snap/snapd/18357
loop4 squashfs 0 100% /snap/core20/1822
loop5 squashfs 0 100% /snap/lxd/24061
sr0
vda
├─vda1
├─vda2 ext4 61ee5337-c84b-4da9-8927-cf1aa05df1aa 1.6G 11% /boot
└─vda3 LVM2_member aeuGO5-PGh7-iLWr-oYag-iy1l-gUgr-AdrUQD
└─ubuntu--vg-ubuntu--lv ext4 76558209-dbb2-4b7c-8260-618da43abcb7 7.7G 68% /
vdb
└─vdb1 LVM2_member V0zlFz-jw0X-mRXp-XAWc-3qld-Boc1-Xocb1j
└─ubuntu--vg-ubuntu--lv ext4 76558209-dbb2-4b7c-8260-618da43abcb7 7.7G 68% /
root@JumpServer-APP-T02:~#

12、在系统识别前查看根的容量为29G

命令:df -Th

df -h与df -Th的区别就在于是否显示文件系统类型:ext4或xfs

root@JumpServer-APP-T02:~# df -Th
文件系统 类型 容量 已用 可用 已用% 挂载点
udev devtmpfs 7.8G 0 7.8G 0% /dev
tmpfs tmpfs 1.6G 1.7M 1.6G 1% /run
/dev/mapper/ubuntu--vg-ubuntu--lv ext4 29G 20G 7.8G 72% /
tmpfs tmpfs 7.8G 0 7.8G 0% /dev/shm
tmpfs tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs tmpfs 7.8G 0 7.8G 0% /sys/fs/cgroup
/dev/vda2 ext4 2.0G 209M 1.6G 12% /boot
/dev/loop2 squashfs 68M 68M 0 100% /snap/lxd/22753
/dev/loop3 squashfs 50M 50M 0 100% /snap/snapd/18357
/dev/loop4 squashfs 64M 64M 0 100% /snap/core20/1822
/dev/loop5 squashfs 92M 92M 0 100% /snap/lxd/24061
/dev/loop1 squashfs 64M 64M 0 100% /snap/core20/1828
tmpfs tmpfs 1.6G 0 1.6G 0% /run/user/0
root@JumpServer-APP-T02:~#

13、现在刷新LV的空间让文件系统识别扩容的容量

命令:resize2fs /dev/ubuntu-vg/ubuntu-lv

root@JumpServer-APP-T02:~# resize2fs /dev/ubuntu-vg/ubuntu-lv
resize2fs 1.45.5 (07-Jan-2020)
/dev/ubuntu-vg/ubuntu-lv 上的文件系统已被挂载于 /;需要进行在线调整大小
old_desc_blocks = 4, new_desc_blocks = 15
/dev/ubuntu-vg/ubuntu-lv 上的文件系统大小已经调整为 31063040 个块(每块 4k)。
root@JumpServer-APP-T02:~#

*如果是xfs可以使用xfs_growfs命令识别。

命令:xfs_growfs /dev/[VG_NAME]/[LV_NAME]

root@JumpServer-APP-T02:~# xfs_growfs /dev/ubuntu-vg/ubuntu-lv

14、现在看到已经成为117G

命令:df -h

root@JumpServer-APP-T02:~# df -h
文件系统 容量 已用 可用 已用% 挂载点
udev 7.8G 0 7.8G 0% /dev
tmpfs 1.6G 1.7M 1.6G 1% /run
/dev/mapper/ubuntu--vg-ubuntu--lv 117G 20G 93G 18% /
tmpfs 7.8G 0 7.8G 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 7.8G 0 7.8G 0% /sys/fs/cgroup
/dev/vda2 2.0G 209M 1.6G 12% /boot
/dev/loop2 68M 68M 0 100% /snap/lxd/22753
/dev/loop3 50M 50M 0 100% /snap/snapd/18357
/dev/loop4 64M 64M 0 100% /snap/core20/1822
/dev/loop5 92M 92M 0 100% /snap/lxd/24061
/dev/loop1 64M 64M 0 100% /snap/core20/1828
tmpfs 1.6G 0 1.6G 0% /run/user/0
root@JumpServer-APP-T02:~#

扩容完成。

*其实刚才给LV扩容,第一次添加50G,第二次添加50%,还剩余25G没有扩容给LV,但是VG已经100%添加了

Linux:LVM磁盘扩容实战的更多相关文章

  1. 微服务架构 ------ 插曲 linux LVM磁盘扩容

    1.LVM的基本概念 物理卷(PV):可以在上面建立卷组的媒介,可以是硬盘分区,也可以是硬盘本身或者回环文件,物理卷包括一个特殊的header,其余部分被切割成一块块物理区域. 卷组(VG):将一组物 ...

  2. linux 给lvm磁盘扩容

    目录 linux 给lvm磁盘扩容 扩容步骤 确认可用空间 创建新的物理卷 将物理卷添加到现有的卷组中 扩展逻辑卷 linux 给lvm磁盘扩容 早上到公司发现磁盘满了,挂载点是一个lvm 跟领导确认 ...

  3. 【转载】CentOS LVM磁盘扩容

    转自:http://blog.sina.com.cn/s/blog_8882a6260101cpfs.html EXSI5.1主机有一个linux虚拟机,系统是centos运行httpd服务,因为是多 ...

  4. 03.LinuxCentOS系统root目录LVM磁盘扩容

    根目录LVM扩容操作步骤: [root@centos7 ~]# df -lh文件系统 容量 已用 可用 已用% 挂载点/dev/mapper/centos-root 50G 7.7G 43G 6% / ...

  5. Linux LVM在线扩容

    环境: 虚拟化环境,SUSE Linux Enterprise Server 11sp3,直接把虚拟磁盘从100G改成150G. 现有的LVM是100G,/home 的LV需要再加50G. 步骤: f ...

  6. linux下 lvm 磁盘扩容

    打算给系统装一个oracle,发现磁盘空间不足.在安装系统的时候我选择的是自动分区,系统就会自动以LVM的方式分区.为了保证系统后期的可用性,建议所有新系统安装都采用LVM,之后生产上的设备我也打算这 ...

  7. Linux LVM动态扩容

    引用自:  https://blog.csdn.net/u012439646/article/details/73380197   xfs_growfs /dev/centos/root  一.首先安 ...

  8. CentOS 下lvm 磁盘扩容

    打算给系统装一个oracle,发现磁盘空间不足.在安装系统的时候我选择的是自动分区,系统就会自动以LVM的方式分区.为了保证系统后期的可用性,建议所有新系统安装都采用LVM,之后生产上的设备我也打算这 ...

  9. [linux] LVM磁盘管理(针对xfs和ext4不同文件系统)

    简单来说就是:PV:是物理的磁盘分区VG:LVM中的物理的磁盘分区,也就是PV,必须加入VG,可以将VG理解为一个仓库或者是几个大的硬盘LV:也就是从VG中划分的逻辑分区如下图所示PV.VG.LV三者 ...

  10. linux LVM 磁盘管理

    一.linux LVM 管理及创建步骤 步骤:1.创建pv—2.创建vg—3.将pv加入vg—4.在vg中创建lv—5.将lv分区格式化—6.将lv分区挂载到某个目录使用 1.创建PV [root@z ...

随机推荐

  1. 【matplotlib基础】--3D图形

    matplotlib 在1.0版本之前其实是不支持3D图形绘制的. 后来的版本中,matplotlib加入了3D图形的支持,不仅仅是为了使数据的展示更加生动和有趣.更重要的是,由于多了一个维度,扩展了 ...

  2. Mybatiplus通用3.5.1版本及其以上的代码生成器工具类

    Mybatiplus通用3.5.1版本及其以上的代码生成器工具类 package com.gton.util; import com.baomidou.mybatisplus.annotation.F ...

  3. linux日常运维(一)

    - 进程管理ps.top - 任务计划crontab 进程管理 概念:进程是在自身的虚拟地址空间运行的一个单独的程序. 进程和程序区别:程序只是一个静态的命令集合,不占系统的运行资源:而进程是一个随时 ...

  4. 多源异构数据信息的融合方式0 - Dempster/Shafer 证据理论(D-S证据理论)

    Dempster/Shafer 证据理论(D-S证据理论)的大体内容如下: 一.简介: 在理论中,由互不相容的基本命题组成的完备集合Θ称为识别框架,表示对于某一问题的所有可能答案,但是只有一个答案是正 ...

  5. VSCode使用JavaScript刷LeetCode配置教程(亲试可以!)

    账号秘密都对,但是缺登录不成功的问题 诀窍可能是: 在属性设置中把LeetCode版本改成cn.点击LeetCode配置,修改Endpoint配置项,改成leetcode-cn,再次尝试登陆即可. 大 ...

  6. 关于.net4.0使用WhenAny实现Task超时机制

    .net4.0想要使用await/async语法糖必须要引用: Microsoft.Bcl Microsoft.Bcl.Async Microsoft.Bcl.Build 可以从nuget引用此三个包 ...

  7. 我们在开发第一个flutter小程序时需要注意什么

    Flutter这些年发展的很快,特别是在 Google 持续的加持下,Flutter SDK 的版本号已经来到了 3开头,也正式开始对 Windows.macOS 和 Linux 桌面环境提供支持.如 ...

  8. Java8新特性(Lambda表达式、Stream流、Optional类)等

    1. Lambda表达式由来 1 package java8; 2 3 public class EmployeeTest { 4 public static void main(String[] a ...

  9. .Net Core3中微信退款证书本地调试正常读取证书,在服务器IIS中加载不到证书文件

    如图,在开发微信退款功能时,需要用到微信提供的证书文件.本地开发调试时是正常的,但放到服务器(WinServer 2012 R2)中,则报错提示找不到文件. 网上找了一堆骚操作都没什么卵用,最后在其中 ...

  10. Util应用框架基础(四) - 验证

    本节介绍Util应用框架如何进行验证. 概述 验证是业务健壮性的基础. .Net 提供了一套称为 DataAnnotations 数据注解的方法,可以对属性进行一些基本验证,比如必填项验证,长度验证等 ...