温馨提示×

如何优化centos虚拟机的存储空间

小樊
54
2025-09-17 16:48:52
栏目: 云计算

一、清理不必要的文件与缓存

删除临时文件与旧备份:使用sudo rm -rf /tmp/*清理/tmp目录下的临时文件(重启后会自动重建);检查/backup/old_data等自定义备份目录,删除过期或无用的备份文件。
清理YUM缓存:运行sudo yum clean all清除YUM软件包管理器的缓存(包括已下载的软件包和元数据),释放/var/cache/yum目录空间。
清空大日志文件:使用sudo du -sh /var/log/*查看/var/log目录下各日志文件大小,针对过大的日志(如messagesnginx/access.log),用sudo truncate -s 0 /var/log/log_file清空内容(不影响日志服务运行)。
删除孤立文件:通过sudo lsof | grep deleted查找已被删除但仍被进程占用的文件(显示为“deleted”状态),重启对应进程或直接终止进程(sudo kill -9 PID)释放空间。

二、使用存储管理工具优化

安装BleachBit:通过sudo yum install bleachbit安装,运行后选择清理项目(如缓存、日志、临时文件、回收站的文件),支持图形化操作,适合快速清理。
使用ncdu分析磁盘使用:安装ncdusudo yum install ncdu),运行ncdu /扫描根目录,通过交互式界面直观查看各目录占用空间,快速定位大文件或目录。

三、调整分区与逻辑卷大小

使用LVM动态扩展(推荐):若系统采用LVM管理磁盘,可通过以下步骤扩展空间:

  1. 扩展物理卷:将新增虚拟磁盘(如/dev/sdb)初始化为物理卷,sudo pvcreate /dev/sdb
  2. 扩展卷组:将物理卷添加到现有卷组(如centos),sudo vgextend centos /dev/sdb
  3. 扩展逻辑卷:扩展逻辑卷(如root)大小,sudo lvextend -L +50G /dev/mapper/centos-root(+50G表示增加50GB);
  4. 扩展文件系统:根据文件系统类型调整大小(ext4用resize2fs,XFS用xfs_growfs),例如sudo xfs_growfs /dev/mapper/centos-root
    传统分区调整:若未使用LVM,需关闭虚拟机进入维护模式,用fdisk /dev/sda删除旧分区(如/dev/sda2)并创建更大新分区,调整分区表后重启,最后扩展文件系统。

四、压缩与归档文件

压缩大文件/目录:使用tar命令将不常用的大文件(如旧项目文件、备份)压缩,例如tar -czvf old_project.tar.gz /path/to/old_project(gzip格式),或tar -cjvf old_project.tar.bz2 /path/to/old_project(bzip2格式,压缩率更高)。
透明数据缩减(VDO):安装VDO(sudo yum install vdo kmod-kvdo),创建VDO卷(sudo vdo create --name=my_vdo --device=/dev/sdc --vdoLogicalSize=100G),在VDO卷上创建LVM逻辑卷并挂载,可自动消除重复数据、压缩数据,减少实际磁盘占用。

五、优化软件与服务

清理无用软件包:使用package-cleanup工具(属于yum-utils包,sudo yum install yum-utils)查找并删除孤立包(sudo package-cleanup --leaves)和旧内核(sudo package-cleanup --oldkernels --count=1,保留最新1个内核)。
禁用不必要的服务:通过systemctl list-unit-files --type=service查看所有服务,禁用不需要的服务(如bluetoothcups打印服务),sudo systemctl disable service_name停止并禁用服务,减少后台进程对存储的占用。

六、监控与预防

定期检查磁盘使用:使用df -h查看各分区使用率(重点关注//home/var),用du -h --max-depth=1 /path(如du -h --max-depth=1 /var)查找占用高的目录,建立定期检查习惯。
设置磁盘空间告警:通过cron定时任务(如每天凌晨运行)结合df命令,当磁盘使用率超过阈值(如85%)时发送邮件告警,提前处理避免空间耗尽。

0