Linux上磁盘空间清理和磁盘扩容方法总结
经常遇到linux空间满了, 但是垃圾清理软件又不如windows的丰富, 本文记录.
系统情况
OS环境为VMware上的Ubuntu-server20虚拟机, 上面跑有 Kind 的K8s集群. 最近服务突然异常, 看log发现是磁盘满了, 于是清理.
初始磁盘大小为40G, 装好系统和必备环境之后大小为 23G/40G, 其中4G是swap分区.
apt清理
首先是系统自带命令, 放心使用.
1 | apt-get autoclean #清理旧版本的软件缓存 |
此步约释放了约400MB空间
应用清理
如果有docker, docker system prune
即可自动清理
此步骤清理约 200MB 空间
其他应用的数据, 比如我的是K8s集群的失效的PV和PVC. 如果是其他应用请参照其他的.
即使服务已经删除, 但是PV©不会自动删除, 需要手动清理
1 | kubectl delete namespace deepflow --cascade=background |
此步骤清理约3G空间
手动清理
上面都是可以自动清理的, 下面的很多应用产生的数据得手动清理
首先查看磁盘占用情况
1 | df -h |
此时可以看到, 通常是var目录占大头.
如果有不需要的, 可以一级一级查找手动删(务必保证你知道在删什么).
终极方法
然而, 最后也只省下大约4G空间, 杯水车薪.
主观意向无法改变客观事实, 那就只好启动终极方法–磁盘扩容
因为我是VMware虚拟机, 扩容就相对方便. 如果是实体机那就加硬盘咯.
分区未占满
有可能是分区够大, 但是lvm逻辑卷没有占满. 如下排查.
查看大小
1 | fdisk -l # 查看设备 |
如图, 我的lvm逻辑分区没有占满磁盘分区.
如下命令扩充即可 (记得改自己的df -h
显示的磁盘名字)
1 | lvextend -l +100%FREE /dev/mapper/ubuntu--vg-ubuntu--lv |
分区已满需要扩容
首先在虚拟机设置里增加磁盘大小, 很简单不必多说.
1 | fdisk -l # 首先查看磁盘情况 |
如下配置, 输入m获取帮助
然后输入n
新建分区, 一路回车即可(默认会占满剩下的磁盘)
然后输入w
写入退出即可.
然后输入fdisk -l
会发现多了一个分区
如果要把这个新分区挂载到文件夹的话就输入如下.
1 | mount /dev/sda4 /<new-dir> |
如果是扩容就不需要挂载, 直接进行下面
1 | partprobe # 更新分区表 |
记住这个卷信息名字, 我的叫ubuntu-vg
然后就回到上面分区未占满时扩展逻辑卷的步骤了. 复述一遍
1 | lvextend -l +100%FREE /dev/mapper/ubuntu--vg-ubuntu--lv |
最后df -h正常, 大功告成
参考文章
https://blog.csdn.net/qq_37437983/article/details/109259566
https://blog.csdn.net/qq_48922459/article/details/122229118
https://www.cnblogs.com/devilyouwei/p/14179231.html