728x90
반응형
SMALL

*이기적 영진닷컴 Youtube Link - https://www.youtube.com/watch?v=5nSTaC-llCQ&list=PL6i7rGeEmTvp_MYm0zuiFe7COrM3endfu&index=11

 

파일 시스템은 하드 디스크나 CD-ROM 같은 물리적 저장소를 관리하는 파일 관리자

파일이나 자료를 쉽게 발견하고 접근할 수 있게 하기 위해서 보관 또는 조직적인 체제라고 보면 된다.

일반적으로 리눅스 파일 시스템을 구성하는 구조도는 위 그림과 같다.

부트 블럭이 있고 그룹별로 블럭이 구성되어 있다.

조금 더 자세히 보면 

슈퍼 블럭, 그룹 디스크립터, 블럭 비트맵, 인코드 비트맵, 인코드 테이블 그리고 데이터 블럭으로 나눈다.

슈퍼 블럭: 시스템 관련 정보를 저장하는 블럭, 시스템 관련 정보는 블럭의 크기나 총 블럭의 개수, 블럭 그룹 개수 그리고 inode 개수를 저장

그룹 디스크립터: 각 블럭 그룹을 관리하는 정보를 저장, 블럭 비트맵, inode 비트맵 번호 등을 저장

블럭 비트맵: 블럭들의 상태를 나타내는 공간

inode 비트맵: 파일의 제어 정보나 블럭 포인트를 저장한다. 즉 파일에는 고유 번호가 붙여지게 되는데 그 번호 뿐만 아니라 파일 형태 크기 위치 소유자 정보 등 파일의 구체적인 정보가 inode에 구체적으로 저장이 되서 파일을 제어, inode의 상태 정보를 나타낸다.

inode Table: 각각의 inode의 정보를 나타내는 inode descriptors로 구성

 

리눅스는 다양한 파일 시스템을 지원

리눅스 전용 파일 시스템을 보겠다.

ext 계열이다.

ext1: 리눅스 초기에 사용되던 파일 관리자, 2gb의 데이터 까지만 컨트롤, 파일명도 255자까지 제한

파일명 지정 시 어떤 파일 시스템을 사용하느냐에 따라서 파일명 규칙이 있다. 

아이노드 수정이 불가해서 즉 파일에 대한 제어 정보나 이런 것들을 수정할 수 없었다.

ext2: ext1 다음 버전.

2gb의 데이터 까지만 컨트롤할 수 있었던 것을 보완해서 고용량 디스크도 컨트롤할 수 있게 설계된 파일 시스템

ext3: ext의 확장판.

저널링 기능을 지원. 

저널링은 로그 파일. 저널을 다른 말로 로그. 로그를 보고 시스템의 상태를 판단하게 되는데 그러한 기능들을 지원.

시스템의 상태를 안전하게 복원할 수 있는 기능을 지원할 수 있는 파일 시스템

ext4: 최근에는 ext4를 사용.

ext2 및 ext3와 호환이 가능한 버전.

최대 16TB 파일도 지원.

64비트 기억 공간 제한 없음.

<저널링 파일 시스템>

저널이 로그를 보통 저널이라고 이야기 한다. 

저널이라는 로그를 보고 시스템 상태를 저장.

시스템이 비정상적으로 종료하게 되면 저널 정보를 검사를 하고 저널을 베이스로 해서 파일 시스템을 안전하게 복원

ext3, ext4, XFS, JFS, ReiserFS 등이 있다.

JFS: IBM 사에서 만든 독자적인 저널링 시스템, GPL 라이센스를 공유하고 있음, 리눅스용으로 개발되고 있음

XFS: eXtended File System의 약자. 고성능 저널링 시스템.

64비트 파일 시스템을 지원. 높은 확장성이나 처리율을 가지고 있다.

파일 수와 상관 없이 시스템이 다운되면 (예기치 못한 상황이 발생) 신속하게 복구나 재시작이 가능하게 한다.

ReiserFS: 독일의 한스 라이저가 개발한 파일 시스템. 복원이 안정적으로 진행이 되서 JFS나 XFS도 많이 사용되지만 ReiserFS도 많이 사용되는 파일 시스템.

 

<네트워크 파일 시스템>

업무를 하다 보면 파일 공유 프린트 공유를 하게 된다.

이 때 네트워크 파일 시스템을 이용해서 작업 공유 네트워크 공유를 할 수 있게 된다.

SMB: Server Message Block 이라고 해서 윈도우 운영체제에서 파일이나 프린트 공유를 할 때 일반적으로 사용하는 네트워크 파일 시스템. 삼바 파일 시스템에서도 SMB를 이용해서 이기종 운영체제, 윈도우와 리눅스 사이에서 자료를 공유할 때도 이 SMB를 사용해서 이기종 운영체제 관해서도 원활하게 네트워크 공유를 가능하게 해주는 파일 시스템

CIFS: Common Internet File System의 약자로 SMB를 확장한 파일 시스템. 

NFS: Network File System으로 썬 마이크로 시스템사에서 개발한 네트워크 공유 프로토콜. 주로 동기종 SMB는 이기종 운영체제에 관해서 파일 공유를 가능하게 하는 반면 동기종 같은 기종 운영체제들 간에 파일 공유를 할 때 일반적으로 사용하는 파일 시스템

 

<기타 지원 가능한 파일 시스템(1)>

MS에서 지원하는 파일 시스템도 지원하고 있다.

FAT: 윈도우 NT 계열에서 사용했던 파일 시스템

VFAT: FAT 파일 시스템 확장. FAT의 단점인 하드 용량, 디스크 용량 관리 용량의 제한을 해결하다 보니 디스크 관리 영역이 더 커졌다. 파일명 지정에 약간의 제약이 있다. 최고 255자까지 만들 수 있다. 대소문자를 구분하지 않는다. MS 쪽에서의 초기 파일 시스템이라고 본다면 리눅스에서는 ext와 특성이 동급 형태라고 보면 된다.

FAT32: SMB를 확장한 파일 시스템. Window 95, 98, ME 에서 자주 사용되던 파일 시스템. 그러나 저장할 수 있는 파일 용량을 32GB 이상은 관리할 수 없다. 

 

NTFS: MS 계열에서 가장 안정적인 파일 시스템. 대용량 파일 저장 관리할 수 있음. 16EB 정도 데이터를 저장할 수 있는 기존 FAT32보다는 대용량의 파일을 저장할 수 있는 장점을 갖고 있다. MS계열에서 대부분 NTFS를 사용한다. 리눅스에서도 NTFS는 사용할 수 있게 지정해놓고 있기는 하다.

ISO 9660: 1988년에 제정된 표준으로 CD나 CD-ROM을 관리할 수 있게 해주는 파일 시스템

UDF: Universal Disk Format의 약자로 광확 매체용 파일 시스템의 표준. ISO 9660을 대처해서 만든 DVD 에 대한 파일 시스템.

HPFS: 운영체제 중에서도 OS/2 운영체제가 있다. 마이크로 소프트와 IBM 공동 개발한 파일 시스템. OS/2 운영체제를 운영 관리하기 위한 파일 시스템

 

<관련 명령어>

mount

특정 디바이스를 디렉토리 처럼 사용하기 위해서 장치와 디렉토리를 연결하는 작업이다.

리눅스는 PnP기능을 지원하고 있지만 지원하는 하드웨어가 많지 않기 때문에 시스템을 부팅 후에 수동으로 마운트를 해서 시스템을 사용을 일반적으로 하게 된다.

마운트 관련된 시스템 정보는 /etc/mtab이라고 하는 파일에서 마운트된 블럭 정보들을 확인할 수 있다.

마운트 설정은 옵션 뒤에 디바이스명이나 디렉토리명을 입력하면 된다.

이 때 옵션에서는 파일 시스템을 지정할 수 있다.

VFAT이나 ext계열이나 ISO, SMB 이런 것들을 옵션 t를 이용해서 파일 시스템을 지정할 수 있다.

umount

설정된 마운트를 해결할 때는 umount를 이용해서 설정된 마운트를 해제할 수 있음

eject

이동식 보조기억장치, DVD나 CD-ROM 같은 매체를 미디어에서 해제하고 제거하는 명령어.

특히 r은 CD-ROM을 제거할 때 사용.

f는 플로피를 제거할 때 사용.

 

fdisk

리눅스 설치하는 과정에서 보았는데, 새로운 파티션을 생성하거나 기존 파티션을 삭제하거나 파티션을 파일 시스템을 지정할 때 보통 fdisk를 이용해서 작업을 할 수 있다.

한번에 한 디스크에만 적용되서 수행할 수 있음.

fdisk를 사용하기 위해서는 어떤 디스크에 파티션을 나눌지 먼저 계획을 잡고 진행을 해야만 한다.

mkfs

fdisk를 통해서 파티션을 나눈 다음에 파일 시스템을 생성하기 위해서 사용하는 명령어

mke2fs

ext2, ext3, ext4 타입의 리눅스 파일 시스템을 생성할 때 사용하는 명령어.

즉 fdisk를 통해 파티션을 나누었다면

나누어진 파티션에 파일 시스템을 지정하는 명령어 중 하나가 mkfs, mke2fs 둘 중 하나를 적절하게 이용해서 파일 시스템을 결정하면 된다.

 

fsck

파일의 무결성을 점검하는 명령어.

무결성이라 함은 데이터에 변조가 있었는지 이러한 이상 유무를 오류 체크를 확인하는 명령어.

만약에 이 과정에서 문제가 일어난 파일들은 /lost+found 라는 디렉토리에 일시적으로 생성이 되서 그 오류 내용들을 확인할 수 있다.

특히 fsck에서 점검하는 내용은 저널 로그를 점검하거나 아이노드나 간접 데이터 블록, 파일 크기, 디렉토리 항목 등등을 확인할 수 있다.

e2fsck

리눅스 전용 파일 시스템인 ext2, ext3, ext4 타입의 리눅스 파일 시스템 형태로 디스크를 포맷할 때 보통 사용한다.

이 때 다양한 옵션들이 사용하는데

p: 파일 시스템을 검사하면서 자동으로 복구하는 명령어

n: 모든 질의에 no를 주어서 작업을 처리하게 한다.

y: 모들 질의에 yes로 처리해서 처리 속도를 빨리 낼 때 사용하는 명령어

du

disk use의 약자로

디렉토리 별로 디스크 사용량을 확인할 때 사용하는 명령어

df

시스템에 마운트된 하드 디스크의 용량을 확인할 때 사용을 한다.

기본적으로 1024바이트 블럭단위로 확인을 한다.

옵션은 h, T, t, a, k, i 등이 있다.

T: 파일 시스템 유형이나 파티션 정보를 좀 더 상세하게 확인

 

감사합니다.

728x90
반응형
LIST

+ Recent posts