티스토리 뷰
대용량 저장 장치
Swap Space 관리
디맨드 페이징을 할 때 페이지를 임시로 저장하는 swap space로 대용량 저장 장치의 일부가 사용된다. 파일 영역과 독립된 영역을 swap space로 사용할 수 있다. 내부 단편화 문제가 있지만, 스왑된 페이지는 보통 짧은 시간 안에 다시 메모리로 돌아가기 때문에 걱정하지 않아도 된다.
NAS: Network Attached Storage
- 여러 클라이언트가 네트워크를 통해 동시에 접근할 수 있는 저장소를 말한다.
- RPC를 통해 파일을 관리할 수 있다.
- 주로 Local Area Network 환경에서 작동한다.
- NFS가 대표적인 예다.
클라우드 저장소
- API기반의 저장소로, 아마존 S3, 구글 클라우드 등이 대표적이다.
- WAN, 인터넷 환경에서 동작해야 하는데, NAS와 달리 연결이 불안정하고 지연율도 높아서 API를 제공한다.
RAID 구조 (Redundant Arrays of Independent Disks)
디스크가 고장나도 데이터를 잃지 않도록 추가 정보를 디스크에 저장한다. 즉, 중복된 정보를 저장한다.
- Mirroring
동일한 데이타를 두 개의 디스크에 저장한다. 파일 쓰기 작업이 두 배가 되지만, 디스크 두 개가 동시에 고장나지 않는 한 데이타를 잃을 걱정은 없다.
- Striping
여러 디스크를 사용하면 전송 속도를 비약적으로 올릴 수 있다.
- 1byte 에서 bit별로 타겟 드라이브를 골라 저장하면 읽기/쓰기 속도가 드라이브에 개수에 비례한다.
- block 별로 타겟 드라이브를 고를 수도 있다.
레이드 구조는 레벨에 따라 다음과 같이 정리됩니다.
Level 0
중복 없이 디스크는 각자의 데이타를 가지고, block-level striping만 적용되어 전송 효율만 좋은 구조다.
Level 1
미러링만 적용된 드라이브 배열이다.
Level 4
block level striping을 적용하고, \(N\)개 블락에 대한 EC 계산 결과인 \(N+1\)번째 블락은 패리티 드라이브 하나에 저장된다.
이를 통해 읽기 작업을 효율적으로 하는 것은 물론, 드라이브 하나가 망가지는 경우에 데이타를 복구할 수 있다.
쓰기 작업은 드라이브 하나에 쓸 때 패리티 드라이브에 저장된 값을 업데이트 해야 하는데, 이로 인한 병목 현상이 단점으로 꼽힌다.
Level 5
패리티 디스크가 망가지면 답이 없기 때문에, \(N\)개 블락에 대한 parity 블락을 각 디스크에 나누어 저장한다.
Level 6
드라이브가 동시에 두 개 망가지는 경우에 대응하기 위해 갈루아 필드를 사용한 ECC \(p, q\)를 관리한다.