当前位置:首页>Linux>使用 LVM 扩容 Linux 磁盘的完整操作步骤

使用 LVM 扩容 Linux 磁盘的完整操作步骤

  • 2026-08-18 23:12:04
使用 LVM 扩容 Linux 磁盘的完整操作步骤

使用 LVM 扩容 Linux 磁盘的完整操作步骤

一、问题背景

生产服务器运行一段时间后,磁盘空间不足是常见问题。数据库日志、应用日志、用户上传文件、备份文件等持续增长,根分区或数据分区空间告警,严重时可能导致服务不可用。

传统分区方式扩容困难,需要停机、备份数据、重新分区、恢复数据,风险高、耗时长。LVM(Logical Volume Manager)提供了灵活的磁盘管理方式,可以在线扩容,无需停机,无需数据迁移。

本文从实战角度出发,介绍 LVM 的核心概念、扩容前检查、扩容步骤、验证方法、常见问题处理、回滚方案和生产环境注意事项。

二、适用场景

  • 根分区空间不足,需要扩容
  • 数据分区空间不足,需要扩容
  • 新增硬盘或云盘,需要扩展现有逻辑卷
  • 虚拟机磁盘扩容后,需要将新空间分配给文件系统
  • 容器或虚拟化环境中磁盘扩容
  • 需要在线扩容,不能停机

不适用场景:

  • 系统未使用 LVM,使用传统分区方式(需要先迁移到 LVM)
  • 磁盘已损坏或文件系统损坏(需要先修复或恢复数据)

三、核心知识点

3.1 LVM 架构

LVM 分为三层:

物理卷(PV, Physical Volume)
  ↓
卷组(VG, Volume Group)
  ↓
逻辑卷(LV, Logical Volume)
  ↓
文件系统(ext4, xfs, etc.)

3.2 核心概念

物理卷(PV)

  • 物理磁盘或分区,例如 /dev/sdb/dev/sdb1
  • 通过 pvcreate 初始化为 LVM 物理卷
  • 多个物理卷可以组成一个卷组

卷组(VG)

  • 由一个或多个物理卷组成
  • 卷组是 LVM 的存储池
  • 可以从卷组中划分出多个逻辑卷

逻辑卷(LV)

  • 从卷组中划分出的逻辑分区
  • 逻辑卷可以动态调整大小
  • 逻辑卷上创建文件系统后即可挂载使用

PE(Physical Extent)

  • 物理卷的最小分配单位,默认 4MB
  • 逻辑卷大小必须是 PE 的整数倍

LE(Logical Extent)

  • 逻辑卷的最小分配单位,与 PE 大小相同

3.3 扩容原理

LVM 扩容分为两步:

  1. 扩展逻辑卷大小(lvextend
  2. 扩展文件系统大小(resize2fs 或 xfs_growfs

逻辑卷扩容前提:

  • 卷组有足够的剩余空间
  • 若卷组空间不足,需要先添加新的物理卷到卷组

3.4 常见文件系统扩容命令

  • ext2/ext3/ext4resize2fs
  • xfsxfs_growfs
  • btrfsbtrfs filesystem resize

注意:

  • ext4 支持在线扩容和离线扩容
  • xfs 仅支持在线扩容,不支持缩容
  • 扩容前务必备份数据

四、整体扩容思路

1. 检查磁盘空间和 LVM 状态
2. 确认扩容目标(扩容哪个逻辑卷、扩容多大)
3. 检查卷组剩余空间
4. 若卷组空间不足,添加新物理卷到卷组
5. 扩展逻辑卷大小
6. 扩展文件系统大小
7. 验证扩容结果
8. 记录操作过程

五、实战步骤

5.1 扩容前检查

5.1.1 检查磁盘空间使用情况

bash
df -h

输出示例:

文件系统                 容量  已用  可用 已用% 挂载点
devtmpfs                 7.8G     0  7.8G    0% /dev
tmpfs                    7.8G     0  7.8G    0% /dev/shm
/dev/mapper/centos-root   50G   45G  5.0G   91% /
/dev/sda1                1014M  150M  865M   15% /boot
/dev/mapper/centos-home  100G   85G   15G   86% /home

判断逻辑:

  • /dev/mapper/centos-root 使用率 91%,需要扩容
  • /dev/mapper/centos-home 使用率 86%,需要关注

/dev/mapper/centos-root 即为逻辑卷设备,centos 是卷组名,root 是逻辑卷名。

5.1.2 检查逻辑卷信息

bash
lvdisplay

输出示例:

  --- Logical volume ---
  LV Path                /dev/centos/root
  LV Name                root
  VG Name                centos
  LV UUID                abc123-def456-ghi789
  LV Write Access        read/write
  LV Creation host, time localhost, 2023-01-01 10:00:00 +0800
  LV Status              available
  # open                 1
  LV Size                50.00 GiB
  Current LE             12800
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:0

重点字段:

  • LV Path:逻辑卷设备路径
  • LV Name:逻辑卷名称
  • VG Name:所属卷组
  • LV Size:当前大小

查看所有逻辑卷简要信息:

bash
lvs

输出示例:

  LV   VG     Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  home centos -wi-ao---- 100.00g                                                    
  root centos -wi-ao----  50.00g                                                    
  swap centos -wi-ao----   4.00g

5.1.3 检查卷组信息

bash
vgdisplay

输出示例:

  --- Volume group ---
  VG Name               centos
  System ID             
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  5
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                3
  Open LV               3
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               199.00 GiB
  PE Size               4.00 MiB
  Total PE              50944
  Alloc PE / Size       39424 / 154.00 GiB
  Free  PE / Size       11520 / 45.00 GiB
  VG UUID               xyz789-abc123-def456

重点字段:

  • VG Name:卷组名称
  • VG Size:卷组总大小
  • Alloc PE / Size:已分配空间
  • Free  PE / Size:剩余空间

判断逻辑:

  • 若 Free PE / Size 显示剩余空间充足,可以直接扩展逻辑卷
  • 若剩余空间不足,需要先添加新物理卷到卷组

查看所有卷组简要信息:

bash
vgs

输出示例:

  VG     #PV #LV #SN Attr   VSize   VFree 
  centos   2   3   0 wz--n- 199.00g 45.00g

5.1.4 检查物理卷信息

bash
pvdisplay

输出示例:

  --- Physical volume ---
  PV Name               /dev/sda2
  VG Name               centos
  PV Size               <99.00 GiB / not usable 3.00 MiB
  Allocatable           yes (but full)
  PE Size               4.00 MiB
  Total PE              25343
  Free PE               0
  Allocated PE          25343
  PV UUID               aaa111-bbb222-ccc333

  --- Physical volume ---
  PV Name               /dev/sdb1
  VG Name               centos
  PV Size               <100.00 GiB / not usable 4.00 MiB
  Allocatable           yes 
  PE Size               4.00 MiB
  Total PE              25600
  Free PE               11520
  Allocated PE          14080
  PV UUID               ddd444-eee555-fff666

重点字段:

  • PV Name:物理卷设备
  • VG Name:所属卷组
  • PV Size:物理卷大小
  • Free PE:剩余空间

判断逻辑:

  • /dev/sda2 已满,无剩余空间
  • /dev/sdb1 有剩余空间

查看所有物理卷简要信息:

bash
pvs

输出示例:

  PV         VG     Fmt  Attr PSize    PFree 
  /dev/sda2  centos lvm2 a--   <99.00g     0 
  /dev/sdb1  centos lvm2 a--  <100.00g 45.00g

5.1.5 检查文件系统类型

bash
df -T

输出示例:

文件系统                类型      容量  已用  可用 已用% 挂载点
devtmpfs                devtmpfs  7.8G     0  7.8G    0% /dev
tmpfs                   tmpfs     7.8G     0  7.8G    0% /dev/shm
/dev/mapper/centos-root xfs        50G   45G  5.0G   91% /
/dev/sda1               xfs      1014M  150M  865M   15% /boot
/dev/mapper/centos-home xfs       100G   85G   15G   86% /home

重点:

  • /dev/mapper/centos-root 文件系统类型为 xfs
  • 后续扩容时需要使用 xfs_growfs 命令

或使用:

bash
blkid /dev/mapper/centos-root

输出示例:

/dev/mapper/centos-root: UUID="abc123-def456" TYPE="xfs"

5.1.6 检查磁盘硬件

查看所有块设备:

bash
lsblk

输出示例:

NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0  100G  0 disk 
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0   99G  0 part 
  ├─centos-root 253:0    0   50G  0 lvm  /
  ├─centos-swap 253:1    0    4G  0 lvm  [SWAP]
  └─centos-home 253:2    0   45G  0 lvm  /home
sdb               8:16   0  100G  0 disk 
└─sdb1            8:17   0  100G  0 part 
  ├─centos-home 253:2    0  100G  0 lvm  /home
sdc               8:32   0  200G  0 disk

判断逻辑:

  • sdasdb 已分区并加入 LVM
  • sdc 是新添加的磁盘,未分区,可以用于扩容

5.2 场景一:卷组有剩余空间,直接扩展逻辑卷

适用场景:

  • vgs 显示卷组有剩余空间(VFree > 0)
  • 需要扩容的逻辑卷所在卷组有空闲空间

5.2.1 备份重要数据

风险提示:

  • 虽然 LVM 扩容通常安全,但仍建议备份关键数据
  • 备份方式:tar 打包、rsync 同步、快照备份等

示例备份命令:

bash
tar -czf /backup/root_backup_$(date +%Y%m%d).tar.gz -C / --exclude=/proc --exclude=/sys --exclude=/dev --exclude=/backup .

或使用 rsync:

bash
rsync -avzP / /backup/root_backup/ --exclude=/proc --exclude=/sys --exclude=/dev --exclude=/backup

5.2.2 扩展逻辑卷

假设要将 /dev/centos/root 从 50GB 扩展到 80GB。

方式一:指定扩展后的总大小

bash
lvextend -L 80G /dev/centos/root

方式二:指定增加的大小

bash
lvextend -L +30G /dev/centos/root

方式三:使用所有剩余空间

bash
lvextend -l +100%FREE /dev/centos/root

参数说明:

  • -L:指定大小(K, M, G, T)
  • -l:指定 PE 数量
  • +100%FREE:使用卷组中所有剩余空间

输出示例:

  Size of logical volume centos/root changed from 50.00 GiB (12800 extents) to 80.00 GiB (20480 extents).
  Logical volume centos/root successfully resized.

验证逻辑卷是否扩展成功:

bash
lvs

输出示例:

  LV   VG     Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  home centos -wi-ao---- 100.00g                                                    
  root centos -wi-ao----  80.00g                                                    
  swap centos -wi-ao----   4.00g

确认 root 逻辑卷大小已变为 80GB。

5.2.3 扩展文件系统

逻辑卷扩展后,文件系统大小未变,需要手动扩展。

查看文件系统类型:

bash
df -T /

输出示例:

文件系统                类型   容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root xfs     50G   45G  5.0G   91% /

文件系统类型为 xfs,使用 xfs_growfs 扩展。

5.2.3.1 扩展 xfs 文件系统
bash
xfs_growfs /

或指定设备:

bash
xfs_growfs /dev/mapper/centos-root

输出示例:

meta-data=/dev/mapper/centos-root isize=512    agcount=4, agsize=3276800 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=13107200, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal               bsize=4096   blocks=6400, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 13107200 to 20971520

重点关注:

  • data blocks changed from 13107200 to 20971520:表示文件系统已扩展
5.2.3.2 扩展 ext4 文件系统

若文件系统类型为 ext4

bash
resize2fs /dev/mapper/centos-root

输出示例:

resize2fs 1.42.9 (28-Dec-2013)
Filesystem at /dev/mapper/centos-root is mounted on /; on-line resizing required
old_desc_blocks = 7, new_desc_blocks = 10
The filesystem on /dev/mapper/centos-root is now 20971520 blocks long.

注意:

  • ext4 支持在线扩容,无需卸载
  • 扩容前可先执行 e2fsck -f /dev/mapper/centos-root 检查文件系统(需要卸载或进入单用户模式)

5.2.4 验证扩容结果

bash
df -h /

输出示例:

文件系统                 容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root   80G   45G   35G   57% /

确认:

  • 容量已从 50GB 变为 80GB
  • 可用空间已增加

查看逻辑卷信息:

bash
lvdisplay /dev/centos/root

确认 LV Size 为 80GB。

5.3 场景二:卷组空间不足,需要添加新物理卷

适用场景:

  • vgs 显示卷组剩余空间不足
  • 系统有新的硬盘或云盘可以使用

5.3.1 识别新磁盘

bash
lsblk

输出示例:

NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0  100G  0 disk 
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0   99G  0 part 
  ├─centos-root 253:0    0   50G  0 lvm  /
  ├─centos-swap 253:1    0    4G  0 lvm  [SWAP]
  └─centos-home 253:2    0   45G  0 lvm  /home
sdb               8:16   0  100G  0 disk 
└─sdb1            8:17   0  100G  0 part 
  └─centos-home 253:2    0  100G  0 lvm  /home
sdc               8:32   0  200G  0 disk

判断逻辑:

  • sdc 是新添加的 200GB 磁盘,未分区,可以直接使用
  • 若磁盘已分区,需要先删除分区或使用现有分区

查看磁盘分区信息:

bash
fdisk -l /dev/sdc

输出示例:

Disk /dev/sdc: 214.7 GB, 214748364800 bytes, 419430400 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x00000000

确认磁盘无分区。

5.3.2 创建物理卷

5.3.2.1 直接使用整个磁盘
bash
pvcreate /dev/sdc

输出示例:

  Physical volume "/dev/sdc" successfully created.

验证:

bash
pvs

输出示例:

  PV         VG     Fmt  Attr PSize    PFree   
  /dev/sda2  centos lvm2 a--   <99.00g       0 
  /dev/sdb1  centos lvm2 a--  <100.00g  45.00g
  /dev/sdc          lvm2 ---   200.00g 200.00g

/dev/sdc 已成为物理卷,但尚未加入卷组(VG 列为空)。

5.3.2.2 使用分区

若需要将磁盘分区后再创建物理卷:

创建分区:

bash
fdisk /dev/sdc

操作步骤:

  1. 输入 n 创建新分区
  2. 选择分区类型(p 主分区)
  3. 输入分区号(默认 1)
  4. 输入起始扇区(默认)
  5. 输入结束扇区(默认,使用全部空间)
  6. 输入 t 修改分区类型
  7. 输入 8e(Linux LVM 类型)
  8. 输入 w 保存并退出

或使用 parted

bash
parted /dev/sdc
(parted) mklabel gpt
(parted) mkpart primary 0% 100%
(parted) set 1 lvm on
(parted) quit

刷新分区表:

bash
partprobe /dev/sdc

创建物理卷:

bash
pvcreate /dev/sdc1

5.3.3 将物理卷添加到卷组

bash
vgextend centos /dev/sdc

参数说明:

  • centos:卷组名称
  • /dev/sdc:要添加的物理卷

输出示例:

  Volume group "centos" successfully extended

验证:

bash
vgs

输出示例:

  VG     #PV #LV #SN Attr   VSize   VFree  
  centos   3   3   0 wz--n- 399.00g 245.00g

确认:

  • 卷组 centos 的物理卷数量从 2 增加到 3
  • 卷组总大小从 199GB 增加到 399GB
  • 剩余空间从 45GB 增加到 245GB

查看卷组详细信息:

bash
vgdisplay centos

确认 Cur PV 和 VG Size 已更新。

5.3.4 扩展逻辑卷

添加物理卷到卷组后,卷组有了足够的剩余空间,可以按照【场景一】的步骤扩展逻辑卷。

例如,将 /dev/centos/root 扩展 50GB:

bash
lvextend -L +50G /dev/centos/root

或使用所有剩余空间:

bash
lvextend -l +100%FREE /dev/centos/root

5.3.5 扩展文件系统

根据文件系统类型选择命令:

xfs:

bash
xfs_growfs /

ext4:

bash
resize2fs /dev/mapper/centos-root

5.3.6 验证扩容结果

bash
df -h /
bash
lvs
bash
vgs

5.4 场景三:云服务器磁盘扩容

云服务器(阿里云、腾讯云、AWS 等)通常先在控制台扩展磁盘大小,然后在系统内部识别并扩容。

5.4.1 在云控制台扩展磁盘

登录云服务商控制台,找到对应实例,选择磁盘,执行扩容操作。

例如将 100GB 云盘扩展到 200GB。

注意:

  • 部分云服务商扩容需要重启实例
  • 部分云服务商支持在线扩容

5.4.2 在系统内识别新磁盘大小

扩容后,系统可能未自动识别新大小,需要手动刷新。

查看当前磁盘大小:

bash
lsblk

输出示例:

NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
vda             252:0    0  100G  0 disk 
├─vda1          252:1    0    1G  0 part /boot
└─vda2          252:2    0   99G  0 part 
  ├─centos-root 253:0    0   50G  0 lvm  /
  └─centos-home 253:1    0   49G  0 lvm  /home

若 vda 仍显示 100GB,需要刷新:

bash
echo 1 > /sys/class/block/vda/device/rescan

或重新扫描 SCSI 设备:

bash
echo"- - -" > /sys/class/scsi_host/host0/scan

再次查看:

bash
lsblk

输出示例:

NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
vda             252:0    0  200G  0 disk 
├─vda1          252:1    0    1G  0 part /boot
└─vda2          252:2    0   99G  0 part 
  ├─centos-root 253:0    0   50G  0 lvm  /
  └─centos-home 253:1    0   49G  0 lvm  /home

vda 已识别为 200GB,但分区 vda2 仍为 99GB。

5.4.3 扩展分区

使用 growpart 扩展分区(部分发行版需要安装 cloud-utils-growpart 包):

bash
growpart /dev/vda 2

参数说明:

  • /dev/vda:磁盘设备
  • 2:分区号

输出示例:

CHANGED: partition=2 start=2099200 old: size=207616000 end=209715200 new: size=417331167 end=419430367

或使用 parted 手动扩展分区:

bash
parted /dev/vda
(parted) print
(parted) resizepart 2 100%
(parted) quit

刷新分区表:

bash
partprobe /dev/vda

验证分区是否扩展:

bash
lsblk

输出示例:

NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
vda             252:0    0  200G  0 disk 
├─vda1          252:1    0    1G  0 part /boot
└─vda2          252:2    0  199G  0 part 
  ├─centos-root 253:0    0   50G  0 lvm  /
  └─centos-home 253:1    0   49G  0 lvm  /home

vda2 已扩展到 199GB。

5.4.4 扩展物理卷

bash
pvresize /dev/vda2

输出示例:

  Physical volume "/dev/vda2" changed
  1 physical volume(s) resized or updated / 0 physical volume(s) not resized

验证:

bash
pvs

输出示例:

  PV         VG     Fmt  Attr PSize    PFree  
  /dev/vda2  centos lvm2 a--  <199.00g 100.00g

物理卷 /dev/vda2 大小已从 99GB 增加到 199GB,卷组剩余空间增加 100GB。

5.4.5 扩展逻辑卷和文件系统

按照【场景一】的步骤扩展逻辑卷和文件系统。

5.5 场景四:扩容根分区

根分区扩容与普通分区扩容流程相同,但需要注意:

  • 根分区通常不能卸载,必须在线扩容
  • xfs 和 ext4 均支持在线扩容
  • 扩容前务必备份关键数据

步骤与【场景一】或【场景二】相同。

5.6 场景五:扩容数据分区

数据分区扩容流程与根分区相同。

若数据分区可以卸载,建议卸载后再扩容(ext4 支持离线扩容,xfs 仅支持在线扩容)。

卸载分区:

bash
umount /data

扩展逻辑卷:

bash
lvextend -L +50G /dev/centos/data

扩展文件系统(ext4):

bash
e2fsck -f /dev/centos/data
resize2fs /dev/centos/data

重新挂载:

bash
mount /dev/centos/data /data

验证:

bash
df -h /data

若数据分区无法卸载,按照在线扩容流程操作。

六、常用命令汇总

6.1 查看命令

bash
# 查看磁盘空间使用情况
df -h
df -T

# 查看块设备
lsblk

# 查看磁盘分区
fdisk -l

# 查看物理卷
pvs
pvdisplay
pvscan

# 查看卷组
vgs
vgdisplay
vgscan

# 查看逻辑卷
lvs
lvdisplay
lvscan

# 查看文件系统类型
blkid /dev/mapper/centos-root

6.2 创建命令

bash
# 创建物理卷
pvcreate /dev/sdc

# 创建卷组
vgcreate vg_data /dev/sdc

# 创建逻辑卷
lvcreate -L 100G -n lv_data vg_data

# 创建文件系统
mkfs.xfs /dev/vg_data/lv_data
mkfs.ext4 /dev/vg_data/lv_data

6.3 扩展命令

bash
# 扩展物理卷
pvresize /dev/vda2

# 扩展卷组
vgextend centos /dev/sdc

# 扩展逻辑卷
lvextend -L +50G /dev/centos/root
lvextend -l +100%FREE /dev/centos/root

# 扩展文件系统
xfs_growfs /
resize2fs /dev/mapper/centos-root

6.4 删除命令(慎用)

bash
# 删除逻辑卷
lvremove /dev/centos/data

# 从卷组中移除物理卷
vgreduce centos /dev/sdc

# 删除卷组
vgremove centos

# 删除物理卷
pvremove /dev/sdc

风险提示:

  • 删除操作会导致数据丢失
  • 删除前务必备份数据
  • 删除逻辑卷前需要先卸载

七、配置示例

7.1 完整创建 LVM 的示例

假设新服务器有两块硬盘 /dev/sdb 和 /dev/sdc,需要创建 LVM 并挂载到 /data

7.1.1 创建物理卷

bash
pvcreate /dev/sdb /dev/sdc

7.1.2 创建卷组

bash
vgcreate vg_data /dev/sdb /dev/sdc

7.1.3 创建逻辑卷

bash
lvcreate -L 500G -n lv_data vg_data

或使用所有空间:

bash
lvcreate -l 100%FREE -n lv_data vg_data

7.1.4 创建文件系统

bash
mkfs.xfs /dev/vg_data/lv_data

7.1.5 挂载

bash
mkdir -p /data
mount /dev/vg_data/lv_data /data

7.1.6 写入 /etc/fstab

bash
echo"/dev/vg_data/lv_data /data xfs defaults 0 0" >> /etc/fstab

验证:

bash
df -h /data

7.2 /etc/fstab 配置示例

bash
# 根分区
/dev/mapper/centos-root /                       xfs     defaults        0 0

# boot 分区
UUID=abc123-def456      /boot                   xfs     defaults        0 0

# swap 分区
/dev/mapper/centos-swap swap                    swap    defaults        0 0

# home 分区
/dev/mapper/centos-home /home                   xfs     defaults        0 0

# 数据分区
/dev/vg_data/lv_data    /data                   xfs     defaults        0 0

建议使用 UUID 而非设备路径,避免设备名称变化导致挂载失败:

bash
blkid /dev/mapper/centos-root

输出示例:

/dev/mapper/centos-root: UUID="abc123-def456" TYPE="xfs"

修改 /etc/fstab

bash
UUID=abc123-def456 /                       xfs     defaults        0 0

八、日志与指标观察方法

8.1 查看系统日志

扩容过程中若出现错误,查看系统日志:

bash
dmesg | tail -n 50
bash
tail -f /var/log/messages
bash
journalctl -xe

8.2 监控磁盘空间

使用监控系统(Prometheus、Zabbix、Grafana)监控磁盘使用率。

Prometheus 查询磁盘使用率:

promql
100 - (node_filesystem_avail_bytes{mountpoint="/"} / node_filesystem_size_bytes{mountpoint="/"}) * 100

设置告警规则,当磁盘使用率超过 80% 时告警。

8.3 查看扩容操作日志

LVM 命令执行后会记录日志:

bash
grep -E "lvm|lvextend|vgextend|pvcreate" /var/log/messages | tail -n 20

或查看 audit 日志:

bash
ausearch -m USER_CMD -c lvextend

九、排查路径

1. 检查磁盘空间是否不足
   ↓
2. 确认文件系统挂载点和逻辑卷路径
   ↓
3. 检查卷组是否有剩余空间
   ↓
4. 若卷组剩余空间充足:
   - 扩展逻辑卷
   - 扩展文件系统
   - 验证结果
   ↓
5. 若卷组剩余空间不足:
   - 检查是否有新磁盘可用
   - 创建物理卷
   - 将物理卷添加到卷组
   - 扩展逻辑卷
   - 扩展文件系统
   - 验证结果
   ↓
6. 若是云服务器:
   - 在控制台扩展磁盘
   - 刷新系统识别
   - 扩展分区
   - 扩展物理卷
   - 扩展逻辑卷
   - 扩展文件系统
   - 验证结果
   ↓
7. 记录操作过程和结果

十、风险提醒

10.1 数据风险

  • LVM 扩容通常安全,但仍建议备份关键数据
  • 扩容前检查文件系统是否有损坏(xfs_repaire2fsck
  • 扩容过程中若断电或系统崩溃,可能导致文件系统损坏

10.2 操作风险

  • 扩容命令写错可能导致逻辑卷或卷组无法使用
  • 删除命令(lvremovevgremovepvremove)会导致数据丢失
  • 扩容前确认设备路径,避免操作错误的磁盘

10.3 性能风险

  • 扩容过程中,文件系统扩展可能消耗较多 CPU 和 I/O 资源
  • 建议在业务低峰期操作
  • 扩容大容量逻辑卷时,文件系统扩展可能耗时较长

10.4 云服务器特殊风险

  • 部分云服务商扩容需要重启实例
  • 扩容后若未刷新系统识别,可能导致扩容失败
  • 扩容分区时操作错误可能导致数据丢失

10.5 文件系统特殊风险

  • xfs 仅支持扩容,不支持缩容
  • ext4 支持扩容和缩容,但缩容需要卸载文件系统
  • 扩容过程中不要中断操作

十一、验证方式

11.1 验证逻辑卷是否扩展

bash
lvs
lvdisplay /dev/centos/root

确认 LV Size 是否符合预期。

11.2 验证文件系统是否扩展

bash
df -h /

确认容量是否增加。

11.3 验证卷组剩余空间

bash
vgs

确认 VFree 是否减少。

11.4 验证物理卷是否添加

bash
pvs
vgdisplay centos

确认物理卷数量和卷组大小。

11.5 验证文件系统完整性

xfs:

bash
xfs_repair -n /dev/mapper/centos-root

-n 表示只检查,不修复。

ext4:

bash
e2fsck -n /dev/mapper/centos-root

11.6 验证业务是否正常

  • 检查业务日志是否有异常
  • 检查应用是否能正常读写文件
  • 检查数据库是否能正常启动

十二、回滚方案

12.1 逻辑卷扩展失败

若 lvextend 执行失败,通常不会影响现有数据。

检查错误信息,确认问题:

  • 卷组剩余空间不足:添加物理卷或释放空间
  • 设备路径错误:确认逻辑卷路径
  • 文件系统已满:清理文件后再扩展

12.2 文件系统扩展失败

若 xfs_growfs 或 resize2fs 执行失败,文件系统可能处于不一致状态。

xfs 修复:

bash
umount /
# 无法卸载根分区,需要进入单用户模式或使用 Live CD
xfs_repair /dev/mapper/centos-root
mount /

ext4 修复:

bash
umount /
e2fsck -f /dev/mapper/centos-root
mount /

12.3 扩容后系统无法启动

若扩容后系统无法启动,可能是 /etc/fstab 配置错误或文件系统损坏。

使用 Live CD 或救援模式进入系统:

  1. 检查 /etc/fstab 配置是否正确
  2. 检查文件系统是否损坏,使用 xfs_repair 或 e2fsck 修复
  3. 检查 grub 配置是否正确

12.4 缩容逻辑卷(ext4)

xfs 不支持缩容,ext4 支持但需要卸载文件系统。

风险提示:

  • 缩容前务必备份数据
  • 缩容可能导致数据丢失
  • 缩容后的大小必须大于已使用空间

步骤:

  1. 卸载文件系统
bash
umount /data
  1. 检查文件系统
bash
e2fsck -f /dev/centos/data
  1. 缩容文件系统
bash
resize2fs /dev/centos/data 50G
  1. 缩容逻辑卷
bash
lvreduce -L 50G /dev/centos/data
  1. 重新挂载
bash
mount /dev/centos/data /data
  1. 验证
bash
df -h /data

十三、生产环境注意事项

13.1 操作前准备

  • 通知相关人员,说明操作内容和可能影响
  • 备份关键数据
  • 准备回滚方案
  • 选择业务低峰期操作
  • 准备应急联系方式

13.2 操作中监控

  • 实时观察磁盘空间变化
  • 实时观察系统日志
  • 实时观察业务日志
  • 准备好回滚命令

13.3 操作后验证

  • 验证逻辑卷大小
  • 验证文件系统大小
  • 验证文件系统完整性
  • 验证业务是否正常
  • 持续观察一段时间,确认无异常

13.4 文档与记录

  • 记录操作时间、操作人、操作命令
  • 记录扩容前后的容量
  • 记录遇到的问题和解决方法
  • 更新运维文档
  • 更新 CMDB 或资产管理系统

13.5 预防措施

  • 建立磁盘空间告警,提前扩容
  • 定期检查磁盘使用率
  • 定期清理无用日志和文件
  • 建立日志轮转机制
  • 建立数据归档机制
  • 合理规划磁盘分区和逻辑卷大小

十四、常见问题处理

14.1 扩容后 df 显示大小未变化

原因:

  • 逻辑卷扩展了,但文件系统未扩展

解决:

bash
xfs_growfs /
# 或
resize2fs /dev/mapper/centos-root

14.2 pvresize 提示设备大小未变化

原因:

  • 系统未识别到磁盘扩容

解决:

bash
echo 1 > /sys/class/block/vda/device/rescan
partprobe /dev/vda
pvresize /dev/vda2

14.3 lvextend 提示卷组空间不足

原因:

  • 卷组剩余空间不足

解决:

  • 添加新物理卷到卷组
bash
pvcreate /dev/sdc
vgextend centos /dev/sdc
lvextend -L +50G /dev/centos/root

14.4 xfs_growfs 提示文件系统已是最大

原因:

  • 逻辑卷未扩展,或已扩展但大小与文件系统一致

解决:

  • 检查逻辑卷大小
bash
lvs
  • 若逻辑卷未扩展,先扩展逻辑卷
bash
lvextend -L +50G /dev/centos/root
xfs_growfs /

14.5 提示设备正在使用,无法操作

原因:

  • 设备被进程占用

解决:

  • 查看占用进程
bash
lsof /dev/mapper/centos-root
  • 停止相关进程或卸载设备
bash
umount /data

14.6 growpart 提示分区无法扩展

原因:

  • 分区后有其他分区,无法扩展

解决:

  • 检查分区表
bash
fdisk -l /dev/vda
  • 若分区后有其他分区,需要先删除或移动

14.7 扩容后系统变慢

原因:

  • 文件系统扩展过程消耗 I/O 资源

解决:

  • 等待文件系统扩展完成
  • 检查 I/O 负载
bash
iostat -x 1

14.8 提示 PE 大小不匹配

原因:

  • 卷组 PE 大小与指定的不一致

解决:

  • 使用 -l 参数指定 PE 数量而非大小
bash
lvextend -l +100%FREE /dev/centos/root

十五、总结

LVM 是 Linux 下灵活的磁盘管理工具,支持在线扩容,无需停机,无需数据迁移。

核心流程:

  1. 检查磁盘空间和 LVM 状态
  2. 若卷组有剩余空间,直接扩展逻辑卷
  3. 若卷组空间不足,添加新物理卷到卷组
  4. 扩展逻辑卷
  5. 扩展文件系统
  6. 验证扩容结果

关键要点:

  • 扩容前备份关键数据
  • 确认文件系统类型,选择正确的扩展命令
  • 云服务器扩容需要先在控制台扩展磁盘,再在系统内识别
  • xfs 仅支持扩容,不支持缩容
  • ext4 支持扩容和缩容
  • 扩容过程中不要中断操作
  • 扩容后验证逻辑卷、文件系统、业务是否正常

常见场景:

  • 卷组有剩余空间:直接扩展逻辑卷和文件系统
  • 卷组空间不足:添加物理卷到卷组,再扩展
  • 云服务器扩容:控制台扩容 → 系统识别 → 扩展分区 → 扩展物理卷 → 扩展逻辑卷 → 扩展文件系统

风险控制:

  • 备份数据
  • 选择业务低峰期操作
  • 检查文件系统完整性
  • 准备回滚方案
  • 操作后充分验证

预防机制:

  • 建立磁盘空间告警
  • 定期检查磁盘使用率
  • 定期清理无用文件
  • 建立日志轮转和数据归档机制
  • 合理规划磁盘分区和逻辑卷大小

通过本文的完整流程,可以安全高效地完成 Linux 磁盘 LVM 扩容,确保业务连续性,避免因磁盘空间不足导致的服务中断。

文末福利

今天给大家分享一份超级牛掰的Linux学习笔记,足足有1456页!是一位Linux运维大佬整理分享的,分享是获得大佬同意的,大家有需要的尽管收藏起来!

笔记介绍

这份笔记非常全面且详细,从Linux基础到shell脚本,再到防火墙、数据库、日志服务管理、Nginx、高可用集群、Redis、虚拟化、Docker等等,与其说Linux学习笔记,不如说是涵盖了运维各个核心知识。

并且图文并茂,代码清晰,每一章下面都有更具体详细的内容,十分适合Linux运维学习参考!

笔记展示

笔记下载

扫描下方二维码,回复暗号1456页Linux笔记“,即可100%免费领取成功

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-08-21 17:46:43 HTTP/2.0 GET : https://f.mffb.com.cn/a/510148.html
  2. 运行时间 : 0.157325s [ 吞吐率:6.36req/s ] 内存消耗:4,591.69kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=c7b73b974c95e569190f6fd2ed3bf72c
  1. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_static.php ( 4.90 KB )
  7. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  10. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  11. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  12. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  13. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  14. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  15. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  16. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  17. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  18. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  19. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  21. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  22. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/provider.php ( 0.19 KB )
  23. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  24. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  25. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  26. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/common.php ( 0.03 KB )
  27. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  28. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  29. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/app.php ( 0.95 KB )
  30. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cache.php ( 0.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/console.php ( 0.23 KB )
  32. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cookie.php ( 0.56 KB )
  33. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/database.php ( 2.48 KB )
  34. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  35. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/filesystem.php ( 0.61 KB )
  36. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/lang.php ( 0.91 KB )
  37. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/log.php ( 1.35 KB )
  38. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/middleware.php ( 0.19 KB )
  39. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/route.php ( 1.89 KB )
  40. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/session.php ( 0.57 KB )
  41. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/trace.php ( 0.34 KB )
  42. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/view.php ( 0.82 KB )
  43. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/event.php ( 0.25 KB )
  44. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  45. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/service.php ( 0.13 KB )
  46. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/AppService.php ( 0.26 KB )
  47. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  48. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  49. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  50. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  51. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  52. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/services.php ( 0.14 KB )
  53. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  54. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  55. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  56. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  57. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  58. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  59. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  60. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  61. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  62. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  63. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  64. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  65. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  66. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  67. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  68. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  69. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  70. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  71. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  72. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  73. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  74. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  75. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  76. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  77. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  78. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  79. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  80. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  81. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  82. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  83. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/Request.php ( 0.09 KB )
  84. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  85. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/middleware.php ( 0.25 KB )
  86. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  87. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  88. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  89. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  90. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  91. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  92. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  93. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  94. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  95. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  96. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  97. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  98. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  99. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/route/app.php ( 1.72 KB )
  100. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  101. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  102. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  103. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/controller/Index.php ( 4.81 KB )
  104. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/BaseController.php ( 2.05 KB )
  105. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  106. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  108. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  109. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  110. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  111. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  112. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  113. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  114. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  115. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  116. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  117. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  118. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  119. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  120. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  121. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  122. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  123. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  124. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  125. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  126. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  127. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  128. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  129. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  130. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  131. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  132. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  133. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  134. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  135. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  136. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  137. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  138. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  139. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/runtime/temp/067d451b9a0c665040f3f1bdd3293d68.php ( 11.98 KB )
  140. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000920s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001425s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000661s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000642s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001170s ]
  6. SELECT * FROM `set` [ RunTime:0.000584s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.001357s ]
  8. SELECT * FROM `article` WHERE `id` = 510148 LIMIT 1 [ RunTime:0.001279s ]
  9. UPDATE `article` SET `lasttime` = 1787305603 WHERE `id` = 510148 [ RunTime:0.029456s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 67 LIMIT 1 [ RunTime:0.000796s ]
  11. SELECT * FROM `article` WHERE `id` < 510148 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.001241s ]
  12. SELECT * FROM `article` WHERE `id` > 510148 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.012353s ]
  13. SELECT * FROM `article` WHERE `id` < 510148 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.012387s ]
  14. SELECT * FROM `article` WHERE `id` < 510148 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.004044s ]
  15. SELECT * FROM `article` WHERE `id` < 510148 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.002807s ]
0.161094s