CS/OS
가용 공간 관리
우봉수
2023. 6. 6. 22:31
가용 공간 관리
- 그룹핑(Grouping): 가용 공간을 특정 기준에 따라 여러 그룹으로 분류하는 것
- 디스크 공간: 파일 시스템, 디렉토리, 파일 유형
- 카운팅(Counting): 각 그룹에 속하는 공간의 양을 세는 것
- 특정 디렉토리에 속하는 파일들이 차지하는 디스크 공간의 총량을 계산
- 효율성(Efficiency):
- 디스크 할당 방법: 연속 할당, 연결 할당
- 파일의 디렉터리 항목에 유지되는 데이터의 유형
- 메타데이터 구조의 선-할당 또는 필요시 할당
- 고정 또는 가변 크기 자료구조
- 성능:
- 데이터와 메타데이터를 가깝게 유지
- 자주 사용하는 블록을 위한 별도의 메인 메모리 영역 버퍼 캐시의 히트율
- 동기적, 비동기적
- 사용 후 반환(Free-behind): 사용한 데이터를 바로 반환 하는 것
- 미리 읽기(read-ahead): 다음 블록을 사용할 것이라 예상하고 미리 읽는 것
- 페이지 캐쉬와 버퍼 캐쉬를 합쳐서 통합 버퍼 캐쉬를 사용
Bit map or Bit vector
- 각각의 비트가 특정 자원을 나타내는 1차원 배열
- 디스크 공간 관리에서 각 비트는 디스크의 특정 블록을 나타낸다.
- 비트가 1이면 해당 블록이 사용 중임을 나타내고, 0이면 블록이 사용 가능함을 나타낸다.
- 크기가 작을 때 유리하며 파일 사이즈가 커지면 감당하기 힘들다.
연결 리스트
- 공간의 낭비가 없고 전체 순회 할 필요가 없다.
ZFS
- 장치 공간을 metaslab 단위로 나누고 metaslab을 관리
- 특정 볼륨은 수백 개의 metaslab을 포함한다.
- 각 metaslab은 연관된 공간 맵을 가진다.
- 모든 블록 관련 행동을 로그 파일로 기록
- 트랜잭션 기반 연산
NFS
NFS는 "Network File System"의 약자로
다른 컴퓨터 시스템의 파일들을 내 컴퓨터 파일 시스템에 마운트 하여 사용 할 수 있게 하는 개념
일반적으로 UNIX와 같은 네트워크 운영 체제에서 사용되며, 파일과 디렉토리를 공유하고 원격 파일을 로컬 컴퓨터에서 사용하는 것처럼 엑세스 할 수 있다.이를 통해 사용자는 자신의 시스템에서 직접적으로 파일을 수정, 이동, 또는 삭제 하는 것이 가능해 진다.
- 서버와 클라이언트 개념으로 논리적 연결을 통해 작동한다.
- 마운트 연산은 마운트 할 원격 디렉토리의 이름과 이를 저장하는 서버 시스템의 이름을 필요로 한다.
- 마운트 연산은 사용자의 관점만 변경하며 서버 측에는 영향을 미치지 않는다.
- NFS 서버는 상태가 없다. 각 요청은 모든 인자를 가지고 있어야 한다.