Desenvolvedores de Cloudflare trabalham em patches para acelerar a criptografia de disco no Linux

Cloudflare

Os Os desenvolvedores do Cloudflare lançaram informações sobre o trabalho que estão fazendo para otimizar o desempenho de criptografia de disco no kernel Linux, para o qual eles mencionam que prepararam patches para os subsistemas dm-crypt e Crypto API.

Com ele, o teste sintético foi autorizado a dobrar a largura de banda para leitura e escrita, bem como reduzir a latência pela metade. Ao testar em máquinas reais, a sobrecarga de criptografia foi reduzida a quase o nível visto ao trabalhar com um disco sem usar criptografia de dados.

Interesse em melhorar a criptografia dados no disco é porque Cloudflare usa dm-crypt para criptografar dados em unidades usadas para armazenar conteúdo em cache em um CDN. O Dm-crypt funciona no nível do dispositivo de bloco e criptografa as solicitações de E / S para gravar e descriptografar as solicitações de leitura, agindo como uma camada entre o dispositivo de bloco e o driver do sistema de arquivos.

Para avaliar o desempenho dm-crypt usando o pacote de teste de E / S flexível, se medimos a velocidade de trabalho com partições criptografadas e não criptografado em um disco RAM localizado na RAM para eliminar flutuações no desempenho do disco.

Para partições não criptografadas, o desempenho de leitura e gravação permaneceu em 1126 MB / s, mas quando a criptografia foi ativada, a velocidade caiu 7 vezes para 147 MB ​​/ s.

No princípio, o uso de algoritmos ineficientes foi suspeitado no sistema criptográfico do kernel. Mas os testes usaram o algoritmo aes-xts mais rápido com 256 chaves de criptografia, cujo desempenho ao executar o "benchmark cryptsetup" é mais de duas vezes superior ao resultado obtido ao testar o disco RAM.

dm-cripta

Os experimentos com sinalizadores dm-crypt ajustar o desempenho não funcionou: Quando o sinalizador –perf-same_cpu_crypt foi usado, o desempenho até diminuiu para 136 MB / s, e quando o sinalizador –perf-submit_from_crypt_cpus foi usado, ele aumentou apenas para 166 MB / s.

Uma análise mais profunda da lógica do trabalho mostrou que dm-crypt não é tão simples como parece

Quando uma solicitação de gravação é recebida do controlador FS, dm-crypt não a processa imediatamente, mas em vez disso a coloca na fila "kcryptd", que não é imediatamente entendida, mas quando ocorre um bom momento. Da fila, a solicitação é enviada para a API Linux Crypto para criptografia.

Ao ler primeiro, dm-crypt enfileira "kcryptd_io" um pedido para receber dados da unidade. Depois por um tempo, os dados estão disponíveis e eles são enfileirados "kcryptd" para descriptografia.

Kcryptd envia uma solicitação para a API Linux Encryption, que descriptografa as informações de forma assíncrona. As solicitações nem sempre passam por todas as filas, mas no pior dos casos, a solicitação de gravação é definida em filas até 4 vezes e a solicitação de leitura até 3 vezes. Cada golpe na cauda leva a atrasos, que são a principal razão para uma diminuição significativa no desempenho do dm-crypt.

Considerando que as unidades modernas tornaram-se mais rápidas e inteligentes, o sistema de alocação de recursos no kernel Linux foi revisado e alguns subsistemas foram redesenhados, Os engenheiros da Cloudflare adicionaram um novo modo operacional ao dm-crypt, eliminando o uso de filas adicionais e chamadas assíncronas.

O modo é habilitado por um sinalizador "force_inline" separado e traz dm-crypt na forma de um proxy simples que criptografa e descriptografa solicitações de entrada. A interação com a Crypto API foi otimizada por meio de uma escolha explícita de algoritmos de criptografia Eles operam em modo síncrono e não usam filas de solicitações.

Ao testar a carga em servidores reais, a nova implementação apresentou desempenho muito próximo da configuração que funciona sem criptografia e a inclusão de criptografia em servidores com cache Cloudflare não afetou a velocidade de resposta.

No futuro, Cloudflare planeja transferir os patches preparados para o kernel Linux principal, mas antes terão que ser modificados, pois são otimizados para uma determinada carga e não cobrem todas as áreas de aplicação.

fonte: https://blog.cloudflare.com


Seja o primeiro a comentar

Deixe um comentário

Seu endereço de email não será publicado. Campos obrigatórios são marcados com *

*

*

  1. Responsável pelos dados: Miguel Ángel Gatón
  2. Finalidade dos dados: Controle de SPAM, gerenciamento de comentários.
  3. Legitimação: Seu consentimento
  4. Comunicação de dados: Os dados não serão comunicados a terceiros, exceto por obrigação legal.
  5. Armazenamento de dados: banco de dados hospedado pela Occentus Networks (UE)
  6. Direitos: A qualquer momento você pode limitar, recuperar e excluir suas informações.