A Cloudflare emprega criptografia de disco Linux em seus servidores e, com algumas otimizações, tornou a taxa de transferência pelo menos duas vezes mais rápida, além de diminuir a latência.
A empresa começou a explorar o desempenho da criptografia de disco do Linux ao descobrir que não estava executando tão bem quanto gostaria. Os engenheiros da Cloudflare investigaram a árvore de origem do kernel Linux e trabalharam para evitar arquivos extras e comportamento assíncrono. Assim, o serviço da Cloudflare virá com melhor desempenho de criptografia.
Cloudflare melhora desempenho da criptografia de disco do Linux
Com um patch que adiciona um novo sinalizador ao dm-crypt para não descarregar as operações de criptografia e lidar com tudo perfeito estado, foi uma das etapas. A outra mudança essencial foi a implementação de um driver síncrono AES-XTS da API Crypto que usa o AES-NI por padrão enquanto volta ao AES genérico, se necessário. Atualmente, esses patches estão disponíveis no GitHub do Cloudflare.
Os engenheiros da Cloudflare descobriram que, com as mudanças, eles poderiam mais que dobrar sua taxa de transferência enquanto a latência era reduzida. Isso está ajudando a Cloudflare já em produção com seus servidores Linux criptografados. No entanto, eles ainda estão explorando outras áreas para melhorar.
O que dizem sobre o serviço
Este post mostra como uma revisão de arquitetura pode dobrar o desempenho de um sistema. Também reconfirmamos que a criptografia moderna não é cara e geralmente não há desculpa para não proteger seus dados.
Vamos enviar este trabalho para inclusão na árvore principal de fontes do kernel, mas provavelmente não em sua forma atual. Embora os resultados pareçam encorajadores, devemos lembrar que o Linux é um sistema operacional altamente portátil: roda em servidores poderosos, bem como em pequenos dispositivos IoT com recursos limitados e em muitas outras arquiteturas de CPU.
A versão atual dos patches apenas otimiza a criptografia de disco para uma carga de trabalho específica em uma arquitetura específica, mas o Linux precisa de uma solução que funcione sem problemas em qualquer lugar.