본문 바로가기
IT/LINUX

[LINUX][RHEL7] xfs 파일시스템 사용하기

by 양눈 2016. 12. 23.

Redhat Linux7 버전을 디폴트로 설치하다 보면 생성되어지는 시스템이 xfs 파일시스템 이다.

ext4 비해 여러면 에서 개선되었다고 하지만 xfs 확장은 되지만 축소는 되지 않는다고 한다.

안정성을 생각하면 운영되는 서버에 파일시스템을 축소 할일 있을지는 모르겠지만 어쨋건 xfs 확장만 가능한 시스템이다.

축소하려면 백업 후 파일시스템을 재 생성하여 다시 리스토어 하는 방식 밖에 없는 것 같다.

Xfs 사용하여 파일시스템을 생성, 확장 하여 보자  

   

1. 파티션 생성

   

1) 디스크 디바이스 확인

[TEST-root] rh70:/root#lsscsi

[0:0:0:0]    disk    VMware   Virtual disk     1.0   /dev/sda

[0:0:1:0]    disk    VMware   Virtual disk     1.0   /dev/sdb

[0:0:2:0]    disk    VMware   Virtual disk     1.0   /dev/sdc

[2:0:0:0]    cd/dvd  NECVMWar VMware IDE CDR10 1.00  /dev/sr0

-- 새로 붙인 LUN /dev/sdc 라고 가정하자

   

2) 파티션 정보확인

[TEST-root] rh70:/root#fdisk -l /dev/sdc

Disk /dev/sdc: 2147 MB, 2147483648 bytes, 4194304 sectors

Units = sectors of 1 * 512 = 512 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk label type: dos

Disk identifier: 0x83695c0d

   Device Boot      Start         End      Blocks   Id  System

   

3) 파티션 생성

[TEST-root] rh70:/root#fdisk /dev/sdc

Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.

Be careful before using the write command.

Command (m for help): m

Command action

   a   toggle a bootable flag

   b   edit bsd disklabel

   c   toggle the dos compatibility flag

   d   delete a partition

   g   create a new empty GPT partition table

   G   create an IRIX (SGI) partition table

   l   list known partition types

   m   print this menu

   n   add a new partition

   o   create a new empty DOS partition table

   p   print the partition table

   q   quit without saving changes

   s   create a new empty Sun disklabel

   t   change a partition's system id

   u   change display/entry units

   v   verify the partition table

   w   write table to disk and exit

   x   extra functionality (experts only)

Command (m for help): n

Partition type:

   p   primary (0 primary, 0 extended, 4 free)

   e   extended

Select (default p): p

Partition number (1-4, default 1): <ENTER>

First sector (2048-4194303, default 2048): <ENTER>

Using default value 2048

Last sector, +sectors or +size{K,M,G} (2048-4194303, default 4194303): +1024M

Partition 1 of type Linux and of size 1 GiB is set

Command (m for help): t

Selected partition 1

Hex code (type L to list all codes): 8e

Changed type of partition 'Linux' to 'Linux LVM'

Command (m for help): n

Partition type:

   p   primary (1 primary, 0 extended, 3 free)

   e   extended

Select (default p): p

Partition number (2-4, default 2):

First sector (2099200-4194303, default 2099200):

Using default value 2099200

Last sector, +sectors or +size{K,M,G} (2099200-4194303, default 4194303):

Using default value 4194303

Partition 2 of type Linux and of size 1023 MiB is set

Command (m for help): t

Partition number (1,2, default 2): 2

Hex code (type L to list all codes): 8e

Changed type of partition 'Linux' to 'Linux LVM'

Command (m for help): w

The partition table has been altered!

Calling ioctl() to re-read partition table.

Syncing disks.

   

4)파티션 테이블 반영

[TEST-root] rh70:/root#partprobe

   

5) 파티션 정보보기

[TEST-root] rh70:/root#fdisk -l /dev/sdc

Disk /dev/sdc: 2147 MB, 2147483648 bytes, 4194304 sectors

Units = sectors of 1 * 512 = 512 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk label type: dos

Disk identifier: 0x83695c0d

   Device Boot      Start         End      Blocks   Id  System

/dev/sdc1            2048     2099199     1048576   8e  Linux LVM

/dev/sdc2         2099200     4194303     1047552   8e  Linux LVM

   

2. PV생성

[TEST-root] rh70:/root#pvcreate /dev/sdc1 /dev/sdc2

  Physical volume "/dev/sdc1" successfully created

  Physical volume "/dev/sdc2" successfully created

   

3. VG 생성

[TEST-root] rh70:/root#vgcreate -s 4 uservg /dev/sdc1

  Volume group "uservg" successfully created

   

-- vg생성 확인

[TEST-root] rh70:/root#vgs

  VG     #PV #LV #SN Attr   VSize    VFree

  rhel     2   2   0 wz--n-   49.50g    6.00g

  uservg   1   0   0 wz--n- 1020.00m 1020.00m

   

[TEST-root] rh70:/root#vgdisplay uservg

  --- Volume group ---

  VG Name               uservg

  System ID

  Format                lvm2

  Metadata Areas        1

  Metadata Sequence No  1

  VG Access             read/write

  VG Status             resizable

  MAX LV                0

  Cur LV                0

  Open LV               0

  Max PV                0

  Cur PV                1

  Act PV                1

  VG Size               1020.00 MiB

  PE Size               4.00 MiB

  Total PE              255

  Alloc PE / Size       0 / 0

  Free  PE / Size       255 / 1020.00 MiB

  VG UUID               6btSlf-kaQv-F10J-EOnn-OkDe-0epn-e9bbf8

   

4. LV생성

[TEST-root] rh70:/root#lvcreate -l 100 -n userlv uservg

WARNING: ext4 signature detected on /dev/uservg/userlv at offset 1080. Wipe it? [y/n] y

  Wiping ext4 signature on /dev/uservg/userlv.

  Logical volume "userlv" created

   

[TEST-root] rh70:/root#lvdisplay uservg

  --- Logical volume ---

  LV Path                /dev/uservg/userlv

  LV Name                userlv

  VG Name                uservg

  LV UUID                IarT1r-6chm-feoC-DLd6-64Jv-2Qcz-tDudEn

  LV Write Access        read/write

  LV Creation host, time rh70, 2015-02-13 13:45:11 +0900

  LV Status              available

  # open                 0

  LV Size                400.00 MiB

  Current LE             100

  Segments               1

  Allocation             inherit

  Read ahead sectors     auto

  - currently set to     8192

  Block device           253:2

   

[TEST-root] rh70:/root#vgdisplay uservg

  --- Volume group ---

  VG Name               uservg

  System ID

  Format                lvm2

  Metadata Areas        1

  Metadata Sequence No  2

  VG Access             read/write

  VG Status             resizable

  MAX LV                0

  Cur LV                1

  Open LV               0

  Max PV                0

  Cur PV                1

  Act PV                1

  VG Size               1020.00 MiB

  PE Size               4.00 MiB

  Total PE              255

  Alloc PE / Size       100 / 400.00 MiB

  Free  PE / Size       155 / 620.00 MiB

  VG UUID               6btSlf-kaQv-F10J-EOnn-OkDe-0epn-e9bbf8

   

5. FS생성(XFS) 마운트

[TEST-root] rh70:/root#mkfs -t xfs /dev/mapper/uservg-userlv

meta-data=/dev/mapper/uservg-userlv isize=256    agcount=4, agsize=25600 blks

         =                       sectsz=512   attr=2, projid32bit=1

         =                       crc=0

data     =                       bsize=4096   blocks=102400, imaxpct=25

         =                       sunit=0      swidth=0 blks

naming   =version 2              bsize=4096   ascii-ci=0 ftype=0

log      =internal log           bsize=4096   blocks=853, version=2

         =                       sectsz=512   sunit=0 blks, lazy-count=1

realtime =none                   extsz=4096   blocks=0, rtextents=0

   

-- 라인추가

[TEST-root] rh70:/root#vi /etc/fstab

/dev/mapper/uservg-userlv       /database                       xfs     defaults        1 2

   

-- 마운트

[TEST-root] rh70:/root#mount -a

   

-- 파일시스템 마운트 확인

[TEST-root] rh70:/root# df -h

Filesystem                 Size  Used Avail Use% Mounted on

/dev/mapper/rhel-root       40G  7.8G   32G  20% /

devtmpfs                   1.9G     0  1.9G   0% /dev

tmpfs                      1.9G   80K  1.9G   1% /dev/shm

tmpfs                      1.9G  8.8M  1.9G   1% /run

tmpfs                      1.9G     0  1.9G   0% /sys/fs/cgroup

/dev/sda1                  497M  119M  379M  24% /boot

/dev/mapper/uservg-userlv  397M   21M  377M   6% /database

   

6. FS확장하기

1) LV확장

[TEST-root] rh70:/root# lvextend -l +155 /dev/uservg/userlv

  Extending logical volume userlv to 1020.00 MiB

  Logical volume userlv successfully resized

   

2) VG정보 확인

[TEST-root] rh70:/root# vgdisplay uservg

  --- Volume group ---

  VG Name               uservg

  System ID

  Format                lvm2

  Metadata Areas        1

  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                1

  Act PV                1

  VG Size               1020.00 MiB

  PE Size               4.00 MiB

  Total PE              255

  Alloc PE / Size       255 / 1020.00 MiB

  Free  PE / Size       0 / 0

  VG UUID               6btSlf-kaQv-F10J-EOnn-OkDe-0epn-e9bbf8

   

3) FS확장

[TEST-root] rh70:/root# df -h

Filesystem                 Size  Used Avail Use% Mounted on

/dev/mapper/rhel-root       40G  7.8G   32G  20% /

devtmpfs                   1.9G     0  1.9G   0% /dev

tmpfs                      1.9G   80K  1.9G   1% /dev/shm

tmpfs                      1.9G  8.8M  1.9G   1% /run

tmpfs                      1.9G     0  1.9G   0% /sys/fs/cgroup

/dev/sda1                  497M  119M  379M  24% /boot

/dev/mapper/uservg-userlv  397M   21M  377M   6% /database

   

-- 파일시스템 확장하기 이명령이 xfs사용에서 가장 중요한 명령어 인 듯 하다

[TEST-root] rh70:/root# xfs_growfs /database

meta-data=/dev/mapper/uservg-userlv isize=256    agcount=4, agsize=25600 blks

         =                       sectsz=512   attr=2, projid32bit=1

         =                       crc=0

data     =                       bsize=4096   blocks=102400, imaxpct=25

         =                       sunit=0      swidth=0 blks

naming   =version 2              bsize=4096   ascii-ci=0 ftype=0

log      =internal               bsize=4096   blocks=853, version=2

         =                       sectsz=512   sunit=0 blks, lazy-count=1

realtime =none                   extsz=4096   blocks=0, rtextents=0

data blocks changed from 102400 to 261120

   

-- 파일시스템 반영 확인

[TEST-root] rh70:/root#df -h

Filesystem                 Size  Used Avail Use% Mounted on

/dev/mapper/rhel-root       40G  7.8G   32G  20% /

devtmpfs                   1.9G     0  1.9G   0% /dev

tmpfs                      1.9G   80K  1.9G   1% /dev/shm

tmpfs                      1.9G  8.8M  1.9G   1% /run

tmpfs                      1.9G     0  1.9G   0% /sys/fs/cgroup

/dev/sda1                  497M  119M  379M  24% /boot

/dev/mapper/uservg-userlv 1017M   21M  997M   3% /database

댓글