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

파일 시스템(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.참고자로






 

 

신고
캐플 블로그에 공개된 글은 반드시 원본 글의 링크를 포함시키는 조건으로 자유롭게 이용하실 수 있습니다.
하지만 블로그의 발전을 위하여 되도록이면 링크로 글을 소개해주시길 부탁드립니다. ^^

- 상업적인 용도의 사이트는 대상에서 제외됩니다. -
- 글에는 오류가 있을 수 있고, 추후 수정 또는 재발행될 수 있습니다. -
  1. 돌산 2013.01.15 15:01 신고  댓글주소  수정/삭제  댓글쓰기
    캐플님의 블로그를 알기 전에는 포맷이 단순히" 하드의 모든 자료를 지운다"라는 의미로 알고 있었습니다. 물론 포맷 작업이 그런 결과를 가져오지만, 캐플님의 글들을 통해 원래의 의미가 "하드에 파일 시스템을 구축하는 것"이라고 제대로 알게 되었네요.고맙습니다.
  2. 십렙블마 2013.01.18 11:11 신고  댓글주소  수정/삭제  댓글쓰기
    저같은 경우 ssd 64기가를 통으로 OS설치를 이용해서 사용중인데 MFT 단편화같은건 첨 들어보는 정보로군요. 10% 이내로 사용할 수 있도록 만전을 기해야겠습니다.
    그런데 하드를 2개의 파티션으로 나눴을 때는 MFT단편화가 어떻게 일어나는지 궁금하네요.
    32기가(C드라이브) 32기가(D드라이브)로 나누면 각각이 MFT단편화가 일어나지 않게 사용해야하는건지, 아니면 C만 단편화를 걱정해야하는건지...
    뭐 대체로 OS가 설치된 곳만 걱정해주면 될 것 같긴 합니다만...
    • BlogIcon CApple 2013.01.18 13:03 신고  댓글주소  수정/삭제
      아니죠. 단편화는 기존까지의 플래터가 있고, 이걸 회전시키면서 기계적으로 헤드가 왔다갔다하는 하드 디스크(HDD)에서 영향을 미치는 내용입니다. 즉, 읽어야 할 파일들이 물리적으로 서로 멀리 떨어져 있으면 이걸 읽기 위해 기계 장치가 왔다 갔다 하는 그 시간이 오래 걸리기 때문에 성능이 떨어지고 그래서 중요한 것입니다. 제가 작성했던 글은 물론 다른 곳의 많은 글들도 아직 SSD 가 아예 나오지 않았거나 대중화되지 않았던 당시에 작성된 것이라 거의 HDD 에 초점이 맞추어져서 작성되어 있기 때문에, 이 부분은 생각을 해야 합니다.

      새롭게 등장하여 요즘 널리 사용되는 SSD 는 이러한 기계적인 구동부 없이 그냥 쉽게 전기적인 신호로만 데이터에 접근을 하니 단편화가 일어나서 파일들이(MFT 가) 서로 쪼개져도 성능에 영향을 미치지 않는 것이고요.



      HDD 와 SSD 의 차이를 아주 간단하게 이야기를 하면, 서울에 1 이라는 데이터가 있고 부산에 0 이라는 데이터가 있다고 가정을 해보겠습니다.

      HDD 는 차로 서울까지 간 다음에 "서울의 데이터가 뭐야?" 물어보고 다시 차타고 부산까지 가서 "부산의 데이터는 뭐야?" 물어보는 구조입니다.

      SSD 는 그 자리에서 곧바로 서울로 전화를 걸어서 "서울의 데이터가 뭐야?" 물어보고, 바로 그 자리에서 다시 부산으로 전화를 걸어서 "부산의 데이터는 뭐야?" 물어보는 구조이죠.

      만약에 데이터가 서울과 부산이 아닌, 서울과 인천에 있다면 HDD 에서는 기존에 서울과 부산에 있었을 때보다 실제로 차를 타고 이동해야 하는 거리가 짧아지기 때문에 훨씬 빨리 데이터를 알아낼 수 있고, SSD 는 어차피 전화해서 물어보니 서울 부산에 있든, 서울 인천에 있든 속도에 영향을 미치지 않는 거죠.

      서울 인천처럼 데이터가 한 군데에 모여 있어야 하는데, 서울 부산처럼 데이터가 멀리 떨어져 있는 상황을 단편화라고 부르는 겁니다. 그리고 이러한 단편화가 HDD 에서는 용량이 10% 내외로 줄어들었을 때, MFT 라는 성능에 많은 영향을 미치는 부분까지 단편화되기 시작하고, 그래서 성능이 급격하게 떨어지니 이것을 주의하라는 것이고요.

      그래서 결론적으로 SSD 에서는 10% 내외는 신경쓰지 않으셔도 됩니다. 단편화의 영향을 받지 않으니까요. 이러한 종합적인 이유로 SSD 가 빠르고 좋다고 하는 것이죠.



      MFT 는 디스크 전체가 아닌 개개의 파티션(볼륨)에 위치한 파일 시스템의 영역입니다. 그래서 하나의 디스크를 C: D: 와 같이 여러 개로 나눠서 사용하는 경우 각각의 드라이브마다 파일 시스템이 따로 존재하고 MFT 도 따로 존재하는 것이죠. 그러니 HDD 를 사용한다면 한 군데가 아니라 사용 중인 모든 드라이브에서 단편화가 일어나지 않도록 잘 관리해야 하는 겁니다. 그걸 관리하는 게 첫 째로 일반적인 파일 영역에선 디스크 조각 모음을 실행하는 것이고, 둘 째로 MFT 영역에선 드라이브 전체 공간의 10% 내외로 여유 공간을 유지시켜주는 것이죠.

      SSD 는 단편화의 영향을 받지 않으니 디스크 조각 모음이 전혀 필요 없고, MFT 가 단편화되든 말든 성능에 영향을 미치지 않기 때문에 10% 내외의 여유 용량을 남겨두는 것도 신경쓰지 않아도 되는 겁니다.
    • 십렙블마 2013.01.18 18:27 신고  댓글주소  수정/삭제
      아... 그렇군요. 머리속에 먹구름이 걷히는 군요. 친절한 답변 감사드립니다.^^
      제가 SSD를 전에 편의점 알바한 돈으로 한 3년전인가 구매해서(i7 920과함께...) 꽤 오랫동안 써오고 있어서 다들 SSD사용하는 줄 착각에 빠져있었네요--;;
      덕분에 WOW를 집에서 쾌적하게 즐겼...
  3. LUCK2U 2014.01.17 00:45 신고  댓글주소  수정/삭제  댓글쓰기
    캐플님의 블로그 와서 디스크 정리에 대해 많이 배우고 갑니다.

    사실 새 하드 용량이 MBR로 했더니 온전히 인식이 안되길래,
    GPT로 바꾸려는 도중에 무엇을 잘못 건드린건지..

    디스크 관리자에서 디스크 3 알 수 없음 초기화 안됨 이렇게 나오네요

    아무리해도 초기화가 안되네요
    MBR이든 GPT든 가상관리자라는 창이 뜨면서
    잘못된 기능입니다 라고 메세지가 뜹니다.

    인터넷 여기저기 찾아보고 제조회사 프로그램도 사용해보았지만..
    아예 인식을 못하네요
    그냥 처음에 800기가 즘 되던데 그냥 이거라도 사용했어야 하는 아쉬움만..

    제가 여러 곳에 다녀봤지만 케플님의 블로그만큼 잘 작성된 곳이 없네요
    제 새 하드를 사용할 수 있도록 도와주세요

    방명록에는 문의 글 올리지 말라고 하셔서
    어디다 올릴지 몰라서 이 곳에 질문형식을 따서 질문드립니다.
    잘 부탁드립니다~~~
  4. 한벽당 2014.02.25 05:40 신고  댓글주소  수정/삭제  댓글쓰기
    캐플님이 바쁘신가봅니다 luck2u님의 질문에 답해도 될런지 모르겠지만ㅠㅠ 케이벤치에서
    MiniTool Partition Wizard Home Edition 8.1.1 을 다운받아 실행하면convert mbr항목이 있을겁니다.
    그리고 다시convert gpt로 변환시킬수 있을겁니다 진행순서은 디스크선택하고- convert <mbr,gpt>
    -apply입니다.

    http://cappleblog.co.kr/235

댓글을 달아 주세요

- 댓글에선 예의를 지켜주시기 바라며, 블로그지기는 댓글에서 따로 활동하지 않습니다.

* 티스토리 사용자는 여기를 클릭하시면 로그인 됩니다.

BBCode 안내   굵게 밑줄 기울임 취소선   취소선 취소선 취소선 취소선   왼쪽 정렬 가운데 정렬 오른쪽 정렬   코드박스 인용구 이미지   이미지 업로드-Imgur.com