NDMP trying to use wrong device - unable to write to tape

105 views
Skip to first unread message

Kalle Kadakas

unread,
Feb 6, 2020, 3:19:02 AM2/6/20
to bareos-users
Greetings! I hope that there is someone wiser out there who could help a man out.
I am trying to set up BareOS with NDMP to communicate with NetApp Storage which has a HP MSL G3 Series tape library attached to it. NDMP tests are successful, the device is recognized and I am able to label the LTO tapes.
However, whenever I try to make an actual backup of a volume, the process fails:

06-Feb 10:00 bareos-dir JobId 274: Start NDMP Backup JobId 274, Job=ndmp-backup-job.2020-02-06_10.00.53_37
06-Feb 10:01 bareos-dir JobId 274: NDMP Devices for storage storage-backup0:(HP      MSL G3 Series   7.00)
06-Feb 10:01 bareos-dir JobId 274:  nrst1l
06-Feb 10:01 bareos-dir JobId 274: successfully reserved NDMP Tape Device nrst1l for job 274
06-Feb 10:01 bareos-dir JobId 274: Using Data  host storage-backup0-1.big.local
06-Feb 10:01 bareos-dir JobId 274: Using Tape  host:device:address  storage-backup0-1.big.local:nrst1l:@1
06-Feb 10:01 bareos-dir JobId 274: Using Robot host:device(ident)  storage-backup0-1.big.local:mc0(HP      MSL G3 Series   7.00)
06-Feb 10:01 bareos-dir JobId 274: Using Tape record size 64512
06-Feb 10:01 bareos-dir JobId 274: Async request NDMP4_LOG_MESSAGE
06-Feb 10:01 bareos-dir JobId 274: LOG_MESSAGE: 'Session identifier: 33784'
06-Feb 10:01 bareos-dir JobId 274: ndmca_connect_tape_agent: 0 0x7f9810006a00
06-Feb 10:01 bareos-dir JobId 274: Async request NDMP4_LOG_MESSAGE
06-Feb 10:01 bareos-dir JobId 274: LOG_MESSAGE: 'Session identifier: 33799'
06-Feb 10:01 bareos-dir JobId 274: Error finding volume for append
06-Feb 10:01 bareos-dir JobId 274: removed reservation of NDMP Tape Device nrst1l for job 274
06-Feb 10:01 bareos-dir JobId 274: Error: Bareos bareos-dir 18.2.5 (30Jan19):
  Build OS:               Linux-4.4.92-6.18-default redhat CentOS Linux release 7.6.1810 (Core) 
  JobId:                  274
  Job:                    ndmp-backup-job.2020-02-06_10.00.53_37
  Backup Level:           Full
  Client:                 "storage-backup0-1" 
  FileSet:                "Trident" 2020-02-04 14:19:39
  Pool:                   "ndmp-tape" (From Job resource)
  Catalog:                "MyCatalog" (From Client resource)
  Storage:                "storage-backup0" (From Job resource)
  Scheduled time:         06-Feb-2020 10:00:38
  Start time:             06-Feb-2020 10:00:55
  End time:               06-Feb-2020 10:01:14
  Elapsed time:           19 secs
  Priority:               10
  NDMP Files Written:     0
  NDMP Bytes Written:     0 (0 B)
  Rate:                   0.0 KB/s
  Volume name(s):         
  Volume Session Id:      0
  Volume Session Time:    0
  Last Volume Bytes:      0 (0 B)
  Bareos binary info:     bareos.org build: Get official binaries and vendor support on bareos.com
  Termination:            *** Backup Error ***

The error would initially suggest that the issue is with finding available volumes/tapes to append the backup to, but that is not the case:
get ndmp_vol_list...
 Slot |   Volume Name    |   Status  |  Media Type    |         Pool             |
------+------------------+-----------+----------------+--------------------------|
    1*|         CLNU30L1 |         ? |              ? |                        ? |
... ... ... ...
   20 |         000064L6 |    Append |      NDMP-Tape |                     Full |


What I rather noticed was that BareOS is trying to use the nrst1l device to write the backup which is a LTO-4/5 native density device but the tape itself is LTO-6. It should instead be using nrst1h or nrst1a devices, which are meant for LTO-6. At least this is the only real issue that I am able to find.
  tape Hewlett-Packard LTO-6
    device     nrst1l
      attr       0x4
      set        WORLD_WIDE_NAME=WWN[5:001:438004:d36cd1]

      set        ELECTRICAL_NAME=0d.1
      set        DENSITY=LTO-4/5 Native Density  
      set        ALIAS 0=st1
      set        ALIAS 1=st21
    device     nrst1m
      attr       0x4
      set        WORLD_WIDE_NAME=WWN[5:001:438004:d36cd1]

      set        ELECTRICAL_NAME=0d.1
      set        DENSITY=LTO-4/5 Compressed      
      set        ALIAS 0=st1
      set        ALIAS 1=st21
    device     nrst1h
      attr       0x4
      set        WORLD_WIDE_NAME=WWN[5:001:438004:d36cd1]

      set        ELECTRICAL_NAME=0d.1
      set        DENSITY=LTO-6 2.5TB             
      set        ALIAS 0=st1
      set        ALIAS 1=st21
    device     nrst1a
      attr       0x4
      set        WORLD_WIDE_NAME=WWN[5:001:438004:d36cd1]

      set        ELECTRICAL_NAME=0d.1
      set        DENSITY=LTO-6 6.25TB Compressed 
      set        ALIAS 0=st1
      set        ALIAS 1=st21


I did manually define the device in Storage configuration, but that does not seem to have any effect on this even after reloading/rebooting. Here is the full configuration:
Job {
  Name          = "ndmp-backup-job"
  type          = backup
  protocol      = NDMP_NATIVE
  level         = full
  client        = storage-backup0-1
  storage       = storage-backup0
  backup format = dump
  messages      = Standard
  Pool          = ndmp-tape
  FileSet       = "Trident"
  Save File History = no
}
Client {
  Name = storage-backup0-1
  Address = storage-backup0-1.my.domain
  Port = 10000
  Protocol = NDMPv4
  Auth Type = MD5
  Username = "ndmpadmin"
  Password = "my_password"
  Maximum Concurrent Jobs = 1
  NDMP Log Level = 7
}
Fileset {
  Name = "Trident"
  Include {
    Options {
      meta = "DEBUG=Y"
      meta = "VERBOSE=Y"
      meta = "TYPE=dump"
      meta = "FILESYSTEM=/backup"
      meta = "LEVEL=0"
#      meta = "HIST=F"
#      meta = "DIRECT=Y"
#      meta = "RECURSIVE=Y"
#      meta = "BUTYPE=DUMP"
    }
    File = /backup/trident_qtree_pool_trident_SOLKGJVXRJ_dest
  }
}
Storage {
  Name = storage-backup0    
  Address = storage-backup0-1.my.domain                # N.B. Use a fully qualified name here (do not use "localhost" here).
  Port = 10000
  Protocol = NDMPv4
  Auth Type = MD5
  Username = "ndmpadmin"
  Password = "my_password"
  Maximum Concurrent Jobs = 1
  Autochanger = yes
  MediaType = NDMP-Tape
  Device = nrst1a
#  Device = st21
  NDMP Changer Device = mc0
}
Pool {
  Name = ndmp-tape
  Pool Type = Backup
  Recycle = yes                       # Bareos can automatically recycle Volumes
  AutoPrune = yes                     # Prune expired volumes
  Volume Retention = 1 min         # How long should the Full Backups be kept? (#06)
#  Scratch Pool = Scratch
#  Maximum Volume Bytes = 50G          # Limit Volume size to something reasonable
#  Maximum Volumes = 100               # Limit number of Volumes in Pool
#  Label Format = "Full-"              # Volumes will be labeled "Full-<volume-id>"
}


If anyone has any thoughts on this, any help is much appreciated!

Best regards,
Kalle
Reply all
Reply to author
Forward
0 new messages