Necessidades de taxa de transferência de fonte de gravação LTO-4

2

Estou procurando iniciar um regime de backup em fita e estou procurando manter os dados fluindo para a unidade de fita de maneira suficiente (120 + MBs alvo sustentado), mas não consigo descobrir como fazer isso sem uma unidade / matriz de origem dedicada fica ocioso quando não está gravando fitas. A documentação do nosso disco específico não menciona o mínimo rendimento necessário.

Meio ambiente

  • Linux Debian escrevendo em fita usando mt & tar backup de arquivos RAR com registro de recuperação, cada ~ ~ 1GB-300GB de tamanho
  • LTO-4 fitas na unidade de fita Quantum TC-42BN via SAS sobre o cabo SFF externo
  • O servidor é usado apenas para backups de arquivos, sem serviços de rede ou serviços de arquivos.
  • Matrizes RAID MD com dados intermitentemente sendo lidos / gravados durante o dia / noite.

Se a matriz de origem tiver leituras / gravações significativas (de backups agendados) durante uma gravação em fita, a taxa de transferência para a fita diminuirá drasticamente, mesmo que temporariamente. Então, algumas questões centradas em torno da taxa de transferência de matriz / gravação de fita de origem:

  1. Estou supondo que uma queda sustentada no rendimento abaixo de 10-20MB / s (ou menos) na fonte durante uma gravação em fita seria um problema?
  2. Preciso ter uma fonte garantida para não ter backups agendados para ela? Essencialmente, 2 matrizes são mínimas; um para backups e outro para arquivos e gravação de fita?
  3. Existe um QOS para drives / arrays que poderia priorizar a gravação da fita sobre tudo o mais?
  4. Acelerador de unidades de fita LTO-4, então há um limite de taxa de transferência mais baixo comum para manter para LTO-4 ou varia muito por unidade? Mais uma vez, a documentação menciona a velocidade máxima projetada e as "transferências de velocidade variável", mas nenhuma menção de como é variável.
  5. Estou perdendo alguma coisa nesta equação de rendimento de origem ou tenho preocupações infundadas?

Atualização:

Eu decidi taxar as coisas minimamente com um único fluxo de E / S por meio de um trabalho de 600 GB de leitura do array a cerca de 30MB / s sustentado enquanto um tar estava sendo gravado na fita de um RAID 6 de 4 unidades com SATA de consumo. A fita definitivamente desacelerou para um rastreamento por ouvir a unidade, mas não parece ficar sem dados ou engraxate. Isso me diz para NÃO esperar que as coisas sejam mantidas durante um backup agendado completo para nossa configuração de hardware , mas ele pode lidar com uma tarefa de E / S menos cansativa ao gravar em fita.

A título de nota, as fitas LOT4 devem executar 56 passagens de ponta a ponta com tanta eficácia que gravam em pedaços de ~ 14GB antes de parar por alguns segundos para desacelerar e depois "ir" na outra direção. Acho que isso ajudou a manter a unidade "alimentada" com dados com menor taxa de transferência, já que tenho leitura antecipada e gravações assíncronas definidas no stinit.def.

Outra nota é uma leitura de "dd if = / dev / st0 de = / dev / null" apenas produziu um resultado de 107MB / s. Isso, eu diria, é a taxa de transferência efetiva máxima real do isto da unidade e NÃO de 120 MB / s. A unidade está atualmente em um HBA PCIe SAS dedicado sem nenhuma outra placa PCIe instalada

Nesse meio tempo, eu configurei um RAID0 de 1 TB como um buffer Disk2Tape e tive que adicionar outro disco ao servidor para tornar isso viável.

Eu ainda adoraria encontrar algum tipo de QOS para a unidade de fita e definir a gravação como a prioridade máxima da fita, para que possamos simplificar nossas matrizes e reduzir os custos de harramaware parasitas , mas na média vez, eu não estou vendo uma maneira de não ficar por aí tendo um buffer de disk2tape dedicado se eu quiser garantir gravações contínuas, não importa quais tarefas agendadas atinjam o array.

    
por Damon 16.02.2018 / 04:35

2 respostas

1

O manual que encontrei lista velocidades variáveis de 30,5 a 120 MB / s em incrementos de ~ 7 MB / s.

Além disso, as unidades LTO usam buffers de tamanho razoável para equalizar o fluxo de dados e fornecer um indicador para ajuste de velocidade, a menos que a velocidade de leitura varie muito ou seja muito baixa, o backhitch deve ser mínimo.

Com dados em um array decente e arquivos grandes, 120 MB / s não devem ser um grande problema (a menos que o sistema de arquivos seja altamente fragmentado). Nosso buffer de fita usa duas unidades (lentas) de 4 TB no RAID 0 que podem sustentar aprox. 270 MB / s, mas não gravamos no buffer enquanto as fitas são gravadas.

    
por 16.02.2018 / 21:44
1

O mbuffer é uma ferramenta pequena e prática que pode ajudá-lo a maintain sustained data flow to the tape drive . Está disponível na maioria das distribuições de linux.

mbuffer - buffers I/O operations and displays the throughput rate. It is multi-threaded, supports network connections, and offers more options than the standard buffer.

Exemplo de uso com compactação multithread on-the-fly:

tar cvf - /backupdir | lbzip2 | mbuffer -m 4G -L -P 80 > /dev/st0

  1. comece a adicionar arquivos ao arquivo de arquivos tar
  2. (opcional) compactá-lo com lbzip2 para usar todos os núcleos da CPU
  3. começar a preencher o buffer de memória
  4. depois de preenchido em 80%, comece a enviar dados para a unidade de fita
Parâmetros

mbuffer explicados:

  • -m 4 4GB de tamanho do buffer de memória. Se necessário ou disponível, use um buffer maior.
  • -L bloqueado na memória (opcional)
  • -P 80 começa a gravar na fita depois que 80% do buffer é preenchido. Não há necessidade de colocar 100, já que levará algum tempo para que uma unidade de fita comece a escrever e, provavelmente, ela será preenchida até 100%.

Neste exemplo, uma vez que o buffer preencha até 80% da capacidade, ele começará a enviar dados para a fita e o mbuffer continuará a receber o fluxo de archive.

Se o processo de arquivamento for lento e o mbuffer não tiver recebido os dados com rapidez suficiente para acompanhar a unidade de fita, ele deixará de enviar dados para a unidade de fita quando atingir 0%. Quando o buffer de memória estiver cheio até 80%, ele começará a enviar dados para a unidade de fita e a gravação continuará a toda velocidade.

Desta forma, o "engraxamento" da fita é reduzido a um mínimo e a unidade de fita sempre obterá os dados na velocidade máxima necessária para sustentar o fluxo.

Você também pode usar o mbuffer na direção reversa para ler dados de backup de uma unidade de fita e armazenar o fluxo em alguma mídia mais lenta ou enviá-lo pela rede.

    
por 21.05.2018 / 05:20