Leia o desempenho da antiga fita LTO-2

1

Eu tenho uma pilha de fitas LTO-2 antigas e minha tarefa é salvar o conteúdo como arquivos binários grandes em disco para eventual consolidação em mídias mais recentes. (O conteúdo está em um formato personalizado específico para este site, não relevante para esta pergunta. Eu não preciso preservar o bloqueio.)

Gostaria de receber alguns conselhos sobre como ler o conteúdo o mais rápido possível. O desempenho atual usando dd é de aproximadamente 2MB / s, e acredito que isso se deva ao tamanho baixo e variável dos arquivos em fita. As especificações LTO-2 dizem que eu deveria ser capaz de obter 40MB / s nativo.

Usando o Solaris, posso ver com o utilitário tcopy que os arquivos são armazenados com um tamanho de bloco variável:

# tcopy /dev/rmt/1cbn
file 1: record 1: size 40
file 1: record 2: size 1024
file 1: record 3: size 10240
file 1: record 4: size 7168
file 1: record 5: size 1024
file 1: records 6 to 7: size 10240
[...]

Teste lido da fita para /dev/null :

# dd if=/dev/rmt/1cbn of=/dev/null bs=128k

(Observe que o tamanho do bloco de 128k especificado aqui é o tamanho máximo do bloco. Se o tamanho real do bloco na fita for menor que isso, essa quantidade menor de dados será retornada para cada IO.)

iostat -Mzcnx 1 mostra:

    r/s    w/s   Mr/s   Mw/s wait actv wsvc_t asvc_t  %w  %b device
  304.2    0.0    1.9    0.0  0.0  1.0    0.0    3.2   0  97 rmt/1

Isso me diz que está lendo 1,9 MB / s, com um tamanho médio de IO de cerca de 6500 bytes e uma média de exatamente 1 IO pendente a qualquer momento.

Então: dado que eu não posso voltar no tempo e alterar o tamanho do bloco que foi gravado em fita, por favor, deixe-me saber se há alguma maneira de ler os dados existentes mais rapidamente.

    
por Tom Shaw 11.12.2014 / 07:45

1 resposta

1

Olhe para o comando do buffer, basicamente, a velocidade permite a atividade simultânea de leitura / gravação em vez da leitura normal, depois escreve, depois lê, etc ....

Basicamente, ele faz isso gerando dois subprocessos. Os processos se comunicam usando um buffer de memória compartilhada. Os parâmetros da linha de comando são semelhantes ao dd com a adição de parâmetros para dimensionar o buffer de memória compartilhada.

O comando algumas vezes já está em algumas distribuições Linux, no entanto, se não for usar o yum ou o apt-get (ou qualquer que seja seu mecanismo de recuperação de pacotes) para obter o pacote do buffer.

Eu pessoalmente usei este comando ao criar muitos dos pacotes de backup / restauração em fita e ele aumenta a taxa de transferência em cerca de 10-20%.

    
por 11.12.2014 / 08:01