모든 것이 파일
아이노드 + Direct , Indirect 포인터
디스크 블럭의 위치정보를 포함한 uid ,gid ,time 등등 여러가지 정보를 아이노드에서 찾을 수 있다.
디렉토리는 파일명과 inumber의 쌍으로 이루어져 있다.
리눅스(미닉스)의 첫 번째 파일 시스템
슈퍼블럭 , 비트맵 , 아이노드 , 데이터 블럭
접근 특성 : inode => data 번갈아 수행
데이터와 아이노드 같이 같은 시간에 접근되는 부분을 가까이 놓자.
스토리지를 그룹으로 나눈다. 각 그룹마다 슈퍼블록 , 비트맵 , 아이노드 만듦
스토리지를 파티션으로 나눈다.
파티션마다 서로 다른 파일 시스템
I/O가 커짐. 512B => 4KB
파일의 크기가 작으면 낭비가 생김. 내부단편화 발생
UFS와 인터페이스는 동일하다(open read write). 내부적으로는 완전 다름
스토리지 => 부트블럭 , 블럭그룹(실린더그룹) ... 블럭그룹(N)
성능 향상
확장성 지원
부트블럭 : 512 + 512
슈퍼블럭 : 1024
1block : 1KB
가까운 정보는 가까이에
실린더 그룹 / 블럭그룹
==> 그룹 사이즈를 얼마나?
==> 그룹 사이즈가 너무 크면 거리가 멀어짐. 너무 작으면 하나에 들어갈 파일의 개수가 제한.
==> 기본적으로 128MB
어느 블럭 그룹에 할당할 것?
어느 그룹에 할당할 지?
3가지 규칙
공평한 할당 vs FFS 할당
만약 128MB를 넘게된다면?
Rule3 : 한 그룹에서 한 파일이 어느정도 차지하면 다른 그룹에 쓰여지도록 한다.
seek time이 발생할 수 있음
chunk size : 키우면 좀더 많은 %를 i/o할 수 있다. 큰 파일이 한 그룹을 모두 차지하도록
chunk size를 얼마나 할당하냐에 따라 네임스페이스 로컬리티와 Amortization(Seek-time을 감추는 것) 과의 상충관계