리눅스마스터1급 필기 내용 중 핵심 파일 시스템 구조에 대해서 알아보겠습니다.(리눅스마스터 1급 필기 (실기 업로드 예정)를 위한 이론을 정리한 문서입니다). 시험 과목 순서에 따라 업로드하고 있어요. 리눅스 파일 시스템의 기본 개념, 구조, 로컬 및 클러스터 파일 시스템, 그리고 기타 리눅스 파일 시스템에 대한 이론 입니다.
파일 시스템의 개요
파일 시스템은 데이터를 저장하고 관리하는 방법을 정의하는 체계입니다. 즉 파일 시스템은 파일과 디렉터리를 조직화하고, 사용자 및 프로그램이 데이터를 쉽게 검색하고 접근할 수 있도록 합니다. 이를 통해 데이터의 효율적인 관리와 보관이 가능하며, 여러 사용자가 동시에 데이터를 공유할 수 있습니다.
파일 시스템을 쓰는 이유
- 안정성: 데이터 무결성을 보장하고 파일 시스템의 손상을 최소화합니다. 이로써 데이터 손실을 방지하고 시스템의 안정성을 높입니다.
- 성능: 다양한 파일 시스템 옵션을 통해 성능을 최적화할 수 있습니다. 대용량 파일을 효율적으로 처리하고 빠른 파일 액세스를 제공합니다.
- 확장성: 리눅스 파일 시스템은 데이터 양이 증가해도 확장 가능하며, 다수의 디스크 및 서버에서 작동하는 클러스터 파일 시스템을 지원하여 대규모 환경에서도 사용할 수 있습니다.
- 스냅숏 및 백업: 일부 파일 시스템은 스냅숏 기능을 제공하여 특정 시점의 파일 시스템 상태를 쉽게 복원할 수 있게 합니다. 또한 백업과 관련된 다양한 옵션을 제공하여 데이터 손실을 방지합니다.
- 암호화: 일부 리눅스 파일 시스템은 데이터 암호화를 지원하여 민감한 정보를 보호합니다.
- 다양한 파일 시스템: 리눅스는 다양한 파일 시스템을 지원하므로 사용자는 자신의 요구에 맞는 파일 시스템을 선택할 수 있습니다. 이는 다양한 용도와 환경에 적합한 설루션을 제공합니다.
- 오픈 소스: 리눅스 파일 시스템은 오픈 소스로 개발되어 커뮤니티의 협력을 받고 지속적으로 개선되고 업데이트됩니다.
- 캐시 기능: 파일 시스템은 캐시 기능을 통해 디스크의 입출력을 최소화합니다. 이로써 디스크 입출력 속도가 느린 단점을 극복하고 파일 액세스를 가속화합니다.
파일 시스템의 구조
리눅스 파일 시스템은 다음과 같은 구조로 이루어져 있습니다:
1. 슈퍼 블록 (Superblock)
슈퍼 블록은 파일 시스템의 메타데이터를 중앙에서 저장하고 관리합니다. 이 메타데이터에는 파일과 디렉터리의 위치, 크기, 상태 등이 포함되며, 파일 시스템을 기술하는 정보를 담고 있습니다. 각 파일 시스템마다 하나의 슈퍼 블록이 존재하며, 슈퍼 블록은 다양한 정보를 포함하고 있습니다. 이 정보에는 슈퍼 블록의 자료 구조, 파일 시스템의 크기, 블록의 수, 이용 가능한 빈 블록 목록, 빈 블록 목록에서 그다음의 빈 블록을 가리키는 인덱스, 아이노드 목록의 크기, 빈 아이노드의 수, 빈 아이노드 목록, 빈 아이노드 목록에서 그 다음의 빈 아이노드에 대한 정보가 포함됩니다.
아이노드란?
아이노드는 파일과 디렉터리의 메타데이터를 저장합니다. 각 파일 및 디렉터리는 고유한 아이노드를 가지며, 이를 통해 파일의 속성과 위치를 식별할 수 있습니다.
메타데이터란?
파일과 디렉터리에 대한 부가 정보를 의미합니다. 이 정보는 파일이나 디렉터리의 속성, 생성 날짜, 최근 수정 일자, 파일 크기, 소유자, 권한 등을 포함합니다. 메타데이터는 실제 파일의 내용이나 데이터가 아니라, 해당 파일이나 디렉터리에 대한 정보를 기술하는 데이터입니다.
3. 블록 그룹 (Block Group)
블록 그룹(Block Group)은 파일 시스템의 중요한 구성 요소 중 하나로, 데이터 블록을 그룹화하고 관리하는 단위입니다. 이것은 파일 시스템의 성능 향상과 데이터 관리의 효율성을 위해 사용됩니다.
데이터블록이란?
데이터 블록(Data Block)은 리눅스 파일 시스템에서 파일의 실제 내용이나 데이터를 저장하는 단위입니다. 데이터 블록은 파일 시스템에서 파일의 내용을 조각 내어 각각의 블록에 저장하며, 텍스트, 이미지, 비디오, 음악 파일 등 모든 종류의 파일 내용이 이러한 블록에 저장됩니다
블록 그룹의 주요기능:
- 데이터 블록 그룹화: 파일 시스템은 데이터를 블록 단위로 저장합니다. 블록 그룹은 이러한 데이터 블록을 그룹화하여 관리하며, 각 그룹에는 여러 데이터 블록이 포함됩니다.
- 데이터 파편화 방지: 블록 그룹은 데이터를 더 쉽게 찾고 관리할 수 있도록 도와줍니다. 데이터 블록을 그룹화함으로써 파일 시스템의 데이터 파편화를 방지하고 성능을 향상합니다.
- 보안 및 권한 관리: 블록 그룹은 파일과 디렉터리에 대한 권한 및 보안 설정을 관리하는 데 사용됩니다. 각 블록 그룹은 독립적으로 권한 및 보안 정책을 적용할 수 있습니다.
- 용량 관리: 파일 시스템이 커질수록 데이터 블록의 수도 증가합니다. 블록 그룹을 사용하면 데이터 블록을 더 효율적으로 관리하고 파일 시스템의 용량을 효율적으로 할당할 수 있습니다.
- 데이터 손상 복구: 블록 그룹은 데이터 손상 시 해당 그룹만 복구하는 데 도움을 줍니다. 이로써 데이터 손실을 최소화하고 안정성을 유지할 수 있습니다.
리눅스 로컬 파일 시스템
리눅스는 여러 가지 로컬 파일 시스템을 지원합니다. 가장 일반적인 것은 다음과 같습니다:
Ext 파일 시스템:
- 초기 Ext 파일 시스템은 서브디렉터리 제약에서 약 32,768개 미만의 디렉터리를 지원하며, 디스크 볼륨 크기는 대략 2GB까지 지원
- 블록 주소는 32비트로 제한되어 대용량 데이터 처리에는 적합하지 않습니다.
ext2 파일 시스템:
- ext2 파일 시스템은 서브디렉토리 제약에서 약 32,000개의 디렉터리를 지원하고, 디스크 볼륨 크기는 2TB까지 확장되었습니다.
- 블록 주소는 여전히 32비트로 제한되어 대용량 데이터 처리에 한계가 있습니다.
- ext2는 저널링 기능이 없으며 플래시 드라이브 및 USB와 같은 플래시 기반 저장 장치에 권장됩니다.
- 개별 파일 크기는 2TB이며 블록 크기에 따라 4TB에서 32TB까지 가능합니다.
ext3 파일 시스템:
- ext3에서도 서브디렉토리 제약은 약 32,000개로 유지되며, 디스크 볼륨 크기는 2TB까지 확장 가능합니다.
- 블록 주소는 여전히 32비트로 제한되어 대용량 파일 처리에는 제한이 있지만, 안정성이 향상되었습니다.
- 저널링 시스템을 도입하여 모든 변경 사항을 추적하고 파일 시스템 손상 가능성을 줄입니다.
- ext2에서 업그레이드할 수 있어 백업 및 복원 파일 없이 업그레이드할 수 있습니다.
ext4 파일 시스템:
- ext4에서는 서브디렉터리의 지원이 약 64,000개 이상으로 증가하였으며, 디스크 볼륨 크기는 1EB(Exabyte, 1,024TB)까지 확장 가능합니다.
- 블록 주소는 48비트로 확장되어 대용량 파일 및 디렉터리를 효율적으로 처리할 수 있습니다.
- ext4는 Ext2에 대한 연속적인 개선 버전이며 대부분의 Linux 배포판에서 사용됩니다.
- 파일 크기와 볼륨 파일 시스템 크기가 가장 크며, 1EB 볼륨 크기와 16TB의 단일 파일을 지원합니다.
- 다양한 고급 기능을 제공하여 성능과 확장성을 향상했습니다.
2. XFS 파일 시스템
XFS 파일 시스템은 대용량 파일 및 디렉터리를 처리하는 데 강점을 가지고 있습니다. 빠른 속도와 확장성을 제공하여 대규모 데이터베이스 및 파일 서버에서 널리 사용됩니다.
3. Btrfs 파일 시스템
Btrfs 파일 시스템은 고급 스냅숏 및 복제 기능을 제공하며, 데이터 무결성을 강화하는 데 중점을 둡니다. 이 파일 시스템은 실험적이지만 앞으로의 리눅스 파일 시스템의 가능성을 탐구하고 있습니다.
클러스터 파일 시스템
클러스터 파일 시스템은 여러 대의 컴퓨터가 공유 스토리지에 동시에 접근할 수 있도록 해주는 중요한 역할을 합니다. 리눅스에서는 다음과 같은 클러스터 파일 시스템이 있습니다:
1. GFS2 (Global File System 2)
GFS2는 리눅스 클러스터 환경에서 파일 공유를 지원합니다. 여러 노드가 동시에 파일을 수정하고 읽을 수 있으며, 데이터 일관성을 제공합니다.
2. Lustre 파일 시스템
Lustre는 과학 및 기술 컴퓨팅 분야에서 널리 사용되는 고성능 클러스터 파일 시스템입니다. 대용량 데이터를 처리하고 고속으로 액세스 할 수 있도록 설계되었습니다.
기타 리눅스 파일 시스템
리눅스는 다양한 특수 목적 파일 시스템도 지원합니다. 이러한 파일 시스템은 특정 작업에 특화되어 있습니다.
1. tmpfs
tmpfs는 메모리 기반 파일 시스템으로, 일시적인 파일 저장소로 사용됩니다. 임시 파일이나 캐시 파일을 메모리에 저장하여 빠른 액세스를 제공합니다.
2. sysfs
sysfs는 리눅스 커널 및 장치 정보를 제공하는 가상 파일 시스템입니다. 시스템 관리와 모니터링에 유용합니다.
3. procfs
procfs는 프로세스 정보를 제공하는 가상 파일 시스템으로, 시스템 상태 및 프로세스 정보에 액세스
#이전글
2023.09.03 - [리눅스/리눅스마스터1급] - [리눅스마스터1급] 핵심 내용 정리 : 부팅의 절차 & (systemd,init)
'리눅스 > 리눅스마스터1급' 카테고리의 다른 글
[리눅스마스터1급] 핵심 내용 정리 : 쉘(Shell) 이해하기 (33) | 2023.09.08 |
---|---|
[리눅스마스터1급] 핵심 내용 정리 : X 윈도우 (X window) (42) | 2023.09.06 |
[리눅스마스터1급] 핵심 내용 정리 : 부팅의 절차 & (systemd,init) (33) | 2023.09.03 |
[리눅스마스터1급] 핵심 내용 정리:부트 매니저 (boot manager) 에 모든것 (20) | 2023.09.02 |
[리눅스마스터1급] 핵심 내용 정리: 디스크 인터페이스 & LVM (20) | 2023.09.02 |