Skip to content

Linux 파일시스템 #

Find similar titles

8회 업데이트 됨.

Edit
  • 최초 작성자
    Jaeng
  • 최근 업데이트

Structured data

Category
Computer science

파일시스템 #

파일시스템(File system)이란 파일(자료)를 사용자가 쉽게 접근 및 발견 할 수 있도록 운영체제가 시스템의 디스크상에 일정한 규칙을 가지고 보관하는 방식으로 리눅스 운영체제의 경우에는 파티션을 나누고 정리하는데 주로 사용된다. 운영체제가 파일들을 일정한 규칙을 연속적으로 사용하여 디스크의 파티션상에 저장하게 되면 저장장치 내에서 파일 저장을 저장하는게 용이해지고 파일을 검색,관리를 효율적으로 할 수 있다. 리눅스는 대표적으로 ext3, ext4 iso9660, swap, nfs, xfs등의 파일 시스템을 사용하고 있다.

파일 #

파일시스템에서 사용하는 파일이란 자기테이프, 청공카드, 또는 주기억장치나 디스크처럼 물리적인 하드웨어 저장공간에 저장되는 데이터의 집합을 말하며 데이터 정보의 논리적인 저장 단위로도 볼 수 있다.

리눅스 로컬 파일 시스템 #

ext #

  • minix 파일 시스템을 개선하기 위해 레미카드(Remy Card)는 최대 2기가의 파티션과 255까지의 파일명을 지원하는 ext 파일 시스템을 개발하였다.
  • 파일 접근에 대한 타임스탬프 기능, 아이노드 수정 기능의 부재와 조각화 이슈가 있었다.

ext2 #

  • ext의 한계를 극복하기 위해 만들어진 파일 시스템이다.
  • 타임 스탬프 기능, 아이노드 수정 기능, 쓰면 쓸수록 느려지는 조각화 이슈를 해결하였다.
  • 파일 시스템에 데이터를 쓰는 동안 전원이 끊어지면 데이터가 제대로 저장되지 않는 문제가 있다. 문제가 발생하면 관리자는 fsck 명령어를 사용하여 복구해야 하는데, 시간이 오래 걸렸다.
  • 파일 시스템의 크기는 블록 단위에 따라 2TiB~32TiB이다.
  • 파일 크기도 블록 단위에 따라 16GiB~2TiB이다.

ext3 #

  • 커널 2.4.15 버전부터 포함된 리눅스의 대표 저널링 파일 시스템이다.
  • 파일 시스템에 데이터를 쓰는 동안 전원이 끊어지더라도 복구할 수 있는 기능을 제공하기 위해 로그를 통해 파일 시스템을 복구하는 저널링 기술을 채용하였다.
  • 저널링에는 저널 모드, 순서 모드, 쓰기 저장 모드가 있다.
  • 온라인 파일 시스템 중에, 큰 디렉터리를 위한 HTree 인덱싱 기능, ACL을 통한 접근 제어를 제공한다.
  • 단점으로는 온라인 조각모음 프로그램이 없다.
  • ext2와 마찬가지로 최대 파일 크기는 16GiB~2TiB이고, 최대 파일 시스템의 크기는 2TiB~32TiB이다.

ext4 #

  • ext2와 ext3를 호환하면서 기능을 확장하였으며 48비트 블록 주소 지정을 통하여 1EiB까지의 디스크 볼륨과 16TiB까지의 파일을 지원한다.
  • 큰 파일 처리를 개선하고 단편화 현상을 줄이기 위해 ext2, ext3의 간접 블록 매핑 대신 Extents 방식을 사용한다. 간접 블록 매핑 방식은 하나의 블록을 가리키기 위해 하나의 엔트리가 필요한데 반해, 물리적으로 연속된 블록들의 묶음인 Extents 방식을 사용하면 하나의 엔트리로 여러 블록을 가리킬 수 있게 된다.
  • ext2, ext3를 ext4 방식으로 마운트하여 성능이 향상된 상태로 사용할 수 있으며, ext4는 ext3 방식으로 마운트 될 수 있다. 그러나 Extents를 사용하는 ext4 파티션은 ext3 방식으로 마운트 될 수 없다.
  • 파일 시스템 손상 가능성을 줄여주는 저널 체크섬 기능을 제공한다.
  • ext3의 32,000개 서브 디렉토리 제약을 극복하고 64,000개로 늘어났다.
  • 나노초 단위의 파일 스탬프를 제공한다.

리눅스 디렉토리 구성 #

리눅스의 파일 시스템은 루트 파일 시스템(/) 아래에 계층적으로 모든 파일과 디렉토리가 만들어진다. 각 리눅스 배포판 마다 차이는 있지만 대부분의 배포판에서 다음과 같은 디렉토리들을 루트 아래에 두고 있으며 각 디렉토리의 역할은 다음과 같다.

  • boot: 부팅에 필요한 리눅스 커널 및 여타 패키지를 보관
  • bin: GUI를 실행하는 파일들과 같은 운영체제 관련 바이너리 파일들을 보관
  • dev: 저장장치, 사운드카드, 그래픽카드, USB장치 등의 시스템에 연결된 모든 장치들의 연결점
  • etc: 사용자 계정과 암호화된 패스워드를 비롯한 여러가지 설정파일들을 보관
  • home: 각 계정의 홈 디렉토리 관리
  • lib: 수 많은 어플리케이션들에 의해 공유되는 라이브러리들을 보관
  • media: USB메모리, 외장형 CD 드라이브등 분리 가능한 저장장치가 자동으로 마운팅 되는 지점
  • mnt: 외부 저장장치를 수동으로 마운팅 하는데 사용되는 디렉토리
  • opt: 운영체제의 일부가 아닌 소프트웨어를 설치 및 보관하는 디렉토리
  • proc: 리눅스에서 실행되고 있는 프로그램, 즉 프로세스에 대한 정보를 제공하는 디렉토리
  • sbin: 슈퍼유저에 의해 사용되는 시스템 관리 유틸리티 바이너리 파일들을 보관
  • sys: 특별한 운영체제 파일들이 있는 디렉토리
  • tmp: 임시 파일들이 자동으로 보관 되는 곳
  • usr: 사용자가 접근할 수 있는 프로그램들을 보관하기 위한 디렉토리
  • var: 프로그램들이 값이 변하는 자료나 변수들을 저장하기 위한 가상 디렉토리

Reference #

  • 이기적 리눅스마스터 1급(김윤수, 최정현 저/(주)영진닷컴) part01.리눅스 실무의 이해-2.리눅스 시스템의 이해-section02.리눅스의 구조

Incoming Links #

Related Data Sciences #

Suggested Pages #

0.0.1_20240214_1_v81