Atualizações mensais da SIG de armazenamento de alto desempenho: o erofs adicionou suporte para vários recursos importantes e continua a construir competitividade em cenários de contêineres

Objetivo do SIG (Grupo de Interesse Especial) de armazenamento de alto desempenho : O processo de desenvolvimento da área de armazenamento é essencialmente um processo de promoção mútua e desenvolvimento de mídia de armazenamento e pilhas de software. O armazenamento de alto desempenho SIG está comprometido com a mineração de desempenho da pilha de armazenamento e atualmente se concentra na tecnologia kernel io_uring para otimizar o desempenho de IO assíncrono, usando memória persistente para melhorar o desempenho dos custos da unidade de negócios e otimizando a tecnologia de armazenamento de cenário de contêiner. A SIG de armazenamento de alto desempenho espera criar uma pilha padrão de software de tecnologia de armazenamento de alto desempenho por meio da cooperação comunitária e promover o desenvolvimento colaborativo de software e hardware.

01  Progresso geral da SIG

Este relatório mensal resume o progresso do trabalho da SIG em julho e agosto, abrangendo reparos de CVE, melhorias de recursos, otimizações de desempenho e correções de bugs de vários módulos importantes.

  • erofs adicionou suporte para muitos recursos importantes e continua a construir competitividade no cenário de contêineres.

  • Colaborou com colegas de classe da ZTE para corrigir um problema de impasse do xfs e inicialmente alcançou uma intenção de cooperação para melhorar conjuntamente a qualidade do ANCK xfs.

  • Inicie a versão atual do aprimoramento da qualidade do código io_uring, que deverá ser lançado na próxima versão.

02Progresso específico do projeto 

1)CVE

CVE-2023-2124: Corrigido problema de acesso à memória fora dos limites do xfs (PR1918/PR2027).

CVE-2023-34256: Corrigido problema de leitura fora dos limites do ext4 crc16 (PR1793/PR2004).

CVE-2023-3212: Corrigido problema de desreferência do ponteiro NULL gfs2 (PR2030/PR2041).

CVE-2023-3111: Corrigido problema de UAF do btrfs (PR2039/PR2040).

2)erofs

ANC 5.10 :

Devido à introdução de uma série de patches para RAFSv6, o erofs irá travar quando montado por meio da interface de bloco. Este problema foi corrigido com urgência no ANCK 5.10.134-15.1. (PR1987)

Recurso de compactação transparente de linha principal redonda, suporta algoritmo de compactação LZ4 / LZMA, suporta ztailpacking e desduplicação de compactação, etc. (PR2076/PR2080/PR2081/PR2082)

erofs-utils :

O modo fusível suporta o recurso de prefixo de nome longo xattr. Esse recurso pode otimizar a sobrecarga adicional de armazenamento de nomes duplicados de metadados overlayfs xattr e pode economizar aproximadamente 15% do espaço de armazenamento de imagens sob carga típica.

Suporta o recurso de filtro xattr bloom, que pode acelerar o desempenho da pesquisa negativa de xattr.Por exemplo, "ls -lR" pode otimizar cerca de 20% do desempenho sob carga.

Suporta o modo de reconstrução, que é usado principalmente em cenários tarfs.Ele pode mesclar imagens erofs convertidas de várias camadas OCI em uma imagem erofs de acordo com um modelo overlayfs semelhante.

Reuniões externas :

O tema da conferência Shanghai Kubecon + Open Source Summit 2023 foi declarado no final de setembro, e o progresso mais recente do erofs em vários cenários (especialmente cenários de nuvem) será sincronizado.

3) xfs

Reverter “anolis: xfs: conta extra freespace btree splits para múltiplas alocações”. Este patch foi projetado anteriormente para resolver uma pequena probabilidade de falha na conversão de extensão para btree. No entanto, devido à sua estratégia de alocação modificada, pode aumentar a probabilidade de outros casos de canto. (PR1837)

Alunos da ZTE relataram um problema de impasse no processo entre xfs_create() e xfs_fs_destroy_inode(). Este problema foi corrigido na última linha principal upstream v6.5-rc1:
https://github.com/torvalds/linux/commit/b742d7b4f0e03df25c2a772adcded35044b625ca

Para facilitar a implementação de patches subsequentes, este plano de reparo implementa patches dependentes relevantes tanto quanto possível. (PR1990)

Além disso, alcançamos uma intenção de cooperação com os alunos da ZTE na manutenção dos xfs comunitários e fortaleceremos conjuntamente a qualidade dos xfs ANCK no futuro.

4) ext4

Reverta uma série de correções de bugs para commit rápido da comunidade upstream para ANCK 5.10. (PR2066)
ext4 fast commit tem melhorias óbvias de desempenho para cenários com fsync frequente, como benchmark fs_mark, banco de dados MySQL/PostgreSQL, etc.

Em cenários de gravação de acréscimos ext4 delalloc (como logs de gravação de acréscimos), há atualmente um grande número de operações desnecessárias de atualização de i_disksize, que afetarão o desempenho neste cenário.

Liu Song otimizou este cenário, e os resultados do teste mostram que no cenário da versão Kafka 2.6.2 e tamanho de pacote 2K, o desempenho é melhorado em 10%.

Atualmente, esta otimização foi integrada à linha principal upstream da comunidade e será revertida para ANCK 5.10 a tempo. (PR2083)

5)io-uring

Em cenários de gravação aleatória, io_uring sqthread e processamento de E/S do sistema de arquivos kworker podem ser executados na mesma CPU.

Devido à modificação anterior do valor agradável de sqthread, o processamento de IO do sistema de arquivos kworker pode não ser agendado a tempo, o que afetará significativamente o desempenho.

Portanto, revertemos o patch anterior que modificou o valor nice do sqthread. (PR1888/PR1889)

Após atualizar a versão liburing, o caso de teste correspondente de io_uring também foi atualizado.

No novo caso de teste, o atual ANCK 5.10 expôs muitos problemas, que na verdade foram resolvidos na versão superior do kernel da comunidade, mas a rodada é mais difícil.

A comunidade 5.10 estável sincronizou a versão do io_uring para 5.15.85, então decidimos atualizar junto com a versão estável. Atualmente, a maioria dos recursos desenvolvidos por nós mesmos foram transplantados.

Como o sqthread evoluiu do thread do kernel criado pelo kthreadd para um processo filho da bifurcação do processo do aplicativo, nosso recurso de pesquisa sqthread percpu precisa ser adaptado de acordo, o que deve ser concluído na próxima versão.

6)dsms

Continue acompanhando o feedback da comunidade sobre o pacote de software dsms e continue corrigindo vulnerabilidades de segurança no módulo dsms-storage e bugs não resolvidos na versão de visualização.

O fluxo de processamento do gerenciador de tarefas dsms-engine e a otimização da interface front-end dsms-ui estão em andamento.

03Plano do próximo  passo

1. erofs-utils suporta compactação multi-thread e lança a versão 1.7.

2. Erofs implementa verificação completa de imagem com base em fsverity, e o recurso de compactação suporta tamanho de página de 64k/16k + tamanho de bloco de 4k.

3. io_uring é atualizado com base no 5.10 estável para fortalecer a qualidade do ANCK 5.10 io_uring.

4. Reparo de problemas de dsms e otimização contínua.

Links Relacionados:

Página inicial da SIG de armazenamento de alto desempenho:

https://openanolis.cn/sig/high-perf-storage

Nota: Para mais atualizações mensais do Dragon Lizard SIG, clique aqui .

-- sobre--

Acho que você gosta

Origin blog.csdn.net/weixin_60347558/article/details/132738602
Recomendado
Clasificación