Linux Filesystem Overview

ext4, XFS, Btrfs, ZFS 특징 비교 및 선택 기준


🗂️ 파일시스템이란?

파일시스템(Filesystem)은 저장 장치(HDD, SSD 등)에 데이터를 어떻게 저장하고 조직화할지 정의하는 구조임.

핵심 역할:

  • 파일과 디렉토리의 논리적 구조 제공
  • 메타데이터 관리 (파일명, 권한, 타임스탬프 등)
  • 저장 공간 할당 및 관리
  • 데이터 무결성 보장

📊 주요 파일시스템 비교

파일시스템개발사최대 파일 크기최대 볼륨 크기주요 특징
ext4Linux16TB1EB리눅스 표준, 안정성 검증
XFSSGI/Red Hat8EB8EB대용량 파일, 고성능
BtrfsOracle/Linux16EB16EBCoW, 스냅샷, 서브볼륨
ZFSSun/Oracle16EB256ZBCoW, 데이터 무결성, 압축
NTFSMicrosoft16EB256TBWindows 표준

🔍 파일시스템 상세

ext4 (Fourth Extended Filesystem)

리눅스의 사실상 표준 파일시스템임.

특징:

  • ext3의 후속 버전, 하위 호환성 유지
  • 저널링(Journaling) 지원으로 장애 복구 용이
  • Extent 기반 할당으로 대용량 파일 효율적 처리
  • 20년 이상의 검증된 안정성

적합한 용도:

  • 범용 리눅스 서버
  • 부트 파티션
  • 안정성이 최우선인 환경
# ext4 파일시스템 생성
mkfs.ext4 /dev/sdb1
 
# 마운트
mount /dev/sdb1 /mnt/data

XFS

Silicon Graphics에서 개발한 고성능 64비트 파일시스템임.

특징:

  • 대용량 파일과 디렉토리에 최적화
  • 병렬 I/O 성능 우수
  • 동적 inode 할당
  • RHEL/CentOS 7 이후 기본 파일시스템

적합한 용도:

  • 대용량 미디어 파일 저장
  • 데이터베이스 서버
  • 고성능 I/O가 필요한 환경

제한사항:

  • 파일시스템 축소 불가 (확장만 가능)
  • 작은 파일이 많은 환경에서는 ext4보다 비효율적
# XFS 파일시스템 생성
mkfs.xfs /dev/sdb1
 
# 온라인 확장
xfs_growfs /mnt/data

Btrfs (B-tree Filesystem)

리눅스의 차세대 파일시스템을 목표로 개발됨.

특징:

  • Copy-on-Write (CoW) 방식
  • 내장 스냅샷 및 롤백 기능
  • 서브볼륨(Subvolume) 지원
  • 온라인 파일시스템 체크 및 복구
  • 내장 RAID 지원 (0, 1, 10, 5, 6)
  • 투명한 압축 지원 (zstd, lzo, zlib)

적합한 용도:

  • 개발 환경 (스냅샷 활용)
  • NAS/홈서버
  • 데이터 보호가 중요한 워크스테이션

제한사항:

  • RAID 5/6은 아직 불안정 (프로덕션 비권장)
  • ZFS 대비 성숙도가 낮음
# Btrfs 파일시스템 생성
mkfs.btrfs /dev/sdb1
 
# 스냅샷 생성
btrfs subvolume snapshot /mnt/data /mnt/data/.snapshots/snap1
 
# 압축 활성화
mount -o compress=zstd /dev/sdb1 /mnt/data

ZFS (Zettabyte File System)

Sun Microsystems에서 개발한 엔터프라이즈급 파일시스템임.

특징:

  • Copy-on-Write (CoW): 데이터 덮어쓰기 없이 새 위치에 기록
  • 체크섬 기반 데이터 무결성: 모든 블록에 체크섬 적용, Silent Corruption 방지
  • 스냅샷 및 클론: 즉각적인 스냅샷 생성, 공간 효율적
  • 내장 압축: lz4, gzip, zstd 등 지원
  • 내장 RAID (RAID-Z): RAID-Z1, Z2, Z3 (패리티 1~3개)
  • 스토리지 풀(zpool): 볼륨 매니저와 파일시스템 통합
  • Deduplication: 중복 데이터 제거 (메모리 사용량 높음)
  • Send/Receive: 스냅샷 기반 효율적인 복제

적합한 용도:

  • 엔터프라이즈 NAS/SAN
  • 백업 및 아카이브 시스템
  • 데이터 무결성이 최우선인 환경
  • 가상화 스토리지

제한사항:

  • 높은 메모리 요구량 (특히 Dedup 사용 시)
  • 라이선스 이슈로 Linux 커널 미포함 (별도 모듈 설치)
  • Write Amplification으로 SSD 수명에 영향
# ZFS 풀 생성 (RAID-Z1 = RAID 5 유사)
zpool create datapool raidz1 /dev/sdb /dev/sdc /dev/sdd
 
# 데이터셋 생성
zfs create datapool/backup
 
# 압축 활성화
zfs set compression=lz4 datapool/backup
 
# 스냅샷 생성
zfs snapshot datapool/backup@daily-2025-01-20
 
# 스냅샷 롤백
zfs rollback datapool/backup@daily-2025-01-20
 
# 원격 복제 (Send/Receive)
zfs send datapool/backup@snap1 | ssh remote-server zfs receive remotepool/backup

🆚 Copy-on-Write (CoW) vs 전통적 방식

전통적 방식 (ext4, XFS)

flowchart LR
    A["원본 데이터"] -->|덮어쓰기| B["수정된 데이터"]
  • 장점: 단순하고 효율적
  • 단점: 쓰기 중 장애 시 데이터 손상 가능

Copy-on-Write (Btrfs, ZFS)

flowchart LR
    A["원본 데이터"]
    B["새 위치에 수정된 데이터 기록"]
    C["포인터 업데이트"]
    
    A --> B --> C
    A -.->|원본 보존| A
  • 장점: 원본 보존, 스냅샷 용이, 장애 복구 강점
  • 단점: 단편화 증가, 쓰기 증폭

📋 파일시스템 선택 가이드

flowchart TD
    Start["파일시스템 선택 가이드"]
    Q1{"데이터 무결성이 최우선?"}
    Q2{"대용량 파일 위주?"}
    Q3{"스냅샷/롤백 필요?"}
    Q4{"엔터프라이즈급?"}
    
    ext4["ext4 - 범용, 안정성"]
    xfs["XFS - 대용량, 고성능"]
    btrfs["Btrfs - 스냅샷, 홈서버"]
    zfs["ZFS - 엔터프라이즈"]
    
    Start --> Q1
    Q1 -->|Yes| Q4
    Q1 -->|No| Q2
    Q2 -->|Yes| xfs
    Q2 -->|No| Q3
    Q3 -->|Yes| btrfs
    Q3 -->|No| ext4
    Q4 -->|Yes| zfs
    Q4 -->|No| btrfs
상황권장 파일시스템이유
범용 리눅스 서버ext4안정성, 호환성
대용량 DB 서버XFS대용량 파일 성능
개인 NAS/홈서버Btrfs스냅샷, 사용 편의성
엔터프라이즈 스토리지ZFS데이터 무결성, 확장성
Windows 호환 필요NTFS크로스 플랫폼

🔗 관련 포스트


🔗 참고 자료