-
파일 시스템(File System)과 유형(FAT, NTFS, EXT, HFS+, APFS)전산학/운영체제 2024. 9. 27. 09:13728x90반응형
𝐈𝐧𝐭𝐫𝐨
파일 시스템(File System)은 얼핏 들으면 쉬운 내용 같으나 막상 설명하려면 헷갈리는 개념이다. 파일 시스템이 하는 역할과 유형을 알아보고, 윈도우(Windows), 맥(macOS), 리눅스(Linux)에서 사용하는 파일시스템에 대해서 알아보자.
■ 파일 시스템(File System)이란?
파일시스템(File System)은 OS가 데이터를 저장, 관리, 검색하는 방식이다. 즉, 파일시스템은 컴퓨터의 저장 장치인 하드 드라이브, SSD에서 파일과 데이터를 구조화하고 관리하는 시스템이다. 파일시스템은 데이터를 저장하는 방식 뿐만 아니라, 해당 데이터를 효율적으로 관리하고 액세스하는 방법도 제공하여 사용자와 프로그램이 파일을 쉽게 읽고 쓸 수 있도록 해준다. 파일 시스템은 저장 장치의 성능, 안정성, 보안, 관리 편의성에 중요한 역할을 한다.
파일 시스템의 기능은 다음과 같다.
1. 파일관리: 파일을 저장, 삭제, 복사, 이동, 이름 변경 등의 기능 제공한다.
2. 디렉터리 구조: 파일을 논리적인 폴더(디렉터리)로 구조화 해서 데이터를 쉽게 찾을 수 있게 한다.
3. 파일 식별: 파일 이름과 확장자를 통해 파일을 식별하며, 고유한 파일 경로를 지정해 중복을 방지한다.
4. 접근 권한: 파일에 대한 읽기, 쓰기, 실행 권한을 사용자 또는 그룹별로 설정할 수 있다.
5. 메타데이터 관리: 파일의 크기, 생성 시간, 수정 시간, 소유자 정보 등의 메타데이터를 관리한다.
6. 저장 공간 관리: 디스크 공간을 할당하고 파일이 저장된 블록을 추적한다. 파편화 방지 및 복구를 위한 기능도 포함된다.
■ 파일 시스템의 대표적인 유형들(FAT, NTFS, ext, HFS+, APFS)
파일을 구조화 하고 관리하는 방식인 파일 시스템(File System)에도 종류가 여러가지다.
- FAT (File Allocation Table): MS-DOS와 Windows에서 주로 사용되던 파일 시스템으로, 구조가 간단해 소형 장치나 플래시 메모리에서 많이 사용된다. 버전으로 FAT16, FAT32가 있다.
- NTFS (New Technology File System): Windows에서 사용하는 최신 파일 시스템으로, 보안 기능, 압축 기능, 대용량 파일 지원, 로그 기능 등 다양한 고급 기능을 지원한다.
- ext (Extended File System): 리눅스에서 주로 사용하는 파일 시스템으로, ext2, ext3, ext4 등의 버전이 있습니다. ext4는 저널링 기능과 대용량 파일 지원을 강화한 최신 버전이다.
- HFS+ (Hierarchical File System Plus): macOS에서 사용하는 파일 시스템으로, APFS(Apple File System)가 새로 도입되면서 점차 대체되고 있다.
- APFS (Apple File System): macOS와 iOS에서 사용되는 최신 파일 시스템으로, 성능 향상과 데이터 무결성, 암호화 등을 지원한다.
■ 윈도우(Windows), 맥(macOS), 리눅스(Linux)에서의 파일 시스템
파일 시스템의 종류를 알았으니 이제 각 OS에서 어떤 유형의 파일 시스템이 쓰이는지 알아보자.
1) 윈도우(Windows) 파일 시스템: NTFS(New Technology File System)
NTFS는 윈도우에서 가장 널리 사용되는 파일 시스템이다. 최대 16TB의 파일을 지원할 수 있어 매우 큰 파일도 저장이 가능하다. NTFS는 파일마다 읽기, 쓰기, 실행 권한을 설정할 수 있어 사용자별로 접근 권한을 관리할 수 있다. 또한 파일 과 디렉터리를 암호화 할 수 있는 EFS(Encrypting File System) 기능도 제공한다. 복원성 또한 좋은데 저널링(Journaling) 기능을 지원해 파이르이 변경 내역을 기록하고, 시스템 오류나 갑작스러운 전원 차단 시 데이터 손실을 최소화할 수 있다.
사용 예시)
- 윈도우에서 NTFS를 사용하는 경우, 파일을 삭제한 후에도 휴지통 에 복구할 수 있는 방식으로 관리된다. 또한 여러 사용자가 파일을 동시에 사용할 수 있지만, 권한이 없는 사용자는 해당 파일에 접근할 수 없다.
- 외장 하드디스크를 NTFS로 포맷하면 큰 크기의 동영상 파일(예: 10GB 이상의 파일)을 저장할 수 있으며, 파일의 보안을 위해 암호화를 적용할 수도 있다.참고사항)
저널링(Journaling)은 파일 시스템에서 데이터 무결성을 보장하기 위한 중요한 기술이다. 파일 시스템이 데이터를 디스크에 기록하는 과정에서 문제가 발생하거나 시스템이 예기치 않게 종료될 경우, 데이터 손상이나 손실이 발생할 수 있다. 이러한 문제를 해결하기 위해 저널링은 파일 시스템의 변경 사항을 기록하는 방식으로, 시스템 오류 후에도 데이터를 복구할 수 있게 한다.
저널링 파일 시스템은 데이터를 실제로 기록하기 전에 "저널(Journal)"이라는 특수한 공간에 변경 사항을 먼저 기록한다. 이 저널은 일종의 로그처럼 작동하며, 파일 시스템에 어떤 변경이 발생할지 미리 기록해둔다. 저널링의 동작 원리는 다음과 같다.
저널에 기록: 파일을 수정하거나 삭제하는 등의 변경 작업이 있을 때, 그 변경 사항을 먼저 저널에 기록데이터 적용: 저널에 기록한 후, 실제 데이터를 디스크에 반영저널 삭제: 작업이 완료되면 저널에 기록된 내용을 삭제하거나 무효화2) 맥(macOS) 파일 시스템: APFS (Apple File System)
APFS는 macOS에서 최신으로 사용되는 파일시스템이다. macOS High Sierra(10.13) 이후로 기본 파일 시스템으로 사용되고 있다. 빠른 성능을 가지고 있는데 SSD와 같은 플래시 메모리 기반 저장 장치에서 성능을 극대화하도록 설계되었다. 파일 복사, 이동, 삭제가 매우 빠르다. 또한 특정 시점의 파일 상태를 저장하는 스냅샷(Snapshot) 기능을 제공해, 파일을 수정하기 전에 그 시점의 데이터를 보존할 수 있다. 이를 통해 이전 상태로 파일을 쉽게 복구할 수 있다. 메타데이터의 무결성을 보장하여 데이터의 손상 가능성도 줄여주는데, 이 덕분에 저장 장치의 오류가 발생하더라도 파일의 손상 위험이 줄어든다. 공간도 효율적으로 사용하는데 동일한 파일을 여러 번 복사할 경우, 실제로 데이터를 중복으로 저장하지 않고 참조만 변경해 디스크 공간을 절약할 수 있다.
사용 예시)
- 맥에서 APFS를 사용하는 경우, 큰 용량의 파일을 SSD에 저장할 때 매우 빠른 속도로 처리할 수 있다. 예를 들어, 수백 개의 사진을 복사할 때 복사가 거의 즉시 완료되는 것을 경험할 수 있다.
- 타임머신(Time Machine) 백업 기능에서 APFS의 스냅샷 기능을 활용해 특정 시점의 파일 상태를 백업하고, 실수로 파일을 지웠더라도 쉽게 이전 상태로 복구할 수 있다.3) 리눅스(Linux)의 파일시스템: ext4( Extended File System, Version 4)
ext4는 ext3가 발전된 버전이다. 이전 버전에 비해 ext4는 성능과 안정성이 대폭 향상되어 지금까지 사용되고 있다. 최대 16TB의 파일과 1EB(엑사바이트) 파일 시스템 크기를 지원한다. 저널링 기능을 지원해 데이터의 무결성을 보장하고, 시스템이 갑자기 종료되거나 충돌이 발생했을 때 파일 시스템이 손상되는 것을 방지한다. 파일 시스템을 빠르게 검사하는 기능이 있어 부팅 시간이 단축됩니다. 저장 장치의 디스크 공간을 효율적으로 사용하기 위해 지연 할당(Delayed Allocation)을 사용하여 파일 데이터를 더 나은 방식으로 배치한다. 또한 시스템이 부팅된 상태에서도 파일 시스템을 검사할 수 있고, 파일이 조각나지 않도록 설계되어 파일 액세스 속도가 빠르다.
사용 예시)
리눅스 서버에서 ext4 파일 시스템을 사용하는 경우, 수십 GB 이상의 데이터베이스 파일을 관리하면서도 성능 저하 없이 데이터 읽기/쓰기가 빠르게 이루어진다. 또한 저널링 기능 덕분에 시스템 충돌 후에도 파일이 안전하게 복구된다.■ 윈도우(Windows), 맥(macOS), 리눅스(Linux)에서의 파일 시스템 비교
OS 파일 시스템 파일 크기 한계 파일 시스템
크기 한계저널링 특징 윈도우 NTFS 16TB 256TB 지원 파일 암호화(EFS), 접근 권한 설정, 압축, 높은 보안성 맥 APFS 8EB 8EB 지원 SSD 최적화, 스냅샷, 빠른 파일 복사, 중복 데이터 절약 리눅스 ext4 16TB 1EB 지원 빠른 파일 검사, 디스크 공간 효율성, 파일 조각화 방지 - 파일 크기 및 파일 시스템 크기 한계:
- NTFS와 ext4는 최대 16TB의 파일을 지원하지만, APFS는 이보다 더 큰 파일(최대 8EB)를 처리할 수 있다. 그러나 일반적인 사용 환경에서는 이러한 파일 크기의 차이는 크게 문제가 되지 않는다.
- 파일 시스템의 최대 크기는 APFS가 가장 큰 8EB를 지원하지만, 이는 대형 서버나 데이터 센터 환경에서나 필요할 수 있다.
- 저널링 지원:
- 세 운영체제의 파일 시스템은 모두 저널링 기능을 제공하여, 시스템 오류나 갑작스러운 전원 차단 시 데이터 손실을 방지한다. 이는 데이터 무결성에 중요한 역할을 한다.
- 성능 최적화:
- APFS는 특히 SSD와 같은 플래시 메모리 기반 저장 장치에서 뛰어난 성능을 발휘한다. 파일 복사, 이동, 삭제가 매우 빠르게 이루어진다.
- ext4는 파일 조각화를 방지하고, 디스크 공간을 효율적으로 관리할 수 있는 기능을 제공하여 서버나 대용량 데이터 저장에 적합하다.
- NTFS는 다양한 하드웨어에서 안정적이며, 보안 및 복원 기능이 강화되어 있다.
- 보안:
- NTFS는 파일별로 접근 권한 설정과 파일 암호화(EFS)를 통해 높은 수준의 보안을 제공한다. 이는 기업 환경이나 다중 사용자 환경에서 특히 유용하다.
- APFS와 ext4도 저널링과 파일 시스템 무결성을 보장하지만, NTFS처럼 복잡한 권한 설정이나 암호화 기능을 기본적으로 제공하지는 않는다. 리눅스에서는 일반적으로 chmod, chown 등의 명령어로 파일 접근 권한을 관리한다.
- 백업 및 복구 기능:
- APFS는 스냅샷 기능을 통해 특정 시점의 파일 상태를 저장하고 복구할 수 있다. 이를 통해 사용자는 실수로 삭제하거나 수정된 파일을 이전 상태로 쉽게 복구할 수 있다.
- NTFS와 ext4는 저널링을 통해 복구를 지원하지만, APFS처럼 사용자가 직접 스냅샷을 관리하고 복구하는 기능은 없다.
- 호환성:
- NTFS는 윈도우에서 기본 파일 시스템이며, 일부 맥 및 리눅스 시스템에서도 읽기가 가능하다. 하지만 쓰기 기능은 추가 소프트웨어가 필요하다.
- APFS는 맥 전용 파일 시스템이며, 윈도우와 리눅스에서 기본적으로 인식되지 않는다. 호환성을 위해 추가 드라이버가 필요하다.
- ext4는 리눅스의 기본 파일 시스템이지만, 윈도우와 맥에서도 추가 소프트웨어를 설치하면 접근할 수 있다.
- 윈도우는 NTFS 파일 시스템을 통해 보안과 데이터 복원성을 강조하며, 주로 기업 환경에서 널리 사용됩니다.
- 맥은 APFS를 통해 SSD 성능 최적화와 스냅샷 기능을 제공해, 빠른 작업과 데이터 복구를 지원합니다.
- 리눅스는 ext4 파일 시스템을 사용해 대용량 데이터를 처리하는 서버 환경에서 안정적이며 빠른 파일 액세스 속도를 유지합니다.
각 OS가 사용하는 파일시스템은 각각의 장점이 있어서 사용자의 환경에 따라 적합한 파일 시스템을 선택하는 것이 중요하다.
728x90반응형'전산학 > 운영체제' 카테고리의 다른 글
파일시스템(File System)에서의 저널링(Journaling) (1) 2024.09.27