<하드 디스크 드라이브> 37
37.1 인터페이스
- 드라이브는 데이터를 읽고 쓸 수 있는 섹터(블록)들의 배열로 볼 수 있다. n개의 섹터가 모여 0부터 n-1까지의 디스크 주소 공간이 생긴다.
- 디스크에 데이터를 읽고 쓸 때에는 멀티 섹터 작업, 즉 하나의 섹터보다 큰 용량의 데이터 읽고 쓰기가 가능하다. (하나의 섹터는 512byte이다.) 하지만, 디스크는 섹터 단위의 쓰기 작업에 대한 원자성만을 보장하기 때문에, 멀티 섹터 작업 중에 갑작스런 전력 손실이 일어난다면, 쓰기가 부분적으로만 완료될 수 있다. 이러 현상은 **‘찢어 쓰기 torn write’**라고 부르기도 한다.
- 디스크 드라이브에 대한 몇가지 가정을 하는데, 인터페이스에 직접적으로 명시되어 있지 않기 때문에 이를 **‘계약 불문율’**이라고 부른다.
- 서로 가까운 두 블록에 접근하는 것이 멀리 있는 두 블록에 접근하는 것보다 빠르다.
- 연속적인 청크의 블록에 접근하는 것이 랜덤으로 접근하는 것보다 빠르다.
37.2 기본 구조
- 플래터 platter 이름에 나와있는 디스크 그 자체이다. 위아래 2개의 **‘표면 surface’**으로 이루어져 있으며, 얇은 자성층이 입혀져 있어 자기적 성질을 변형해 영구적으로 데이터를 저장할 수 있다.
- 회전축 spindle 플래터들을 관통하는 회전축이 있어 축을 중심으로 일정한 속도로 회전하게 되는데, 회전속도를 나타내는 지표를 **‘RPM Rotation Per Minute 분당 회전수’**라고 한다. 하지만 우리가 관심을 갖는 값은 한 번의 회전을 할 때 걸리는 시간이다. 이는 1분을 RPM으로 나누면 쉽게 얻을 수 있다. (보통 7,200 ~ 15,000 RPM을 가진다.)
- 섹터들은 플래터의 수많은 동심원들 위에 촘촘히 위치해 있는데, 이 동심원들을 **‘트랙 track’**이라고 부르고, 수많은 트랙들이 플래터 위에 존재한다.
- 디스크의 자기적 패턴을 감지하거나(읽기), 자기적 성질을 변형하는(쓰기) 장치가 필요한데, 이 역할을 **‘디스크 헤드 disk head’**가 해주며 디스크 헤드는 **‘디스크 암 disk arm’**에 연결되어 원하는 트랙 위로 이동한다.
37.3 간단한 디스크 드라이브
단일 트랙 지연 시간: 회전 지연
- 디스크가 특정 섹터를 읽어야 할 때, 디스크는 어떻게 동작을 할까? 디스크는 그저 플래터가 회전하여 디스크 헤드 아래에 해당 섹터가 올 때까지 기다린다. 이때 발생하는 지연을 **‘회전 지연 rotation delay’**라 한다.
멀티 트랙: 탐색 시간
- 하지만, 실제 트랙은 한 개가 아니라 수없이 많고 특정 섹터에 접근하기 위해서는 먼저 디스크 암을 이용해 디스크 헤드를 섹터가 위치한 트랙 위로 옮길 필요가 있는데, 이 과정을 **‘탐색 seek’**이라고 하고 비용이 가장 많이 드는 디스크 동작 중 하나이다.
- 탐색은 여러 단계로 이루어져 있다. 디스크 암이 움직이기 시작하는 ‘가속’ 단계를 지나면, 디스크 암이 최고 속도에 이르게 되는데 이를 ‘활주’ 단계라고 한다. 최고 속도를 찍으면 디스크 암은 서서히 느려지는 ‘감속’ 단계에 돌입하고, 마지막 ‘안정화’ 단계에서 정확한 트랙 위에 헤드가 위치한다. 디스크 헤드가 정확히 트랙 위에 위치해야 하기 때문에 **‘안정화 시간 settling time’**이 매우 중요하다! 탐색을 하는 와중에도 플래터는 회전 중이기에 헤드가 위치할 섹터는 처음과 다르다. 헤드 아래로 목표하는 섹터가 위치하게 되면 마지막 단계인 전송(읽기/쓰기)이 일어난다.
그 외의 세부 사항
- **‘트랙 비틀림 track skew’**기법을 이용하면 한 트랙에서 다른 트랙으로 탐색이 일어날 때, 회전 지연을 최소화해서 데이터를 연속적으로 읽어들일 수 있다. 트랙 비틀림은 설계 단계에서 일어나여 다음 트랙의 시작점을 디스크의 헤드 이동시간과 디스크 회전 각도를 고려해서 설정하는 방식이다.
- 디스크의 외곽으로 갈수록 하나의 트랙이 가지는 섹터의 수는 늘어날 수 밖에 없다. 따라서, **같은 수의 섹터를 가지는 트랙들을 하나의 ‘구역’**으로 묶을 수 있는데, 트랙들이 구역으로 나뉘어진 디스크를 ‘멀티 구역 multi-zoned’ 디스크 드라이브라고 한다.