1. 포맷(Format)은 단순히 지우는 게 아니다
우리가 하드디스크나 USB를 포맷할 때, 단순히 데이터를 지운다고 생각합니다.
하지만 포맷의 진짜 의미는 "땅에 구획을 나누고 주소를 붙이는 작업"입니다.
이때 어떤 규칙으로 구획을 나누느냐가 바로 "파일 시스템(File System)"입니다.
윈도우는 NTFS라는 규칙을 쓰고, 리눅스는 ext4나 XFS라는 규칙을 씁니다.
서버를 처음 설치할 때 "어떤 파일 시스템으로 포맷하시겠습니까?"라는 질문 앞에서 멈칫했다면, 오늘 이 글이 그 고민을 끝내드릴 것입니다. 각 파일 시스템의 특징과 용도에 맞는 선택 기준을 알아봅니다.

2.핵심 개념: 저널링(Journaling)이란?
현대 파일 시스템의 가장 중요한 기능은 "저널링"입니다.
컴퓨터가 데이터를 쓰다가 갑자기 정전이 됐다고 가정해 봅시다.
저널링이 없는 옛날 시스템(FAT32 등)은 어디까지 썼는지 기록이 없어서 파일이 깨지거나 디스크 전체를 스캔(fsck)해야 했습니다.
하지만 저널링 파일 시스템은 데이터를 쓰기 전에 "나 이거 쓸 거야"라고 로그(Journal)에 먼저 기록을 남깁니다.
전기가 나갔다 들어와도, 로그만 확인하면 하던 작업을 마저 하거나 취소할 수 있어 데이터가 깨질 확률이 획기적으로 줄어듭니다. NTFS, ext4, XFS 모두 이 저널링 기술을 기반으로 합니다.

3.파일 시스템 3대장 비교
NTFS (New Technology File System)
- 진영: 마이크로소프트 윈도우(Windows)의 표준입니다.
- 특징: 안정적이고 기능이 많습니다(권한 관리, 암호화 등). 하지만 리눅스에서는 기본적으로 쓰기 호환성이 좋지 않습니다.
- 용도: 윈도우 서버, 외장 하드(윈도우 호환용). 리눅스 서버의 메인 디스크로는 쓰지 않습니다.
ext4 (Fourth Extended Filesystem)
- 진영: 리눅스의 "국룰"이자 표준입니다.
- 특징: 가장 오래 검증되었고 안정적입니다. 파일 시스템을 줄이거나 늘리는 작업이 유연합니다.
작은 파일(소스 코드, 로그 파일 등)을 많이 다루는 환경에서 속도가 빠릅니다. - 용도: "일반적인 웹 서버, OS 설치용 디스크, 데비안/우분투 계열의 기본값."
XFS (eXtents File System)
- 진영: 고성능 엔터프라이즈 환경 (레드햇/CentOS/록키 리눅스의 기본값).
- 특징: 대용량 파일 처리에 최적화되어 있습니다.
테라바이트(TB) 급 이상의 거대한 단일 파일을 읽고 쓸 때 ext4보다 압도적으로 빠릅니다.
단, 한 번 늘린 용량을 다시 줄 이는 것(Shrink)이 불가능합니다. - 용도: "데이터베이스(DB) 서버, 동영상 스트리밍 서버, 대용량 스토리지."

4.엔지니어의 선택 가이드: ext4 vs XFS
실무에서 리눅스 서버를 세팅할 때 고민된다면, 아래 기준을 따르면 실패하지 않습니다.
- "잘 모르겠고 무난한 게 좋다" -> ext4
- 이유: 구글링하면 자료가 제일 많습니다. 실수로 파티션을 잘못 잡아도 복구하거나 조정하기가 쉽습니다.
- "DB 서버나 대용량 파일 서버다" -> XFS
- 이유: MySQL, Oracle 같은 DB나 CCTV 저장용 서버는 XFS가 성능상 유리합니다.
레드햇 계열(RHEL, CentOS, Rocky)을 쓴다면 설치 시 기본으로 XFS가 잡히는데, 굳이 바꾸지 말고 쓰면 됩니다.
- 이유: MySQL, Oracle 같은 DB나 CCTV 저장용 서버는 XFS가 성능상 유리합니다.
5.OS에 맞는 옷을 입혀라
윈도우에는 NTFS, 리눅스에는 ext4나 XFS. 각 운영체제는 자신에게 가장 잘 맞는 파일 시스템이 있습니다.
가끔 윈도우와 리눅스에서 외장 하드를 같이 쓰기 위해 "exFAT"을 쓰는 경우도 있지만,
저널링 기능이 없어서 데이터 안정성이 매우 떨어집니다. 서버용으로는 절대 추천하지 않습니다.
데이터의 성격(작은 파일 vs 큰 파일)과 사용하는 OS 환경에 맞춰 파일 시스템을 선택하는 것, 이것이 데이터 무결성을 지키는 서버 엔지니어의 첫 번째 업무입니다.
📌 함께 읽어보면 좋은 글
파일 시스템이 소프트웨어적인 데이터 관리 방식이라면, 이 데이터를 물리적으로 저장하는 하드웨어의 파티션과 디렉토리 구조도 중요합니다. 리눅스의 복잡한 폴더 구조를 5분 만에 이해해 보세요.
🔗 리눅스 디렉토리 구조: /etc, /var... 내 파일은 어디에? 글 보러가기
또한, 디스크 용량이 꽉 찼을 때 어떤 파일이 용량을 차지하고 있는지 확인하는 명령어 사용법도 알아두면 유용합니다.