暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

xfs 文件系统扩容

生有可恋 2022-06-01
2768

配合LVM逻辑卷,xfs 文件系统可以做到平滑扩容。


案例如下:


接到告警通知, Oracle DG 库磁盘满了

    # df -hl
    Filesystem Size Used Avail Use% Mounted on
    devtmpfs                   32G     0   32G   0% /dev
    /dev/mapper/centos-root 68G 20G 48G 29%
    /dev/mapper/vgora-lvora 100G 35G 66G 35% u01
    /dev/mapper/vgora-lvdata 10T 10T 665M 100% oradata


    检查LVM的物理卷,查看是否还有空闲

      # vgs
      VG #PV #LV #SN Attr VSize VFree
      centos 1 2 0 wz--n- <99.51g 0
      vgora 6 3 0 wz--n- <12.00t 1.12t


      # pvs
      PV VG Fmt Attr PSize PFree
      dev/vda2 centos lvm2 a-- <99.51g 0
      dev/vdb vgora lvm2 a-- <2.00t 0
      dev/vdc vgora lvm2 a-- <2.00t 0
      dev/vdd vgora lvm2 a-- <2.00t 0
      dev/vde vgora lvm2 a-- <2.00t 0
      dev/vdf vgora lvm2 a-- <2.00t 0
      dev/vdg vgora lvm2 a-- <2.00t 1.12t


      检查发现卷组vgora下的物理卷还有1.12t的未使用空间,再次确认逻辑卷信息

        # lvs
        LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
        root centos -wi-ao---- <67.51g
        swap centos -wi-ao---- 32.00g
        lvdata vgora -wi-ao---- 10.00t
        lvfra vgora -wi-ao---- 800.00g
        lvora vgora -wi-ao---- 100.00g


        # df -hl | grep lvdata
        /dev/mapper/vgora-lvdata 10T 10T 665M 100% oradata


        对逻辑卷 lvdata 进行扩容

          # lvextend -l +100%FREE dev/mapper/vgora-lvdata
          Size of logical volume vgora/lvdata changed from 10.00 TiB (2621440 extents) to 11.12 TiB (2915322 extents).
          Logical volume vgora/lvdata successfully resized.


          确认挂载点的文件系统类型为 xfs

            # mount| grep lvora
            /dev/mapper/vgora-lvora on /u01 type xfs (rw,relatime,attr2,inode64,noquota)


            对 xfs 文件系统进行扩容

              # xfs_growfs dev/mapper/vgora-lvdata
              meta-data=/dev/mapper/vgora-lvdata isize=512 agcount=41, agsize=65536000 blks
              = sectsz=512 attr=2, projid32bit=1
              = crc=1 finobt=0 spinodes=0
              data = bsize=4096 blocks=2684354560, imaxpct=25
              = sunit=0 swidth=0 blks
              naming =version 2 bsize=4096 ascii-ci=0 ftype=1
              log =internal bsize=4096 blocks=128000, version=2
              = sectsz=512 sunit=0 blks, lazy-count=1
              realtime =none extsz=4096 blocks=0, rtextents=0
              data blocks changed from 2684354560 to 2985289728


              检查扩容后的效果

                # df -hl
                Filesystem Size Used Avail Use% Mounted on
                devtmpfs                   32G     0   32G   0% /dev
                /dev/mapper/centos-root 68G 20G 48G 29% /
                /dev/mapper/vgora-lvora 100G 35G 66G 35% /u01
                /dev/mapper/vgora-lvdata   12T   10T  1.2T  90% /oradata

                oradata 目录已经空出来1.2T可用空间。


                以上情况是在卷组有未分配空间情况下的扩容,考虑到数据库的空间增长过快,需要提前做好准备,查询主库的数据规模,以及数据文件总的大小

                  SELECT SUM(t.bytes) / 1024 / 1024 / 1024 gb
                  FROM dba_segments t
                  UNION
                  SELECT SUM(t.bytes) / 1024 / 1024 / 1024 gb
                  FROM dba_data_files t;


                  主库数据文件大小已超10T,备库需要增加磁盘对分区进行扩容,通过pvs检查物理卷使用情况,再三确认新增加的磁盘没有挂载、没有加入到其它逻辑卷、没有被私自占用,对新磁盘执行物理卷初始化:

                    # pvs
                    PV VG Fmt Attr PSize PFree
                    /dev/vda2 centos lvm2 a-- <99.51g 0
                    /dev/vdb vgora lvm2 a-- <2.00t 0
                    /dev/vdc vgora lvm2 a-- <2.00t 0
                    /dev/vdd vgora lvm2 a-- <2.00t 0
                    /dev/vde vgora lvm2 a-- <2.00t 0
                    /dev/vdf vgora lvm2 a-- <2.00t 0
                    /dev/vdg vgora lvm2 a-- <2.00t 0

                    # pvcreate /dev/vdh
                      Physical volume "/dev/vdh" successfully created.


                    # pvs
                    PV VG Fmt Attr PSize PFree
                    /dev/vda2 centos lvm2 a-- <99.51g 0
                    /dev/vdb vgora lvm2 a-- <2.00t 0
                    /dev/vdc vgora lvm2 a-- <2.00t 0
                    /dev/vdd vgora lvm2 a-- <2.00t 0
                    /dev/vde vgora lvm2 a-- <2.00t 0
                    /dev/vdf vgora lvm2 a-- <2.00t 0
                    /dev/vdg vgora lvm2 a-- <2.00t 0
                    /dev/vdh lvm2 --- 2.00t 2.00t


                    对卷组进行扩容

                      # vgextend vgora /dev/vdh
                      Volume group "vgora" successfully extended

                       # vgs
                      VG #PV #LV #SN Attr VSize VFree
                      centos 1 2 0 wz--n- <99.51g 0
                      vgora 7 3 0 wz--n- <14.00t <2.00t


                      对逻辑卷进行扩容

                        # lvextend -L +1t /dev/mapper/vgora-lvdata
                        Size of logical volume vgora/lvdata changed from 11.12 TiB (2915322 extents) to 12.12 TiB (3177466 extents).
                        Logical volume vgora/lvdata successfully resized.

                        这次不全部分配,先分1T空间给逻辑卷。


                        最后再次对 xfs 文件系统进行扩容:

                          # xfs_growfs  /dev/mapper/vgora-lvdata
                          meta-data=/dev/mapper/vgora-lvdata isize=512 agcount=46, agsize=65536000 blks
                          = sectsz=512 attr=2, projid32bit=1
                          = crc=1 finobt=0 spinodes=0
                          data = bsize=4096 blocks=2985289728, imaxpct=25
                          = sunit=0 swidth=0 blks
                          naming =version 2 bsize=4096 ascii-ci=0 ftype=1
                          log =internal bsize=4096 blocks=128000, version=2
                          = sectsz=512 sunit=0 blks, lazy-count=1
                          realtime =none extsz=4096 blocks=0, rtextents=0
                          data blocks changed from 2985289728 to 3253725184


                          # df -hl| grep oradata
                          /dev/mapper/vgora-lvdata 13T 10T 2.2T 83% /oradata



                          文章转载自生有可恋,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                          评论