Mass Storage Structure

종류

  1. HDD: 하드 디스크 드라이브로, 플래터 위에 데이터를 저장하는 방식이다.
  2. SSD: 솔리드 스테이트 드라이브로, 플래시 메모리를 이용해 데이터를 저장하는 방식이다.
  3. RAM Disk: RAM을 이용하여 가상 디스크를 생성하여 사용하는 방식이다.
  4. Magnetic Tape: 자기 테이프를 이용하여 데이터를 저장하는 방식이다.

Disk Attachment

  1. Host Attached: I/O 포트를 이용해서 슬롯에 바로 디스크를 붙이는 방법이다. IDE와 SCSI가 존재한다.
  2. Network Attached: NAS, SAN이 있다.
  3. 분류: NON IP이면서 direct로 연결되는 IDE, SCSI가 있고 Fiber Channel로 연결된 SAN이 있다. 블록 단위로 동작해서 더 빠르지만 파일 시스템을 OS에서 서포트해줘야 한다. IP 네트워크에는 NAS가 있다. NAS는 별도의 파일 시스템이 존재해서 파일 단위로 접근 가능하다. 중소규모의 기업에서도 많이 구현해서 사용한다.

HDD

  1. 플래터가 여러 장 존재하고 그 위에 데이터를 쓰는 영역인 트랙이 존재한다. 트랙에 데이터를 쓰는 최소 단위는 섹터이다. 실제 데이터를 읽는 부분이 헤더이며, 헤더와 연결된 부분이 암(Arm), 암을 움직이는 암 어셈블리 등으로 구성되어 있다. 플래터는 스핀들이라는 공용의 축을 통해서 돌아간다. HDD는 충격에 약하고 bad block이 잘 발생한다. 피지컬과 로지컬 영역을 나눠서 사용하는데, 디스크의 섹터 등은 low level로 피지컬 영역이고 filename, record 등 higher level로 abstraction해서 사용한다. 실린더, 트랙, 섹터 등의 정보를 가지고 데이터를 찾는 과정을 전부 OS가 처리하는 것은 옛날 방식이고 요즘은 디스크 컨트롤러에서 처리하며 OS의 오버헤드가 줄어들어 성능이 향상된다. HDD I/O에서는 Arm seek time이 성능에 가장 중요하다. Rotation, transfer 속도가 미치는 영향은 아주 적다. seek time을 최대한 줄이기 위한 disk scheduling 알고리즘이 존재한다.
  2. Disk Scheduling

Disk Controller 기능

  1. Read Ahead: spatial locality를 고려해서 회전하는 방향의 앞 부분도 미리 읽어서 메모리에 올려준다.
  2. Caching: 최근에 사용된 데이터를 캐시하여 성능을 향상시킨다.