行业资讯
📅 2026/8/16 18:14:59
Linux磁盘管理:从基础命令到高级监控全解析
1. Linux磁盘信息查看方法概述在Linux系统管理中磁盘信息查看是最基础也是最重要的运维技能之一。无论是排查存储空间不足问题还是规划磁盘分区方案亦或是监控磁盘I/O性能掌握全面的磁盘信息查看方法都是系统管理员必备的能力。我管理过的服务器中90%的存储相关问题都可以通过正确的磁盘信息诊断工具快速定位。不同于图形化操作系统Linux提供了丰富的命令行工具来获取不同维度的磁盘数据每种工具都有其特定的适用场景和输出解读方式。对于Linux新手来说最常遇到的困惑是为什么我的磁盘显示100%使用了但通过du统计却找不到大文件为什么df和lsblk显示的磁盘大小不一致这些问题都需要我们对Linux磁盘管理机制有系统性的认识。2. 基础磁盘容量查看工具2.1 df命令详解dfdisk filesystem是最常用的磁盘空间检查工具其基本用法是df -h这里的-h参数表示human-readable以GB、MB等易读单位显示。典型输出如下Filesystem Size Used Avail Use% Mounted on /dev/nvme0n1p2 196G 25G 162G 14% / tmpfs 3.9G 0 3.9G 0% /dev/shm关键字段解析Filesystem实际设备或虚拟文件系统名称Use%这个数值达到90%以上就需要引起警惕Mounted on挂载点路径/表示根分区经验提示当Use%达到100%时系统可能变得极不稳定。建议设置监控在85%时报警高级用法组合df -hT --total # 显示文件系统类型并计算总量 df -i # 查看inode使用情况(小文件多的系统要特别关注)2.2 du命令深度使用dudisk usage用于统计目录和文件的磁盘使用量与df形成互补du -sh /var/log # 查看/var/log目录总大小 du -ah --max-depth1 /home | sort -hr # 找出/home下占用最大的子目录实用技巧结合sort -hr对结果排序h-human, r-reverse使用--time显示文件修改时间--exclude参数可以排除特定模式的文件常见问题du统计结果远小于df显示的已用空间可能是被删除但仍被进程占用的文件用lsof | grep deleted查找3. 磁盘设备与分区信息3.1 lsblk专业解读lsblk以树状结构显示块设备信息是分析磁盘分区布局的利器lsblk -o NAME,SIZE,FSTYPE,MOUNTPOINT,LABEL,UUID输出示例NAME SIZE FSTYPE MOUNTPOINT LABEL UUID nvme0n1 256G ├─nvme0n1p1 512M vfat /boot/efi ESP 67E3-17ED └─nvme0n1p2 255G ext4 / rootfs d8939c8e-1234-5678重要参数-d只显示磁盘不显示分区-p显示完整设备路径(/dev/nvme0n1)-b以字节显示精确大小3.2 fdisk与parted对比查看分区表详细信息sudo fdisk -l # 传统MBR分区信息 sudo parted -l # 支持GPT分区的更现代工具关键区别fdisk适用于MBR(最大2TB磁盘)parted支持GPT大容量磁盘对于NVMe设备设备名通常是/dev/nvme0n1而非传统的/dev/sda4. 高级磁盘信息获取4.1 smartctl检测磁盘健康安装smartmontools后可以获取SSD/HDD的S.M.A.R.T信息sudo smartctl -a /dev/nvme0n1 # 对NVMe磁盘 sudo smartctl -a /dev/sda # 对传统SATA磁盘需要关注的健康指标Reallocated_Sector_Ct重映射扇区数Temperature_Celsius运行温度Power_On_Hours通电时长Media_Wearout_IndicatorSSD磨损度(百分比)4.2 iostat实时监控IOiostat -x 1 # 每1秒刷新一次扩展统计关键指标解读%util设备利用率(接近100%表示IO瓶颈)await平均IO等待时间(ms)r/s w/s读写IOPS4.3 lshw查看硬件详情获取完整的硬件拓扑信息sudo lshw -class disk -class storage输出包含控制器类型、驱动型号、固件版本等深度信息适合硬件故障排查。5. 图形化工具替代方案5.1 ncdu交互式分析对于不喜欢命令行的用户可以安装ncdusudo apt install ncdu ncdu / # 扫描根目录操作提示方向键导航d删除文件n按文件名排序5.2 GNOME Disk Utility图形界面工具提供磁盘健康状态可视化基准测试功能分区表编辑(谨慎使用)6. 企业级监控方案6.1 PrometheusGranfa监控配置node_exporter的textfile收集器添加自定义指标#!/bin/bash echo node_disk_usage_percent $(df --outputpcent / | tail -1 | tr -d %) /var/lib/node_exporter/disk_metrics.prom6.2 日志轮转配置防止日志占满磁盘sudo vim /etc/logrotate.conf推荐设置/var/log/*.log { daily missingok rotate 7 compress delaycompress notifempty create 640 root adm }7. 疑难问题排查指南7.1 磁盘空间莫名消失排查步骤lsof L1查看被删除但仍被占用的文件find / -xdev -type f -size 100M查找大文件检查docker/var/lib目录docker system df7.2 修复文件系统错误sudo umount /dev/sda1 sudo fsck -y /dev/sda17.3 LVM相关命令vgs # 查看卷组 lvs # 查看逻辑卷 pvs # 查看物理卷 lvdisplay -m # 显示逻辑卷映射关系8. 性能优化建议使用noatime挂载选项减少元数据写入# /etc/fstab示例 UUIDd8939c8e-1234-5678 / ext4 defaults,noatime 0 1针对SSD优化调度器echo kyber /sys/block/nvme0n1/queue/scheduler调整vm.swappiness降低交换倾向sysctl vm.swappiness10掌握这些磁盘信息查看方法后你将能从容应对以下典型场景快速定位哪个目录占用了过多空间预判磁盘故障风险规划存储扩容方案优化系统IO性能排查服务异常与磁盘相关的故障在实际生产环境中我建议将这些命令封装成监控脚本定期收集关键指标并设置告警阈值。对于重要的服务器可以配置smartd守护进程实时监控磁盘健康状态。