você está aqui: Home  → Arquivo de Mensagens

Backup multivolume em um DELL PowerVault 124T

Colaboração: Altemir Braz Dantas Junior

Data de Publicação: 03 de fevereiro de 2011

  1. Instalando os pacotes necessários. Como uso Debian:

      # apt-get install mt-st mtx
    

  2. Verificando se o linux reconheceu o driver:
      # dmesg | grep scsi
      
      [ 1.343286] scsi0 : sata_via
      [ 1.354041] scsi1 : sata_via
      [ 1.748725] scsi 0:0:0:0: Direct-Access ATA ST32000542AS CC34 PQ: 0 ANSI: 5
      [ 2.132693] scsi 1:0:0:0: Direct-Access ATA ST32000542AS CC34 PQ: 0 ANSI: 5
      [ 2.352554] scsi2 : ioc0: LSI53C1020A A1, FwRev=01032700h, Ports=1, MaxQ=255, IRQ=24
      [ 4.507518] scsi 2:0:6:0: Sequential-Access IBM ULTRIUM-TD3 93G6 PQ: 0 ANSI: 3
      [ 4.507588] scsi 2:0:6:0: Information Units disabled by blacklist
      [ 4.507649] scsi target2:0:6: Beginning Domain Validation
      [ 4.549424] scsi target2:0:6: Ending Domain Validation
      [ 4.549555] scsi target2:0:6: FAST-80 WIDE SCSI 160.0 MB/s DT (12.5 ns, offset 127)
      [ 4.556469] scsi 2:0:6:1: Medium Changer DELL PV-124T 0075 PQ: 0 ANSI: 2
      [ 59.901052] ch 2:0:6:1: Attached scsi changer ch0
      [ 59.901625] st 2:0:6:0: Attached scsi tape st0
      [ 60.058964] sd 0:0:0:0: Attached scsi generic sg0 type 0
      [ 60.059805] sd 1:0:0:0: Attached scsi generic sg1 type 0
      [ 60.060737] st 2:0:6:0: Attached scsi generic sg2 type 1
      [ 60.062052] ch 2:0:6:1: Attached scsi generic sg3 type 8
    
    No meu caso listei o drive no device /dev/st0:
      [ 4.507518] scsi 2:0:6:0: Sequential-Access IBM ULTRIUM-TD3 93G6 PQ: 0 ANSI: 3
      [ 59.901625] st 2:0:6:0: Attached scsi tape st0
    
    e o listei o changer no device /dev/sg3
      [ 4.556469] scsi 2:0:6:1: Medium Changer DELL PV-124T 0075 PQ: 0 ANSI: 2
      [ 60.062052] ch 2:0:6:1: Attached scsi generic sg3 type 8
    
  3. Caso nao encontre nada levante os modulos st mptbase mptscsih e verifique de novo no dmesg
      # modprobe st
      # modprobe mptbase
      # modprobe mptscsih
    
  4. Criei um link do sg3 para changer pois o comando mtx por padrao procura nele # ln /dev/sg3 /dev/changer

Agora alguns comandos para seu conhecimento

mtx: control SCSI media changer devices

  # mtx status
  
  Storage Changer /dev/changer:1 Drives, 8 Slots ( 0 Import/Export )
  Data Transfer Element 0:Empty
  Storage Element 1:Full :VolumeTag=000011L3
  Storage Element 2:Full :VolumeTag=000012L3
  Storage Element 3:Full :VolumeTag=000013L3
  Storage Element 4:Full :VolumeTag=000014L3
  Storage Element 5:Full :VolumeTag=000015L3
  Storage Element 6:Full :VolumeTag=000016L3
  Storage Element 7:Full :VolumeTag=000017L3
  Storage Element 8:Empty

Acima mostra que nao existe nenhuma fita no drive aonde vamos gravar o backup e tem 8 Slot no meu caso no Left Magazine com 7 fitas na espera

  becape:~# mtx load 1 0

Faz com que a fita que esta no "Storage Element 1" vai para o drive "Data Transfer Element 0" ficando assim

  becape:~# mtx status
  Storage Changer /dev/changer:1 Drives, 8 Slots ( 0 Import/Export )
  Data Transfer Element 0:Full (Storage Element 1 Loaded):VolumeTag = 000011L3
  Storage Element 1:Empty
  Storage Element 2:Full :VolumeTag=000012L3
  Storage Element 3:Full :VolumeTag=000013L3
  Storage Element 4:Full :VolumeTag=000014L3
  Storage Element 5:Full :VolumeTag=000015L3
  Storage Element 6:Full :VolumeTag=000016L3
  Storage Element 7:Full :VolumeTag=000017L3
  Storage Element 8:Empty

Para retornar a fita do drive para o Storage numero 1 uso o unload 1 0

  # mtx unload 1 0

voce pode sempre verificar com o mtx status. entao para colocar a fita 7 no drive vc executaria

  mtx load 7 0

e para voltar no mesmo lugar

  mtx unload 7 0

Voce pode tmb tranferir a fita de um lugar do Storage Element para outro. ex tranferir do 7 para o 8

  mtx transfer 7 8

Voce pode tmb inverter a posicao das fitas com o invert

  mtx invert 4 3

Existe tambem o mtx next que tira a fita do drive e coloca a proxima fita no drive usando a sequencia do Storage

para mais informacoes

  # man mtx

mt: control magnetic tape drive operation

os mais importantes

  # mt -f /dev/st0 rewind (rebobinar a fita)
  # mt -f /dev/st0 erase (formatar a fita)
  # mt -f /dev/st0 eject (ejetar a fita)

para mais informacoes

  # man mt

tar: The GNU version of the tar archiving utility

  # tar -c -v -M -L 417333248 --new-volume-script=/etc/scripts/script-multi.sh -f /dev/st0 /diretorio-a-ser-becapeado
-c cria
-v verbose
-M opcao multivolume
-L tamanho que sera gravado para pedir outra fita N*1024
--new-volume-script=/etc/scripts/script-multi.sh na hora que ele acabar de gravar aquela quantidade estipulada no -L e faltar arquivo para gravar ele chama o script
-f o arquivo aonde vai gravar

para listar os arquivos com multivolume

  # tar -t -v -M -f /dev/st0

para recuperar um arquivo

  # tar -x -v -M -f /dev/st0 arquivo_a_ser_recuperado

Com essas informacoes criei um script em shell para fazer o backup

criei o diretorio scripts e criei um arquivo fita.txt para saber qual fita eu irei comecar a gravar

  becape:~# mkdir /etc/scripts
  becape:~# echo 1 > /etc/scripts/fita.txt
  becape:~# cd /etc/scripts

Agora os scripts

  1. crie o script do backup_fita.sh com o conteudo abaixo
      #!/bin/bash
      
      #diretorio que vai ser gravado na fita
      DIRETORIO_BASE=/backup
      DEV_CHANGER=/dev/sg3
      DEV_DRIVE=/dev/st0
      #CAPACIDADE DA FITA N*1024 bytes
      TAM_FITA="417333248"
      FITA=$(cat /etc/scripts/fita.txt);
      PROX=$(($FITA+1))
      
      if [ ! -c /dev/changer ];then
      ln $DEV_CHANGER /dev/changer
      fi
      
      #coloca a fita 1 no drive
      mtx load $FITA 0
      
      #Guardo num arquivo texto qual sera a proxima fita
      echo $PROX > /etc/scripts/fita.txt
      
      ### Apaga o Disco - caso tenha que apagar a fita descomente a linha abaixo
      #mt -f $DEV_DRIVE erase
      
      # cria o tar com multivolume (-M) com o tamanho $TAM_FITA (-L)
      # caso o backup seja maior que o tamanho definido ele chama o script /etc/scripts/script-multi.sh
      # aonde sera retirado a fita do drive e colocando outra (--new-volume-script=/etc/scripts/script-multi.sh )
      tar -c -v -M -L $TAM_FITA --new-volume-script=/etc/scripts/script-multi.sh -f $DEV_DRIVE $DIRETORIO_BASE
    
    Após salvar, altere suas flags de permissão para torná-lo executável:

      becape:~# chmod 700 /etc/scripts/backup_fita.sh
    

  2. Criar o script que vai colocar a proxima fita disponivel para gravacao script-multi.sh
      #!/bin/bash
      
      FITA=$(cat /etc/scripts/fita.txt);
      PROX=$(($FITA+1))
      ANT=$(($FITA-1))
      
      
      echo $PROX > /etc/scripts/fita.txt
      
      #no meu caso tenho 7 fitas por isso se tiver gravando ainda e for para 8 fita ferrou rsrsr
      if [ $FITA -eq 8 ]; then
      echo "mtx unload $ANT 0"
      mtx unload $ANT 0
      echo "FERROU, NAO TEM MAIS FITA DISPONIVEL"
      exit;
      else
      echo "mtx unload $ANT 0"
      mtx unload $ANT 0
      echo "mtx load $FITA 0"
      mtx load $FITA 0
      fi
    


Veja a relação completa dos artigos de Altemir Braz Dantas Junior

 

 

Opinião dos Leitores

Seja o primeiro a comentar este artigo
*Nome:
Email:
Me notifique sobre novos comentários nessa página
Oculte meu email
*Texto:
 
  Para publicar seu comentário, digite o código contido na imagem acima
 


Powered by Scriptsmill Comments Script