Maior garantia de integridade para seus dados: swap em arquivo

Recentemente aprendi, de maneira MUITO "dolorida", as vantagens de se usar um ARQUIVO de swap em vez de uma PARTIÇÃO de swap.
Você precisa garantir a integridade de seus dados.


Discos rígidos são periféricos eminentemente mecânicos e ainda um dos mais frágeis nos computadores. Acredito que só os conectores são mais problemáticos.
Os discos rígidos são muito exigidos e se desgastam. É apenas uma questão de tempo até falharem.
Recentemente descobri que a falha progressiva de disco rígido numa partição de swap é catastrófica.
No resto do sistema de arquivos, você normalmente usa algum dos sistemas de arquivo atuais com recurso de journaling.
Sendo a maioria baseados em transações, garantem uma boa integridade de dados.
Mas a partição de swap é diferente.
A partição de swap é um mapeamento 1:1 para uma memória RAM virtual.
O espaço tem de ser contíguo e não são feitas verificações nas escritas e leituras, para se obter máxima velocidade.
Numa falha progressiva de disco rígido, o número de bad blocks ultrapassa a capacidade de recuperação automática do hardware do disco rígido.
Todos os discos rígidos modernos possuem um espaço reserva que seu hardware automaticamente vai utilizando à medida que identifica setores defeituosos na área principal de dados. Tudo de forma transparente para o sistema operacional e usuário.
Quando esgota essa área de reserva,os bad blocks começam a ser "visíveis".
Isso, claro, evidencia que o disco rígido está chegando ao fim de sua vida útil.
No caso de uso em partição swap, a falha progressiva é catastrófica porque os setores são escritos e lidos sem verificações e passados aos programas e sistema operacional como conteúdo de RAM para todos os efeitos.
Você já pode imaginar que o resultado é péssimo para um sistema que já está sobrecarregado, pois está usando além da memória RAM física o espaço em swap para memória virtual.
Quando aconteceu com minha máquina desktop, além de deixar os vários programas em estado caótico, CORROMPEU terrivelmente o sistema de arquivos, devido ao sistema operacional ter lido o que seria conteúdo de RAM mas deturpada e se desorientou na escrita de dados.
Em carga pesada de uso, bastam alguns segundos para isso se tornar um enorme problema.
Mesmo após várias tentativas de reconstrução do sistema de arquivos, o resultado foi um sistema de arquivos novamente consistente, mas muitos e muitos arquivos perdidos. Foi melhor reformatar e reinstalar.

Há uma solução melhor?
Aumentar a quantidade de memória RAM é a melhor.
E é por causa desses problemas de hardware que servidores de missão crítica usam memórias com paridade. Infelizmente ainda BEM mais caras que as comuns.
Se você precisa usar espaço de memória virtual, então é melhor usar um ARQUIVO de swap.
O arquivo de swap ficará no seu sistema de arquivos normal, se beneficiando dos recursos de journaling e transação.
Você perderá em desempenho por causa das verificações e rastreios adicionais.
Mas todos os sistemas de arquivos usados são muito rápidos e a perda de desempenho será bem pequena em cpus e discos modernos.
Ainda mais que se você já esgotou a memória física RAM e está usando o swap, a penalização em desempenho já está sendo enorme. O disco rígido é milhares de vezes mais lento que a memória RAM. Uma pequena perda de desempenho adicional fará pouca diferença numa situação já ruim.
O benefício principal é que você terá maior garantia de integridade de dados.
Outro benefício é a maior flexibilidade.
Você poderá redimensionar o arquivo de swap bem mais facilmente do que redimensionar uma partição. Poderá aumentar o número de arquivos de swap entre várias unidades de disco rígido. Isso aumenta MUITO e dramaticamente o desempenho aparente.
Os discos rígidos são acessados de forma simultânea para efeitos práticos e isso "paraleliza" o processamento dos periféricos. Os microprocessadores são milhares de vezes mais rápidos que os discos rígidos e controladoras. Sendo o Linux um sistema operacional realmente multitarefa e multiusuário, o processador irá buscar outras tarefas e usuários a atender enquanto cada disco rígido conclui suas tarefas e o informa para poder seguir adiante naquela tarefa / programa específica.
Você pode consultar a documentação de sua distribuição para adicionar ARQUIVOS de swap. Também pode consultar o artigo1 , artigo2 , artigo3 .

Comentários

Postagens mais visitadas deste blog

Tutorial Cyrus IMAP aggregator (murder) 2.3.16 sobre Debian GNU Linux 5.x Lenny

How to configure multipath for high availability and performance on Debian and CentOS for storage at IBM DS8300 SAN

Como instalar Oracle Client no Debian e Ubuntu