磁盘与存储

文件系统
/ (/dev/sda1) 54 GB / 80 GB · 67%
/home (/dev/sdb1) 80 GB / 200 GB · 40%
/boot/efi (/dev/sda15) 317 MB / 1 GB · 31%
存储设备
设备 大小 型号 健康度 (SMART) 温度 运行小时数 重分配扇区
sda SSD 80G QEMU HARDDISK OK 35°C 14,234 0
sdb SSD 200G Samsung SSD 870 OK 30°C 9,256 0

磁盘健康、剩余空间与 inode 陷阱

能把服务器放倒的磁盘问题有两种,而它们毫无相似之处。慢的那种是一块开始报废的硬盘,SMART 通常能提前看出来。快的那种是文件系统被填满,把服务一并拽下水:写不进去的数据库,就是停下来的数据库。

这一页两者都覆盖:按文件系统统计的占用、按硬盘列出的 SMART 属性,以及温度。在 SMART 的诸多属性中,真正能预告故障的只有重分配扇区计数、当前待处理扇区数和脱机无法纠正扇区数;其中任何一项一旦离开零,就直接订替换盘,不要等它给你确认。其余大多数数值的起伏都没什么意义。

inode 耗尽单独列出,因为它发生时实在让人摸不着头脑:磁盘报告还有剩余空间,写入却照样失败,而所有显而易见的地方都解释不了。原因是某个目录里塞着几十万个极小的文件——会话数据、邮件队列、从未轮转过的缓存——它吃光了文件系统固定的 inode 存量,却几乎没碰到容量。

磁盘还有第三种麻烦,它什么也不弄坏,只是让一切变慢:盘忙到进程得排队等它。用数字说就是 I/O wait,而它很少自己涨起来——背后通常是某件排好期的事:夜里的备份、一次索引重建、ClamAV 对整个文件系统的全盘扫描。如果服务器每次都在同一个钟点变沉,那要找的是日程表,不是故障。