Linux下文件系统的容量扩充

来源:互联网 发布:哲学入门 知乎 编辑:程序博客网 时间:2024/06/05 05:33

       前几天在公司,一台Linux服务器的硬盘空间被用满了,上面装的是Oracle数据库,由于一直追加大量数据而没有及时清理,导致硬盘使用率上升到了100%,本来想通过Oracle管理员进去清除一下Undo文件,系统提示文件系统的剩余空间不足,无法登陆DB用户。由于这台服务器是安装在虚拟机上的,最后的解决办法是通过追加一个虚拟硬盘来扩充文件系统的容量。事后觉得可以把这次解决问题的具体方法整理一下,供大家参考。

       大致过程:追加虚拟硬盘,创建物理卷,将物理卷添加到卷组,扩充逻辑卷容量,反映扩充的容量到文件系统。


       以下是本次操作的环境:

          物理机:MacOS

          虚拟机软件:VirtualBox 版本5.1.22

          Linux:CentOS Linux release 7.3.1611 (Core)


1.添加一块虚拟硬盘


    (1)添加虚拟硬盘需要在虚拟机系统关闭状态下进行。

       


    (2)点击设置,进入下面的窗口。

        


    (3)点击存储,进入下面的窗口,选中【控制器SATA】,后面会显示两个带加号的小图标。

        (*我的虚拟机用的硬盘控制器是SATA类型,还有其他类型,如SAS,SCSI等。)

        


    (4)上图正方形小图标是添加硬盘的选项,点击这个图标,会出现如下提示,选择【创建新的虚拟盘】。

        


    (5)选择虚拟硬盘文件类型,我在这里选择VHD,点击【继续】按钮。

        


    (6)设定虚拟硬盘文件分配方式,我在这里选择【动态分配】,然后点击【继续】按钮。

        


    (7)指定文件的路径和大小。

       (*我在这里选择8GB,说明虚拟硬盘的存储空间为8GB,由于上面选择的是动态分配,生成后的文件大小最初不到8GB,会随着系统的使用逐渐增大,直到8GB。)

       点击【创建】按钮

        


    (8)控制器里面多了一个虚拟硬盘【CentOS02.vhd】,点击【OK】按钮完成添加操作。

        


    (9)启动虚拟机,用root用户登录系统,执行下面命令,确认目录【/dev/】下是否有新添加的硬盘设备。

        # ll /dev/sd*

        

        显示的设备中有sdb,这是刚才新添加的硬盘。

        (*sda是第一块硬盘,sda1,sda2是它的两个分区,sdb指的是第二块硬盘。)



2.在硬盘sdb上创建分区

    这步将sdb的全部空间设定为一个分区。


    (1)输入下面的命令,进入到分区操作的程序。

        # fdisk /dev/sdb

        


    (2)可以输入:m,列出各个参数的说明。

        


    (3)输入:n,追加一个分区。

        


    (4)输入:p,选择主分区。

        


    (5)输入:1,设定分区号为1。

       


    (6)下面的两个参数分别设定开始扇区号和终了扇区号,可以直接输入回车,用默认的值。

        


    (7)输入:w,保存本次操作并退出分区程序。

        


    (8)输入以下命令,确认分区。

        # ll /dev/sd*

        

        sdb1即为新建的分区。



3.在分区上创建物理卷


    (1)使用下面命令将分区创建为物理卷。

        # pvcreate /dev/sdb1

        


    (2)查看新添加的物理卷。

        # pvdisplay

        


4.对分区进行格式化


    (1)通过下面的命令,对分区进行格式化。

        # mkfs.ext4 /dev/sdb1

        



5.将物理卷加入到卷组


    (1)先通过下面命令查看卷组信息。

        # vgdisplay

        

        可以看到卷组的名称为:【cl】。


    (2)然后通过以下命令添加【/dev/sdb1】到卷组【cl】。

        # vgextend cl /dev/sdb1

        


    (3)添加成功,通过下面命令确认sdb1所属的卷组。

        # pvdisplay

        

       (*sda2为系统既有的物理卷,现在sdb1和sda2在同一个卷组上。)



6.扩充逻辑卷的容量


    (1)先通过下面命令查看系统里有哪些逻辑卷。

        # lvdisplay

        


    (2)通过下面命令查看逻辑卷挂载的情况。

        # df

        

        逻辑卷【/dev/cl/root挂在于根目录上,这个逻辑卷就是本次要扩充的对象。

       (*可以看到逻辑卷【/dev/cl/root】和文件系统【/dev/mapper/cl-root】的路径有所不同,但他们都对应相同的设备。)


    (3)通过下面的命令,扩充【/dev/cl/root】的容量。

        # lvextend -L +8G /dev/cl/root

        


    (4)系统提示可用的PE(Physical Extend:物理盘区)只有2047个,即4M*2047=8188M,这时需要将追加的大小改一下

        # lvextend -L +8188M /dev/cl/root

        


    (5)现在逻辑卷的容量扩充了,但是它对应的文件系统的容量还是原来的大小。

        


    (6)需要通过下面的命令,扩充文件系统的大小。

        # xfs_growfs /dev/cl/root

        


    (7)查看文件系统,显示的空间增大了。

        



至此,文件系统的容量扩充就完成了。