본문 바로가기

디스크와 파티션

[디스크 정보] 파일 시스템과 포맷 1 장 - 파일 시스템과 포맷

Ⅰ. 파일 시스템과 포맷이란?

파일 시스템(File System)을 쉽게 표현하자면 저장 장치에 데이터를 기록하고 사용하기 위한 일종의 규칙입니다. 파일 시스템은 저장 장치에 데이터 즉, 파일의 이름을 지정하고, 저장하고, 읽고, 검색하는 등의 파일을 기록하고 사용하는 모든 작업의 조직적인 체계라고 할 수 있습니다.

비유를 하자면 도서관이나 서점에서 책을 보관하기 위해 책을 어떻게 보관할 것인지 보관한 책의 색인은 어떻게 작성할 것인지 책의 색인에는 저자, 출판사, 제목 등 어떤 항목을 얼마 만큼 기록할 것인지에 대한 체계적인 규칙을 세운 후 실질적으로 책을 보관하고 색인을 통해 책을 찾고 열람을 하게 됩니다.

파일 시스템도 이와 비슷합니다. 파일을(데이터) 어떻게 쓰고 관리하고 찾고 읽을 것인지에 대한 체계적인 규칙을 세우고 이 규칙에 따라 파일들을 저장 장치에 보관하고 이용을 하는 것이죠. 즉, 파일 시스템은 저장 장치에 데이터를 기록하고 사용하기 위한 규칙이자 체계인 것 입니다.

도서관 시스템과 파일 시스템은 그 특성이 굉장히 유사하다.




이러한 파일 시스템은 저장 장치에 따라 또는 운영체제에 따라 수 많은 종류가 있습니다. 플로피 디스켓을 위한 FAT12, CD/DVD 와 같은 광학 미디어를 위한 ISO 9660, UDF, 윈도우의 FAT16, FAT32, exFAT, NTFS, 리눅스의 ext2, ext3, ext4, XFS, JFX, ReiserFS, 솔라리스의 UFS, VxFS, QFS, ZFS, 맥 OS X 의 HFS, HFS Plus, 등이 모두 파일 시스템의 한 종류들 입니다.

한 가지 파일 시스템에 대해 반드시 짚고 넘어가야할 문제가 있습니다. 데이터, 즉, 파일은 바뀌지 않습니다. 단지 이러한 파일을 저장 장치에 어떻게 저장할 것인가? 어디에 위치시키고 읽고 쓰는데 어떠한 규칙을 적용할 것인가? 를 결정하는 것이 바로 파일 시스템인 것입니다. ISO 9660 또는 UDF 라는 파일 시스템에 저장되어 CD 의 데이터를 NTFS 라는 파일 시스템인 D: 드라이브로 복사하여도 파일은 변하지 않는 것을 상기해 보시면 이해가 빠르실 겁니다.[도서관에서 다른 도서관으로 책을 옮긴다고 하여 책 자체의 내용이 변하지 않는 것처럼, 단지 해당 도서관의 시스템에 맞게 책을 보관하는 규칙만 변하는 것을 생각하세요.]


저장 장치에 이러한 파일 시스템을 구축하는 작업을 바로 포맷(Format) 이라고 합니다. 즉, NTFS 로 포맷을 한다는 말은 해당 저장 장치에 데이터를 저장하기 위해 저장 장치에 NTFS 라는 파일 시스템을 구축한다는 것과 같습니다.

저장 장치는 이렇게 데이터를 기록하고 보관하고 사용하기 위한 파일 시스템이라는 체제를 구축해야지만 비로소 데이터를 저장하고 읽을 수 있습니다. 그리하여 이러한 파일 시스템을 구축하는 작업인 포맷은 저장 장치를 저장 장치로써 사용하기 위한 가장 기초적인 작업 중의 하나라고 할 수 있습니다.

이제 파일 시스템과 포맷이 정확히 무엇을 의미하는지 아시겠나요? 이 글에서는 이 수 많은 파일 시스템들 중 윈도우 7 의 디스크에서 사용되는 FAT32 와 exFAT 그리고 NTFS 에 대해서 알아보도록 하겠습니다.




Ⅱ. 주요 파일 시스템 - FAT16, FAT32, exFAT, NTFS

1. File Allocation Table(FAT)

FAT32 와 exFAT 는 File Allocation Table(파일 할당 테이블) 이라는 파일 시스템 종류입니다. 도스부터 사용되어 플로피를 위한 FAT12 부터 FAT16 과 FAT32, exFAT(Extended FAT, FAT64) 까지 발전을 하였습니다. FAT12 부터 따지면 30 년이 넘은 파일 시스템 입니다. 여기에서 FAT 뒤에 붙은 각각의 숫자는 비트를 의미합니다. 즉, FAT16 은 16 비트, FAT32 는 32 비트, exFAT(FAT64) 는 64 비트를 의미합니다.

FAT 파일 시스템은 굉장히 오래된 파일 시스템이며 점차 개량되어 발전해왔기 때문에 NTFS 와 같이 권한 관리나 보안과 같은 부가적인 기능이 없습니다. 그래서 굉장히 단순하고 이로 인해 속도적인 측면에서는 NTFS 보다 빠른 장점이 있습니다.(뭔 기능이 있어야지) 하지만 디스크에 저장된 파일의 개수가 늘어나면 NTFS 보다 떨어지는 검색 능력으로 인해 오히려 느려지는 모습을 보입니다. 아무튼 이러한 이유로 인해 윈도우 7 은 FAT 방식으로 포맷된 볼륨으로의 설치를 아예 지원하지 않고 있습니다.

아무튼 단순하기 때문에 파일의 개수가 그리 많지 않고 조금이라도 빠른 성능을 위해 파워 유저들의 경우 다운로드 전용으로 사용하는 볼륨에 FAT 파일 시스템을 사용하기도 합니다. 또한 오래된 파일 시스템이기 때문에 그만큼 지원하는 운영체제가 많고 이로 인해 이동형 저장 매체의 경우 호환성을 위해 일부러 FAT32 로 포맷하기도 합니다.

현재는 기존까지 사용하던 FAT32 의 한계와(최대 인식 가능 파일의 크기 4GB 와 같은) 속도 등을 개선한 exFAT 까지 발전을 하였습니다. 하지만 exFAT 의 경우 NTFS  보다 오히려 하위 운영체제에서의 지원이 좋지 않고 나온지 얼마 되지 않았기 때문에 아직까진 많이 사용되진 않습니다.



2. New Technology File System(NT File System, NTFS)

윈도우 NT 3.1 부터 사용된 NT 커널의 기본 파일 시스템입니다. 1993 년 7 월에 등장한 파일 시스템으로 비교적 최신의 파일 시스템이라고 할 수 있습니다. NT 즉, 서버에서 사용하기 위해 등장한 파일 시스템이기 때문에 권한 관리, 보안 설정과 같은  FAT 파일 시스템에 비해 좀 더 진보된 기능들을 포함하고 있습니다.

이러한 NTFS 의 핵심은 MFT(Master File Table) 라는 것에 있습니다. FAT 의 File Allocation Table 과 비슷한 것으로 파일의 이름, 권한, 크기, 파일이 사용하는 클러스터 번호, 디렉토리 트리 구조 등을 기록한 거대한 DB 라고 생각하시면 됩니다. 이러한 MFT 는 NTFS 의 모든 것이라고 할 만큼 중요하기 때문에 NTFS 파일 시스템으로 포맷한 순간 일정 공간을 전용으로 할당 받아 일반 파일이 해당 공간에 기록되지 않게 함으로써 단편화를 막고 있습니다.

하지만 MFT 가 꽉차거나 또는 일반 데이터 영역이 꽉찬 경우 어쩔 수 없이 서로의 영역을 침범하여 정보를 기록하게 되는데 아무튼 이 때 부터 MFT 의 단편화가 시작되고 MFT 의 단편화는 NTFS 의 재앙이라고 부를 수 있을 만큼 NTFS 의 엄청난 성능 하락을 가져오기 때문에 NTFS 를 사용하는 경우 MFT 의 단편화는 무슨 수를 쓰더라도 막는 것이 좋습니다. NTFS 로 포맷된 볼륨은 보통 남은 용량이 10% 이하로 내려가는 순간부터 MFT 의 단편화가 일어난다고 보는게 좋으므로 볼륨 전체의 여유 공간을 최소 10% 정도는 남겨 두는게 좋습니다.

NTFS 의 볼륨의 크기는 클러스터의 크기에 따라 최소 2 TB(테라바이트) 부터 256 TB 까지 지원을 하고 있으며(이론적으로 최대 1 YB(요타바이트)) 지원하는 단일 파일의 최대 크기는 256 TB (이론적으론 16 EB(엑사바이트)) 로 충분히 여유롭다고 할 수 있습니다.

이러한 NTFS 는 윈도우 7 의 기본 파일 시스템으로 마이크로소프트사에서는 기본적으로 FAT 파일 시스템보단 NTFS 파일 시스템을 사용할 것을 권고하고 있습니다.



3. FAT16, FAT32, exFAT, NTFS 의 비교

어째 FAT 와 NTFS 에 대한 설명이 상당히 단촐한 것 같은데 위와 같은 파일 시스템들을 구조까지 모두 설명할 필요는 없을 것이라 생각합니다.(그 많은 자료 찾을려면 저도 죽습니다.) 또한 들어가기 시작하면 밑도 끝도 없는 분야이기 때문에 -_-; 꼭 원하시는 분들은 인터넷에 정보가 널려있고 책도 많으니 찾아서 배워보시길 바랍니다. ^^

아무튼 이 포스팅의 목적은 파일 시스템이란 무엇인지 그리고 윈도우 7 에서 사용되는 파일 시스템들에 대한 비교를 주 목적으로 하는 것이기 때문에 이해해 주시기 바랍니다. 그럼 FA16 과 FAT32, exFAT, NTFS 의 주요한 내용들을 비교한 표를 제공해 드리도록 하겠습니다.

※ 최대 볼륨 크기에서 * 은 이론적 최대치임.


윈도우 7 의 파일 시스템 비교 - 등장 순
  FAT16 FAT32 NTFS exFAT(FAT64)
기초 정보
개발사

Microsoft

전체 이름 File Allocation Table 16-bit Version File Allocation Table 32-bit Version New Technology File system Extended File Allocation Table
도입 시기 1987년  11월
Compaq DOS 3.31
1996년 8월
Windows 95 OSR2
1993년 7월
Windows NT 3.1
2006년 11월
Windows Embedded CE 6.0
파티션 식별자 0x04, 0x06, 0x0E 0x0B, 0x0C 0x07 0x07
구조
디렉토리 구조 Table Table B+ Tree Table
파일 할당 Linked List Linked List Bitmap Bitmap, Linked List
배드 섹터 블록 Cluster Tagging Cluster Tagging $badclus Cluster Tagging
한계
최대 파일 크기 4 GB 4 GB 16 TB
16 EB
127 PB
최대 파일 개수 65,536 개

4,177,920 개

4,294,967,295 개 디렉토리당 2,796,202 개
65,536 디렉토리
최대 클러스터 개수 216 - 19 개 228 - 19 개 264 - 19 개 자료 없음
최대 파일 이름 길이 255 자 UTF-16(LFN) 255 자 UTF-16(LFN) 255 자 UTF-16 255 자 UTF-16
최대 볼륨 크기 2 GB
4 GB with 64 KB Cluster
2TB
* 8TB with 32 KB Cluster
16TB with 4 KB Sector
256 TB
* 1 YB with 64KB Cluster
512 TB
* 64 ZB
기능
날짜 기록 생성, 수정, 접근 생성, 수정, 접근 생성, 수정, 접근, POSIX Change 생성, 수정, 접근
날짜 기간 1980년 1월 1일부터
2107년 12월 31일까지
1980년 1월 1일부터
2107년 12월 31일까지
1601년 1월 1일부터
60056년 5월 28일까지
1980년 1월 1일부터
2107년 12월 31일까지
시간 단위 2 초 2 초 100 ns 10 ms
Fork No nativery No nativery Yes Yes
속성 읽기 전용, 숨김, 시스템, 볼륨 레이블, 서브디렉토리, 보관 읽기 전용, 숨김, 시스템, 볼륨 레이블, 서브디렉토리, 보관 읽기 전용, 숨김, 시스템, 서브디렉토리, 보관, 오프라인, 임시, 압축, not content indexed 읽기 전용, 숨김, 시스템, 볼륨 레이블, 서브디렉토리, 보관
권한 없음 없음 ACLs ACL
압축 볼륨 단위 - DoubleSpace,DriveSpace 없음 파일 단위
LZ77(Windows NT3.1 부터 지원)
없음
암호화 없음 없음 파일 단위
DESX(Windows 2000 부터 지원)
Triple DES(Widnwos XP 부터 지원)
AES(Widnwos XP SP1, Widnwos Server 2003 부터 지원)
없음
 
지원 운영체제 MS-DOS, 모든 Windows MS-DOS, Windwos 95 OSR2 이후 모든 Windows Widnwos NT 3.1
Windows NT 4.0
Windwos 2000
Windows XP
Windows Server 2003
Windwos Vista
Windows Server 2008
Windows 7
Windows Server 2008 R2
Windows Embedded CE 6.0
Windows XP SP2(관련 업데이트 설치 후)
Windwos Server 2003 SP2(관련 업데이트 설치 후)
Windows Vista SP1
Windows Server 2008
Windows 7
Windows Server 2008 R2





Ⅲ. 부록

1.참고자로