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