温馨提示×

CentOS Stream 8磁盘空间优化策略

小樊
43
2025-11-05 18:43:01
栏目: 云计算

CentOS Stream 8磁盘空间优化策略

1. 监控磁盘空间使用情况

定期使用df -h命令查看各分区使用率(重点关注Use%列),快速定位空间不足的分区;使用df -i命令检查inode使用率(若inode耗尽,即使磁盘空间充足也无法创建文件);使用du -sh /path/to/directory | sort -rh | head -20命令找出占用空间最大的前20个目录,精准定位大文件位置。

2. 清理无用文件与缓存

  • 清理YUM/DNF缓存:运行yum clean all(或dnf clean all)清除软件包缓存,释放/var/cache/yum/var/cache/dnf目录空间;
  • 清理临时文件:删除/tmp目录下所有临时文件(rm -rf /tmp/*),该目录文件通常无需长期保留;
  • 释放内存缓存:执行sync同步内存数据到磁盘,再通过echo 3 > /proc/sys/vm/drop_caches释放pagecache、dentries和inodes缓存(不影响正在运行的程序);
  • 删除旧日志文件:使用find /var/log -type f -name "*.log" -mtime +30 -exec rm -f {} \;命令删除30天前的.log文件,或通过logrotate工具(编辑/etc/logrotate.conf)设置日志轮转规则(如保留5周内的日志、压缩旧日志),避免日志无限增长。

3. 删除冗余软件与内核

  • 移除孤立包:使用package-cleanup --quiet --leaves --exclude-bin | xargs yum remove -y命令删除不再被任何软件包依赖的孤立包(如编译时产生的临时包);
  • 删除旧内核:保留当前使用的2个内核版本(避免系统无法启动),运行package-cleanup --oldkernels --count=2命令删除旧内核,释放/boot分区空间(/boot分区通常较小,易满)。

4. 管理日志文件

  • 截断大日志文件:对于正在增长的超大日志文件(如/var/log/messages),使用find /var/log -type f -name "*.log" -size +50M -mtime +7 -exec truncate -s 0 {} \;命令清空文件内容(不影响日志服务运行);
  • 配置日志轮转:编辑/etc/logrotate.conf文件,调整轮转参数(如rotate 5表示保留5个归档日志、weekly表示每周轮转、compress表示压缩旧日志、missingok表示忽略缺失日志文件),实现日志自动管理。

5. 扩展磁盘空间

  • 创建新分区并挂载:使用fdisk /dev/sdX(X为磁盘标识,如sdb)创建新分区,格式化为ext4xfs文件系统(mkfs.ext4 /dev/sdb1),创建挂载点(mkdir /mnt/data),挂载分区(mount /dev/sdb1 /mnt/data),并通过echo '/dev/sdb1 /mnt/data ext4 defaults 0 0' >> /etc/fstab实现开机自动挂载;
  • 使用LVM扩展分区:若系统采用LVM(逻辑卷管理),可通过pvresize扩展物理卷、vgextend扩展卷组、lvextend扩展逻辑卷,最后使用resize2fs(ext4)或xfs_growfs(xfs)调整文件系统大小,实现动态扩容(无需卸载分区,适用于生产环境)。

6. 使用数据缩减工具

  • VDO(Virtual Data Optimizer):通过yum install vdo kmod-kvdo安装,使用vdo create --name=myvolume --device=/dev/sdb创建VDO卷,再在其上创建文件系统(mkfs.xfs /dev/mapper/myvolume),VDO可实时压缩数据(节省约30%-50%磁盘空间)并去重;
  • Stratis:通过yum install stratisd stratis-cli安装,使用stratis pool create mypool /dev/sdb创建存储池,stratis filesystem create mypool myfs创建文件系统,Stratis提供分层存储(如热数据、冷数据分离)和数据压缩功能,简化存储管理。

0