Storage: capacidade, desempenho e recuperação
Doze aulas, 100 perguntas e vinte casos de Storage: capacidade, I/O, sincronização, percentis, cópias consistentes e recuperação.
Objetivos e percurso
Percurso técnico com doze módulos e 120 decisões originais PT-PT/EN. Preserva os exercícios de ficheiros e de recuperação SQLite. Acrescenta seis ensaios locais de quatro MiB, em três frequências de fsync, com tempos reais, hashes e 43 verificações. Quatro modelos sintéticos ensinam agregação de percentis, limite agregado do host, prazo de capacidade e relação entre fila e tempo médio. O código completo usa Python 3.13.1 em Darwin 27.0.0 arm64, sem direct I/O, expulsão de caches ou contadores do dispositivo. Não estabelece taxas portáteis, durabilidade perante falha de energia ou aceitação de produção. Avaliação interna de 66 decisões em 150 minutos; guiões ainda sem execução por participantes.
Para quem: Equipas APS L2/L3, administração Linux, infraestrutura, cloud e gestores técnicos.
Pré-requisitos: Noções de Linux, ficheiros e aplicações; os pressupostos dos cálculos são fornecidos.
750 minutos de estudo estimados
- Escolhe a interface e identifica o armazenamento realmente usado pela aplicação.
- Distingue bytes, inodes, camadas e margem física de um pool.
- Relaciona IOPS, tamanho, throughput, fila e latência com unidades explícitas.
- Distingue redundância, persistência e autoridade de escrita.
- Define um ponto recuperável e distingue restore técnico de aceitação funcional.
- Prepara cutover, recuperação, decommission e autonomia operacional.
- Diagnostica diferenças entre caminhos e objetos abertos, identifica alocação e avalia o alcance de uma substituição de ficheiro.
- Calcula taxas com amostras comparáveis, avalia limites de capacidade e distingue cópia íntegra de recuperação funcional.
- Observa como WAL, transações e mecanismo de cópia determinam o ponto recuperável de uma aplicação SQLite sintética.
- Executa uma sonda sobre uma cópia isolada e separa integridade, relações, compatibilidade, reconciliação e atualidade.
- Mede uma carga local limitada e interpreta operações lógicas, bytes, latência e fsync sem confundir a aplicação com o dispositivo.
- Combina distribuições, identifica a camada limitante e confronta projeções de capacidade com prazo e incerteza operacional.
Módulos
- Interfaces e dependências
- Capacidade e crescimento
- Desempenho e medição
- Durabilidade e coordenação
- Snapshots e recuperação
- Migração, FinOps e RUN
- Nomes, descritores e publicação
- Capacidade, I/O e validação de cópias
- Backup consistente de uma aplicação ativa
- Restauro e critérios funcionais
- Medir I/O e contratos de sincronização
- Percentis, limites e margem de capacidade
Continua a aprender
Referências e versão
DR Storage 2026-09; selected Linux and AWS storage behavior
- EBS volume types and workload fit · 2026-09-30
- EBS I/O characteristics and monitoring · 2026-10-03
- EBS incremental point-in-time snapshots · 2026-09-30
- Linux I/O statistics fields · 2026-10-03
- Thin provisioning data and metadata capacity · 2026-10-03
- Extend filesystem after EBS volume growth · 2026-09-30
- EBS snapshot consistency and cached data · 2026-09-30
- EC2 temporary instance store · 2026-09-30
- S3 object storage and consistency · 2026-09-30
- EBS shared block access and clustered filesystems · 2026-09-30
- fsync(2) · 2026-10-03
- Filesystem capacity and inode observations · 2026-09-30
- Linux software RAID state and redundancy · 2026-09-30
- EFS shared file storage · 2026-09-30
- EBS restore initialization and performance · 2026-09-30
- EBS snapshot deletion and retained data · 2026-09-30
- EBS encryption and KMS dependencies · 2026-09-30
- AWS Backup restore testing and validation · 2026-09-30
- EC2 instance store lifecycle · 2026-09-30
- findmnt mounted filesystem inspection · 2026-09-30
- unlink(2) · 2026-10-03
- Define recovery objectives for downtime and data loss · 2026-10-03
- Python operating-system synchronization interface · 2026-10-03
- link(2) · 2026-10-03
- rename(2) · 2026-10-03
- stat(2) · 2026-10-03
- Block layer statistics · 2026-10-03
- shutil: high-level file operations · 2026-10-03
- hashlib: secure hashes and message digests · 2026-10-03
- fractions: rational numbers · 2026-10-03
- SQLite write-ahead logging · 2026-10-03
- SQLite online backup API · 2026-10-03
- SQLite integrity foreign keys and application version marker · 2026-10-03
- Original synthetic application recovery fixture using sqlite3 · 2026-10-03
- Python raw file I/O and partial writes · 2026-10-03
- Original I/O timing and planning fixtures · 2026-10-03
- Monitoring distributed systems · 2026-10-03
O que vais explorar
0 / 12Interfaces e dependências
Escolhe a interface e identifica o armazenamento realmente usado pela aplicação.
Capacidade e crescimento
Distingue bytes, inodes, camadas e margem física de um pool.
Desempenho e medição
Relaciona IOPS, tamanho, throughput, fila e latência com unidades explícitas.
Durabilidade e coordenação
Distingue redundância, persistência e autoridade de escrita.
Snapshots e recuperação
Define um ponto recuperável e distingue restore técnico de aceitação funcional.
Migração, FinOps e RUN
Prepara cutover, recuperação, decommission e autonomia operacional.
Nomes, descritores e publicação
Diagnostica diferenças entre caminhos e objetos abertos, identifica alocação e avalia o alcance de uma substituição de ficheiro.
Capacidade, I/O e validação de cópias
Calcula taxas com amostras comparáveis, avalia limites de capacidade e distingue cópia íntegra de recuperação funcional.
Backup consistente de uma aplicação ativa
Observa como WAL, transações e mecanismo de cópia determinam o ponto recuperável de uma aplicação SQLite sintética.
Restauro e critérios funcionais
Executa uma sonda sobre uma cópia isolada e separa integridade, relações, compatibilidade, reconciliação e atualidade.
Medir I/O e contratos de sincronização
Mede uma carga local limitada e interpreta operações lógicas, bytes, latência e fsync sem confundir a aplicação com o dispositivo.
Percentis, limites e margem de capacidade
Combina distribuições, identifica a camada limitante e confronta projeções de capacidade com prazo e incerteza operacional.