BSD 실린더 그룹 (Cylinder Group)
Jan 23, 2026 · Updated Feb 10, 2026
핵심 개념
섹션 제목: “핵심 개념”실린더 그룹(Cylinder Group)은 BSD Fast File System(FFS)에서 관련 데이터를 디스크의 인접 영역에 배치하여 seek 시간을 최소화하는 할당 단위이다. Version 7 파일 시스템은 아이노드와 데이터 블록이 디스크 전체에 흩어져 seek 오버헤드가 컸기 때문에, 파일의 아이노드와 데이터 블록을 가깝게 배치하여 성능을 향상시켰다.
동작 원리
섹션 제목: “동작 원리”디스크는 여러 실린더로 구성되며, 같은 실린더 내 접근은 seek가 불필요하다.
실린더 그룹 구성 (각 그룹마다)
섹션 제목: “실린더 그룹 구성 (각 그룹마다)”파일 시스템 — 실린더 그룹 레이아웃
Cylinder Group 0
superblock* cylinder block inodes data blocks
Cylinder Group 1
superblock* cylinder block inodes data blocks
* 슈퍼블록은 복구를 위해 각 그룹에 복사, 오프셋은 다름
할당 정책
섹션 제목: “할당 정책”- 파일의 아이노드: 부모 디렉토리와 같은 실린더 그룹
- 새 디렉토리의 아이노드: 다른 실린더 그룹 (분산)
- 데이터 블록: 아이노드와 같은 실린더 그룹
- 큰 파일(>2MB): 일정 크기마다 다른 실린더 그룹으로 리다이렉트
블록과 프래그먼트
섹션 제목: “블록과 프래그먼트”큰 블록(4-8KB)과 작은 프래그먼트(512-1024B) 조합으로 내부 단편화를 감소시킨다.
실린더 그룹은 “도서관의 서가”와 같다. 관련 책(파일)을 같은 서가(실린더 그룹)에 모아두면 찾기 쉽다.
/home/user/doc.txt 생성 시:
파일 생성 과정
1 free inode 할당
user 디렉토리의 실린더 그룹에서 2 데이터 블록 할당
같은 실린더 그룹에서 3 빠른 ls 조회
모든 inode가 근처에 있어 seek 최소 - 디스크 seek 시간 대폭 감소 (관련 데이터 근접)
- 슈퍼블록 복제로 안정성 향상
- Version 7 대비 약 10배 성능 향상 (3% → 30% 디스크 대역폭 활용)
- 단점: 10% 정도 여유 공간 필요, 프래그먼트 재할당 시 복사 오버헤드
관련 개념
섹션 제목: “관련 개념”- UNIX 아이노드 (Inode) - 실린더 그룹 내에 배치되는 파일 메타데이터 구조
- HDD (Hard Disk Drive) - 실린더 그룹이 최적화하는 대상인 기계식 디스크의 물리 구조
- I/O 스케줄링 - 실린더 그룹과 함께 디스크 seek 시간을 줄이는 기법
- 저널링 파일 시스템 - FFS 이후 등장한 크래시 복구 기법으로, 슈퍼블록 복제와 다른 접근
- 논리 블록 주소 (LBA) - 물리적 실린더 위치를 추상화한 논리 주소 체계