xfs 파일시스템에서 quota 설정하기

먼저 커널에서 xfs 파일시스템에 대해 쿼터 지원이 되야 됨.

(CentOS 4.7 에선 xfs와 xfs quota가 모두 기본으로 지원)

 

내가 테스트한 환경은

OS : CentOS4.7 ServerCD 32bit

Riad : 3ware 9650SE-8LP

HDD : Seagate 1.5TB * 8 Raid6 = 8.3TB

 

mkfs.xfs를 통한 파일시스템 생성은 ext 파일시스템과는 비교가 안되게 빠르다. 1초도 안걸리고 끝나 버린다.  허걱… 이게 제대로 된건가 할 정도로 번개처럼 지나가고 끝나버림. 그런데 그게 정상이다.

참고로, mkfs.ext3 를 통해 파일시스템을 생성하면 30분은 족히 걸린다.

ext3 파일시스템이 현재 안정적으로 지원가능한 최대 용량은 8TB인데(centos5.2 64bit에선 16TB도 지원 된다고 하지만 아직 검증이 안된듯 하고, 새로운 ext4파일시스템 한창 개발중이라 하니 EXT4에 대용량을 기대해 볼 수 밖에) xfs파일시스템은 단위도 생소한 엑사바이트급(100만테라급)이라고 한다.

 

ext3와 xfs 파일시스템은 hdparm 툴로 성능 체크를 해보면 큰 차이는 없는듯, 2년 전쯤의 KLDP글에서 어떤분은 xfs 파일시스템 튜닝을 안하면 성능이 떨어진다 했는데, 그사이 디폴트로 써도 좋게 다듬어 놓았나보다.. ext3의 경우 튜닝을 하지않아도 왠만한 환경에선 성능이 나오도록 되있듯 그런가 보다.

ext3

Timing cached reads:   20296 MB in  2.00 seconds = 9605.78 MB/sec
Timing buffered disk reads:  580 MB in  3.09 seconds = 234.56 MB/sec

 

xfs

Timing cached reads:   20296 MB in  2.00 seconds = 10164.79 MB/sec
Timing buffered disk reads:  580 MB in  3.09 seconds = 218.79 MB/sec

 

yum install xfsprogs kmod-xfs -y 를 통해 xfs 파일시스템을 커널 모듈형태로 설치 했다.

한가지 주의점은 위와 같이 설치를 하면 커널 2.6.9-78.0.13.EL을 설치 후 진행을 한다.

2009년 5월 11일 현재 xfs 커널모듈이 kmod-xfs-0.4-1.el4.2.6.9_78.0.13.EL 까지 만들어져 있어서

2.6.9-78.0.22.EL 커널보다 아래인 2.6.9-78.0.13.EL 커널이 설치가 되며 xfs kmod가 깔린다.

 

fstab에는

/dev/sda1 /home xfs noatime,nodev,noexec,nosuid,usrquota,grpquota 1 1

-> mount -o remount 를 통해서는 적용되지 않는다. umount / mount 가 필요하다.

 

파티션 타입은 확장 파티션임(parted를 이용한 GPT)

xfs_quota -x -c 'limit -g bsoft=300m bhard=350m testgroup' /home

이렇게 해서 제한 설정을 해 주고,

xfs_quota -x -c 'report -h' /home

라고 해보면,

Group quota on /home (/dev/hda6)
Blocks
Group ID Used Soft Hard Warn/Grace
---------- ---------------------------------
testgroup 0 300M 350M 00 [------]

이런식으로 출력된다.

xfs파일시스템은 ext2/3 파일시스템과 달리 쿼터DB파일(aquota.group, aquota.user)이 존재하지 않으며 메타데이터 형태로 존재하기 때문에 DB생성을 위한 quotacheck가 필요없다. 쿼터설정 후 작동이 잘 안되면 시스템 리부팅.

ext2/3 파일시스템에서 쿼터DB파일 생성시간도 mkfs에 버금가는 긴 시간을 필요로 한다. 그런데 xfs는 쿼터로만 마운트하면 끝이다.

 

xfs_quota라고만 쳐서, xfs 쿼터 콘솔에서

quota -g root 라고 해보면,

xfs_quota> quota -g root

Disk quotas for Group root (0)
Filesystem Blocks Quota Limit Warn/Time Mounted on
/dev/hda6 2277280 0 0 00 [--------] /home

라고 뜸.

quota -g testgroup이라고 하면,

xfs_quota> quota -g testgroup
Disk quotas for Group testgroup (888)
Filesystem              Blocks      Quota      Limit  Warn/Time      Mounted on
/dev/sda1               205428     307200     358400   00 [--------] /data1

 

설정한 규칙을 지워주려면 remove옵션을..

xfs_quota -x -c 'remove' /home 이런식으로 변형시켜 해보면, 틀린 명령이라 나옴.

지우는 것은 좀더 연구를 해봐야 할 거 같고,

----> 차 후에 알게된 건데, 쿼터설정을 푸는것은 의외로 간단하다. 아래처럼 설정값을 0을 하면된다.
xfs_quota -x -c 'limit -g bsoft=0 bhard=0 testgroup' /home

쿼터설정과 연동되어서 클라이언트에 용량정보가 표시되는 아래 프로토콜에서 삼바에서는 제대로 용량 표기가 되지만, netatalk에선 파티션 전체 크기가 보인다(netatalk도 쿼터설정대로 용량이 다차면 데이터는 더이상 쓰진 못함. 그렇다 쳐도 클라이언트 유저들에게 혼돈만 초래함.)

samba-3.0.28-0.el4.9

netatalk-2.0.3

 

netatalk-2.0.4 beta2 에서 해결이 된듯 싶다. FIX: many compilation errors (solaris, AFS, Tru64, xfs quota…)

netatalk-2.0.4 beta2 정보는 아래사이트 참조

http://mac.softpedia.com/get/Utilities/Netatalk.shtml

xfs 파일시스템에서 quota 설정

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다