저장,검색을 위해 파일을 이름에 붙이고, 어디에 위치 시킬지를 나타낸것인지의 체계를 의미한다.
컴퓨터가 데이터를 기록하기 위해선 미리 데이터를 읽고,쓰고, 찾기위한 준비를 해야하는데 파일 시스템은 이 준비의 규칙을 정리.
windows OS에서는 주로 FAT32와 NTFS를 사용한다.
FAT32는 낮은용량에도 불구하고 windows의 이전 버젼과의 호환성을 위해 지원중이다. 현재는 4GB이하의 저장장치(usb,sd카드)에서 사용 되고 있다.
최근 REFS라는 ms의 최신 파일시스템이 나왔지만 아직까진 NTFS가 주력 파일시스템으로 자리한다.
최대 파일이름 길이 : 유니코드 255 자
최대 경로 길이 : 유니코드 260 자
최대 파일 크기 : 4GB
최대 볼륨 크기 : 8TB로 되어있긴 하지만 OS, 도구의 제한으로 32GB이하로만 사용중.
최대 파일이름 길이 : 유니코드 255
최대 경로 길이 : 유니코드 32k
최대 파일 크기 : 256 TB
최대 볼륨 크기 : 256 TB
Mac OS에서는 HFS+ , APFS 를 파일시스템으로 사용한다.
APFS는 HFS+(mac os초기 파일시스템)를 대체할 차세대 파일시스템으로 설계되었다.
메타데이터 무결성, 최적화된 파일 배치 등으로 성능과 안정성이 향상, 파일명/경로 길이 제한도 거의 없다. (하지만 아직 HFS+와 함께 사용되고 있다.)
현재 macOS에서는 APFS가 기본 파일시스템이지만, 필요에 따라 HFS+도 여전히 활용되고 있는 상황이다.
최대 파일이름 길이 : 유니코드 255
최대 경로 길이 : 1,024바이트 (한글 255자 정도)
최대 파일 크기 : 8EB (8,000,000TB)
최대 볼륨 크기 : 8EB
최대 파일이름 길이 : 정확한 제한 없음 (운영체제 메모리 제한에 따름)
최대 경로 길이 : 정확한 제한 없음 (운영체제 메모리 제한에 따름)
최대 파일 크기 : 8EB (8,000,000TB)
최대 볼륨 크기 : 8EB까지 가능하지만 대단히 큰 단일 볼륨은 권장되지 않습니다.
스냅샷, 파일 시스템 확장, 암호화, 중복 제거 등 추가 기능 지원
우분투의 최신 LTS 버전에서는 ext4가 기본 파일시스템이지만, XFS, Btrfs 등도 선택 가능하다.최대 경로/크기 등에서 XFS와 Btrfs가 더 유연한 편.
현재 리눅스 배포판에서 가장 일반적으로 사용되는 파일시스템입니다.
최대 파일이름 길이: 255 바이트
최대 경로 길이: 4096 바이트 (약 4KB)
최대 파일 크기: 16TB
최대 볼륨 크기: 1EB (1,000,000TB)
저널링, 확장 속성, 디렉토리 단편화 방지 등의 기능 제공
고성능 워크로드를 위한 저널링 64비트 파일시스템입니다.
최대 파일이름 길이 : 255 바이트
최대 경로 길이: 약 1EB
최대 파일 크기: 8EB
최대 볼륨 크기: 8EB
copy-on-write 사용 (파일을 복사할 경우 새로운 파일을 생성하지 않고 기존 파일을 그대로 사용하다가 파일이 수정될 때 비로소 새로운 파일을 생성)
최대 파일이름 길이 : 정확한 제한 없음
최대 경로 길이: 정확한 제한 없음
최대 파일 크기: 16EB
최대 볼륨 크기: 16EB
File system에서 indexing의 주요 목적과 역할
1. 빠른 파일 검색
기존에는 전체 디렉토리 구조를 직접 탐색해야 했지만 파일명, 내용, 메타데이터 등을 인덱스에 저장해 두면 사용자가 파일을 검색할 때 훨씬 빠른 속도로 결과를 얻을 수 있다.
2. 확장된 메타데이터 관리
파일 시스템 자체 메타데이터 외에도 파일 내용, 작성자, 태그, 코멘트 등 다양한 부가 메타데이터를 인덱스에 포함시킬 수 있다.
3. 콘텐츠 기반 검색
파일 내용까지 인덱싱하면 파일명이 아닌 문서 내용으로도 검색이 가능해진다.
4. 데이터 분류와 가상 뷰
인덱스를 활용하여 파일을 특정 기준(작성자, 날짜, 태그 등)으로 분류하거나 가상 폴더 뷰를 생성할 수 있다.
주요 운영체제에서 대표적인 파일시스템 인덱싱 기능은 다음과 같다
Windows: WIndows Search, Indexing Service
macOS: Spotlight
Linux: Desktop Search Tools (Beagle, Recoll 등)
데이터/파일 시스템의 역할
운영체제가 저장 장치(HDD, SSD 등)에 데이터를 체계적으로 저장, 관리할 수 있게 해주는 소프트웨어 계층
사용자가 파일/디렉토리를 쉽게 조작할 수 있는 인터페이스 제공
파일 저장 과정
사용자의 파일 저장 요청 시, 운영체제가 파일 메타데이터 생성
파일시스템이 저장 장치에서 빈 공간을 할당하고 파일 데이터 기록
메타데이터 업데이트로 파일 위치정보를 파일시스템에 반영
저널링(Journaling)
메타데이터 변경사항을 별도 로그(저널)에 기록하는 기능
시스템 문제 발생 시 저널을 통해 메타데이터 자동 복구 가능
파일시스템 무결성을 보장하여 데이터 접근성과 가용성 확보
파일시스템 유형
OS 벤더/배포판에 따라 다양한 파일시스템 사용 (NTFS, ext4, XFS, APFS 등)
최대 파일/볼륨 크기, 저널링 지원 여부, 기능과 특징이 상이
저장 장치와의 관계
파일시스템은 저장 장치의 물리적 성능 한계를 넘을 수 없음
적절한 파일시스템과 고성능 저장 장치의 조합이 중요