linux增加/根目录的磁盘空间(基于LVM)
问题引出:
在测试过程中替换so文件,报磁盘空间不足的错误
[root@UF2 ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/VolGroup00-LogVol00 28G 27G 0 100% / /dev/sda1 99M 9.1M 85M 10% /boot none 1014M 5.4M 1009M 1% /dev/shm /dev/sdb1 19G 77M 18G 1% /NewDisk [root@UF2 ~]# |
问题分析:
这是一套公司的系统,由于当时系统部署架构的考虑,把中间件和数据库部署在同一台机器上了,并且给了30G的磁盘空间。
系统上占用磁盘空间的有2部分,一是软件本身(我们的中间件),二是安装的oracle数据库。使用du命令,大概查看了下所写磁盘大小,发现都是在长期操作中,写到后台数据库的数据越来越大,导致数据库的表空间越来越大,对应的物理文件就是datafile,占用了很大的表空间。
问题解决方法分析:
1、 系统不做改变,对数据库的一些log、不用的数据进行删除
2、 注意到系统还有一块20G的空磁盘没有使用(/dev/sdb1),把数据库生成的数据迁移一部分到这块新的磁盘并指定新生成数据到这块磁盘上
3、 注意到系统的磁盘部署,当时使用的是lvm逻辑卷进行管理的,LVM的一个优点就是方便进行逻辑卷的动态增加,可以把/dev/sdb1这块物理磁盘加到根目录所在的卷组里面,然后对根目录所在的逻辑卷进行扩容
最后决定:方法1,2都是可行的,对自己的oracle稍有把握的人都可以实现。本人决定采用方法3,一是考虑系统本身会不断的产生日志等增加空间,这样整个磁盘都被系统所用,当然包括我们的中间件和数据库;二是当时设计这个系统构架的采用LVM进行管理的,可能也想到了后面虽然业务的增加,磁盘空间将不够,将要进行动态扩容。这种设计的理念的是OK的,但是这种设计也有他很大的局限性,下面再进行分析
LVM逻辑卷扩容的3种模式介绍
以下是自己对LVM逻辑卷进行扩容的实际应用中的3种模式进行了归纳和总结(个人观点)
1、 不涉及根目录的磁盘(自己用画图附件画的图,有点龊哈)
如上图所示:sdb1只是普通的数据卷组了逻辑卷,没有被linux的根目录所用,这个时候,可以把第一块磁盘剩下的未使用的分区(sdb2)以及第二块磁盘sdc,第三块磁盘sdd等都可以通过LVM管理加进逻辑卷组,然后对逻辑卷进行扩容
2、 涉及根目录的磁盘1