A mecânica de um Disk Drive
Como tirar melhor proveito da performance do disco?
Lembro-me de um curso que tive sobre Storage, no qual o instrutor começava perguntando se alguém sabia o que era um disk drive. Ao mesmo tempo que a resposta parecia óbvia ("Lógico que sim!!!"), todos na classe sabiam que havia algo mais na pergunta. Ele deixou claro que queria começar do zero e logo mostrou algumas ilustrações de disco.
Primeiro, foram descritos os principais componentes de um disk drive:
- Platter - São os discos magnéticos que armazenam os dados.
- Head (Cabeçote) - Dispositivo responsável por realizar a leitura/gravação em disco.
- Arm/Actuator (Atuador) - Corresponde a parte móvel que permite a movimentação da cabeça para posicionamento.
- Spindle (Motor) - Esse é o motor que gira em velocidade constante.
Em cada platter, podemos imaginar vários círculos concêntricos com tamanhos variados. Cada círculo corresponde a um track e o conjunto de tracks (em um formato tridimensional), a um cilindro.
Finalmente, cada track é dividido em vários setores - na grande maioria dos discos, cada setor possui 512 bytes.
Vou tentar descrever o que acontece quando uma operação de leitura é realizada:
-
- A informação a ser lida é traduzida em uma coordenada no disco, seguindo o formato CHS (Cylinder/Head/Sector)
- O atuador posiciona o cabeçote no cilindro/track correspondente ao dado
- O motor gira até a posição correspondente do setor dentro do track
- A leitura é realizada através do cabeçote correspondente ao platter
Prestem bastante atenção aos pontos 2 e 3.
Quanto tempo que o atuador precisa para posicionar o cabeçote no cilindro correspondente?
Resposta: Seek Time.
Quanto tempo que o motor necessita para posicionar o cabeçote no setor correspondente?
Resposta: Rotation Latency Time.
Essas informações estão presentes na especificação do disco.
EXEMPLO:
Disco Seagate Savvio
https://www.seagate.com/www/en-us/products/servers/savvio/savvio_15k.2/
PERFORMANCE
Spindle Speed
15,000 rpm
Average latency
2.0 msec
Random read seek time
3.2 msec
Random write seek time
3.5 msec
No próximo post, continuaremos olhando esses números.