Capítulo 21
Discos rígidos

Discos rígidos: Dispositivo de armazenamento magnético

Características:

Um ou mais discos metálicos

Taxa de transferência entre 0.5 e 2 Gbps

Criado em 1954

Latência entre 2 e 10 ms

Características:

Velocidade de rotação entre 4.200 e 15.000 RPM

Capacidade entre 100s GB e 10 TB

Estrutura lógica do disco rígido

Estrutura:

Faces (ou cabeças): duas por disco metálico

Trilhas (ou cilindros): faixas concêntricas

Setores: “fatias” angulares

Blocos físicos:

Interseção entre cabeça, trilha e setor

Tamanho fixo de 512 ou 4.096 bytes

Endereçamento dos blocos:

Esquema CHS: Cylinder, Head, Sector (interno)

Esquema LBA: Large Block Array (firmware ou BIOS)

Interface de acesso

Padrões de interface do controlador:

SCSI

SATA

IDE

SAS

1 Gbit/s

2,5 Gbit/s

6 Gbit/s

12 Gbit/s

paralelo

paralelo

serial

serial

desktops

servidores

desktops

servidores

obsoleto

obsoleto

atual

atual

Estrutura do driver:

Interação por eventos e DMA

Transfere grupos de blocos físicos (clusters)

Blocos lógicos ou clusters: 512 a 64 K Bytes

Escalonamento de acessos

O disco é um dispositivo lento!

Latência rotacional tr ≈ 5ms

Tempo de busca ts ≈ 10ms (seek time)

O disco é um dispositivo sequencial: trata um pedido por vez!

Tratamento dos pedidos de acesso ao disco:

A fila é organizada de acordo com um algoritmo

Busca-se desempenho e justiça

Pedidos dos processos são mantidos em uma fila

Algoritmos de escalonamento clássicos

SSTF - Shortest Seek-Time First

SCAN, C-SCAN, LOOK e C-LOOK (“elevador”)

FCFS - First Come, First Served

Atender as requisições na ordem em que foram emitidas.

Menor tempo de busca primeiro. Atender o pedido que está mais próximo da cabeça

SCAN

  • A cabeça “varre” (scan) o disco nos dois sentidos.
  • Também chamado de “algoritmo do elevador”
  • Bom desempenho e mais justiça no atendimento dos pedidos

C-SCAN

  • Variante “circular” do algoritmo SCAN.
  • Varre o disco somente em um sentido
  • Tempo de espera mais homogêneo aos pedidos pendentes.

LOOK

  • Otimização do algoritmo SCAN
  • A cabeça não avança até o final do disco

C-LOOK

Otimização do algoritmo C-SCAN

Escalonadores de disco no Linux

Noop

Baseado em FCFS

Agrupa pedidos ao mesmo bloco ou blocos adjacentes

Usado em SSD e sistemas RAID

Deadline e Anticipatory

Associa prazos aos pedidos (500 ms leitura, 5s escrita)

Baseado no algoritmo C-SCAN, priorizando os prazos

Anticipatory: agrupa leituras do mesmo processo

CFQ - Completely fair queueing

Pedidos são distribuídos em várias filas (64 por default)

Cada fila tem uma fatia de tempo para acessar o disco

Sistemas RAID

Problemas dos discos rígidos:

Discos são lentos

Discos podem falhar, levando à perda de dados

Estratégia RAID: Redundant Array of Independent Disks

Redundância (cópias) permitem tolerar falhas

Implementado em hardware dedicado ou soware

Operações em paralelo permitem maior desempenho

Opera com blocos (abaixo dos arquivos)

Criar um disco lógico a partir de discos físicos

Níveis RAID:

RAID 1 - espelhamento de discos

RAID 2 - redundância de bits (não usado)

RAID 0 - soma de discos (linear ou stripping)

RAID 3 - redundância de bytes (não usado)

RAID 4 - redundância de blocos, disco de paridade

RAID 5 - redundância de blocos, blocos de paridade distribuídos

RAID 6 - dois blocos de paridade, para tolerar mais erros

linear

striping

  • Estratégia: concatena discos em sequência
  • Mais espaço e velocidade, sem redundância.
  • Estratégia: concatena discos em faixas de blocos
  • Desempenho mais equilibrado entre discos.
  • Estratégia: espelhamento (cópias do disco)
  • Boa velocidade, tolera falhas de disco, mas tem alto custo.
  • Estratégia: disco com blocos de paridade dos demais discos
  • Não é usado, base conceitual do RAID 5.
  • Estratégia: blocos de paridade espalhados nos discos
  • Mais velocidade com tolerância a falhas e baixo custo.