- 상위 항목: 파일 시스템
1 개요
실리콘 그래픽스(SGI) 에서 개발한 64비트 기반 유닉스/리눅스용 파일 시스템이다.
2 역사
1992년에 실리콘 그래픽스사는 자신들의 워크스테이션인 IRIX의 파일시스템으로 XFS를 개발하여 1993년에 발표한 IRIX 5.3에 탑재한다.
실리콘 그래픽스사는 2000년에 XFS를 GPL로 풀어버린다. [1] 이후 GPL을 사랑해 마지않는 GNU에서 리눅스 커널로 포팅을 하는데, 단순히 기술지원을 하는데서 그친 게 아니라 실리콘 그래픽스에서 직접 포팅을 지원한다. 이분들 OpenGL도 그렇고 보통 대인배가 아닌듯
3 특징
- ZFS와 비슷하게 무거운 편이다.
- 큰 파일에 강함[2]
- 입출력 쓰레드 갯수 지정 가능
- B+Tree 기반
- 저널링 지원
- 가변 블록 크기 지원
- 지연 할당 지원
- 온라인 스냅샷 생성 및 관리
- 온라인 조각모음[3]
- 파일시스템 수준에서 백업과 복구 지원: 명령어 한줄이면 백업과 복구가 싹싹!
4 주의사항
- 대체로 큰 파일의 처리에 특화되어있기 때문에 작은 파일의 잦은 입출력에는 약간의(?) 성능 하락을 보여준다. 특히 리눅스 커널 같은 대규모 프로젝트의 컴파일 시 이런 문제가 두드러진다.
컴파일시는 약간이 아니라 심한 성능 하락 - 파일시스템 자체의 포텐셜이 훌륭했음에도 불구하고 메타데이터 처리시의 병목현상으로 저성능을 자랑했던 적이 있으나, 지연 로깅 기능이 2010년에 추가됨으로써 성능이 많이 향상되었다. 리눅스 커널 2.6.39 이전 버전을 사용하는 사람은 참고할 것.
- RAID로 묶인 디스크에 XFS 파티션을 만들었을 때 성능 저하가 심각하다면 Write Barrier 로직의 오류이니, 마운트할 때 nobarrier 옵션을 추가해주면 해결된다.
- 기본 저널링 로그 저장소가 내부 저장소로 지정되어 있으나, ZFS와 비슷하게 logdev 옵션으로 외부 디스크로 뺄 수 있다. SSD에 물려보자. 신세계를 보게 될 것이다.
- XFS는 마운트 옵션 및 튜닝에 따라 성능이 널뛰기를 한다. 다른 파일 시스템도 비슷하지만 XFS는 이런 경향이 좀 심한 편.