XFS is a File system which is designed for high performance ,scalability and Capacity point of view. It is generally used where large amount data to be stored / used on the File system. Some of the awesome freeze features of xfs are xfs_freeze, snapshot, xfs_unfreeze. One of the limitation of XFS is that we can not shrink or reduce this file system.
XFS is the default file system on CentOS 7 and RHEL 7. In this post we will discuss how to create and extend xfs file system based on LVM in CentOS 7. I am assuming that a new disk is assigned to Linux box and i am going to perform below steps on CentOS 7.
Step:1 Create a partition using fdisk
In the below example i have created 10GB partition on /dev/sdb and set “8e” as toggle id.
Step:2 Create LVM components : pvcreate, vgcreate and lvcreate.
[[email protected] ~]# pvcreate /dev/sdb1 Physical volume "/dev/sdb1" successfully created [[email protected] ~]# [[email protected] ~]# vgcreate vg_xfs /dev/sdb1 Volume group "vg_xfs" successfully created [[email protected] ~]# [[email protected] ~]# lvcreate -L +6G -n xfs_db vg_xfs Logical volume "xfs_db" created [[email protected] ~]#
Step:3 Create XFS file system on lvm parition “/dev/vg_xfs/xfs_db”
[[email protected] ~]# mkfs.xfs /dev/vg_xfs/xfs_db
Step:4 Mount the xfs file system
Create a directory named as xfs_test under /root and mount it using mount command.
For the permanent mounting , use /etc/fstab file.
Step:5 Extend the size of xfs file system
Check the whether free space is available in Volume group (vg_xfs) or not using below command :
[[email protected] ~]# vgs vg_xfs VG #PV #LV #SN Attr VSize VFree vg_xfs 1 1 0 wz--n- 10.00g 4.00g [[email protected] ~]#
So we will extend the file system by 3GB using lvextend command with “-r” option
[[email protected] ~]# lvextend -L +3G /dev/vg_xfs/xfs_db -r
As we can see above that the size of “/dev/vg_xfs/xfs_db” has been extended from 6 GB to 9GB
Note : If xfs is not based on LVM , the use the xfs_growsfs command as shown below :
[[email protected] ~]# xfs_growfs <Mount_Point> -D <Size>
The “-D size” option extend the file system to the specified size (expressed in file system blocks). Without the -D size option, xfs_growfs will extend the file system to the maximum size supported by the device.
Read Also: How to Setup Disk Quota on XFS File System in Linux Servers
Hi,
Can you explain the full steps for reduce lvm in RHEL 7.
One of the limitation of XFS is that we can not shrink or reduce this file system. On XFS file system
hello, could we format the XFS filesystem with a block size 4096 and sector size 512 ? how could we do it ? and then add the entry in /etc/fstab file. could you pls show us the steps.
what does -r option in lvmextend using for?
The -r option automatically grows the file system.
no need to run resize2fs after the lvextend
hi,
i have one query when we extend xfs file we use xfs_growfs command , may i know when we reduce xfs file-system which command use, like in ext3 we use resize2fs for both reduce /extend.
File system reduction is not possible in XFS.
what do you mean by xfs not based on lvm?? is there any chance that we can grow a non lvm partition??
Hi Nanada,
Non lvm XFS file system can be extended using ‘xfs_growfs’ command
great job !
works like a charm
If I want to use the whole disk, do I need to partition it before pvcreate? doesn’t pvcreate do the alignment for you?
No need to create partition on disk if you are planning to create physical volume on the whole disk.
example : # pvcreate /dev/sdc