Reiser5 anuncia suporte para Burst Buffers (Data Tiering)

Eduardo Shishkin anunciado novas oportunidades desenvolvidas no âmbito do projeto Reiser5. Reiser5 Representa uma versão significativamente redesenhada do sistema de arquivos ReiserFS, na qual o suporte para volumes lógicos escalonáveis ​​paralelos é implementado no nível do sistema de arquivos, em vez de no nível do dispositivo de bloco, permitindo distribuir dados com eficiência em um volume lógico.

Entre as inovações desenvolvidas recentemente, a disponibilização de
a oportunidade para o usuário adicionar um pequeno alto desempenho
dispositivo de bloco (por exemplo, NVRAM) chamado disco proxyPara
volume lógico relativamente grande composto de lento
impulsos orçamentários. Isso criará a impressão de que todos
o volume é composto do mesmo caro alto desempenho
dispositivos, como um “disco proxy”.

O método implementado foi baseado na simples observação de que na prática o disco não é gravado constantemente e a curva de carga de E/S tem o formato de picos. No intervalo entre esses “picos”, sempre é possível redefinir os dados do disco proxy, reescrevendo todos os dados (ou apenas parte) em segundo plano para o armazenamento principal “lento”. Assim, o disco proxy está sempre pronto para receber uma nova porção de dados.

Esta técnica (conhecida como Burst Buffers) originou-se originalmente em
áreas de computação de alto desempenho (HPC). Mas também acabou por ser procurado por aplicações comuns, especialmente por aquelas que exigem cada vez mais a integridade dos dados (geralmente vários tipos de bases de dados). Tais aplicativos realizam quaisquer alterações em qualquer arquivo de forma atômica, a saber:

  • primeiro, é criado um novo arquivo que contém os dados alterados;
  • este novo arquivo é então gravado no disco usando fsync(2);
  • depois disso, o novo arquivo é renomeado para o antigo, que é automaticamente
    Libera blocos ocupados por dados antigos.

    Todas essas etapas, de uma forma ou de outra, causam
    degradação do desempenho em qualquer sistema de arquivos. Situação
    melhora se o novo arquivo for gravado primeiro no arquivo alocado
    dispositivo de alto desempenho, que é exatamente o que acontece em
    sistema de arquivos com suporte para Burst Buffers.

    No Reiser5 está planejado enviar opcionalmente não apenas
    novos blocos lógicos do arquivo, mas também todas as páginas sujas em geral. Além disso,
    não apenas páginas com dados, mas também com metadados que
    são escritos nas etapas (2) e (3).

    O suporte para discos proxy é realizado no contexto do trabalho regular com
    Volumes lógicos Reiser5, anunciado No início do ano. Aquilo é,
    o sistema agregado "disco proxy - armazenamento principal" está normal
    volume lógico com a única diferença de que o disco proxy tem prioridade
    entre outros componentes de volume na política de alocação de endereços de disco.

    A adição de um disco proxy a um volume lógico não é acompanhada por nenhum
    rebalanceamento de dados, e sua remoção ocorre exatamente da mesma maneira que
    removendo um disco normal. Todas as operações do disco proxy são atômicas.
    O tratamento de erros e a implantação do sistema (inclusive após uma falha do sistema) ocorrem exatamente da mesma maneira como se o disco proxy fosse um componente normal
    volume lógico.

    Depois de adicionar um disco proxy, a capacidade total do volume lógico
    aumenta pela capacidade deste disco. Monitoramento de espaço livre
    disco proxy é executado da mesma maneira que para outros componentes de volume, ou seja, usando o utilitário volume.reiser4(8).

    O disco proxy deve ser limpo periodicamente, ou seja, redefinir dados de
    para o armazenamento principal. Depois de atingir a estabilidade beta Reiser5
    a limpeza está planejada para ser automática (será gerenciada por
    thread especial do kernel). Nesta fase, a responsabilidade pela limpeza
    cabe ao usuário. Redefinindo dados do disco proxy para o principal
    o armazenamento é produzido simplesmente chamando o utilitário volume.reiser4 com a opção
    "-b". Como argumento, você precisa especificar o ponto de montagem do sistema lógico
    volumes Claro, você deve se lembrar de realizar a limpeza periodicamente. Para
    Você pode escrever um script de shell simples para fazer isso.

    Se não houver espaço livre no disco proxy, todos os dados
    são gravados automaticamente no armazenamento principal. Ao mesmo tempo, por padrão
    o desempenho geral do FS é reduzido (devido a chamadas constantes
    procedimentos para realizar todas as transações existentes). Opcionalmente você pode definir
    modo sem perda de desempenho. No entanto, neste caso o disco
    O espaço do dispositivo proxy será usado de forma menos eficiente.
    É conveniente usar uma subseção de metadados (tijolo) como disco proxy, desde que seja criada em um dispositivo de bloco de desempenho suficientemente alto.

    Fonte: opennet.ru

  • Adicionar um comentário