모든 강의를 무료로 볼 수 있어요. 회원가입 없이도 학습 가능합니다.

8강 / 전체 9강

파일 시스템 유형 — ext2/3/4·XFS·Btrfs와 저널링

14분 읽기 조회 0

[1과목 2장 02절] ext2/3/4의 발전과 저널링 원리, XFS·Btrfs, swap·tmpfs·procfs 등 특수 파일 시스템과 타 OS 파일 시스템 지원을 다룹니다.

🎯 이 강의 학습 목표

이 강은 1과목 2장 02절 파티션 구성과 파일 시스템 유형의 뒷부분입니다. 7강에서 나눈 파티션은 아직 빈 공간일 뿐이고, 파일 시스템을 만들어야 비로소 파일을 저장할 수 있습니다. 이 강을 마치면 ext2에서 ext4까지 무엇이 달라졌는지 설명할 수 있고, 저널링이 왜 필요하고 어떻게 동작하는지 말할 수 있으며, XFS·Btrfs·tmpfs·procfs 등 각 파일 시스템의 성격을 구분할 수 있게 됩니다.

출제 형태는 두 가지입니다. "다음 중 저널링 파일 시스템이 아닌 것은?"처럼 분류를 묻는 문제, 그리고 "리눅스를 정상 설치했을 때 기본적으로 생성되는 파일 시스템이 아닌 것은?"처럼 존재하지 않는 이름을 골라내는 문제입니다. 이름 목록을 정확히 알고 있어야 풀립니다.

💡 파일 시스템이란 무엇인가

디스크는 물리적으로 보면 같은 크기의 블록이 줄지어 늘어선 저장 공간일 뿐입니다. 여기에 "이 블록부터 저 블록까지가 report.txt라는 파일이고, 소유자는 누구이며, 언제 수정되었다"는 규칙과 자료구조를 얹어야 우리가 아는 파일과 디렉터리가 됩니다. 그 규칙 전체가 파일 시스템(File System)입니다.

파일 시스템이 관리하는 것은 크게 세 가지입니다. 첫째, 공간 관리로 어느 블록이 비어 있고 어느 블록이 쓰이는지 추적합니다. 둘째, 메타데이터 관리로 파일의 크기·소유자·권한·시각 정보를 보관합니다. 리눅스에서 이 정보를 담는 자료구조가 inode이며 17강에서 자세히 다룹니다. 셋째, 이름 관리로 디렉터리 구조를 통해 사람이 읽는 이름과 실제 저장 위치를 연결합니다.

파티션에 파일 시스템을 만드는 작업을 포맷이라 하고, 리눅스에서는 mkfs 계열 명령으로 수행합니다. 이 부분은 18강에서 다룹니다.

💡 ext 계열의 발전 — ext2에서 ext4까지

리눅스의 대표 파일 시스템은 ext(Extended File System) 계열입니다. 세대별로 무엇이 추가되었는지가 핵심입니다.

구분ext2ext3ext4
저널링없음있음 (핵심 차이)있음
호환성—ext2와 상호 전환 가능ext2·ext3 하위 호환
블록 할당블록 단위 매핑블록 단위 매핑익스텐트(extent) 방식
하위 디렉터리 수약 32,000개 제한약 32,000개 제한사실상 무제한
대표 용도USB 등 소용량, 저널 불필요 매체ext2에서 무중단 전환현재 기본값

ext2는 오랫동안 표준이었지만 치명적 약점이 있었습니다. 파일을 쓰는 도중 정전이 나면 메타데이터와 실제 데이터가 어긋난 채로 남습니다. 다시 부팅하면 fsck가 디스크 전체를 훑으며 정합성을 맞추는데, 용량이 클수록 수십 분에서 몇 시간이 걸립니다.

ext3는 여기에 저널링(journaling)을 더했습니다. 그리고 ext2와 자료구조가 같아서 기존 파일 시스템을 지우지 않고 저널만 추가해 전환할 수 있었습니다. 이 호환성 덕분에 빠르게 보급되었습니다.

ext4는 성능과 규모를 크게 개선했습니다. 가장 중요한 변화가 익스텐트입니다. 기존에는 "이 파일은 블록 100번, 101번, 102번…"처럼 블록을 하나씩 나열했지만, 익스텐트는 "100번부터 5,000개 블록"처럼 연속 구간으로 기록합니다. 대용량 파일에서 메타데이터가 극적으로 줄고 속도가 빨라집니다. 여기에 지연 할당으로 단편화를 줄이고, 하위 디렉터리 개수 제한도 사실상 없앴습니다.

💡 저널링은 어떻게 동작하는가

저널링은 회계 장부에서 온 개념입니다. 실제 장부를 고치기 전에 "무엇을 어떻게 바꿀 것인지"를 별도 기록장(저널)에 먼저 적어 두는 방식입니다.

순서는 이렇습니다. ① 변경 계획을 저널 영역에 기록한다 → ② 실제 파일 시스템에 반영한다 → ③ 저널에서 해당 기록을 지운다. 만약 ②번 도중에 전원이 나가면, 재부팅 시 저널만 확인하면 됩니다. 완료 표시가 없는 항목만 다시 적용하거나 취소하면 되므로, 디스크 전체를 검사할 필요가 없습니다. ext2에서 몇 시간 걸리던 복구가 수 초로 줄어드는 이유입니다.

저널링에는 무엇까지 저널에 적을 것인가에 따라 세 가지 모드가 있습니다.

모드저널에 기록하는 것특성
journal메타데이터 + 실제 데이터가장 안전, 가장 느림(두 번 씀)
ordered메타데이터만. 단 데이터를 먼저 쓴 뒤 메타데이터 기록기본값. 안전성과 성능의 절충
writeback메타데이터만. 순서 보장 없음가장 빠름, 비정상 종료 시 파일 내용이 어긋날 수 있음

기본값이 ordered라는 점이 시험 포인트입니다. 잠시 뒤 실습에서 실제 마운트 정보에 data=ordered가 찍혀 있는 것을 직접 확인합니다.

한 가지 유의할 점이 있습니다. 저널링은 파일 시스템의 정합성을 지키는 것이지, 작성 중이던 데이터의 내용까지 보장하지는 않습니다. 정전 직전에 저장하던 문서의 마지막 몇 초 분량은 사라질 수 있습니다. "저널링이 있으면 데이터가 절대 유실되지 않는다"는 서술은 오답입니다.

💡 그 밖의 파일 시스템

XFS는 실리콘 그래픽스(SGI)가 개발한 저널링 파일 시스템으로, 대용량 파일과 병렬 입출력에 강합니다. RHEL 7부터 기본 파일 시스템으로 채택되었습니다. 온라인 상태에서 확장은 가능하지만 축소는 지원하지 않는다는 점이 특징이자 함정입니다.

Btrfs는 쓰기 시 복사(Copy-on-Write) 방식을 쓰는 차세대 파일 시스템입니다. 스냅숏, 서브볼륨, 자체 RAID, 체크섬 기반 무결성 검사를 파일 시스템 자체가 제공합니다. openSUSE 등이 기본으로 채택하고 있습니다. 비슷한 성격의 ZFS도 있으나 라이선스 문제로 리눅스 커널에 기본 포함되지는 않습니다.

디스크에 저장되지 않는 특수 파일 시스템도 중요합니다.

이름성격마운트 위치
swap가상 메모리 영역. 파일 시스템이라기보다 전용 영역(디렉터리 없음)
procfs커널·프로세스 정보를 파일처럼 노출. 메모리에만 존재/proc
sysfs장치·드라이버 정보를 노출/sys
tmpfs메모리를 디스크처럼. 재부팅 시 사라짐/run, /dev/shm 등
devtmpfs장치 파일을 자동 생성/dev

네트워크 파일 시스템으로는 유닉스 계열끼리 공유하는 NFS(Network File System), 윈도우와 공유하는 SMB/CIFS가 있습니다. 48강에서 자세히 다룹니다. 타 운영체제 파일 시스템도 읽고 쓸 수 있습니다. 윈도우의 FAT16·FAT32·exFAT·NTFS, 광디스크의 ISO9660(CD)과 UDF(DVD)가 대표적입니다. 다만 NTFS는 리눅스의 고유 파일 시스템이 아니라 지원 대상이라는 점을 구분해야 합니다.

💻 실습으로 확인하기

아래는 WSL 우분투에서 실행한 결과입니다.

$ cat /proc/filesystems | head -22
nodev	sysfs
nodev	tmpfs
nodev	bdev
nodev	proc
nodev	cgroup
nodev	devtmpfs
nodev	debugfs
nodev	sockfs
nodev	ramfs
nodev	devpts
	ext3
	ext4
	ext2
	squashfs
	vfat

/proc/filesystems는 현재 커널이 지원하는 파일 시스템 목록입니다. 읽는 법이 중요합니다. 앞에 nodev가 붙은 것은 실제 블록 장치가 필요 없는 파일 시스템입니다. sysfs·proc·tmpfs가 여기 속하는데, 앞에서 정리한 특수 파일 시스템과 정확히 일치합니다. 반면 ext3·ext4·ext2·vfat은 nodev가 없으므로 디스크 장치에 만드는 파일 시스템입니다. 이 한 파일로 두 부류의 구분이 눈에 들어옵니다.

$ mount | grep -E "^(proc|sysfs|tmpfs|/dev/sdd)"
/dev/sdd on / type ext4 (rw,relatime,discard,errors=remount-ro,data=ordered)
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,noatime)
proc on /proc type proc (rw,nosuid,nodev,noexec,noatime)
tmpfs on /run/user/1000 type tmpfs (rw,nosuid,nodev,relatime,size=1637440k,...)

첫 줄을 자세히 보십시오. /dev/sdd on / type ext4는 "장치 /dev/sdd를 /에 ext4 형식으로 마운트했다"는 뜻입니다. 그리고 괄호 안 옵션에 data=ordered가 보입니다. 앞에서 표로 외운 저널링 기본 모드가 실제로 적용되어 있음을 직접 확인한 것입니다.

나머지 줄도 배운 내용과 맞아떨어집니다. sysfs on /sys, proc on /proc, tmpfs on /run/user/1000처럼 특수 파일 시스템이 각자의 지정된 위치에 마운트되어 있습니다. 장치 자리에 /dev/...가 아니라 sysfs·proc·tmpfs라는 이름이 그대로 적혀 있다는 점도 이들이 디스크에 없는 파일 시스템임을 보여 줍니다.

$ df -hT | grep -E "ext4|tmpfs" | head -3
none           tmpfs    7.9G  4.0K  7.9G   1% /mnt/wsl
/dev/sdd       ext4    1007G   38G  919G   4% /
none           tmpfs    7.9G  188K  7.9G   1% /mnt/wslg

df -T의 Type 열로 파일 시스템 종류를 한눈에 볼 수 있습니다. tmpfs 항목들이 모두 7.9G로 같은 크기인 것이 흥미로운데, 이는 물리 메모리 용량을 기준으로 잡히기 때문입니다. tmpfs가 디스크가 아니라 메모리를 쓰는 파일 시스템이라는 사실이 숫자로 드러납니다.

⚠️ 시험에 나오는 함정

함정정확한 사실
ext2도 저널링 파일 시스템이다ext2는 저널링 없음. ext3부터 도입
저널링 기본 모드는 journal이다기본은 ordered
저널링이 있으면 데이터가 유실되지 않는다파일 시스템 정합성을 지킬 뿐, 작성 중 데이터는 유실 가능
XFS는 온라인 축소가 가능하다확장만 가능, 축소 불가
NTFS는 리눅스 고유 파일 시스템이다윈도우의 파일 시스템이며 리눅스는 지원할 뿐
/proc은 디스크에 저장된다메모리에만 존재하는 가상 파일 시스템
ext4는 ext3와 호환되지 않는다ext2·ext3와 하위 호환

📝 핵심 요약 — 암기표

항목핵심
ext2 → ext3저널링 추가 (가장 중요한 차이)
ext3 → ext4익스텐트 · 지연 할당 · 하위 디렉터리 제한 해제 · 대용량
저널링 순서① 저널 기록 → ② 실제 반영 → ③ 저널 삭제
저널링 모드journal(데이터까지) · ordered(기본) · writeback(가장 빠름)
XFSSGI 개발 · RHEL 7+ 기본 · 확장만 가능, 축소 불가
BtrfsCoW · 스냅숏 · 서브볼륨 · 자체 RAID
특수 파일 시스템/proc=procfs · /sys=sysfs · /run=tmpfs · /dev=devtmpfs
네트워크NFS(유닉스 계열) · SMB/CIFS(윈도우)
타 OS 지원FAT16/32 · exFAT · NTFS · ISO9660(CD) · UDF(DVD)
지원 목록 확인cat /proc/filesystems — nodev는 장치 불필요

다음 9강에서는 이렇게 준비된 디스크에서 시스템이 실제로 부팅되는 과정을 다룹니다. BIOS/UEFI부터 GRUB, 커널 로드, systemd까지의 순서와 런레벨·target이 주제입니다.

📋 실전 문제

1. 다음 중 저널링을 지원하지 않는 파일 시스템은?
① ext2    ② ext3    ③ ext4    ④ XFS

2. 리눅스를 정상 설치했을 경우 기본적으로 생성되는 파일 시스템이 아닌 것은?
① swap 영역    ② ext4 파일 시스템
③ proc 파일 시스템    ④ romdrive 파일 시스템

3. ext3의 기본 저널링 모드로, 데이터를 먼저 기록한 뒤 메타데이터를 저널에 남기는 방식은?
① journal    ② ordered    ③ writeback    ④ delayed

4. ext4에서 도입되어 대용량 파일의 블록 관리 효율을 크게 높인 기술은?
① 저널링    ② 익스텐트(extent)    ③ 쓰기 시 복사    ④ 스냅숏

5. 커널과 프로세스 정보를 파일 형태로 제공하며 디스크가 아닌 메모리에만 존재하는 가상 파일 시스템이 마운트되는 디렉터리는?
① /proc    ② /var    ③ /usr    ④ /opt

6. 다음 중 쓰기 시 복사(Copy-on-Write) 방식을 사용하며 스냅숏과 서브볼륨 기능을 제공하는 파일 시스템은?
① ext2    ② vfat    ③ Btrfs    ④ ISO9660

7. 저널링 파일 시스템의 장점으로 가장 적절한 것은?
① 디스크 용량을 자동으로 압축해 준다.
② 비정상 종료 후 복구 시 전체 검사 대신 저널만 확인하면 되어 시간이 크게 단축된다.
③ 정전이 발생해도 작성 중이던 파일 내용이 절대 유실되지 않는다.
④ 파일 시스템의 크기를 항상 자유롭게 축소할 수 있다.

8. cat /proc/filesystems 출력에서 항목 앞에 nodev가 붙어 있는 것의 의미는?
① 해당 파일 시스템을 마운트할 수 없다.
② 해당 파일 시스템은 블록 장치를 필요로 하지 않는다.
③ 해당 파일 시스템은 읽기 전용이다.
④ 해당 파일 시스템은 저널링을 지원하지 않는다.

✅ 정답과 해설

1. 정답 ①
ext2는 저널링을 지원하지 않습니다. 저널링은 ext3에서 처음 도입되었고, 그것이 ext2와 ext3를 가르는 결정적 차이입니다. ③의 ext4와 ④의 XFS는 모두 저널링 파일 시스템입니다.

2. 정답 ④
romdrive라는 파일 시스템은 존재하지 않습니다. ①의 swap은 설치 시 반드시 만드는 영역, ②의 ext4는 루트 파일 시스템, ③의 proc은 커널이 자동으로 마운트하는 가상 파일 시스템입니다. 이처럼 없는 이름을 만들어 넣는 출제 방식이 자주 쓰이므로, 실제 목록을 /proc/filesystems로 확인해 두면 유리합니다.

3. 정답 ②
ordered가 기본 모드입니다. 데이터를 먼저 디스크에 쓰고 그다음에 메타데이터를 저널에 기록하므로, 안전성과 성능이 균형을 이룹니다. ①의 journal은 데이터까지 저널에 써서 가장 안전하지만 느리고, ③의 writeback은 순서를 보장하지 않아 가장 빠르지만 위험합니다. ④의 delayed는 저널링 모드 이름이 아닙니다.

4. 정답 ②
익스텐트는 블록을 하나씩 나열하는 대신 연속된 구간으로 기록해 메타데이터를 줄이고 속도를 높입니다. ①의 저널링은 ext3에서 도입되었고, ③의 쓰기 시 복사와 ④의 스냅숏은 Btrfs·ZFS의 특징입니다.

5. 정답 ①
/proc에 procfs가 마운트됩니다. /proc/cpuinfo·/proc/meminfo·/proc/filesystems처럼 파일로 보이지만 실제 디스크에는 없습니다. ②·③·④는 모두 디스크에 저장되는 일반 디렉터리입니다.

6. 정답 ③
Btrfs입니다. 쓰기 시 복사 구조 덕분에 스냅숏을 거의 비용 없이 만들 수 있고, 서브볼륨과 자체 RAID, 체크섬 기반 무결성 검사를 제공합니다. ①의 ext2는 저널링도 없는 구형, ②의 vfat은 FAT 계열, ④의 ISO9660은 CD용 읽기 전용 파일 시스템입니다.

7. 정답 ②
저널링의 본질적 이점은 복구 시간 단축입니다. ①의 압축은 저널링과 무관하고, ③은 저널링이 파일 시스템 정합성을 지킬 뿐 작성 중 데이터까지 보장하지는 않으므로 틀립니다. ④의 축소는 파일 시스템마다 다르며 XFS는 아예 지원하지 않습니다.

8. 정답 ②
nodev는 블록 장치 없이 마운트되는 파일 시스템임을 표시합니다. proc·sysfs·tmpfs가 여기 해당하며, 반대로 ext4·vfat처럼 표시가 없는 것은 디스크 장치를 필요로 합니다. ①·③·④는 nodev의 의미와 무관한 서술입니다.

📚 참고 자료

관련 주제

  • 파일 시스템
  • ext4
  • 저널링
  • XFS
  • Btrfs
  • tmpfs
  • procfs
  • NTFS
  • 자격증
  • 자격증 강의
  • 리눅스마스터 2급 완전정복
  • 무료강의
  • 무료 온라인 강의
  • NUGUNA
  • 누구나

📚 시리즈 전체 공유

리눅스마스터 2급 완전정복

이 강의가 속한 시리즈는 총 9강, 모두 무료입니다. 처음부터 배우려는 동료에게 시리즈 전체를 알려 주세요.

댓글

0/1000

불러오는 중...