오래된 Unix 파일 시스템

슈퍼블럭(S): 볼륨 크기, 아이노드 개수, 포인터 등

 

장점

  • 단순함.

 

단점

 

  • 낮은 성능
  • 디스크를 RAM처럼 사용: 데이터를 임의의 위치에 저장하여 잦은 헤드 이동 발생
  • 512바이트의 작은 블록 크기
  • 단편화: 빈 공간 관리가 효율적이지 못해 디스크 공간이 조각나고, 파일이 여러 조각으로 나뉘어 저장.

이러한 데이트 블럭 영역에서 B와 D를 삭제하면

 

이런 상태가 된다.

데이터가 삭제되어도 연속된 청크가 아닌 두 블럭으로 단편화되어, 후 네 블럭으로 구성된 파일 E가 들어와도

 

이런 형태를 유지하기에, 파일 E를 읽을 때 포인터의 위치를 변경해줘야하는 번거로움을 겪는다.

 

 

FFS의 핵심 아이디어: 디스크에 대한 이해

  • 디스크의 물리적인 특성을 고려하여 파일 시스템의 성능 개선.
  • 기존 오래된 Unix 파일 시스템 인터페이스와 호환성을 유지함.

 

 

FFS의 주요 개선 사항

  • 실린더 그룹
    • 디스크를 실린더 그룹으로 나누어 데이터와 메타데이터를 지역적으로 저장.
    • 동일한 디렉터리에 속한 파일을 가깝게 배치하여 디스크 헤드 이동 최소화.
  • 관련 데이터의 근접 배치
    • 디렉터리와 해당 파일은 동일한 실린더 그룹에 배치.
    • 관련 없는 파일은 서로 다른 실린더 그룹에 배치.
  • 슈퍼블록 복제
    • 각 실린더 그룹에 슈퍼블록 복제본을 저장하여 데이터 손실 방지.
  • 비트맵 사용
    • 아이노드와 데이터 블록의 할당 상태를 추적하여 단편화 감소.
  • 대용량 파일 예외 처리
    • 큰 파일을 여러 그룹에 분산 저장하여 지역성 유지 및 성능 저하 완화.
  • 서브 블록
    • 작은 파일을 저장할 때 4KB 블록 전체를 낭비하지 않고 필요한 만큼의 서브 블록만 할당.
  • 매개화된 배치
    • 디스크의 성능 매개변수를 검출하여 최적의 배치 간격을 결정하는 매개화 기법 사용.

 

FFS의 성능 원칙

  • 지역성
    • 관련 데이터가 디스크 상에서 물리적으로 가까운 위치에 배치되어야 성능이 향상.
    • 디렉터리 트리 상의 파일 접근 패턴을 분석하여 지역성을 확인.
  • 할당 정책의 합리성
    • 디렉터리 내 파일 접근의 지역성이 실제로 높음.
    • 디렉터리와 파일 간의 물리적 근접성이 성능에 기여.

+ Recent posts