CentOS Trigger如何管理存储空间
导读:CentOS系统存储空间管理指南 存储空间管理是CentOS系统运维的重要环节,以下从查看现状、清理无用数据、扩展空间、优化配置、自动化维护五大维度总结具体方法,帮助释放空间并保持系统高效运行。 一、查看磁盘使用情况:定位空间瓶颈 在管理存...
CentOS系统存储空间管理指南
存储空间管理是CentOS系统运维的重要环节,以下从查看现状、清理无用数据、扩展空间、优化配置、自动化维护五大维度总结具体方法,帮助释放空间并保持系统高效运行。
一、查看磁盘使用情况:定位空间瓶颈
在管理存储空间前,需先明确空间占用情况,常用命令如下:
- 查看磁盘分区使用率:
df -h以人类可读格式(GB/MB)显示各分区的总大小、已用空间、可用空间及使用百分比,重点关注Use%接近100%的分区(如/根分区、/home分区)。 - 查找大文件/目录:
du -sh /* | sort -rh | head -n 10列出根目录下占用空间最大的前10个目录;du -sh /path/to/dir/*进一步查看指定目录下各子目录的大小;find / -type f -size +100M查找系统中大于100MB的文件(可调整+100M为其他阈值)。
二、清理无用数据:快速释放空间
1. 清理临时文件
临时文件(如/tmp、/var/tmp目录下的文件)通常无需长期保留,可直接删除:
sudo rm -rf /tmp/* /var/tmp/*
(注:重启系统后/tmp目录会自动重建,删除前需确认无正在运行的程序依赖这些文件。)
2. 清理日志文件
日志文件(如/var/log目录下的messages、secure、cron等)可能随时间积累变得非常大,可通过以下方式清理:
- 清空单个日志文件:
sudo truncate -s 0 /var/log/log_file(如/var/log/messages,需root权限)。 - 删除旧日志:
sudo find /var/log -type f -name "*.log" -mtime +30 -exec rm -f { } \;删除30天前的.log文件。 - 使用
logrotate工具:通过/etc/logrotate.conf配置日志轮转策略(如按大小或时间分割日志),并强制执行轮转:sudo logrotate -f /etc/logrotate.conf。
3. 清理包管理器缓存
YUM/DNF包管理器会缓存下载的软件包及元数据,占用/var/cache/yum或/var/cache/dnf目录空间,清理命令如下:
- YUM:
sudo yum clean all(清理所有缓存,包括软件包和元数据)。 - DNF:
sudo dnf clean all(同上,适用于CentOS 8及以上版本)。
4. 删除不必要的软件包
卸载不再使用的软件包可释放大量空间:
- 卸载指定软件:
sudo yum remove package_name或sudo dnf remove package_name(如sudo yum remove vim-enhanced)。 - 自动卸载孤立依赖:
sudo yum autoremove或sudo dnf autoremove(删除系统中无其他软件依赖的包)。 - 清理旧内核:旧内核版本会占用空间,保留最近1-2个版本即可:
sudo package-cleanup --oldkernels --count=1(仅保留1个旧内核)。
5. 清理大文件与孤立文件
- 查找并删除大文件:使用
find命令定位大文件后,手动确认并删除(如sudo find / -type f -size +500M -exec ls -lh { } \;查找大于500MB的文件,确认无误后添加-exec rm -f { } \;删除)。 - 清理孤立文件:被进程占用但已删除的文件(显示为“deleted”状态)会继续占用空间,通过
lsof | grep deleted查找此类文件,重启对应进程或终止进程以释放空间。
三、扩展存储空间:解决长期空间不足
若清理后仍空间不足,需通过扩展存储解决,常见方式如下:
1. 添加新磁盘并挂载
- 物理添加硬盘:将新硬盘插入服务器,通过
lsblk命令查看新硬盘设备名(如/dev/sdb)。 - 分区与格式化:使用
fdisk /dev/sdb创建分区(如/dev/sdb1),格式化为所需文件系统(如sudo mkfs.ext4 /dev/sdb1)。 - 挂载与自动挂载:创建挂载点(如
/mnt/newdisk),临时挂载sudo mount /dev/sdb1 /mnt/newdisk;编辑/etc/fstab文件添加一行(如/dev/sdb1 /mnt/newdisk ext4 defaults 0 0)实现开机自动挂载。
2. 使用LVM扩展逻辑卷(推荐)
LVM(逻辑卷管理)支持动态调整分区大小,适用于需要灵活扩展的场景:
- 查看当前存储状态:
pvdisplay(查看物理卷)、vgdisplay(查看卷组剩余空间)、lvdisplay(查看逻辑卷大小)。 - 扩展逻辑卷:若卷组有剩余空间,使用
lvextend -L +10G /dev/mapper/centos-root扩展根分区10GB(+10G表示增加10GB,可根据需求调整);若卷组无剩余空间,需先扩展卷组(见下一步)。 - 扩展卷组:添加新物理卷到卷组(如
pvcreate /dev/sdb1创建物理卷,vgextend centos /dev/sdb1将物理卷加入卷组centos)。 - 扩展文件系统:LV扩展后,需同步扩展文件系统:ext4文件系统用
resize2fs /dev/mapper/centos-root,XFS文件系统用xfs_growfs /dev/mapper/centos-root。
四、优化存储配置:提升空间利用率
1. 使用VDO减少实际占用
VDO(虚拟数据优化器)通过重复数据删除(相同数据只存一份)和压缩(减少数据体积)降低磁盘实际使用量,适用于存储大量重复数据的场景(如备份、虚拟机镜像):
- 安装VDO:
sudo yum -y install vdo kmod-kvdo。 - 创建VDO卷:
sudo vdo create --name=vdo1 --device=/dev/sdb1 --vdoLogicalSize=100G(将/dev/sdb1创建为100GB的VDO卷)。 - 格式化并挂载:
sudo mkfs.xfs /dev/mapper/vdo1,创建挂载点并挂载(如/mnt/vdo)。
2. 调整I/O调度器与缓存
- 调整I/O调度器:不同工作负载适合不同调度器(如
deadline适合数据库,noop适合SSD),通过cat /sys/block/sda/queue/scheduler查看当前调度器,修改/sys/block/sda/queue/scheduler文件(如写入deadline)设置。 - 优化文件系统缓存:调整
/etc/sysctl.conf中的vm.dirty_ratio(脏页比例,如设为10)和vm.dirty_background_ratio(后台刷脏页比例,如设为5),提升缓存效率。
五、自动化维护:定期执行清理任务
为避免空间问题反复出现,需设置定时任务自动执行清理操作:
- 清理日志:编辑
/etc/logrotate.conf,设置rotate 7(保留7天日志)、size 100M(超过100MB则轮转),并添加compress(压缩旧日志)选项;或通过crontab -e添加0 3 * * * /usr/sbin/logrotate /etc/logrotate.conf(每天凌晨3点执行)。 - 清理缓存:添加
0 4 * * * /usr/bin/yum clean all(每天凌晨4点清理YUM缓存)或0 5 * * * /usr/bin/dnf clean all(适用于DNF)。 - 查找大文件:添加
0 6 * * * /usr/bin/find / -type f -size +100M -exec ls -lh { } \; > /var/log/large_files.log(每天凌晨6点记录大于100MB的文件)。
注意事项:
- 操作前务必备份重要数据(如
/etc、/home、数据库文件),防止误删导致数据丢失。 - 使用
rm -rf命令时需谨慎,建议先使用ls命令确认目标文件/目录。 - 定期检查系统日志(如
/var/log/messages、/var/log/syslog),及时发现磁盘空间异常增长的原因(如日志暴增、进程泄漏)。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: CentOS Trigger如何管理存储空间
本文地址: https://pptw.com/jishu/746102.html
