1、实操过程记录:
bash
开始连接到ODA
Activate the web console with: systemctl enable --now cockpit.socket
Last login: Sat Mar 7 16:23:39 2026
[root@teimes2 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 252G 240K 252G 1% /dev
tmpfs 252G 8.5G 243G 4% /dev/shm
tmpfs 252G 4.1G 248G 2% /run
tmpfs 252G 0 252G 0% /sys/fs/cgroup
/dev/mapper/VolGroupSys-LogVolRoot 50G 9.3G 38G 20% /
/dev/mapper/VolGroupSys-LogVolU01 59G 45G 12G 80% /u01
/dev/md0p2 488M 197M 255M 44% /boot
/dev/mapper/VolGroupSys-LogVolOpt 30G 9.7G 19G 35% /opt
/dev/md0p1 511M 6.0M 505M 2% /boot/efi
tmpfs 51G 4.0K 51G 1% /run/user/0
tmpfs 51G 0 51G 0% /run/user/1000
/dev/asm/acfsclone-116 150G 14G 137G 9% /opt/oracle/oak/pkgrepos/orapkgs/clones
/dev/asm/commonstore-116 5.0G 559M 4.5G 11% /opt/oracle/dcs/commonstore
/dev/asm/odabase_n0-116 10G 7.0G 3.1G 70% /u01/app/odaorabase0
/dev/asm/odabase_n1-116 10G 6.4G 3.7G 64% /u01/app/odaorabase1
/dev/asm/orahome_sh-116 80G 14G 67G 18% /u01/app/odaorahome
/dev/asm/vol01-116 300G 52G 249G 18% /u02
tmpfs 51G 0 51G 0% /run/user/1001
[root@teimes2 ~]# ipmitool sunoem cli 'show /System/Open_Problems'
Connected. Use ^D to exit.
-> show /System/Open_Problems
Open Problems (0)
Date/Time Subsystems Component
------------------------ ------------------ ------------
-> Session closed
Disconnected
[root@teimes2 ~]# odaadmcli show storage
==== BEGIN STORAGE DUMP ========
Host Description: Oracle Corporation:ORACLE SERVER E6-2L
Total number of controllers: 2
Id = 1
Serial Num = SPC4322433
Vendor = LSI Logic
Model = ORCL_9500-8e
FwVers = 23.00.01.00
strId = mpt3sas:61:00.0
Id = 0
Serial Num = SPC4319424
Vendor = LSI Logic
Model = ORCL_9500-8e
FwVers = 23.00.01.00
strId = mpt3sas:e1:00.0
Total number of expanders: 2
Id = 1
Serial Num = 50800200028bc784
Vendor = ORACLE
Model = DE3-24C
FwVers = 2431
strId = Primary
WWN = 5080020002811e7e
Id = 0
Serial Num = 50800200028bc784
Vendor = ORACLE
Model = DE3-24C
FwVers = 2431
strId = Secondary
WWN = 5080020002816a7e
Total number of PDs: 24
/dev/sda SAMSUNG SSD 7681gb slot: 0 exp: 0 MSCAC2DD2ORA7.6T
/dev/sdb SAMSUNG SSD 7681gb slot: 1 exp: 0 MSCAC2DD2ORA7.6T
/dev/sdf SAMSUNG SSD 7681gb slot: 2 exp: 0 MSCAC2DD2ORA7.6T
/dev/sdd SAMSUNG SSD 7681gb slot: 3 exp: 0 MSCAC2DD2ORA7.6T
/dev/sdc SAMSUNG SSD 7681gb slot: 4 exp: 0 MSCAC2DD2ORA7.6T
/dev/sde SAMSUNG SSD 7681gb slot: 5 exp: 0 MSCAC2DD2ORA7.6T
Disk is missing in the slot: 6
Disk is missing in the slot: 7
Disk is missing in the slot: 8
Disk is missing in the slot: 9
Disk is missing in the slot: 10
Disk is missing in the slot: 11
Disk is missing in the slot: 12
Disk is missing in the slot: 13
Disk is missing in the slot: 14
Disk is missing in the slot: 15
Disk is missing in the slot: 16
Disk is missing in the slot: 17
Disk is missing in the slot: 18
Disk is missing in the slot: 19
Disk is missing in the slot: 20
Disk is missing in the slot: 21
Disk is missing in the slot: 22
Disk is missing in the slot: 23
==== END STORAGE DUMP =========
[root@teimes2 ~]# odaadmcli show disk
NAME PATH TYPE STATE STATE_DETAILS
e0_pd_00 /dev/sda SSD ONLINE Good
e0_pd_01 /dev/sdb SSD ONLINE Good
e0_pd_02 /dev/sdf SSD ONLINE Good
e0_pd_03 /dev/sdd SSD ONLINE Good
e0_pd_04 /dev/sdc SSD ONLINE Good
e0_pd_05 /dev/sde SSD ONLINE Good
[root@teimes2 ~]#
[root@teimes2 ~]#
[root@teimes2 ~]# df -Th
Filesystem Type Size Used Avail Use% Mounted on
devtmpfs devtmpfs 252G 240K 252G 1% /dev
tmpfs tmpfs 252G 8.5G 243G 4% /dev/shm
tmpfs tmpfs 252G 4.1G 248G 2% /run
tmpfs tmpfs 252G 0 252G 0% /sys/fs/cgroup
/dev/mapper/VolGroupSys-LogVolRoot ext4 50G 9.3G 38G 20% /
/dev/mapper/VolGroupSys-LogVolU01 ext4 59G 45G 12G 80% /u01
/dev/md0p2 ext4 488M 197M 255M 44% /boot
/dev/mapper/VolGroupSys-LogVolOpt ext4 30G 9.7G 19G 35% /opt
/dev/md0p1 vfat 511M 6.0M 505M 2% /boot/efi
tmpfs tmpfs 51G 4.0K 51G 1% /run/user/0
tmpfs tmpfs 51G 0 51G 0% /run/user/1000
/dev/asm/acfsclone-116 acfs 150G 14G 137G 9% /opt/oracle/oak/pkgrepos/orapkgs/clones
/dev/asm/commonstore-116 acfs 5.0G 559M 4.5G 11% /opt/oracle/dcs/commonstore
/dev/asm/odabase_n0-116 acfs 10G 7.0G 3.1G 70% /u01/app/odaorabase0
/dev/asm/odabase_n1-116 acfs 10G 6.4G 3.7G 64% /u01/app/odaorabase1
/dev/asm/orahome_sh-116 acfs 80G 14G 67G 18% /u01/app/odaorahome
/dev/asm/vol01-116 acfs 300G 52G 249G 18% /u02
tmpfs tmpfs 51G 0 51G 0% /run/user/1001
[root@teimes2 ~]#
[root@teimes2 ~]# df -Th /u01
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/VolGroupSys-LogVolU01 ext4 59G 45G 12G 80% /u01
[root@teimes2 ~]# vgs
VG #PV #LV #SN Attr VSize VFree
VolGroupSys 1 4 0 wz--n- 446.00g 282.00g
[root@teimes2 ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
LogVolOpt VolGroupSys -wi-ao---- 30.00g
LogVolRoot VolGroupSys -wi-ao---- 50.00g
LogVolSwap VolGroupSys -wi-ao---- 24.00g
LogVolU01 VolGroupSys -wi-ao---- 60.00g
[root@teimes2 ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/md0p3 VolGroupSys lvm2 a-- 446.00g 282.00g
[root@teimes2 ~]#
[root@teimes2 ~]#
[root@teimes2 ~]# df -Th /u01
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/VolGroupSys-LogVolU01 ext4 59G 45G 12G 80% /u01
[root@teimes2 ~]# lvdisplay /dev/VolGroupSys/LogVolU01
--- Logical volume ---
LV Path /dev/VolGroupSys/LogVolU01
LV Name LogVolU01
VG Name VolGroupSys
LV UUID F0WILH-68XV-mBel-Ai96-rUwa-cLUx-AHYWvI
LV Write Access read/write
LV Creation host, time localhost.localdomain, 2025-10-18 17:37:24 +0800
LV Status available
# open 1
LV Size 60.00 GiB
Current LE 1920
Segments 2
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 252:3
[root@teimes2 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 252G 240K 252G 1% /dev
tmpfs 252G 8.5G 243G 4% /dev/shm
tmpfs 252G 4.1G 248G 2% /run
tmpfs 252G 0 252G 0% /sys/fs/cgroup
/dev/mapper/VolGroupSys-LogVolRoot 50G 9.3G 38G 20% /
/dev/mapper/VolGroupSys-LogVolU01 59G 45G 12G 80% /u01
/dev/md0p2 488M 197M 255M 44% /boot
/dev/mapper/VolGroupSys-LogVolOpt 30G 9.7G 19G 35% /opt
/dev/md0p1 511M 6.0M 505M 2% /boot/efi
tmpfs 51G 4.0K 51G 1% /run/user/0
tmpfs 51G 0 51G 0% /run/user/1000
/dev/asm/acfsclone-116 150G 14G 137G 9% /opt/oracle/oak/pkgrepos/orapkgs/clones
/dev/asm/commonstore-116 5.0G 559M 4.5G 11% /opt/oracle/dcs/commonstore
/dev/asm/odabase_n0-116 10G 7.0G 3.1G 70% /u01/app/odaorabase0
/dev/asm/odabase_n1-116 10G 6.4G 3.7G 64% /u01/app/odaorabase1
/dev/asm/orahome_sh-116 80G 14G 67G 18% /u01/app/odaorahome
/dev/asm/vol01-116 300G 52G 249G 18% /u02
tmpfs 51G 0 51G 0% /run/user/1001
[root@teimes2 ~]# lvextend -L +20G /dev/VolGroupSys/LogVolU01
Size of logical volume VolGroupSys/LogVolU01 changed from 60.00 GiB (1920 extents) to 80.00 GiB (2560 extents).
Logical volume VolGroupSys/LogVolU01 successfully resized.
[root@teimes2 ~]# resize2fs /dev/VolGroupSys/LogVolU01
resize2fs 1.45.6 (20-Mar-2020)
Filesystem at /dev/VolGroupSys/LogVolU01 is mounted on /u01; on-line resizing required
old_desc_blocks = 8, new_desc_blocks = 10
The filesystem on /dev/VolGroupSys/LogVolU01 is now 20971520 (4k) blocks long.
[root@teimes2 ~]# df -Th /u01
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/VolGroupSys-LogVolU01 ext4 79G 45G 31G 60% /u01
[root@teimes2 ~]# lvextend -L +20G /dev/VolGroupSys/LogVolU01
Size of logical volume VolGroupSys/LogVolU01 changed from 80.00 GiB (2560 extents) to 100.00 GiB (3200 extents).
Logical volume VolGroupSys/LogVolU01 successfully resized.
[root@teimes2 ~]# resize2fs /dev/VolGroupSys/LogVolU01
resize2fs 1.45.6 (20-Mar-2020)
Filesystem at /dev/VolGroupSys/LogVolU01 is mounted on /u01; on-line resizing required
old_desc_blocks = 10, new_desc_blocks = 13
The filesystem on /dev/VolGroupSys/LogVolU01 is now 26214400 (4k) blocks long.
[root@teimes2 ~]# df -Th /u01
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/VolGroupSys-LogVolU01 ext4 99G 45G 50G 48% /u01
[root@teimes2 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 252G 240K 252G 1% /dev
tmpfs 252G 8.5G 243G 4% /dev/shm
tmpfs 252G 4.1G 248G 2% /run
tmpfs 252G 0 252G 0% /sys/fs/cgroup
/dev/mapper/VolGroupSys-LogVolRoot 50G 9.3G 38G 20% /
/dev/mapper/VolGroupSys-LogVolU01 99G 45G 50G 48% /u01
/dev/md0p2 488M 197M 255M 44% /boot
/dev/mapper/VolGroupSys-LogVolOpt 30G 9.7G 19G 35% /opt
/dev/md0p1 511M 6.0M 505M 2% /boot/efi
tmpfs 51G 4.0K 51G 1% /run/user/0
tmpfs 51G 0 51G 0% /run/user/1000
/dev/asm/acfsclone-116 150G 14G 137G 9% /opt/oracle/oak/pkgrepos/orapkgs/clones
/dev/asm/commonstore-116 5.0G 559M 4.5G 11% /opt/oracle/dcs/commonstore
/dev/asm/odabase_n0-116 10G 7.0G 3.1G 70% /u01/app/odaorabase0
/dev/asm/odabase_n1-116 10G 6.4G 3.7G 64% /u01/app/odaorabase1
/dev/asm/orahome_sh-116 80G 14G 67G 18% /u01/app/odaorahome
/dev/asm/vol01-116 300G 52G 249G 18% /u02
tmpfs 51G 0 51G 0% /run/user/1001
[root@teimes2 ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
LogVolOpt VolGroupSys -wi-ao---- 30.00g
LogVolRoot VolGroupSys -wi-ao---- 50.00g
LogVolSwap VolGroupSys -wi-ao---- 24.00g
LogVolU01 VolGroupSys -wi-ao---- 100.00g
[root@teimes2 ~]#
2、Linux LVM + ext4 文件系统在线扩容操作手册
按以上真实操作过程,整理成一份能直接留档、下次也能复用的ODA生产环境 /u01 在线扩容操作手册。
bash
Linux LVM + ext4 文件系统在线扩容操作手册
适用场景:生产环境 /u01 挂载点空间使用率较高,底层为 LVM 逻辑卷,文件系统为 ext4
适用主机:teimes2(生产 ODA 二节点)
操作用户:root
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
一、操作目的
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
当 /u01 分区空间使用率较高时,在不重启服务器、不卸载文件系统的前提下,
对 LVM 逻辑卷及 ext4 文件系统进行在线扩容,缓解空间压力,保障业务稳定运行。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
二、适用前提
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1. 挂载点对应的是 LVM 逻辑卷
2. 文件系统类型为 ext4
3. 所在卷组(VG)有足够空闲空间可供扩容
4. 当前系统及业务运行正常
5. 建议在业务相对平稳时段操作
6. 建议使用 root 用户操作
7. 建议在 tmux / screen 会话中执行,避免 SSH 中断
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
三、扩容前检查
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1. 查看挂载点及文件系统类型
df -Th /u01
参考输出:
/dev/mapper/VolGroupSys-LogVolU01 ext4 59G 45G 12G 80% /u01
2. 查看卷组剩余空间
vgs
参考输出:
VG #PV #LV #SN Attr VSize VFree
VolGroupSys 1 4 0 wz--n- 446.00g 282.00g
3. 查看逻辑卷信息
lvs
参考输出:
LV VG Attr LSize
LogVolU01 VolGroupSys -wi-ao---- 60.00g
4. 查看物理卷信息
pvs
参考输出:
PV VG Fmt Attr PSize PFree
/dev/md0p3 VolGroupSys lvm2 a-- 446.00g 282.00g
5. 确认目标逻辑卷路径
lvdisplay /dev/VolGroupSys/LogVolU01
确认项:
- LV Path 为 /dev/VolGroupSys/LogVolU01
- LV Name 为 LogVolU01
- VG Name 为 VolGroupSys
- LV Status 为 available
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
四、风险提示
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1. 本次操作属于 LVM + ext4 在线扩容,正常情况下无需重启,不影响业务运行
2. 生产环境操作前必须确认卷组空闲空间充足,避免扩容失败
3. 必须确认逻辑卷名称无误,防止误扩其它分区
4. 扩容命令执行成功后,再执行文件系统扩容命令
5. 本操作为扩容,不涉及数据删除
6. 一般不建议生产环境中直接使用 lvextend -r,建议分两步执行,便于观察和回退判断
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
五、操作步骤
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
说明:
本次实际操作共执行两轮扩容,
第一轮:60G -> 80G
第二轮:80G -> 100G
【第一轮扩容】
步骤1:扩容逻辑卷 20G
lvextend -L +20G /dev/VolGroupSys/LogVolU01
成功标志参考:
Size of logical volume VolGroupSys/LogVolU01 changed from 60.00 GiB (1920 extents) to 80.00 GiB (2560 extents).
Logical volume VolGroupSys/LogVolU01 successfully resized.
步骤2:扩容 ext4 文件系统
resize2fs /dev/VolGroupSys/LogVolU01
成功标志参考:
Filesystem at /dev/VolGroupSys/LogVolU01 is mounted on /u01; on-line resizing required
The filesystem on /dev/VolGroupSys/LogVolU01 is now 20971520 (4k) blocks long.
步骤3:检查扩容结果
df -Th /u01
参考结果:
/dev/mapper/VolGroupSys-LogVolU01 ext4 79G 45G 31G 60% /u01
【第二轮扩容】
步骤4:再次扩容逻辑卷 20G
lvextend -L +20G /dev/VolGroupSys/LogVolU01
成功标志参考:
Size of logical volume VolGroupSys/LogVolU01 changed from 80.00 GiB (2560 extents) to 100.00 GiB (3200 extents).
Logical volume VolGroupSys/LogVolU01 successfully resized.
步骤5:再次扩容 ext4 文件系统
resize2fs /dev/VolGroupSys/LogVolU01
成功标志参考:
Filesystem at /dev/VolGroupSys/LogVolU01 is mounted on /u01; on-line resizing required
The filesystem on /dev/VolGroupSys/LogVolU01 is now 26214400 (4k) blocks long.
步骤6:再次检查扩容结果
df -Th /u01
参考结果:
/dev/mapper/VolGroupSys-LogVolU01 ext4 99G 45G 50G 48% /u01
步骤7:最终确认逻辑卷大小
lvs
参考结果:
LV VG Attr LSize
LogVolU01 VolGroupSys -wi-ao---- 100.00g
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
六、最终结果
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1. /u01 挂载点已成功在线扩容
2. 逻辑卷 LogVolU01 容量由 60G 扩展至 100G
3. 文件系统 ext4 已同步扩展完成
4. /u01 使用率由 80% 降至 48%
5. 扩容过程无报错
6. 无需重启服务器
7. 业务未受影响
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
七、操作后检查
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1. 再次确认挂载点容量
df -Th /u01
2. 再次确认逻辑卷大小
lvs
3. 如有需要,检查系统日志是否有异常
dmesg | tail -50
4. 如有数据库或应用部署在 /u01 下,可补充检查相关进程状态
ps -ef | grep -E 'oracle|asm|dcs'
根据现场业务自行调整检查项
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
八、标准命令模板(下次复用)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1. 扩容前检查
df -Th /u01
vgs
lvs
pvs
lvdisplay /dev/VolGroupSys/LogVolU01
2. 扩容逻辑卷(示例:增加20G)
lvextend -L +20G /dev/VolGroupSys/LogVolU01
3. 扩容 ext4 文件系统
resize2fs /dev/VolGroupSys/LogVolU01
4. 验证结果
df -Th /u01
lvs
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
九、变更记录描述模板
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
生产 ODA 二节点 /u01 分区空间使用率较高,
经检查确认其底层为 LVM 逻辑卷 VolGroupSys/LogVolU01,
文件系统为 ext4,且卷组 VolGroupSys 具备充足剩余空间。
在业务运行状态下执行在线扩容操作,
先后完成逻辑卷扩容及 ext4 文件系统扩展,
最终将 /u01 容量由 60G 提升至 100G,
空间使用率由 80% 降至 48%,
整个过程无报错、无需重启、业务未受影响。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
十、注意事项
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1. 本次实际扩容总量为 40G,不是 20G
2. 如果以后只需扩 20G,只执行一轮 lvextend + resize2fs 即可
3. 若 vgs 显示 VFree 不足,则不能直接扩容,需先补充底层存储空间
4. 若文件系统不是 ext4,而是 xfs,则扩容命令不是 resize2fs,而应使用 xfs_growfs
5. 生产环境操作应保留命令输出和前后对比截图,便于审计和复盘
3、处理过程各命令简要解读
下面这份我分成两部分:
-
本次实际操作记录:你这次到底查了什么、敲了什么
-
下次遇到同类问题的处理流程:以后怎么判断、怎么扩、扩多少
bash
Linux /u01 分区在线扩容操作记录及后续处理流程
主机:teimes2
场景:生产 ODA 二节点 /u01 空间使用率高,需要在线扩容
操作用户:root
==================================================
一、本次实际操作记录
==================================================
1、先检查 /u01 当前挂载、文件系统类型、容量使用情况
执行命令:
df -Th /u01
检查目的:
确认 /u01 对应文件系统类型是否为 ext4,查看当前容量和使用率
--------------------------------------------------
2、检查卷组是否有足够剩余空间
执行命令:
vgs
检查目的:
确认 VG=VolGroupSys 是否还有足够空闲空间可供扩容
--------------------------------------------------
3、检查逻辑卷信息
执行命令:
lvs
检查目的:
确认 /u01 对应逻辑卷名称为 LogVolU01,并查看当前逻辑卷大小
--------------------------------------------------
4、检查物理卷信息
执行命令:
pvs
检查目的:
确认卷组底层 PV 情况,核实 VG 剩余空间来源
--------------------------------------------------
5、确认 /u01 对应的逻辑卷路径
执行命令:
lvdisplay /dev/VolGroupSys/LogVolU01
检查目的:
确认扩容目标卷为 /dev/VolGroupSys/LogVolU01,避免误操作其他卷
--------------------------------------------------
6、第一次扩容逻辑卷 20G
执行命令:
lvextend -L +20G /dev/VolGroupSys/LogVolU01
操作目的:
将逻辑卷容量由 60G 扩大到 80G
--------------------------------------------------
7、第一次扩容 ext4 文件系统
执行命令:
resize2fs /dev/VolGroupSys/LogVolU01
操作目的:
将文件系统容量同步扩展到新的逻辑卷大小
--------------------------------------------------
8、第一次扩容后检查结果
执行命令:
df -Th /u01
检查目的:
确认 /u01 容量已从约 59G 增长到约 79G,使用率下降
--------------------------------------------------
9、第二次扩容逻辑卷 20G
执行命令:
lvextend -L +20G /dev/VolGroupSys/LogVolU01
操作目的:
将逻辑卷容量由 80G 继续扩大到 100G
--------------------------------------------------
10、第二次扩容 ext4 文件系统
执行命令:
resize2fs /dev/VolGroupSys/LogVolU01
操作目的:
将文件系统容量同步扩展到新的逻辑卷大小
--------------------------------------------------
11、第二次扩容后检查结果
执行命令:
df -Th /u01
检查目的:
确认 /u01 容量已从约 79G 增长到约 99G,使用率进一步下降
--------------------------------------------------
12、最终确认逻辑卷大小
执行命令:
lvs
检查目的:
确认 LogVolU01 最终大小为 100G
==================================================
二、本次操作结论
==================================================
1、/u01 原始逻辑卷大小:60G
2、第一次扩容后:80G
3、第二次扩容后:100G
4、本次总共扩容:40G
5、/u01 使用率由 80% 降至 48%
6、扩容方式为 LVM + ext4 在线扩容
7、操作过程中未报错
8、未重启服务器
9、业务未受影响
==================================================
三、下次再遇到同类问题,应该如何处理
==================================================
【第一步:先判断是不是可以直接扩容】
先执行以下检查命令:
df -Th /u01
vgs
lvs
pvs
lvdisplay /dev/VolGroupSys/LogVolU01
判断规则:
1、df -Th /u01
看 /u01 文件系统类型
如果是 ext4,可以用 resize2fs
如果是 xfs,就不能用 resize2fs,要改用 xfs_growfs
2、vgs
看 VolGroupSys 是否有足够 VFree
如果 VG 空闲空间不足,就不能直接扩容,需要先扩底层存储
3、lvs
确认 /u01 对应逻辑卷名称和当前大小
4、lvdisplay
再次确认目标卷路径,避免误扩其他分区
--------------------------------------------------
【第二步:决定扩多少】
原则:
不要看到使用率高就无脑扩,先结合实际情况判断
建议判断方法:
1、看当前可用空间是否还能支撑一段时间
2、看 /u01 目录下数据增长速度
3、看业务是否持续增长
4、优先判断是否有可清理文件,而不是每次都直接加盘
可先执行:
du -xh --max-depth=1 /u01 | sort -h
作用:
看 /u01 下哪个目录最占空间
能清理先清理,不能清理再扩容
--------------------------------------------------
【第三步:确认可以扩后,再执行扩容】
如果文件系统是 ext4,且 VG 空间充足,执行:
1、扩逻辑卷
lvextend -L +20G /dev/VolGroupSys/LogVolU01
2、扩文件系统
resize2fs /dev/VolGroupSys/LogVolU01
3、检查结果
df -Th /u01
lvs
--------------------------------------------------
【第四步:生产环境建议】
1、尽量在业务相对平稳时段操作
2、建议用 root 用户执行
3、建议先进入 tmux,避免 SSH 断开
命令:
tmux
4、不要直接上来就用 lvextend -r
生产环境更建议分两步:
先 lvextend
再 resize2fs
这样更容易检查每一步结果
5、每一步执行完都要核实
尤其是:
df -Th /u01
lvs
--------------------------------------------------
【第五步:以后固定处理模板】
当 /u01 空间告警时,固定按以下顺序处理:
1、检查文件系统和挂载点
df -Th /u01
2、检查卷组剩余空间
vgs
3、检查逻辑卷信息
lvs
4、确认目标逻辑卷
lvdisplay /dev/VolGroupSys/LogVolU01
5、如有必要,先查大目录
du -xh --max-depth=1 /u01 | sort -h
6、确认需要扩容后,执行:
lvextend -L +20G /dev/VolGroupSys/LogVolU01
resize2fs /dev/VolGroupSys/LogVolU01
7、检查扩容结果
df -Th /u01
lvs
==================================================
四、注意事项
==================================================
1、本次你实际做了两轮扩容,不是一轮
2、以后如果只需要加 20G,只执行一轮:
lvextend -L +20G /dev/VolGroupSys/LogVolU01
resize2fs /dev/VolGroupSys/LogVolU01
3、如果以后 df 显示类型不是 ext4,就不能照搬 resize2fs
4、如果 vgs 显示没有足够空闲空间,就不能直接扩
5、扩容前一定确认卷路径,别把别的卷喂胖了
6、扩容完成后要保留前后 df、lvs 结果,方便留痕和审计