Como posso determinar quanto espaço resta em uma fita LTO?
Se eu procurar o final e verificar o status, posso ver que estou no número 17 do arquivo, mas o que não sei é o tamanho de cada arquivo.
$ mt -f /dev/nst1 eod
$ mt -f /dev/nst1 status
SCSI 2 tape drive:
File number=17, block number=0, partition=0.
Tape block size 0 bytes. Density code 0x44 (LTO-3).
Soft error count since last status=0
General status bits on (81010000):
EOF ONLINE IM_REP_EN
Com falta de ler a faixa inteira, como posso determinar a capacidade usada / livre da fita?
Respostas:
Se você possui uma unidade compatível com HP * (minha referência aqui é uma unidade Tandberg Data HH LTO 4), você poderá encontrar a capacidade restante da fita nos logs SCSI, junto com muitos outros boatos interessantes, como taxa de compressão, leitura / gravação falhas, histórico da unidade / fita etc.
sg_logs -a /dev/nst1
Este utilitário está disponível em pacotes de distribuição geralmente denominados
sg3-utils
ousg3_utils
.Você está procurando linhas como:
Main partition remaining capacity (in MiB)
Megabytes written to tape
(subtrair da capacidade não compactada)Data bytes written to media by WRITE commands
(subtrair da capacidade não compactada)Caso contrário, você pode tentar ferramentas específicas do fornecedor. Por exemplo, a HP possui o HPE Library & Tape Tools , que funciona em todas as unidades * compatíveis com a HP. Enterrado em seus menus, você pode criar e visualizar um relatório de uma unidade que oferece todas as informações encontradas
sg_logs
e muito mais.E, na falta de tudo isso, você pode simplesmente escrever dados incompressíveis até o final da fita e fazer as contas nos blocos escritos para descobrir o que ficou (é desnecessário dizer que isso é um pouco desagradável):
dd if=/dev/urandom of=/dev/nst1 bs=1M status=progress iflag=fullblock
ou
openssl enc -aes-256-ctr -pass pass:"$(dd if=/dev/urandom bs=128 count=1 2>/dev/null | base64)" -nosalt < /dev/zero | dd of=/dev/nst1 bs=1M status=progress iflag=fullblock
* Pelo que sei, todas as unidades, exceto a IBM e possivelmente a Dell, são do mesmo OEM e são compatíveis com as ferramentas HP / HPE.
Eu usei
nst1
ao longo desta resposta, pois esse é o dispositivo na pergunta original, atualize conforme necessário.fonte
Primeiro de tudo: isso não vai ser fácil.
Há um chip no cartucho de fita que oferece uma ampla variedade de informações. Esse chip é chamado MAM (memória auxiliar de mídia). As informações podem ser lidas usando o comando SCSI "READ ATTRIBUTE" na unidade de fita enquanto a fita está carregada. Um dos atributos é "CAPACIDADE RESTANTE NA PARTIÇÃO". Contém a quantidade de bytes que podem ser gravados na partição de fita atual. O que leva à pergunta: o que é uma partição de fita? Versões recentes de fitas LTO (LTO 5 e mais recentes) podem ser particionadas (o LTFS usa duas partições).
Se sua fita foi particionada, cada uma das suas partições terá uma quantidade de espaço livre e você precisará fazer um loop em todas as partições para obter informações sobre o espaço livre de cada partição.
Se você quiser saber mais sobre o MAM, dê uma olhada na Referência LTO-8 SCSI da IBM, que explica isso em detalhes (a seção 6.5 a partir da página 355 contém as coisas interessantes). Se você precisar de um ponto de partida para implementar isso, talvez dê uma olhada no maminfo ou neste problema no rastreador de problemas sg3_utils .
Não tenho certeza de que essas informações sejam atualizadas imediatamente após uma gravação na fita. Talvez seja apenas a atualização ao desmontar que tornaria a recuperação de informações precisas ainda mais difícil. Também não tenho certeza de como isso se comporta quando você substitui a fita. Você provavelmente terá que descobrir isso sozinho.
fonte
Não tenho certeza, mas talvez eu possa oferecer a você o uso do software ITDT da ibm, ele tem muitas habilidades para fazer em bibliotecas de fitas e fitas lto, talvez você possa dar uma olhada nesse software, tem capacidade como Recuperar e exibir cartucho informações de uso e saúde.
fonte