Im Networker Blog von Preston de Guise bin ich hier und hier auf eine höchst interessante Open Source Software gestoßen. MHVTL ist eine Virtual Tape Library, realisiert als Linux Kernel Modul plus Binaries zur Administration. Die Software simuliert eine SCSI Jukebox bei der die Anzahl und Typ der Bandlaufwerke, die Anzahl der Schächte und die Anzahl der Ein-/Ausgabeschächte frei konfiguriert werden können. Die virtuellen Bänder werden als Dateien gespeichert – die Standardgröße beträgt 500MB und kann ebenfalls konfiguriert werden. Da die Software unter /opt installiert wird sollte man ggf. einen eigenen Moutpoint dafür vorsehen.
Für MHVTL gibt es ein Supportforum, das ggf. bei Problemen weiterhelfen kann.
In meinem Beispiel habe ich in der VTL vier LTO4 Bandlaufwerke, 33 Schächte (Schacht 33 für Reinigung) und 4 E/A-Schächte eingestellt. Bestückt ist die VTL mit 20 LTO3 Bändern und 3 Reinigungsbändern.
Start der VTL
pc303420-vm3:/ # /etc/init.d/mhvtl start
vtltape: version 0.18.1
vtltape: version 0.18.1
vtltape: version 0.18.1
vtltape: version 0.18.1
vtllibrary: version 0.18.1
vtllibrary process PID is 6621
done
pc303420-vm3:/ # lsscsi -g
[0:0:0:0] disk VMware, VMware Virtual S 1.0 /dev/sda /dev/sg0
[0:0:1:0] disk VMware, VMware Virtual S 1.0 /dev/sdb /dev/sg1
[1:0:0:0] mediumx SPECTRA PYTHON 5500 - /dev/sg6
[1:0:1:0] tape IBM ULT3580-TD4 5500 /dev/st0 /dev/sg2
[1:0:2:0] tape IBM ULT3580-TD4 5500 /dev/st2 /dev/sg4
[1:0:3:0] tape IBM ULT3580-TD4 5500 /dev/st1 /dev/sg3
[1:0:4:0] tape IBM ULT3580-TD4 5500 /dev/st3 /dev/sg5
Inbetriebnahme der VTL im EMC Networker Backupprogramm
pc303420-vm3:/ # inquire -l
-l flag found: searching all LUNs, which may take over 10 minutes per adapter
for some fibre channel adapters. Please be patient.
scsidev@0.0.0:VMware, VMware Virtual S1.0 |Disk, /dev/sg0
scsidev@0.1.0:VMware, VMware Virtual S1.0 |Disk, /dev/sg1
scsidev@1.0.0:SPECTRA PYTHON 5500|Autochanger (Jukebox), /dev/sg6
S/N: XYZZY
ATNN=SPECTRA PYTHON XYZZY
WWNN=11223344ABCDEF00
scsidev@1.1.0:IBM ULT3580-TD4 5500|Tape, /dev/nst0
S/N: XYZZY_A1
ATNN=IBM ULT3580-TD4 XYZZY_A1
WWNN=11223344ABCDEF01
scsidev@1.2.0:IBM ULT3580-TD4 5500|Tape, /dev/nst2
S/N: XYZZY_A2
ATNN=IBM ULT3580-TD4 XYZZY_A2
WWNN=11223344ABCDEF02
scsidev@1.3.0:IBM ULT3580-TD4 5500|Tape, /dev/nst1
S/N: XYZZY_A3
ATNN=IBM ULT3580-TD4 XYZZY_A3
WWNN=11223344ABCDEF03
scsidev@1.4.0:IBM ULT3580-TD4 5500|Tape, /dev/nst3
S/N: XYZZY_A4
ATNN=IBM ULT3580-TD4 XYZZY_A4
WWNN=11223344ABCDEF04
pc303420-vm3:/ # jbconfig -l
Jbconfig is running on host pc303420-vm3.max-boegl.biz (Linux 2.6.16.60-0.54.5-default),
and is using pc303420-vm3.max-boegl.biz as the NetWorker server.
1) Configure an AlphaStor Library.
2) Configure an Autodetected SCSI Jukebox.
3) Configure an Autodetected NDMP SCSI Jukebox.
4) Configure an SJI Jukebox.
5) Configure an STL Silo.
What kind of Jukebox are you configuring? [1] 2
14484:jbconfig: Scanning SCSI buses; this may take a while …
Installing ‘Spectralogic’ jukebox – scsidev@1.0.0.
What name do you want to assign to this jukebox device? mhvtl
15814:jbconfig: Attempting to detect serial numbers on the jukebox and drives …
15815:jbconfig: Will try to use SCSI information returned by jukebox to configure drives.
Turn NetWorker auto-cleaning on (yes / no) [yes]?
The drives in this jukebox cannot be auto-configured with the available
information. You will need to provide the path for the drives.
Is (any path of) any drive intended for NDMP use? (yes / no) [no]
Is any drive going to have more than one path defined? (yes / no) [no]
Please enter the device path information in one of the following formats:
/dev/nst0 –for local path or
host:device-path –for remote node or NDMP device(s) or
host:drive-letter:directory path –for Windows disk file
Drive 1, element 1
Drive path ? /dev/nst0
Drive 2, element 2
Drive path ? /dev/nst1
Drive 3, element 3
Drive path ? /dev/nst2
Drive 4, element 4
Drive path ? /dev/nst3
Please select the appropriate drive type number:
1) 3480 25) 9840C 48) SAIT-2
2) 3570 26) 9840D 49) SD3
3) 3590 27) 9940 50) sdlt
4) 3592 28) 9940B 51) sdlt320
5) 4890 29) adv_file 52) sdlt600
6) 4mm 30) Atmos COS 53) SLR
7) 4mm 12GB 31) dlt 54) T10000
4mm 20GB 32) dlt vs160 55) T10000B
9) 4mm 4GB 33) dlt-s4 56) tkz90
10) 4mm 8GB 34) dlt-v4 57) travan10
11) 4mm DAT160 35) dlt1 58) TS1120
12) 4mm DAT72 36) dlt7000 59) TS1130
13) 8mm 37) dlt8000 60) tz85
14) 8mm 20GB 38) file 61) tz86
15) 8mm 5GB 39) himt 62) tz87
16) 8mm AIT 40) logical 63) tz88
17) 8mm AIT-2 41) LTO Ultrium 64) tz89
18) 8mm AIT-3 42) LTO Ultrium-2 65) tz90
19) 8mm AIT-4 43) LTO Ultrium-3 66) tzs20
20) 8mm AIT-5 44) LTO Ultrium-4 67) VXA
21) 8mm Mammoth-2 45) optical 68) VXA-172
22) 9490 46) qic 69) VXA-2
23) 9840 47) SAIT-1 70) VXA-320
24) 9840b
Enter the drive type of drive 1? 43
Are all the drives the same model? (yes / no) [yes]
Jukebox has been added successfully
The following configuration options have been set:
> Jukebox description to the control port and model.
> Autochanger control port to the port at which we found it.
> Networker managed tape autocleaning on.
> Barcode reading to on.
> Volume labels that match the barcodes.
> Slot intended to hold cleaning cartridge to 33. Please insure that a
cleaning cartridge is in that slot
> Number of times we will use a new cleaning cartridge to 5.
> Cleaning interval for the tape drives to 6 months.
You can review and change the characteristics of the autochanger and its
associated devices using the NetWorker Management Console.
Would you like to configure another jukebox? (yes/no) [no]
VTL testen
pc303420-vm3:/ # nsrjb
1: mhvtl [enabled]
There is only one enabled and configured jukebox: mhvtl
Jukebox mhvtl: (Ready to accept commands)
14118:nsrjb: No volumes found in the media database…continuing.
slot volume pool barcode volume id recyclable
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11: -* ULT001L3 -
12: -* ULT002L3 -
13: -* ULT003L3 -
14: -* ULT004L3 -
15: -* ULT005L3 -
16: -* ULT006L3 -
17: -* ULT007L3 -
18: -* ULT008L3 -
19: -* ULT009L3 -
20: -* ULT010L3 -
21: -* ULT011L3 -
22: -* ULT012L3 -
23: -* ULT013L3 -
24: -* ULT014L3 -
25: -* ULT015L3 -
26: -* ULT016L3 -
27: -* ULT017L3 -
28: -* ULT018L3 -
29: -* ULT019L3 -
30: -* ULT020L3 -
31: -* CLN001L1 -
32: -* CLN002L1 -
33: Cleaning Tape (5 uses left) CLN003L1 -
*not registered in the NetWorker media data base
drive 1 (/dev/nst0) slot :
drive 2 (/dev/nst1) slot :
drive 3 (/dev/nst2) slot :
drive 4 (/dev/nst3) slot :
Meine Testkonfiguration
SLES10SP3 VM auf VMware Server 2.02
pc303420-vm3:/ # uname -a
Linux pc303420-vm3 2.6.16.60-0.54.5-default #1 Fri Sep 4 01:28:03 UTC 2009 i686 i686 i386 GNU/Linux
pc303420-vm3:/ # cat /etc/issue
Welcome to SUSE Linux Enterprise Server 10 SP3 (i586) – Kernel \r (\l).
pc303420-vm3:/ # rpm -qa | grep lgto
lgtonode-7.6-1
lgtoclnt-7.6-1
lgtoserv-7.6-1
lgtonmc-7.6-1
lgtoman-7.6-1
pc303420-vm3:/etc/mhvtl # cat device.conf
VERSION: 3
# VPD page format:
# <page #> <Length> <x> <x+1>… <x+n>
# NAA format is an 8 hex byte value seperated by ‘:’
# Note: NAA is part of inquiry VPD 0×83
#
# Each ‘record’ is sperated by one (or more) blank lines.
# Each ‘record’ starts at column 1
# Serial num max len is 10.
# Compression: factor <value> enabled [0|1]
# Where <value> is zlib compression factor 1 = Fastest compression
# 9 = Best compression
# enabled 1 – Compression is enabled,
# enabled 0 – Compression is disabled
Library: 0 CHANNEL: 0 TARGET: 0 LUN: 0
Vendor identification: SPECTRA
Product identification: PYTHON
Product revision level: 5500
Unit serial number: XYZZY
NAA: 11:22:33:44:ab:cd:ef:00
Drive: 1 CHANNEL: 0 TARGET: 1 LUN: 0
Vendor identification: IBM
Product identification: ULT3580-TD4
Product revision level: 5500
Unit serial number: XYZZY_A1
NAA: 11:22:33:44:ab:cd:ef:01
Compression: factor 1 enabled 1
VPD: b0 04 00 02 01 00
Drive: 2 CHANNEL: 0 TARGET: 2 LUN: 0
Vendor identification: IBM
Product identification: ULT3580-TD4
Product revision level: 5500
Unit serial number: XYZZY_A2
NAA: 11:22:33:44:ab:cd:ef:02
Compression: factor 1 enabled 1
VPD: b0 04 00 02 01 00
Drive: 3 CHANNEL: 0 TARGET: 3 LUN: 0
Vendor identification: IBM
Product identification: ULT3580-TD4
Product revision level: 5500
Unit serial number: XYZZY_A3
NAA: 11:22:33:44:ab:cd:ef:03
Compression: factor 1 enabled 1
VPD: b0 04 00 02 01 00
Drive: 4 CHANNEL: 0 TARGET: 4 LUN: 0
Vendor identification: IBM
Product identification: ULT3580-TD4
Product revision level: 5500
Unit serial number: XYZZY_A4
NAA: 11:22:33:44:ab:cd:ef:04
Compression: factor 1 enabled 1
VPD: b0 04 00 02 01 00
pc303420-vm3:/etc/mhvtl # cat library_contents
VERSION: 2
Drive 1: XYZZY_A1
Drive 2: XYZZY_A2
Drive 3: XYZZY_A3
Drive 4: XYZZY_A4
Picker 1:
MAP 1:
MAP 2:
MAP 3:
MAP 4:
# Slot 1 – ?, no gaps
# Slot N: [barcode]
# [barcode]
# a barcode is comprised of three fields: [Leading] [identifier] [Trailing]
# Leading “CLN” — cleaning tape
# Leading “W” — WORM tape
# Leading “NOBAR” — will appear to have no barcode
# If the barcode is at least 8 character long, then the last two characters are Trailing
# Trailing “S3″ – SDLT600
# Trailing “X4″ – AIT-4
# Trailing “L1″ – LTO 1
# Trailing “TA” – T10000+
# Trailing “JA” – 3592+
# Trailing “JB” – 3592E05+
# Trailing “JW” – WORM 3592+
# Trailing “JX” – WORM 3592E05+
#
Slot 1:
Slot 2:
Slot 3:
Slot 4:
Slot 5:
Slot 6:
Slot 7:
Slot 8:
Slot 9:
Slot 10:
Slot 11: ULT001L3
Slot 12: ULT002L3
Slot 13: ULT003L3
Slot 14: ULT004L3
Slot 15: ULT005L3
Slot 16: ULT006L3
Slot 17: ULT007L3
Slot 18: ULT008L3
Slot 19: ULT009L3
Slot 20: ULT010L3
Slot 21: ULT011L3
Slot 22: ULT012L3
Slot 23: ULT013L3
Slot 24: ULT014L3
Slot 25: ULT015L3
Slot 26: ULT016L3
Slot 27: ULT017L3
Slot 28: ULT018L3
Slot 29: ULT019L3
Slot 30: ULT020L3
Slot 31: CLN001L1
Slot 32: CLN002L1
Slot 33: CLN003L1
Hier noch ein paar Screenshots vom Betrieb der VTL im Networker 7.6 …
P.S.
Die Eval-Version des EMC Networker läßt sich mit “grace” als Auth-Code 6 Wochen lang betreiben.


Sollte jemand beim Erstellen der virtuellen Bänder bzw. beim Aufruf des Tools mktape auf den Bug “mktape error: Structure of MAM incorrect size: 1016″ stoßen bitte hier weiterlesen…