가치 있는 정보 준비 중
3초만 투자해 보세요!
Preparing valuable information
Just invest three seconds!
본문 바로가기
IT/OS

UNIX 파일시스템 ufs 단편화

by 콰나 | Quanna 2024. 1. 16.

<df 명령어>

df -h : byte, mb, gb 단위로 보여줌

 

<파일시스템>

*파일 시스템 : 구조화된 일련의 정보를 구성하는 파일 또는 디렉토리의 집합

1) Disk-Based File System

- 하드 디스크나 CD-ROM, 디스켓, DVD 등을 기반으로 하는 파일 시스템

ufs (Unix File System) 유닉스 파일시스템으로 솔라리스의 기본 파일시스템 10버전까지 지원
hsfs CD-ROM에서 사용하는 파일시스템으로 읽기 전용이다.
pcfs PC파일 시스템, 도스 파일시스템
udfs 광 저장 장치 파일 시스템으로 DVD, CD-ROM 미디어를 사용하도록 만들어진 파일시스템, 읽기 쓰기 가능

 

2) Distributed File System

nfs 네트워크 파일 시스템, MS윈도우의 공유폴더 기능과 같이, 서버에서 공유한 내용을 클라이언트가 가져올 있도록 사용이 가능한 파일시스템

 

3) Pseudo File System

tmpsf
 
- Temporary file system 디스크 기반에 데이터를 부하를 줄이기 위해서 메모리에 파일을 기록한다.
- tmpfs 메모리 기반이기 때문에 재부팅하면 모든 데이터가 사라진다.
swapfs Swap file system 커널에 의해 사용되며, 디스크 상의 스왑 공간을 관리
fdfs 파일 설명자 fs /dev/fd 디렉토리에서 파일 설명자를 사용하여 파일을 있는 이름을 명시
procfs 프로세스 파일 시스템, 현재 동작 중인 프로세스 목록을 관리
mntfs 마운트 파일 시스템, 마운트 파일 시스템에 대해 커널의 읽기 전용 정보를 알려줌
objfs 커널 오브젝트 파일 시스템, 커널에 의해서 사용되는 모듈을 관리
devfs 디바이스 파일 시스템, 모든 디바이스의 이름 관리
ctfs 컨트렉트 파일 시스템, zone이라는 컨테이너 기술을 지원하는 파일 시스템

 

<ufs (Unix File System)>

1)사용자 입장에서의 ufs

- 시스템을 사용하는 사용자가 시스템에 접근할 있도록 데이터를 저장하고 쳬계적으로 정리하는데 사용되는 파일 또는 디렉토리의 집합

 

2)운영체제 입장에서의 ufs

- 데이터 블록의 집합으로, 데이터를 저장하고 쉽게 관리할 있는 분할영역의 공간

 

<ufs 파일시스템의 구조>

1) 디스크 레이블 (disk label (VTOC) )

- VTOC 첫번째 디스크 섹터에 존재하며 디스크를 포맷할 생성

 

2) 부트 블록 (bootblk)

- Boot Program 1~15섹터에 존재, 부트 로더라고도 불림

3) 슈퍼 블록 (Super Block)

- 부트 블록 다음에 16~31 섹터에 존재, 파일시스템의 정보 테이블로 파일시스템의 정보를 담고있다.

- 데이터 블록 수
- 실린더 그룹 수
- 데이터 블록의 크기 및 단편화 조각의 크기
- 하드웨어에 대한 설명
- 마운트 지점의 이름
- 파일시스템의 상태 플래그 (clean, stable, active, unknown)

 

4) 백업 슈퍼 블록 (Back Super Block)

- 슈퍼 블록의 손상이 생겼을 때 데이터 손실을 방지하기 위해 슈퍼 블록을 복사해둔 곳

 

*실린더 그룹 (Cylinder Group)
 
- 파일시스템은 실린더 그룹으로 나누어지며, 실린더 그룹은 최소 16개의실린더로 구성, 실린더 그룹을 사용하면 디스크의 접근하는 성능이 향상

 

5) 실린더 그룹 블록(Cylinder Group Block)

- 각 실린더 그룹에 존재하는 테이블, 실린더 그룹의 정보를 제공

- i-node
- 실린더 그룹 내의 데이터 블록 수
- 디렉토리의 수
- 실린더 그룹 내에서 사용가능한 블록, i-node 정보
- 사용된  i-node 정보

 

 

6) i-node table

*데이터 블록
- 기본적으로 8kb (8192byte) 논리적 블록의 크기, 공간의 낭비를 줄이기 위해서 실제로 1kb 단편화된다. 일반적으로 데이터블록에는 파일의 내용이 포함된다.

 

*i-node : 파일에 대한 관한 정보를 담고 있는 번호
 
- 파일의 타입
- 파일 크기
- 링크
- 소유자, UID, 그룹, GID
- 수정시간
- 파일의 데이터 블록
- 직접 포인트, 간접 포인트 (데이터블록의 위치를 알려주는 포인터)
- 디렉토리에 들어있는 파일 이름과 i-node 번호 정보를 포함한다.

 

(ex) 25mb파일을 저장시 double indirect inode single indirect inode 2개가 생성된다.

 

<단편화>

- 디스크의 공간을 효율적으로 사용하기 위해서 사용된다.

 

1) 96kb보다 작으면 1kb단편화해서 저장한다.

 

2) 96kb보다 크면 8kb(데이터블록) 단편화하지 않고 저장한다.

 

<ufs 파일시스템 생성>

- newfs 명령어 : ufs 생성하는 명령어로 mkfs 명령어의 단점을 보완

*minfree : 디스크의 장애처리공간
 
- mkfs에서는 별도의 할당공간(minfree) 무조건 전체 용량의 10%를 차지
- newfs 명령어는 ufs 생성할 전체 용량을 확인하고 계산해서 적절한 minfree 공간을 할당

 

<minfree 확인 명령어>

fstyp v [로우장치명] | grep minfree

tunefs m [숫자][로우장치명] : [숫자]%만큼의 minfree 공간할당

*minfree 용량계산 공식:  64mb / 파티션크기 * 100