Linux 파일
Linux 파일
- 파일 시스템 : 디스크에 사용자의 데이터를 효율적으로 저장하기 위한 파일과 디렉토리를 조직화한 체계
- 데이터가 디스크에 저장될 때 레코드 단위 혹은 파일 블록 단위로 저장된다
- 디스크는 IO가 메모리(RAM)에 비해 느리기 때문에 파일 시스템 캐시를 사용
Linux 파일 종류
- 디렉토리
- 일반 파일
- 특수 파일
- 장치 파일 : 장치 종류에 따라 문자 장치 파일, 블록 장치 파일
- 파이프 : 프로세스 간 통신을 위한 파일
- 소켓 : 응용 프로그램이 소켓 프로그램할 수 있도록 돕는 파일
Linux 파일 시스템 종류
Linux 파일 시스템 종류
- 리눅스 자체 파일 시스템 : ext2, ext3, ext4
- 리눅스에서 지원하는 윈도우용 파일 시스템 : FAT32 (vfat), NTFS
- 리눅스에서 지원하는 네트워크 파일 시스템 : SMB, CIFS
ext 파일 시스템
ext
- 최대 2기가의 파티션과 255까지의 파일명을 지원
ext2
- ext의 한계를 극복하기 위해 개발
- 타임스태프 기능, 아이노드 수정 기능, 조각화 이슈를 해결
- ext2가 데이터를 쓰는 동안 전원이 끊어지면 데이터가 저장되지 않는다
- 파일 시스템의 크기 : 블록 단위에 따라 2TiB ~ 32TiB
- 파일 크기 : 블록 단위에 따라 16GiB ~ 2TiB
ext3
- 커널 2.4.15 버전부터 포함된 리눅스의 대표 저널링 파일 시스템
- 온라인 파일 시스템 증대, 큰 디렉터리를 위한 HTree 인덱싱 기능, ACL을 통한 접근 제어 제공
- 파일 시스템과 파일의 크기는 ext2와 같다
- 저널링 기술
- 파일 시스템이 데이터를 쓰는 동안 전원이 끊어져도 로그를 통해 복구 가능
- 저널 모드 (journal mode), 순서 모드 (ordered mode), 쓰기 저장 모드 (writeback mode)
ext4
- ext2와 ext3를 호환
- 48비트 블록 주소 지정
- 디스크 볼륨 최대 크기 : 1 EiB
- 최대 파일 크기 : 16 TiB
- 간접 블록 매핑 -> Extents 방식
- 간접 블록 매핑 : 하나의 블록을 가리키기 위해 하나의 엔트리가 필요 (ext2, ext3에서 사용)
- Extents 방식 : 물리적으로 연속된 블록의 묶음이라, 하나의 엔트리로 여러 블록을 가리킬 수 있음 (ext4에서 사용)
- 저널 체크섬 기능 제공 (파일 시스템 손상 가능성 줄여준다)
- 멀티 블록 할당자 (mballoc) 제공
- ext3 블록 할당자 : 한 시점에 하나의 블록(4KiB)만 할당 가능
- ext4 블록 할당자 : 하나의 호출 시점에 여러 블록을 할당.
- 나노초 단위의 파일 스탬프 제공
그 외
btrFS : 오라클에서 개발. 전체 파일 시스템이 아니라 특정 파일, 특정 볼륨의 스냅샷 찍기 기능을 제공.
ZFS : SUN에서 개발한 Solaris의 파일 시스템. 볼륨 매니저 역할까지 수행.
Reiserfs : 독일에서 개발한 저널링 파일 시스템. 커널 2.4.1에 포함
XFS : 고성능 64비트 저널링 파일 시스템. 커널 2.4.20에 포함.
JFS : IBM에서 개발한 64비트 저널링 파일 시스템. 커널 2.4.24에 포함
Raw Partitions : 파일 시스템이 설정되어 있지 않은 상태. 운영체제의 버퍼캐시를 사용하지 않으므로 고성능의 IO가 가능하나, 파일시스템을 이요하지 않기 때문에 숙련된 관리자의 관리가 필요하다.
Oracle Cluster FS (OCFS) : Raw Partitionㄹ호홓ㄹㅇㄹㅇㄹㅇㄹㅇㄹㅇㄴㄷㄴㅇㄹㄷㄴㅇㄷㅇㄴㄷㄴㅇ
기타 파일 시스템
minix : 초기 리눅스 개발 시 사용되었던 MINIX 운영체제의 파일 시스템
xiafs : 리눅스 커널을 위한 파일 시스템
vfat : Microsoft의 FAT32 파일 시스템 호환을 목적으로 개발된 리눅스 파일 시스템
isofs : ISO 기준을 따르는 표준 CD-ROM 파일 시스템
nfs : 네트워크 상에서 파일 시스템을 공유하기 위한 파일 시스템
proc : 프로세스 등 커널의 정보를 표현하는 리눅스의 가상 파일 시스템
smb : SMB 프로토콜을 지원하는 네트워크 파일 시스템. 최근 CIFS로 확장되었다.