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.