본문 바로가기

Linux

파일시스템 : 파일시스템, 마운트

01. 파일시스템의 이해

1. 파일 시스템

- 스토리지 장치에 파일을 명명하고, 저장하고, 읽어내는 방법을 제공하는 시스템

- 파일 시스템 설계 목적, 스토리지, 워크로드에 맞게 다양한 파일 시스템이 존재

 

2. 역할

- 공간 관리 : 파편화 관리, HDD 회전 시간 등을 고려해서 공간 배치

- 파일 이름 관리 : 이름 길이, 특수 문자, 대소문자 구분 여부 등

- 디렉토리 관리 : 디렉토리 정보 관리

                   예) HDD의 경우 부모 디렉토리 정보를 참고해서 동일 디렉토리는 인접 물리적 위치에 기록(flash는 해당 없음) 

- 메타 데이터 관리 : 파일 길이, 권한, 디바이스 타입, 수정 시간, 기타 속성 등

- 장애 관리 : 시스템 장애시 파일 유실 방지(저널링 등)

 

3. 디스크 기반 파일 시스템

- 시스템에 연결된 로컬 디스크나 SSD 등을 관리 파일시스템
- Linux : EXT3, EXT4, ZFS, BTRFS

- Windows : FAT, NTFS, REFS
- MacOS : HFS, APFS

 

4. 네트워크 파일 시스템

- 네트워크로 연결된 다른 컴퓨터의 파일 시스템에 있는 파일을 쉽게 접근하도록 지원
- 로컬 디렉토리에 마운트 하여 사용할 수 있고 여러 서버가 동시에 파일 시스템을 접근 가능
- NFS, SMB, CIFS

 

5. 특수 파일 시스템(가상 파일 시스템)

- 실제 디스크 공간을 관리하지 않음

- proc, sysfs, tmpfs, cgroup 등

 

02. 파일시스템의 마운트

1. 디렉토리 구조

- 윈도우는 드라이브, 파티션별로 구성된 네임스페이스 개념을 사용하고

 리눅스는 / (루트) 디렉토리를 시작으로 하위 디렉토리로 내려가는 계층구조로 표현

Linux Directory Structure

이미지 출처 : https://www.linuxyogi.com/linux-directory-structure-file-system-hierarchy/

- 절대 경로 : / 부터 순서대로 경로를 작성해 사용

예) cat /var/log/messages

- 상대 경로 : / 없이 현재 위치에서 부터 경로를 작성해 사용

에) cd /var

     cat log/messages

- 시스템 콜로 넘겨 줄 수 있는 전체 경로 길이에 제한이 존재해 이런 경우 cd로 경로를 변경한 후 상대 경로를 사용해야함

 

2. 마운트

- 리눅스는 여러 장치의 파일 시스템을 마운트해서 구성됨

- 시스템에 기본으로 마운트되야 하는 파일 시스템 정보는 /etc/fstab 파일에 저장해야 재부팅 후에도 마운트됨

 

*본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.

http://bit.ly/3Y34pE0