IT/linux

extending xfs filesystem (xfs 확장)

울티마 2022. 6. 10. 15:14

출처: <https://www.thegeekdiary.com/how-to-grow-extend-xfs-filesytem-in-centos-rhel-using-xfs_growfs-command/>

xfs_growfs Command

Use the xfs_growfs command to increase the size of an XFS file system. The XFS file system must be mounted and there must be space available on the underlying device. The xfs_growfs utility is most often used with logical volumes. The syntax of the xfs_growfs command is as follows:

# xfs_growfs [options] mount-point

The following options are available for the xfs_growfs command:
    -d: Expand the data section of the file system to the maximum size of the underlying device.
    -D [size]: Specify the size to expand the data section of the file system. The [size] argument is expressed in the number of file system blocks.
    -L [size]: Specify the new size of the log area. This does not expand the size, but specifies the new size of the log area. Therefore, this option can be used to shrink the size of the log area. You cannot shrink the size of the data section of the file system.
    -m [maxpct]: Specify the new value for the maximum percentage of space in the file system that can be allocated as inodes. With the mkfs.xfs command, this option is specified with the –i maxpct=[value] option.

CAUTION: It is currently not possible to shrink or reduce an xfs filesystem. Thus is it essential to ensure the device size is not larger than the intended size.

Extending XFS filesytem

 

1. Verify current size of XFS filesystem


Check the filesystem details before growing the filesystem:

# xfs_growfs -n /dev/vg_test/lv_test
meta-data=/dev/mapper/vg_test-lv_test isize=512 agcount=4, agsize=32000 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0 spinodes=0
data = bsize=4096 blocks=128000, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal bsize=4096 blocks=855, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0

The -n option does not actually extend the XFS filesystem, but just prints the current filesystem details. Aslo check for the “df -h” command output to view current size of the mount point.

# df -h
/dev/mapper/vg_test-lv_test 497M 26M 472M 6% /data


2. Extend the underlying device (lvextend, grow LUN, expand partition).

Before we grow the XFS filesystem, we need to extend the underlying LVM volume. If possible, you may extend an existing physical volume in the LVM VG. For the purpose of this post we will use a new PV to expand an LV.

(1) Identify the new disk and create a Physical Volume.
# pvcreate /dev/sdc

(2) Extent the Volume Group vg_test using the new PV.
# vgextend vg_test /dev/sdc

(3) Verify the new size of the volume group.
# vgdisplay vg_test
— — Volume group — -
VG Name vg_test
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 3
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 1
Open LV 1
Max PV 0
Cur PV 2
Act PV 2
VG Size 39.99 GiB
PE Size 4.00 MiB
Total PE 10238
Alloc PE / Size 125 / 500.00 MiB
Free PE / Size 10113 / 39.50 GiB
VG UUID wrd9eB-aZo3-HCmD-Rlgr-NcGP-vS2Z-cm2CeQ


3. Extend the logical volume to the desired size using the “lvresize” command.

# lvresize -L +35g /dev/vg_test/lv_test
Size of logical volume vg_test/lv_test changed from 500.00 MiB (125 extents) to 35.49 GiB (9085 extents).
Logical volume vg_test/lv_test successfully resized.


4. Growing the XFS file system

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

Note the data blocks changed from 128000 to 9303040.


5. Verify


(1) You can view the XFS volume details using the “xfs_info” command as shown below. Note the blocks for the data volume.

# xfs_info /dev/vg_test/lv_test
meta-data=/dev/mapper/vg_test-lv_test isize=512 agcount=291, agsize=32000 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0 spinodes=0
data = bsize=4096 blocks=9303040, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal bsize=4096 blocks=855, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0

Verify the new size of the XFS file system in “df -h” command output.

# df -hP /data
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_test-lv_test 36G 35M 36G 1% /data

As you can see in the output above, /data mount point size has been increase from 500MB to ~36GB.

 

'IT > linux' 카테고리의 다른 글

openviswitch port mirror  (0) 2022.06.15
tip : disk full  (0) 2022.06.10
creating bond devices on CentOS7, Redhat7  (0) 2022.06.10
centos8/redhat8 install media > local yum repository  (0) 2022.06.10
centos7/redhat7 install media > local yum repository  (0) 2022.06.10