当前位置:首页>Linux>Linux 系统管理篇(七):LVM、RAID 与文件系统原理

Linux 系统管理篇(七):LVM、RAID 与文件系统原理

  • 2026-08-19 00:25:45
Linux 系统管理篇(七):LVM、RAID 与文件系统原理

磁盘不够用了?不用慌,LVM 让你在线扩容;担心数据丢失?RAID 给你冗余保障。

在上一篇文章中,我们学习了内存与磁盘的基础管理命令(free、df、fdisk、mount 等)。这一篇我们深入存储管理的进阶话题:逻辑卷管理(LVM)、磁盘阵列(RAID)以及文件系统的底层原理。这些知识是应对磁盘空间不足、保障数据安全、理解“磁盘空间去哪了”等问题的关键。

一、逻辑卷管理 LVM:让磁盘扩容不再停机

传统分区管理中,分区的容量是固定的。当分区空间不足时,需要备份数据、重新分区、再恢1复数据——这个过程通常需要停机,对于生产环境来说难以接受。

LVM(Logical Volume Manager)就是为了解决这个问题而生的。它把多块物理硬盘抽象为一个统一的存储池,在这个池子上按需分配空间,并且支持在线扩容

1.1 LVM 的分层架构

LVM 将磁盘管理抽象为四个层级,每一层都是对下层的进一步虚拟化:

层级
说明
管理命令
物理卷 PV
在物理磁盘或分区上创建
pvcreate
pvspvdisplay
卷组 VG
由一个或多个 PV 组成的存储池
vgcreate
vgsvgdisplay
逻辑卷 LV
从 VG 中划分的逻辑存储单元,可动态调整大小
lvcreate
lvslvdisplay

核心优势

  • • 可以跨多个物理硬盘组成一个逻辑卷
  • • 支持在线扩容(无需卸载文件系统)
  • • 支持快照功能(快速备份和恢复)

1.2 创建 LVM 的完整流程

我们以新增两块硬盘 /dev/sdb 和 /dev/sdc 为例。

第一步:创建物理卷 PV

pvcreate /dev/sdb /dev/sdc # 将两块物理磁盘初始化为 PVpvs                        # 验证 PV 创建结果

第二步:创建卷组 VG

# 将两个 PV 合并为一个 VG,命名为 vg1vgcreate vg1 /dev/sdb /dev/sdc# 验证 VG,关注 VFree(可用空间)vgs                 

第三步:创建逻辑卷 LV

# 从 vg1 中划分 100M 的逻辑卷lvcreate -L 100M -n lv1 vg1# 或使用全部剩余空间# lvcreate -l 100%FREE -n lv1 vg1lvs                 # 验证

第四步:格式化和挂载

# 创建 XFS 文件系统(CentOS 7+ 默认)mkfs.xfs /dev/vg1/lv1# 挂载到目录mkdir /mnt/lv1mount /dev/vg1/lv1 /mnt/lv1# 永久生效 — 写入 /etc/fstabecho "/dev/vg1/lv1 /mnt/lv1 xfs defaults 0 0" >> /etc/fstab

1.3 LVM 动态扩容(在线操作,无需停机)

场景:卷组空间不足,新增一块硬盘 /dev/sdd

第一步:扩充卷组

pvcreate /dev/sddvgextend vg1 /dev/sddvgs                 # VFree 应已增加

第二步:扩充逻辑卷

# 增加 50G 空间lvextend -L +50G /dev/vg1/lv1# 或使用全部剩余空间:lvextend -l 100%FREE /dev/vg1/lv1

第三步:扩容文件系统(关键步骤)

逻辑卷扩容后,文件系统还不知道空间变大了,需要单独执行文件系统扩容命令:

# XFS 文件系统(CentOS 7 默认)— 参数是挂载点xfs_growfs /mnt/lv1# EXT4 文件系统 — 参数是设备路径resize2fs /dev/vg1/lv1

验证

df -h /mnt/lv1      # 确认文件系统已扩容lvs                 # 确认 LV 已扩容

1.4 LVM 快照:秒级备份与回滚

快照基于写时复制(Copy-On-Write)机制:创建瞬间不复制任何数据,仅在原卷数据被修改时才将旧数据拷贝到快照区。因此快照创建几乎是瞬时的,空间开销仅取决于快照期间有多少数据发生了变化。

第一步:创建快照

# 为 lv1 创建一个 1G 的快照卷# 快照大小取决于备份期间预计修改的数据量lvcreate -L 1G -s -n lv1_snap /dev/vg1/lv1lvs                 # 可看到 lv1_snap 的 Snap% 列

第二步:挂载快照并备份

# 以只读方式挂载快照mount -o ro /dev/vg1/lv1_snap /mnt/snap# 从快照中备份 — 此时获取的是创建快照时刻的数据一致性视图tar -czf /backup/lv1_$(date +%F).tar.gz -C /mnt/snap .# 备份完成后卸载并删除快照umount /mnt/snaplvremove -f /dev/vg1/lv1_snap

第三步:快照回滚(数据恢复)

# 回滚到快照创建时刻的状态# 注意:回滚会丢失快照创建后的所有数据变更umount /mnt/lv1lvconvert --merge /dev/vg1/lv1_snap# 重新激活逻辑卷(merge 操作在下次激活时生效)lvchange -an /dev/vg1/lv1lvchange -ay /dev/vg1/lv1mount /dev/vg1/lv1 /mnt/lv1

注意:如果快照空间(Snap%)达到 100%,快照将变为不可用状态,无法用于恢复。快照期间数据变更量较大时,应分配更大的快照空间,或尽快完成备份并删除快照。

1.5 LVM 精简配

精简配置(Thin Provisioning)允许逻辑卷的虚拟容量超过实际物理容量,按需分配实际存储空间。适合虚拟化环境和开发测试场景,但需要监控实际使用量防止耗尽物理空间。

# 创建精简池(实际物理空间)lvcreate -T vg1/thinpool -L 10G# 从精简池创建精简卷(虚拟容量可超过池大小)lvcreate -T vg1/thinpool -V 50G -n thin_lv1# 格式化并挂载mkfs.xfs /dev/vg1/thin_lv1mount /dev/vg1/thin_lv1 /mnt/thin1# 查看精简池使用情况lvs -o name,thin_pool,data_percent,metadata_percent

超配风险:如果所有精简卷的实际写入量总和超过精简池大小,将导致数据损坏。生产环境建议设置 thin_pool_autoextend_threshold 自动扩容阈值,并配合监控告警。

1.6 LVM 常用命令速查

操作
PV 命令
VG 命令
LV 命令
创建
pvcreatevgcreatelvcreate
查看
pvs
 / pvdisplay
vgs
 / vgdisplay
lvs
 / lvdisplay
扩容
-
vgextendlvextend
缩减
-
vgreducelvreduce
高危)
删除
pvremovevgremovelvremove
快照
-
-
lvcreate -s
扫描pvscanvgscanlvscan

生产环境警告:LVM 缩容(lvreduce)风险极高,可能导致数据丢失,如果必须缩容,需先缩小文件系统再缩小 LV,且 EXT4 缩容需卸载文件系统,XFS 不支持在线缩容。生产环境不建议操作。

二、RAID 磁盘阵列:用多块硬盘换安全或性能

RAID(Redundant Array of Independent Disks)通过将多块硬盘组合使用,实现比单块硬盘更高的可靠性、更高的性能或两者兼得。

2.1 RAID 的实现方式

方式
实现
优点
缺点
硬件 RAID
专用 RAID 卡
不占 CPU,支持热插拔和自动重建
成本高(2000+)
软件 RAID
Linux mdadm
零成本,配置灵活
消耗 CPU 资源

选型原则:服务器环境推荐硬件 RAID(带 BBu 缓存保护),个人学习或测试环境可使用软件 RAID。云服务器(AWS EBS、阿里云云盘)已在底层实现冗余,通常无需自行配置 RAID。

2.2 常用 RAID 级别对比

级别
最少磁盘
容量利用率
容错能力
读性能
写性能
典型用途
RAID 0
2
100%
极高
极高
临时数据/高速缓存
RAID 1
2
50%
单盘故障
中等
系统盘/关键日志
RAID 5
3
(n-1)/n
单盘故障
中等
文件服务器/通用存储
RAID 6
4
(n-2)/n
双盘故障
中等
大容量归档存储
RAID 10
4
50%
高冗余
极高
数据库/虚拟化主机
图 2:各 RAID 级别容量利用率与容错能力对比(以 4×1TB 磁盘为例)

2.3 mdadm 实战:从创建到故障恢复

以下是一个完整的软件 RAID 5 操作流程,涵盖创建、查看、故障模拟和重建。

第一步:安装 mdadm

# CentOS / RHELyum install mdadm -y# Ubuntu / Debianapt install mdadm -y

第二步:创建 RAID 5

# 使用 3 块磁盘创建 RAID 5,1 块作为热备盘mdadm --create --verbose /dev/md0 \  --level=5 \  --raid-devices=3 \  --spare-devices=1 \  /dev/sdb /dev/sdc /dev/sdd /dev/sde

第三步:查看 RAID 状态

# 查看同步进度(初始化时会有几小时的同步过程)cat /proc/mdstat# 查看详细信息mdadm --detail /dev/md0# 关键字段说明:# State : clean              — 正常状态# Rebuild Status : 30%       — 重建中(30% 进度)# Active Devices : 3          — 在线磁盘数# Working Devices : 4         — 工作磁盘数(含热备)

第四步:保存配置(重启后自动组装)

# CentOS / RHELmdadm --detail --scan >> /etc/mdadm.confdracut -H           # 更新 initramfs# Ubuntu / Debianecho 'DEVICE /dev/sdb /dev/sdc /dev/sdd /dev/sde' >> /etc/mdadm/mdadm.confmdadm --detail --scan >> /etc/mdadm/mdadm.confupdate-initramfs -u

第五步:模拟磁盘故障与重建

# 1. 标记磁盘为故障状态mdadm /dev/md0 --fail /dev/sdbcat /proc/mdstat      # 可看到热备盘自动开始重建# 2. 移除故障磁盘mdadm /dev/md0 --remove /dev/sdb# 3. 插入新磁盘并加入阵列mdadm /dev/md0 --add /dev/sdb# 4. 等待重建完成watch cat /proc/mdstat

热备盘的价值:配置 --spare-devices 热备盘后,当阵列中某块磁盘故障时,RAID 会自动使用热备盘开始重建,无需人工干预。对于 7×24 运行的生产环境,这是减少 MTTR(平均恢复时间)的关键配置。

2.4 选型建议

优先级
推荐级别
说明
性能优先
RAID 0
速度最快,但无冗余,单盘故障即全部数据丢失
安全优先
RAID 1 或 RAID 10
RAID 10 兼顾性能,RAID 1 成本更低(仅需 2 块盘)
平衡需求
RAID 5
性价比最高,适合 3 块以上磁盘的场景
数据库/虚拟机
RAID 10
金融、证券等高要求场景标准配置,随机 IO 性能远优于 RAID 5
超大容量归档
RAID 6
双盘容错,适合重建时间可能很长的大容量阵列

三、生产环境的组合方案:RAID + LVM

企业服务器的最佳实践是:先做硬件 RAID(获得冗余和性能),再在 RAID 逻辑盘上做 LVM(获得灵活扩容能力)。这两者并不互斥,而是互补关系。

3.1 组合架构

图 3:RAID 10 + LVM 生产架构 — 冗余、性能与灵活扩容的叠加
  1. 1. 硬件 RAID:确保单盘故障不影响业务运行,并提升读写性能。
  2. 2. LVM:在 RAID 提供的可靠存储之上,实现按需分配和在线扩容。

大多数企业级服务器的标准配置就是硬件 RAID 10 + LVM 管理

3.2 LVM 与 RAID 的定位差异

对比项LVMRAID
核心目的容量管理(灵活扩容、按需分配)性能 / 冗余(速度提升、数据安全)
数据保护无冗余,单盘故障可能导致数据丢失RAID 1/5/6/10 提供冗余
扩容能力在线扩容扩容复杂(通常需重建阵列)
性能提升RAID 0/10 提升读写

四、文件系统底层原理:inode 与数据块

理解文件系统的底层结构,能帮你更好地理解“磁盘空间去哪了”这类问题。

4.1 EXT4/XFS 的三层架构

超级块 → 记录整个分区的元数据(文件总数、空间使用情况、块大小)   ↓i节点(inode表) → 记录每个文件的元数据(大小、权限、时间戳、数据块指针、硬链接计数)   ↓数据块(block) → 实际存储文件内容,默认4KB,是最小的分配单元

超级块:位于文件系统开头,记录整个分区的文件总数空间使用情况df 命令能快速显示分区信息,就是因为直接读取了超级块的统计。超级块有多个副本分布在分区不同位置****,防止主超级块损坏导致数据丢失。

i 节点(inode):记录文件大小、权限、时间戳、数据块指针和链接数。文件名不存储在 inode 中,而是存储在父目录的 inode 所指向的数据块中——目录本质上是一个记录了文件名与 inode 编号映射关系的特殊文件。

数据块:实际存储文件内容,默认大小通常为 4KB,是文件系统分配空间的最小单元。

4.2 关键特性

空文件:只分配 inode,不分配数据块。

1 字节文件:虽然只有 1 个字节,但仍然占用一个完整的 4KB 数据块(默认 4KB)。

echo 1 > test.txtls -lh test.txt      # 显示 1B(文件逻辑大小)du -sh test.txt      # 显示 4.0K (实际磁盘占用)# 查看文件的 inode 编号ls -li test.txt

当磁盘报"No space left on device"但 df -h 显示仍有剩余空间时,通常是 inode 耗尽而非空间不足——大量小文件会消耗大量 inode。可用 df -i 查看 inode 使用率。

4.3 硬链接与软链接

特性
硬链接
软链接(符号链接)
inode
共享同一个 i 节点
有独立的 i 节点(指向目标路径)
删除原文件
数据仍然存在(链接计数减 1)
链接失效(断链)
跨文件系统
不支持
支持
目录链接
不支持(仅 root 可用特殊方式)
支持
创建命令ln file.txt hardlink.txtln -s file.txt softlink.txt

4.4 vi 修改文件时 i 节点的变化

vi 编辑文件时会创建临时文件 .file.txt.swp,保存时用临时文件替换原文件,因此 i 节点编号可能发生变化。而 echo "xxx" >> file.txt 追加内容不会改变 i 节点,因为它直接修改了原文件的数据块。

4.5 文件系统修复

当文件系统因异常断电、硬件故障等原因损坏时,需要使用专用工具进行修复。

XFS 文件系统修复

# 1. 卸载文件系统(修复前必须卸载)umount /mnt/lv1# 2. 检查文件系统(只检查不修复)xfs_repair -n /dev/vg1/lv1# 3. 修复文件系统xfs_repair /dev/vg1/lv1# 4. 重新挂载mount /dev/vg1/lv1 /mnt/lv1

EXT4 文件系统修复与超级块恢复

# 1. 卸载文件系统umount /dev/sda1# 2. 修复(-y 表示自动回答 yes)fsck.ext4 -y /dev/sda1# 如果主超级块损坏,使用备份超级块修复:# 3a. 查找备份超级块位置mke2fs -n /dev/sda1# 3b. 使用备份超级块修复(32768 是上一步输出的第一个备份块位置)e2fsck -b 32768 /dev/sda1

修复注意事项:文件系统修复可能删除损坏的文件或目录。修复前应尽可能先做完整磁盘镜像备份(如 dd if=/dev/sda1 of=/backup/sda1.img)。对于关键业务数据,建议联系专业数据恢复服务。

4.6 删除文件的本质

删除文件并不是立即清除数据块,而是断开文件名与 inode 的链接,将 inode 和数据块标记为空闲,等待数据块被后续写入覆盖。在被覆盖之前,数据仍然物理存在于磁盘上——这也是误删后应立即停止写入操作的原因,数据块被覆盖前仍有恢复可能。

误删后的第一原则:误删文件后应立即停止对所在分区的所有写入操作,甚至直接以只读模式重新挂载。每多一次写入,数据块被覆盖的概率就增加一分。可使用 extundelete(EXT4)或 xfs_undelete(XFS)等工具尝试恢复,或使用 debugfs 手动恢复。

五、XFS vs EXT4:如何选择文件系统

CentOS 7 起默认使用 XFS,而 Ubuntu 和 Debian 长期使用 EXT4。两者在设计理念和适用场景上有明显差异。

对比项
XFS
EXT4
默认发行版
CentOS 7+ / RHEL 7+
Ubuntu / Debian / 较早的 RHEL
最大文件大小
8 EB
16 TB
最大文件系统大小
8 EB
1 EB
大文件性能
优秀(并行 IO、高效的延迟分配)
良好
小文件性能
一般
优秀
在线扩容
支持(xfs_growfs,挂载点参数)
支持(resize2fs,设备参数)
在线缩容
不支持
支持(需卸载)
元数据日志
日志 + 写屏障
JBD2 日志
快照支持
通过 LVM 快照
通过 LVM 快照
碎片整理
xfs_fsr
(在线碎片整理)
e4defrag

选型建议

大文件存储(数据库、虚拟化、视频流)首选 XFS;小文件密集型场景(邮件服务器、代码仓库)可考虑 EXT4;如果未来可能需要缩容,只能选择 EXT4。在 LVM 之上,两者都支持在线扩容,运维差异不大。

六、磁盘配额与 Swap 管理

6.1 XFS 文件系统的磁盘配额

在多用户共享服务器时,可用配额限制用户磁盘使用量,防止个别用户占满整个分区。

挂载时启用配额

mount -o uquota,gquota /dev/sdb1 /mnt/disk1

设置用户配额(软限制 5 个文件,硬限制 10 个文件):

xfs_quota -x -c 'limit -u isoft=5 ihard=10 user1' /mnt/disk1

查看配额状态

xfs_quota -x -c 'report -ugibh' /mnt/disk1

注意:root 用户不受配额限制。在云原生环境下,更推荐通过 Kubernetes PVC 限制存储空间,传统磁盘配额的使用场景已大幅减少。EXT4 配额需使用 quota 工具包,配置方式与 XFS 不同。

6.2 交换分区 Swap 管理

Swap 是磁盘上的一块空间,当物理内存不足时充当虚拟内存。Swap 的速度远低于物理内存,应作为应急手段而非长期依赖。

# 查看当前 Swap 使用情况free -hswapon -s# 通过文件方式增加 Swap(40GB)dd if=/dev/zero of=/swapfile bs=4M count=10240chmod 600 /swapfilemkswap /swapfileswapon /swapfile# 永久生效 — 写入 /etc/fstabecho "/swapfile swap swap defaults 0 0" >> /etc/fstab

警告/etc/fstab 配置错误可能导致系统无法启动!修改后务必执行mount -a验证配置正确性,不确定时可先注释掉。

七、排查磁盘空间的完整流程

当磁盘空间告警时,按以下流程逐层排查:

  1. 1. 定位满了的分区
df -h                  # 查看各分区使用率df -i                  # 如果空间够但报 No space,检查 inode
  1. 2. 逐层排查大目录
# 进入满了的分区根目录cd /du -sh * 2>/dev/null | sort -h | tail -20
  1. 3. 查找大文件
# 查找 >100MB 的文件(-xdev 不跨文件系统)find / -xdev -type f -size +100M -exec ls -lh {} \; 2>/dev/null# 查找最近 7 天修改的大文件find / -xdev -type f -size +100M -mtime -7 -exec ls -lh {} \; 2>/dev/null
  1. 4. 检查已删除但仍被占用的文件
# 文件被删除但进程仍持有句柄时,空间不会释放lsof | grep deleted# 重启相关进程或 kill -HUP  即可释放空间
  1. 5. 在线扩容(如果确认是 LVM)
lvextend -L +50G /dev/vg1/lv1xfs_growfs /mnt/lv1    # XFS 用挂载点resize2fs /dev/vg1/lv1 # EXT4 用设备路径

八、落地实践:从裸盘到生产存储

将前面所有知识点串联起来,以下是一个完整的生产环境部署方案——从 4 块裸盘到运行中的业务存储,涵盖 RAID 创建、LVM 配置、文件系统格式化和挂载的全流程。

  1. 1. 创建 RAID 10
# 使用 4 块 2TB 磁盘创建 RAID 10mdadm --create --verbose /dev/md0 \  --level=10 \  --raid-devices=4 \  /dev/sdb /dev/sdc /dev/sdd /dev/sde# 等待初始化完成watch cat /proc/mdstat# 保存配置mdadm --detail --scan >> /etc/mdadm.confdracut -H  # 或 update-initramfs -u (Ubuntu)
  1. 2. 创建 LVM 结构
# 在 RAID 设备上创建 PVpvcreate /dev/md0# 创建卷组vgcreate vg_data /dev/md0# 创建逻辑卷(按业务需求分配)lvcreate -L 500G -n lv_app vg_datalvcreate -L 200G -n lv_log vg_datalvcreate -L 1T   -n lv_data vg_data# 验证vgslvs
  1. 3. 格式化与挂载
# 格式化(统一使用 XFS)mkfs.xfs /dev/vg_data/lv_appmkfs.xfs /dev/vg_data/lv_logmkfs.xfs /dev/vg_data/lv_data# 创建挂载点mkdir -p /app /var/log/app /data# 挂载mount /dev/vg_data/lv_app  /appmount /dev/vg_data/lv_log  /var/log/appmount /dev/vg_data/lv_data /data
  1. 4. 永久挂载配置
# 写入 /etc/fstab(使用 LV 设备路径或 UUID)cat >> /etc/fstab << 'EOF'/dev/vg_data/lv_app  /app          xfs  defaults,noatime  0 0/dev/vg_data/lv_log  /var/log/app  xfs  defaults,noatime  0 0/dev/vg_data/lv_data /data         xfs  defaults,noatime  0 0EOF# 验证 fstab 配置(重要!避免重启失败)mount -a
  1. 5. 后续扩容(按需)
# 场景:/data 空间不足,新增一块 4TB 磁盘扩容pvcreate /dev/sdfvgextend vg_data /dev/sdflvextend -l 100%FREE /dev/vg_data/lv_dataxfs_growfs /data       # 挂载点,不是设备路径df -h /data            # 验证扩容结果

noatime 挂载选项:在 fstab 中使用 noatime 选项可以禁止更新文件的访问时间(atime),减少不必要的磁盘写入,对 SSD 和高 IO 场景有明显的性能提升。对于日志文件和数据库数据文件尤其有效。

总结

LVM 解决的是容量灵活分配的问题——在线扩容、快照备份、精简配置是三个核心能力。RAID 解决的是性能和冗余问题——硬件 RAID 10 是数据库和虚拟化场景的标准配置,软件 RAID(mdadm)适合学习和测试环境。文件系统是存储的最后一层抽象——理解 inode、数据块和超级块的关系,才能高效排查磁盘空间问题和进行数据恢复。

生产环境的标准存储架构是 RAID 10 + LVM + XFS:RAID 10 提供冗余和性能,LVM 提供灵活扩容能力,XFS 提供大文件场景下的优秀性能和在线扩容支持。掌握这套架构的设计思路和操作流程,是运维工程师从初级走向资深的必经之路。

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-08-21 16:49:42 HTTP/2.0 GET : https://f.mffb.com.cn/a/510726.html
  2. 运行时间 : 0.389904s [ 吞吐率:2.56req/s ] 内存消耗:4,557.93kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=d688a75328c0626ddc692ff99b8dc741
  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.000901s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001467s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000717s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000674s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001411s ]
  6. SELECT * FROM `set` [ RunTime:0.022157s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.001611s ]
  8. SELECT * FROM `article` WHERE `id` = 510726 LIMIT 1 [ RunTime:0.001383s ]
  9. UPDATE `article` SET `lasttime` = 1787302182 WHERE `id` = 510726 [ RunTime:0.011410s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 67 LIMIT 1 [ RunTime:0.000711s ]
  11. SELECT * FROM `article` WHERE `id` < 510726 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.001114s ]
  12. SELECT * FROM `article` WHERE `id` > 510726 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.006073s ]
  13. SELECT * FROM `article` WHERE `id` < 510726 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.050771s ]
  14. SELECT * FROM `article` WHERE `id` < 510726 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.032411s ]
  15. SELECT * FROM `article` WHERE `id` < 510726 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.090823s ]
0.393783s