Eduardo Shishkin
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
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:
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,
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