1. 监控磁盘空间使用情况
优化存储空间的第一步是明确当前磁盘使用状态,避免盲目操作。常用命令包括:
df -h:查看各文件系统的总容量、已用空间、可用空间及挂载点,快速定位空间不足的分区(如根分区/或/var);df -i:查看inode使用情况,若inode耗尽(Use%接近100%),即使磁盘空间充足也无法创建新文件;du -sh /path/to/directory | sort -rh | head -20:递归统计指定目录下各子目录的大小,找出占用空间最大的前20个目录(如/var/log、/home)。2. 清理无用文件与缓存
系统运行过程中会产生大量临时文件、旧日志和缓存,定期清理可快速释放空间:
sudo yum clean all(YUM)或sudo dnf clean all(DNF),删除下载的软件包缓存;sudo rm -rf /tmp/*删除/tmp目录下的临时文件(系统重启后会自动重建);find /var/log -type f -name "*.log" -mtime +30 -exec rm -f {} \;命令,删除/var/log下修改时间超过30天的日志文件;package-cleanup --quiet --leaves --exclude-bin | xargs yum remove -y删除不再需要的孤立软件包(仅依赖其他包的残留文件);package-cleanup --oldkernels --count=2。3. 管理日志文件
日志文件(如/var/log/messages、/var/log/secure)可能随时间快速增长,需通过以下方式控制其大小:
find /var/log -type f -name "*.log" -size +50M -mtime +7 -exec truncate -s 0 {} \;命令,将超过50MB且修改时间超过7天的日志文件清空(保留文件权限);/etc/logrotate.conf文件,调整轮转策略(如保留5份周日志、压缩旧日志、延迟压缩),示例配置:/var/log/messages {
rotate 5
weekly
compress
delaycompress
missingok
notifempty
create 0640 root utmp
postrotate
/usr/bin/killall -HUP syslogd
endscript
}
```。
4. 利用LVM动态扩展存储
若系统使用LVM(逻辑卷管理),可通过动态调整逻辑卷大小来扩展存储,无需重新分区:
pvresize /dev/sdX扩展物理卷(如/dev/sdb1);vgextend vg_name /dev/sdX(vg_name为卷组名称,可通过vgs查看);lvextend -L +10G /dev/vg_name/lv_name扩展逻辑卷(如/dev/vg_root/lv_root),+10G表示增加10GB空间;resize2fs /dev/vg_name/lv_name,XFS使用xfs_growfs /mount/point(如/)。5. 使用存储优化工具
sudo yum install vdo kmod-kvdo -y
sudo systemctl restart vdo
sudo vdo create --name=vdo_vol --device=/dev/sdX --vdoLogicalSize=100G # 指定设备和逻辑大小
sudo lvcreate -n lv_vdo -L 100G vg_name # 创建逻辑卷
sudo mkfs.xfs /dev/vg_name/lv_vdo # 格式化
sudo mount /dev/vg_name/lv_vdo /mnt/vdo # 挂载
sudo yum install stratisd stratis-cli -y
sudo systemctl enable --now stratisd
sudo stratis pool create mypool /dev/sdX # 创建存储池
sudo stratis filesystem create mypool myfs # 创建文件系统
sudo mount /dev/stratis/mypool/myfs /mnt/stratis # 挂载
```。
6. 压缩文件与分区
tar+gzip压缩,命令为tar -czvf archive.tar.gz /path/to/files;mount -o compress=zstd /dev/sdX /mnt),减少存储占用。7. 设置磁盘配额
对于多用户系统,可通过磁盘配额限制用户/组的存储空间,防止个别用户占用过多空间:
sudo yum install quota -y;/etc/fstab文件,在对应挂载点选项中添加usrquota,grpquota(如/dev/sda1 / ext4 defaults,usrquota,grpquota 0 0);sudo quotacheck -cug /;sudo quotaon /;edquota -u username编辑用户限额(软限制:警告阈值;硬限制:强制阈值)。8. 扩展物理磁盘空间
若上述方法无法满足需求,可考虑扩展物理磁盘:
fdisk /dev/sdX创建新分区,格式化后挂载到指定目录(如/mnt/newdisk);/etc/fstab文件,确保重启后自动挂载。