XFS 1993년 실리콘 그래픽스 (SGI)가 만든 고성능 64비트 저널링 파일 시스템으로, CentOS 7버전부터 기본 지원되는 파일시스템이다. 기존 CentOS에는 EXT가 기본 지원되고 있었다. XFS 파일시스템은 64비트 환경에 최적화 되어 있으며, 다른 파일시스템에 비해 가지는 장점으로는 다음이 있다.
1. 이론상이긴 하지만 900만 TB까지 지원이 가능하다 ( 단, 32bit 환경에서는 16TB까지만 지원이 가능하다.)
2. 사용가능한 inode값이 넉넉하다 .같은 용량의 ext3에 비해 8배 많은 inode 생성이 가능
3. xfs_growfs 유틸을 통해 마운트된 상태에서도 파일시스템 확장이 가능하다.
4. 파일시스템 생성(포맷)시간이 타 파일시스템에 비하여 압도적으로 빠르다.
5. 파일시스템 체크 시 ext3는 사용하지 않는 inode까지 체크를 하기때문에 많은 시간이 소요되는 반면 xfs는 사용중인 inode만 체크하므로 빠른 속도를 낼 수 있다.
6. 동일 크기의 파일을 삭제하여도 ext3보다 2.5배 빠른 속도를 제공한다.
<XFS의 단점>
1. 대용량 위주 파일시스템이다 보니 작은 사이즈의 파일에선 되려 속도가 느린 부분이 있다.
2. 정식 채택된지 얼마 안된 파일시스템이다 보니 이식성이 ext에 비해 떨어진다.
3. 만약 파일시스템에 문제가 발생했을시에 아예 커널 메시지가 나오질 않는 증상을 야기할 가능성이 존재한다.
4. 디버그 옵션이 존재하지 않아 삭제된 파일은 복구가 불가능하다.
5. 파일시스템이 깨졌을때 xfs_repair를 실행시 물리적 메모리나 swap이 2TB당 1G 이상이 되어야 repair 실행이 가능하다.
6. 시스템이 아닌 별도의 데몬에서 파일시스템을 관리한다.
# ps aux | grep xfs
root 2359 0.0 0.0 0 0 ? S< 15:05 0:00 [xfslogd/0]
root 2360 0.0 0.0 0 0 ? S< 15:05 0:01 [xfslogd/1]
root 2361 0.0 0.0 0 0 ? S< 15:05 0:00 [xfsdatad/0]
root 2362 0.0 0.0 0 0 ? S< 15:05 0:00 [xfsdatad/1]
root 2363 0.0 0.0 0 0 ? S 15:05 0:03 [xfsbufd]
root 4402 0.0 0.0 0 0 ? S 15:43 0:00 [xfssyncd]
* inode
유닉스 계통 파일시스템에서 사용하는 자료구조. 아이노드는 정규 파일, 디렉토리 등 파일시스템에 관한 정보를 제공하고 있다. 파일들은 각자 1개의 아이노드를 가지고 있으며, 아이노드는 소유자 그룹, 접근 모드(읽기, 쓰기, 실행 권한), 파일 형태, 아이노드 숫자(inode number, i-number, 아이넘버) 등 해당 파일에 관한 정보를 가지고 있다. 파일시스템 내의 파일들은 고유한 아이노드 숫자를 통해 식별 가능하다.
일반적으로 파일 시스템을 생성할 때 전체 공간의 약 1퍼센트를 아이노드를 위해 할당한다. 아이노드를 위한 공간이 한정되어 있는 만큼 파일시스템이 가질 수 있는 파일의 최대 개수도 한정되어 있다. 그러나 대부분의 경우, 사용자가 느끼기에 거의 무한 개에 가까운 파일을 생성하고 관리할 수 있다.
<아이노드에 포함된 정보>
출처: https://ko.wikipedia.org/wiki/%EC%95%84%EC%9D%B4%EB%85%B8%EB%93%9C
비트 | 내용 |
12-15 | 파일 형식 (일반, 디렉토리, 문자 또는 블록 특별, 선입선출 파이프) |
9-11 | 실행 플래그 |
8 | 소유자 읽기 허가 |
7 | 소유자 쓰기 허가 |
6 | 소유자 실행 허가 |
5 | 그룹 읽기 허가 |
4 | 그룹 쓰기 허가 |
3 | 그룹 실행 허가 |
2 | 다른 사용자 읽기 허가 |
1 | 다른 사용자 쓰기 허가 |
0 | 다른 사용자 실행 허가 |