할당 그룹(AG) 기반의 분산 공간 관리
XFS 파일시스템은 할당 그룹이라고 하는 동일 크기의 청크로 나뉘며, 각 AG는 독립적으로 자신의 공간 사용을 유지합니다. 각 AG는 최대 1TB까지 가능하며, 여러 AG를 가지면 XFS는 동시 접근 수 증가에도 성능 저하 없이 대부분의 작업을 병렬로 처리할 수 있습니다. 이 설계는 멀티코어 시스템에서 순차적 경합을 제거하는 데 핵심입니다.
B+트리 기반의 자유 공간 추적
XFS 파일시스템은 할당 그룹에서 두 개의 B+트리를 사용하여 자유 공간을 추적하며, 하나의 B+트리는 블록 번호별로 공간을 추적하고 두 번째는 자유 공간 블록의 크기별로 추적합니다. 이 이중 트리 구조는 XFS가 주어진 블록 근처의 자유 공간이나 특정 크기의 자유 공간을 빠르게 찾을 수 있게 합니다. 카운트 트리(cnt)와 블록 번호 트리(bno)를 병렬로 탐색하는 할당 알고리즘이 위치 기반 할당과 크기 기반 할당을 동시에 최적화합니다.
지연 할당과 트랜잭션 예약
XFS는 지연 할당을 구현하여 쓰기 성능을 개선하고 파일시스템 단편화를 줄입니다. 메모리에 가상 익스텐트를 먼저 구성한 후 실제 쓰기 시점에 디스크 위치를 결정함으로써 단기 파일의 영향을 최소화합니다. 트랜잭션 예약 시스템은 복합 메타데이터 수정(익스텐트 할당, 트리 분할, 역맵 갱신)을 원자적으로 보장하면서도 로그 공간 부족으로 인한 교착 상태를 방지합니다.