위로 아래

Linux 파일

Linux 파일

  1. 파일 시스템 : 디스크에 사용자의 데이터를 효율적으로 저장하기 위한 파일과 디렉토리를 조직화한 체계
  2. 데이터가 디스크에 저장될 때 레코드 단위 혹은 파일 블록 단위로 저장된다
  3. 디스크는 IO가 메모리(RAM)에 비해 느리기 때문에 파일 시스템 캐시를 사용

 

Linux 파일 종류

  1. 디렉토리
  2. 일반 파일 
  3. 특수 파일
    1. 장치 파일 : 장치 종류에 따라 문자 장치 파일, 블록 장치 파일
    2. 파이프 : 프로세스 간 통신을 위한 파일
    3. 소켓 : 응용 프로그램이 소켓 프로그램할 수 있도록 돕는 파일

 

 

 

 

 


Linux 파일 시스템 종류

Linux 파일 시스템 종류

  1. 리눅스 자체 파일 시스템 : ext2, ext3, ext4
  2. 리눅스에서 지원하는 윈도우용 파일 시스템 : FAT32 (vfat), NTFS
  3. 리눅스에서 지원하는 네트워크 파일 시스템 : SMB, CIFS

 

 

 

 


ext 파일 시스템

ext

  1. 최대 2기가의 파티션과 255까지의 파일명을 지원

 

ext2

  1. ext의 한계를 극복하기 위해 개발
  2. 타임스태프 기능, 아이노드 수정 기능, 조각화 이슈를 해결
  3. ext2가 데이터를 쓰는 동안 전원이 끊어지면 데이터가 저장되지 않는다
  4. 파일 시스템의 크기 : 블록 단위에 따라 2TiB ~ 32TiB
  5. 파일 크기 : 블록 단위에 따라 16GiB ~ 2TiB

 

ext3

  1. 커널 2.4.15 버전부터 포함된 리눅스의 대표 저널링 파일 시스템
  2. 온라인 파일 시스템 증대, 큰 디렉터리를 위한 HTree 인덱싱 기능, ACL을 통한 접근 제어 제공
  3. 파일 시스템과 파일의 크기는 ext2와 같다
  4. 저널링 기술
    1. 파일 시스템이 데이터를 쓰는 동안 전원이 끊어져도 로그를 통해 복구 가능
    2. 저널 모드 (journal mode), 순서 모드 (ordered mode), 쓰기 저장 모드 (writeback mode)

ext4

  1. ext2와 ext3를 호환
  2. 48비트 블록 주소 지정
  3. 디스크 볼륨 최대 크기 : 1 EiB
  4. 최대 파일 크기 : 16 TiB
  5. 간접 블록 매핑 -> Extents 방식
    1. 간접 블록 매핑 : 하나의 블록을 가리키기 위해 하나의 엔트리가 필요 (ext2, ext3에서 사용)
    2. Extents 방식 : 물리적으로 연속된 블록의 묶음이라, 하나의 엔트리로 여러 블록을 가리킬 수 있음 (ext4에서 사용)
  6. 저널 체크섬 기능 제공 (파일 시스템 손상 가능성 줄여준다)
  7. 멀티 블록 할당자 (mballoc) 제공
    1. ext3 블록 할당자 : 한 시점에 하나의 블록(4KiB)만 할당 가능
    2. ext4 블록 할당자 : 하나의 호출 시점에 여러 블록을 할당.
    3. 나노초 단위의 파일 스탬프 제공

 

그 외

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로 확장되었다.