[Linux] 파일시스템


🐧 파일 시스템


  • 운영체제가 파일을 시스템의 디스크상에 구성하는 방식

  • 컴퓨터에서 파일이나 자료를 쉽게 발견 및 접근할 수 있도록 보관 또는 조직하는 체제

  • 하드디스크나 CD-ROM 같은 물리적 저장소를 관리

  • 파일 서버상의 자료로의 접근을 제공하는 방식 + 가상의 형태로서 접근 수단만이 존재하는 방식 모두 파일 시스템의 범위에 포함

  • 리눅스 파일 시스템의 구조

    • Super Block : 블록의 크기, 총 블록의 개수와 블록 그룹의 개수, inode의 개수와 같은 해당 파일 시스템 관련 정보 저장

    • Group Descriptor Table : 각 Block Group을 관리하는 정보 저장

    • Block bitmap : 그룹 내에 있는 각 블록의 사용 상태

    • inode : 파일에 대한 제어 정보, 데이터 블록 포인터, 파일 이름을 제외한 파일의 모든 정보를 저장 / 모든 파일들과 디렉터리들은 각각 한 개의 inode를 할당

  • 리눅스 전용 디스크 기반 파일 시스템

    • ext(ext1) : 리눅스 초기에 사용되던 파일 시스템으로 호환성이 없음 / 파일 접근에 대한 타임 스탬프 아이노드 수정 지원 불가

    • ext2 : 고용량 디스크 사용을 염두에 두고 설계된 파일 시스템으로 쉽게 호환되며 업그레이드도 쉽게 설계되어 있음

    • ext3 : 저널링을 지원하도록 확장된 파일 시스템

    • ext4 : 파일에 디스크 할당 시 물리적으로 연속적인 블록을 할당 -> 파일 접근 속도 ↑, 단편화 ↓



🐧 저널링 파일 시스템


  • 시스템의 비정상적인 종료 시 저널(로그)를 이용해 빠르고 안정적인 복구 가능

  • 데이터를 디스크에 쓰기 전에 로그에 데이터를 남김 -> 시스템의 비정상적인 셧다운에도 로그를 사용해 빠르고 안정적인 복구 기능을 제공하는 기술

  • 저널 기능이 없는 경우 시스템이 동작을 멈추기 직전 파일 시스템에 수정을 가하고 있었는지 알 수 없고, 시스템 복구를 위해 슈퍼블록, 비트맵, 아이노드 등을 모두 검사해야 하기 때문에 시간이 오래 걸림

  • 저널링 기술이 적용된 파일 시스템 : ext3, ext4, XFS, JFS, ResierFS

  • 명령어

    • mount : 마운트 = 특정 디바이스를 특정 디렉터리처럼 사용하기 위해 장치와 디렉터리를 연결하는 것

      • /etc/mtab : 현재 시스템의 마운트 정보를 확인할 수 있는 파일

      • /etc/fstab : 현지 마운트된 블록 시스템 정보를 확인할 수 있는 파일

    • unmount : 마운트 해제 / 시스템 부팅 후에 수동으로 마운트 해서 사용, 사용이 끝난 후에 언마운트를 시킴

    • eject : 이동식 보조기억장치 등과 같은 미디어를 해제하고 장치를 제거

    • fdisk : 새로운 파티션 생성, 기존 파티션 삭제, 파티션 타입 결정 등

      • 한 번에 한 디스크에 대해서만 작업 수행

      • 명령어 프롬프트 중심의 매우 간단한 인터페이스

      • 하나의 컴퓨터에 여러 개의 하드디스크 설치될 수 있음 -> 어떤 하드디스크의 파티션을 변경할 굿인지 알려 주어야 함

    • mkfs : 리눅스 파일 시스템 생성

    • mke2fs : ext2, ext3, ext4 타입의 리눅스 파일 시스템을 생성/포맷

    • fsck : 파일 시스템의 무결성을 점검하고 대화식으로 복구

      • /lost+found : 손상된 파일을 /lost+found 디렉터리로 연결한 뒤 오류를 수정, 평상시에는 null 파일 링크에 의해 비어있는 상태로 존재

      • /lost+found 디렉터리에서 작업을 수행하다가 정상적으로 복구 되면 파일은 사라짐

    • e2fsck : ext2, ext3, ext4 타입의 리눅스 파일 시스템을 점검 및 복구

    • du : Disk Usage, 디렉터리별 디스크 사용량 확인

    • df : 시스템에 마운트된 하드 디스크 용량을 파디션 단위로 사용량 확인

  • 파일 /etc/fstab

    • 리눅스에서 사용하는 파일 시스템 정보를 정적으로 저장하고 있는 파일

    • 리눅스 파일 시스템 정보와 부팅 시 마운트 정보를 가지고 있음

Categories:

Linux   리눅스