파일시스템 – 블록그룹

파일시스템 블록 그룹은 몇개가 생기고 관리 정보는 어디있을까에 대한 의문이 생겼었는데
파일시스템 관련 책에 나온 아래의 글을 보면 시원하게 풀립니다.

결국 다음과 같이 정리할 수 있겠네요.

ㅇ 파일시스템 내의 모든 블록 그룹들의 크기는 같다. (마지막 것만 빼고)
따라서, 각 블록 그룹들에 대한 접근 정보를 따로 관리할 필요가 없다.
블록 그룹 크기와 갯수만 알면 direct 로 계산하여 접근이 가능하다.

ㅇ 블록 그룹의 갯수는 한 블록의 크기를 어떻게 설정하느냐에 따라 자동으로 달라진다.
파일시스템 당 블록 그룹이 주로 1 개로 사용되는 것이 아니다. 계산에 따라 블록 그룹 갯수가
자동으로 달라진다.

ㅇ 파일시스템에 대한 주요 정보는 슈퍼블록과 블록 디스크립터 테이블에 존재하는데 이는
0 번 블록그룹의 것을 사용한다.
다만, 깨질 것을 대비해 모든 블록그룹에 복사해두는 것이다.

======================================================
각 블록 그룹에는 파일시스템을 구성하는 정보들이 담겨져 있다. 가장 마지막의 블록 그룹을제외하고는 모든 블록 그룹들이 같은 블록 갯수를 가지며, 여기에 파일이름, meta data, 파일 데이터가 기록된다. 

블록그룹은 블록들의 모임이며, OS 커널이 같은 파일에 속하는 데이터 블록은 같은 블록 그룹에
저장하려고 노력하기 때문에 파일의 단편화(데이터가 분산되어 저장되면서 메모리에 구멍이 생기는 것)를 줄일 수 있다.

파일시스템의 전체적인 정보는 슈퍼블록과 그룹디스크립터 테이블에 저장된다. 슈퍼블록과 그룹 디스크립터 테이블은 0 번 블록 그룹의 정보만을 사용하지만 주요 데이터이기 때문에 손상될 경우를 대비하여 모든 블록 그룹에 사본이 저장되어 있다.

블록 그룹의 갯수와 크기는 해당 파티션의 블록의 크기에 따라 달라진다. 그룹 내의 각 블록들이 할당되어 있는지 비어있는지를 알 수 있는 블록 비트맵이 1 Blcok 안에 저장되어야 한다.

설정한 블록의 크기가 4 KB 일 때 8 bit * 4096 Byte = 32,768 개, 각 bit 당 하나씩의 데이터 블록에 해당하므로 Block Bitmap 이 표현할 수 있는 블록의 총 갯수는 32,768 개가 된다. 한 블록이 4 KB 인 경우, 32 KB * 4 KB = 128 MB, 하나의 블록 그룹은 최대 128 MB 의 블록을 가질 수 있다. 또한 10 GB 의 파티션에 Ext2 파일 시스템을 생성한다면 10240 MB / 128 MB = 80 개의 블록 그룹이 파티션에 생성된다.

따라서, 파티션마다 생성되는 블록 그룹의 갯수는 다르며, 블록의 크기가 작을수록 블록 그룹의 갯수가 많아지게 된다.
=========================================================

다시 정리해보면...

일단 파티션에 대해 블록 크기를 4 KB 로 설정했다고 가정하고...

1. 파티션은 다수의 블록그룹으로 나뉠 수 있다.
2. 각 블록그룹내에 속하는 모든 블록들의 상태는 블록비트맵을 통해 0 또는 1 로 표시된다.
3. 블록비트맵은 블록그룹당 1개가 존재하며 설정한 블록 크기(4KB) 하나를 점유한다.
4. 따라서, 블록비트맵은 8 bit * 4096 = 32,768 bit 개의 블록 상태를 나타낼 수 있다.

곧, 이 말은 파티션에서 블록 크기를 4 KB 로 설정하면 한 블록그룹당 블록의 갯수는 32,768 로 계산될 수 밖에 없다는 의미이다. 자동으로 계산되는 것이다.

파티션의 블록 크기를 8 KB 로 설정했다면 블록비트맵으로 사용할 수 있는 공간도 2 배 많아지므로 블록그룹에 속하게 되는 블록 갯수도 2 배 많아집니다. 블록그룹의 크기 또한 커지는거구요.

곧, 파티션에 속하는 블록그룹의 숫자는 줄어드는 것을 의미하구요.

You may also like...

0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x