Installation MHVTL auf openSUSE 12.3

MHVTL

MHVTL ist eine Software zum Emulieren einer Tape Library, also eine virtuelle Tape Library (VTL). Die VTL kan via iSCSI auch anderen Hosts per LAN zur Verfügung gestellt werden. D.h. eine Backup Software muß nicht zwingend auf dem selben Host laufen.

MHVTL ist für Backup Labor- und Testumgebungen vorgesehen, es gibt keinen kommerziellen Support. Die Software wurde bereits mit zahlreichen Backup Produkten erfolgreich getestet, u.a. EMC Networker, IBM TSM, Symantec Netbackup, etc..

MHVTL ist OpenSource und unter GPL v2 lizensiert.

Voraussetzungen

MHVTL läuft auf allen Linux Distributionen. Ich verwende für meine Testumgebung openSUSE 12.3 mit installiertem git (Versionsverwaltung), gcc (C Compiler) und kernel-* (Kernelquellen).

Wer den Speicherplatz für die virtuellen Bänder auf eine eigene Partition oder Festplatte, separiert von / haben möchte, muß einen Mountpoint /opt/mhvtl mit entsprechend Platz bereitstellen.

Nach der Betriebssysteminstallation lade ich ich den SourceCode von MHVTL herunter.

os01:~ # cat /etc/issue
Welcome to openSUSE 12.3 "Dartmouth" - Kernel \r (\l).os01:~ # pwd
/root
os01:~ # mkdir mhvtl
os01:~ # cd mhvtl
os01:~/mhvtl # git init
Initialized empty Git repository in /root/mhvtl/.git/
os01:~/mhvtl # git pull http://github.com/markh794/mhvtl.git
remote: Counting objects: 5062, done.
remote: Compressing objects: 100% (1562/1562), done.
remote: Total 5062 (delta 3487), reused 5062 (delta 3487)
Receiving objects: 100% (5062/5062), 2.61 MiB | 1.55 MiB/s, done.
Resolving deltas: 100% (3487/3487), done.
From http://github.com/markh794/mhvtl
* branch            HEAD       -> FETCH_HEAD
os01:~/mhvtl # ls -l
total 120
drwxr-xr-x 8 root root  4096 Jul  4 10:58 .git
-rw-r--r-- 1 root root   350 Jul  4 10:58 .gitignore
-rw-r--r-- 1 root root 18487 Jul  4 10:58 COPYING
-rw-r--r-- 1 root root 34540 Jul  4 10:58 ChangeLog
-rw-r--r-- 1 root root  5249 Jul  4 10:58 INSTALL
-rw-r--r-- 1 root root  2398 Jul  4 10:58 Makefile
-rw-r--r-- 1 root root   647 Jul  4 10:58 README
drwxr-xr-x 3 root root  4096 Jul  4 10:58 doc
drwxr-xr-x 2 root root  4096 Jul  4 10:58 etc
drwxr-xr-x 2 root root  4096 Jul  4 10:58 include
drwxr-xr-x 2 root root  4096 Jul  4 10:58 kernel
drwxr-xr-x 2 root root  4096 Jul  4 10:58 man
-rw-r--r-- 1 root root  3606 Jul  4 10:58 mhvtl-utils.spec
drwxr-xr-x 3 root root  4096 Jul  4 10:58 scripts
-rw-r--r-- 1 root root   207 Jul  4 10:58 todo
drwxr-xr-x 2 root root  4096 Jul  4 10:58 usr
drwxr-xr-x 2 root root  4096 Jul  4 10:58 webgui

Danach wird geprüft ob die Version der Kernel-Quellen mit dem laufenden Kernel zusammenpasst.

os01:~/mhvtl # rpm -qa|grep kernel
kernel-default-devel-3.7.10-1.1.1.x86_64
kernel-default-3.7.10-1.16.1.x86_64
kernel-source-3.7.10-1.16.1.noarch
kernel-desktop-3.7.10-1.1.1.x86_64
kernel-devel-3.7.10-1.16.1.noarch
kernel-xen-devel-3.7.10-1.16.1.x86_64
kernel-default-devel-3.7.10-1.16.1.x86_64
kernel-source-3.7.10-1.1.1.noarch
kernel-syms-3.7.10-1.1.1.x86_64
kernel-desktop-3.7.10-1.16.1.x86_64
kernel-firmware-20130114git-1.2.1.noarch
kernel-syms-3.7.10-1.16.1.x86_64
kernel-desktop-devel-3.7.10-1.1.1.x86_64
patterns-openSUSE-devel_kernel-12.3-7.10.1.x86_64
kernel-desktop-devel-3.7.10-1.16.1.x86_64
kernel-default-3.7.10-1.1.1.x86_64
kernel-xen-devel-3.7.10-1.1.1.x86_64
kernel-devel-3.7.10-1.1.1.noarch
os01:~/mhvtl # uname -a
Linux os01.site 3.7.10-1.16-desktop #1 SMP PREEMPT Fri May 31 20:21:23 UTC 2013 (97c14ba) x86_64 x86_64 x86_64 GNU/Linux

MHVTL benötigt sg3_utils, zlib-devel und lzo-devel – falls nicht vorhanden muß das nachinstalliert werden.

os01:~/mhvtl # cd kernel
os01:~/mhvtl/kernel # rpm -qa|grep sg3_utils
sg3_utils-1.33-5.1.1.x86_64
os01:~/mhvtl/kernel # rpm -qa|grep zlib-devel
zlib-devel-1.2.7-7.1.1.x86_64
os01:~/mhvtl # zypper se lzo
Retrieving repository 'openSUSE-12.3-Update' metadata .....................................[done]
Building repository 'openSUSE-12.3-Update' cache ..........................................[done]
Loading repository data...
Reading installed packages...
S | Name            | Summary                                        | Type
--+-----------------+------------------------------------------------+--------
i | liblzo2-2       | A Real-Time Data Compression Library           | package
| liblzo2-2-32bit | A Real-Time Data Compression Library           | package
| lzo-devel       | Development files for lzo                      | package
| lzo-devel-32bit | Development files for lzo                      | package
| lzop            | The fastest compressor and decompressor around | package
os01:~/mhvtl # zypper install lzo-devel
Loading repository data...
Reading installed packages...
Resolving package dependencies...
The following NEW package is going to be installed:
lzo-devel
1 new package to install.
Overall download size: 42.2 KiB. After the operation, additional 207.8 KiB will be used.
Continue? [y/n/?] (y): y
Retrieving package lzo-devel-2.06-9.1.1.x86_64              (1/1),  42.2 KiB (207.8 KiB unpacked)
Retrieving: lzo-devel-2.06-9.1.1.x86_64.rpm ...............................................[done]
(1/1) Installing: lzo-devel-2.06-9.1.1 ....................................................[done]
os01:~/mhvtl # zypper se zlib
Loading repository data...
Reading installed packages...
S | Name                    | Summary                                                 | Type
--+-------------------------+---------------------------------------------------------+--------
| ghc-zlib                | Haskell gzip and zlib formats library                   | package
| ghc-zlib-devel          | Haskell gzip and zlib formats library development files | package
| jzlib                   | JZlib re-implementation of zlib in pure Java            | package
| jzlib-demo              | JZlib re-implementation of zlib in pure Java            | package
| jzlib-javadoc           | JZlib re-implementation of zlib in pure Java            | package
| php5-zlib               | PHP5 Extension Module                                   | package
i | zlib-devel              | Include Files and Libraries mandatory for Development   | package
| zlib-devel-32bit        | Include Files and Libraries mandatory for Development   | package
| zlib-devel-static       | Include Files and Libraries mandatory for Development   | package
| zlib-devel-static-32bit | Include Files and Libraries mandatory for Development   | package
| zlibrary                | Cross-platform GUI library                              | package
| zlibrary-devel          | Development files for zlibrary                          | package
| zlibrary-ui-gtk         | GTK+ interface module for ZLibrary                      | package
| zlibrary-ui-qt          | Qt4 interface module for ZLibrary                       | package

Falls kein eigener Mountpoint erzeugt wurde muß jetzt das Verzeichnis /opt/mhvtl angelegt werden. Außerdem ist ein User/Gruppe vtl anzulegen. Danach sind Berechtigungen für User/Gruppe zu setzen.

os01:~/mhvtl # mkdir /opt/mhvtl
os01:~/mhvtl # groupadd vtl
os01:~/mhvtl # useradd -c "mhvtl user" -g vtl vtl
os01:~/mhvtl # chown vtl:vtl /opt/mhvtl

Installation

Nun ist MHVTL zu kompilieren, installieren und zu starten.

os01:~/mhvtl # make
...
os01:~/mhvtl # make install
...
os01:~/mhvtl # /etc/init.d/mhvtl start

Wie man mit dem Befehl lsscsi sieht wurden laut MHVTL Standardkonfiguration 2 VTLs angelegt.

os01:/etc/mhvtl # lsscsi -g
[1:0:0:0]    cd/dvd  NECVMWar VMware IDE CDR10 1.00  /dev/sr0   /dev/sg0
[2:0:0:0]    disk    VMware,  VMware Virtual S 1.0   /dev/sda   /dev/sg1
[3:0:0:0]    mediumx STK      L700             0104  /dev/sch0  /dev/sg10
[3:0:1:0]    tape    IBM      ULT3580-TD5      0104  /dev/st0   /dev/sg2
[3:0:2:0]    tape    IBM      ULT3580-TD5      0104  /dev/st1   /dev/sg3
[3:0:3:0]    tape    IBM      ULT3580-TD4      0104  /dev/st2   /dev/sg4
[3:0:4:0]    tape    IBM      ULT3580-TD4      0104  /dev/st3   /dev/sg5
[3:0:8:0]    mediumx STK      L80              0104  /dev/sch1  /dev/sg11
[3:0:9:0]    tape    STK      T10000B          0104  /dev/st4   /dev/sg6
[3:0:10:0]   tape    STK      T10000B          0104  /dev/st5   /dev/sg7
[3:0:11:0]   tape    STK      T10000B          0104  /dev/st6   /dev/sg8
[3:0:12:0]   tape    STK      T10000B          0104  /dev/st7   /dev/sg9

Konfiguration

Die Konfigurationsdateien von MHVTL liegen unter /etc/mhvtl.

os01:/etc/mhvtl # ls -l
total 16
-rw-r--r-- 1 vtl vtl 3328 Jul  4 13:39 device.conf
-rw-r--r-- 1 vtl vtl 1566 Jul  4 13:39 library_contents.10
-rw-r--r-- 1 vtl vtl 1646 Jul  4 13:39 library_contents.30
-rw-r--r-- 1 vtl vtl  206 Jul  4 13:39 mhvtl.conf

In der Datei device.conf liegen die Definitionen der virtuellen Bandroboter und Laufwerke:

Die VTL 10 ist eine Storagetek L700 mit 2 IBM LTO5- und 2 IBM LTO4-Laufwerken. Die VTL 30 ist eine Storagetek L80 mit 4 Storagetek T1000B-Laufwerken.

os01:/etc/mhvtl # cat device.conf
VERSION: 5

# 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 0x83
#
# Each 'record' is separated by one (or more) blank lines.
# Each 'record' starts at column 1
# Serial num max len is 10.
# Compression: factor X enabled 0|1
#     Where X is zlib compression factor        1 = Fastest compression
#                                               9 = Best compression
#     enabled 0 == off, 1 == on
#
# fifo: /var/tmp/mhvtl
# If enabled, data must be read from fifo, otherwise daemon will block
# trying to write.
# e.g. cat /var/tmp/mhvtl (in another terminal)

Library: 10 CHANNEL: 00 TARGET: 00 LUN: 00
Vendor identification: STK
Product identification: L700
Unit serial number: XYZZY_A
NAA: 10:22:33:44:ab:00:00:00
Home directory: /opt/mhvtl
Backoff: 400
# fifo: /var/tmp/mhvtl

Drive: 11 CHANNEL: 00 TARGET: 01 LUN: 00
Library ID: 10 Slot: 01
Vendor identification: IBM
Product identification: ULT3580-TD5
Unit serial number: XYZZY_A1
NAA: 10:22:33:44:ab:00:01:00
Compression: factor 1 enabled 1
Compression type: lzo
Backoff: 400
# fifo: /var/tmp/mhvtl

Drive: 12 CHANNEL: 00 TARGET: 02 LUN: 00
Library ID: 10 Slot: 02
Vendor identification: IBM
Product identification: ULT3580-TD5
Unit serial number: XYZZY_A2
NAA: 10:22:33:44:ab:00:02:00
Compression: factor 1 enabled 1
Compression type: lzo
Backoff: 400
# fifo: /var/tmp/mhvtl

Drive: 13 CHANNEL: 00 TARGET: 03 LUN: 00
Library ID: 10 Slot: 03
Vendor identification: IBM
Product identification: ULT3580-TD4
Unit serial number: XYZZY_A3
NAA: 10:22:33:44:ab:00:03:00
Compression: factor 1 enabled 1
Compression type: lzo
Backoff: 400
# fifo: /var/tmp/mhvtl

Drive: 14 CHANNEL: 00 TARGET: 04 LUN: 00
Library ID: 10 Slot: 04
Vendor identification: IBM
Product identification: ULT3580-TD4
Unit serial number: XYZZY_A4
NAA: 10:22:33:44:ab:00:04:00
Compression: factor 1 enabled 1
Compression type: lzo
Backoff: 400
# fifo: /var/tmp/mhvtl

Library: 30 CHANNEL: 00 TARGET: 08 LUN: 00
Vendor identification: STK
Product identification: L80
Unit serial number: XYZZY_B
NAA: 30:22:33:44:ab:00:08:00
Home directory: /opt/mhvtl
Backoff: 400
# fifo: /var/tmp/mhvtl

Drive: 31 CHANNEL: 00 TARGET: 09 LUN: 00
Library ID: 30 Slot: 01
Vendor identification: STK
Product identification: T10000B
Unit serial number: XYZZY_B1
NAA: 30:22:33:44:ab:00:09:00
Compression: factor 1 enabled 1
Compression type: lzo
Backoff: 400
# fifo: /var/tmp/mhvtl

Drive: 32 CHANNEL: 00 TARGET: 10 LUN: 00
Library ID: 30 Slot: 02
Vendor identification: STK
Product identification: T10000B
Unit serial number: XYZZY_B2
NAA: 30:22:33:44:ab:00:10:00
Compression: factor 1 enabled 1
Compression type: lzo
Backoff: 400
# fifo: /var/tmp/mhvtl

Drive: 33 CHANNEL: 00 TARGET: 11 LUN: 00
Library ID: 30 Slot: 03
Vendor identification: STK
Product identification: T10000B
Unit serial number: XYZZY_B3
NAA: 30:22:33:44:ab:00:11:00
Compression: factor 1 enabled 1
Compression type: lzo
Backoff: 400
# fifo: /var/tmp/mhvtl

Drive: 34 CHANNEL: 00 TARGET: 12 LUN: 00
Library ID: 30 Slot: 04
Vendor identification: STK
Product identification: T10000B
Unit serial number: XYZZY_B4
NAA: 30:22:33:44:ab:00:12:00
Compression: factor 1 enabled 1
Compression type: lzo
Backoff: 400
# fifo: /var/tmp/mhvtl

In der Datei library_contents.10 befindet sich die Bestückung der VTL 10. Diese enthält 4 leere Laufwerke, einen leeren Picker (Greifarm), 4 leere Ein-/Ausgabe-Schächte (Media Access Ports) und teilweise bestückte Schächte (Nr. 1-39). Anhand der Endung des Barcodes der virt. Bänder erkennt man ob es sich um LTO4 (L4) oder LTO5 (L5) handelt. Barcodes, die mit CLN beginnen bezeichnen Reinigungsbänder (Cleaning).

os01:/etc/mhvtl # cat library_contents.10

Drive 1:
Drive 2:
Drive 3:
Drive 4:

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, "L2" - LTO 2, "L3" - LTO 3, "L4" - LTO 4, "L5" - LTO 5
# Trailing "LT" - LTO 3 WORM, "LU" -  LTO 4 WORM, "LV" - LTO 5 WORM
# Trailing "L6" - LTO 6, "LW" - LTO 6 WORM
# Trailing "TA" - T10000+
# Trailing "TZ" - 9840A, "TY" - 9840B, "TX" - 9840C, "TW" - 9840D
# Trailing "TV" - 9940A, "TU" - 9940B
# Trailing "JA" - 3592+
# Trailing "JB" - 3592E05+
# Trailing "JW" - WORM 3592+
# Trailing "JX" - WORM 3592E05+
# Trailing "D7" - DLT7000 media (DLT IV)
#
Slot 1: E01001L4
Slot 2: E01002L4
Slot 3: E01003L4
Slot 4: E01004L4
Slot 5: E01005L4
Slot 6: E01006L4
Slot 7: E01007L4
Slot 8: E01008L4
Slot 9: E01009L4
Slot 10: E01010L4
Slot 11: E01011L4
Slot 12: E01012L4
Slot 13: E01013L4
Slot 14: E01014L4
Slot 15: E01015L4
Slot 16: E01016L4
Slot 17: E01017L4
Slot 18: E01018L4
Slot 19: E01019L4
Slot 20: E01020L4
Slot 21:
Slot 22: CLN101L4
Slot 23: CLN102L5
Slot 24:
Slot 25:
Slot 26:
Slot 27:
Slot 28:
Slot 29:
Slot 30: F01030L5
Slot 31: F01031L5
Slot 32: F01032L5
Slot 33: F01033L5
Slot 34: F01034L5
Slot 35: F01035L5
Slot 36: F01036L5
Slot 37: F01037L5
Slot 38: F01038L5
Slot 39: F01039L5

In der Datei library_contents.30 befindet sich die Bestückung der VTL 30. Diese enthält 4 leere Laufwerke, einen leeren Picker (Greifarm), 4 leere Ein-/Ausgabe-Schächte (Media Access Ports) und teilweise bestückte Schächte (Nr. 1-40). Anhand der Endung TA des Barcodes der virt. Bänder erkennt, daß es sich um T1000-Bänder handelt. Barcodes, die mit CLN beginnen bezeichnen Reinigungsbänder (Cleaning).

os01:/etc/mhvtl # cat library_contents.30

Drive 1:
Drive 2:
Drive 3:
Drive 4:

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, "L2" - LTO 2, "L3" - LTO 3, "L4" - LTO 4, "L5" - LTO 5
# Trailing "LT" - LTO 3 WORM, "LU" -  LTO 4 WORM, "LV" - LTO 5 WORM
# Trailing "L6" - LTO 6, "LW" - LTO 6 WORM
# Trailing "TA" - T10000+
# Trailing "TZ" - 9840A, "TY" - 9840B, "TX" - 9840C, "TW" - 9840D
# Trailing "TV" - 9940A, "TU" - 9940B
# Trailing "JA" - 3592+
# Trailing "JB" - 3592E05+
# Trailing "JW" - WORM 3592+
# Trailing "JX" - WORM 3592E05+
# Trailing "D7" - DLT7000 media (DLT IV)
#
Slot 1: G03001TA
Slot 2: G03002TA
Slot 3: G03003TA
Slot 4: G03004TA
Slot 5: G03005TA
Slot 6: G03006TA
Slot 7: G03007TA
Slot 8: G03008TA
Slot 9: G03009TA
Slot 10: G03010TA
Slot 11: G03011TA
Slot 12: G03012TA
Slot 13: G03013TA
Slot 14: G03014TA
Slot 15: G03015TA
Slot 16: G03016TA
Slot 17: G03017TA
Slot 18: G03018TA
Slot 19: G03019TA
Slot 20: G03020TA
Slot 21: G03021TA
Slot 22: G03022TA
Slot 23: G03023TA
Slot 24: G03024TA
Slot 25: G03025TA
Slot 26: G03026TA
Slot 27: G03027TA
Slot 28: G03028TA
Slot 29: G03029TA
Slot 30: G03030TA
Slot 31: G03031TA
Slot 32: G03032TA
Slot 33: G03033TA
Slot 34: G03034TA
Slot 35: G03035TA
Slot 36: G03036TA
Slot 37: G03037TA
Slot 38: G03038TA
Slot 39: G03039TA
Slot 40: CLN303TA

In der Datei mhvtl.conf kann man die Standardkapazität für virt. Bänder definieren. Die Voreinstellungbeträgt 500MB.

os01:/etc/mhvtl # cat mhvtl.conf

# Home directory for config file(s)
MHVTL_CONFIG_PATH=/etc/mhvtl

# Default media capacity (500 M)
CAPACITY=500

# Set default verbosity [0|1|2|3]
VERBOSE=1

# Set kernel module debuging [0|1]
VTL_DEBUG=0

Im Verzeichnis /opt/mhvtl werden beim Start des MHVTL-daemons die Verzeichnisstrukturen und Dateien für die virtuellen Bänder angelegt. Für jedes Band existiert ein Verzeichnis.

os01:/etc/mhvtl # cd /opt/mhvtl
os01:/opt/mhvtl # ls -l
total 288
drwxrwx--- 2 vtl vtl 4096 Jul 4 13:45 CLN101L4
drwxrwx--- 2 vtl vtl 4096 Jul 4 13:45 CLN102L5
drwxrwx--- 2 vtl vtl 4096 Jul 4 13:45 CLN303TA
drwxrwx--- 2 vtl vtl 4096 Jul 4 13:45 E01001L4
drwxrwx--- 2 vtl vtl 4096 Jul 4 13:45 E01002L4
drwxrwx--- 2 vtl vtl 4096 Jul 4 13:45 E01003L4
drwxrwx--- 2 vtl vtl 4096 Jul 4 13:45 E01004L4
drwxrwx--- 2 vtl vtl 4096 Jul 4 13:45 E01005L4
drwxrwx--- 2 vtl vtl 4096 Jul 4 13:45 E01006L4
drwxrwx--- 2 vtl vtl 4096 Jul 4 13:45 E01007L4
drwxrwx--- 2 vtl vtl 4096 Jul 4 13:45 E01008L4
drwxrwx--- 2 vtl vtl 4096 Jul 4 13:45 E01009L4
drwxrwx--- 2 vtl vtl 4096 Jul 4 13:45 E01010L4
drwxrwx--- 2 vtl vtl 4096 Jul 4 13:45 E01011L4
drwxrwx--- 2 vtl vtl 4096 Jul 4 13:45 E01012L4
drwxrwx--- 2 vtl vtl 4096 Jul 4 13:45 E01013L4
drwxrwx--- 2 vtl vtl 4096 Jul 4 13:45 E01014L4
drwxrwx--- 2 vtl vtl 4096 Jul 4 13:45 E01015L4
drwxrwx--- 2 vtl vtl 4096 Jul 4 13:45 E01016L4
drwxrwx--- 2 vtl vtl 4096 Jul 4 13:45 E01017L4
drwxrwx--- 2 vtl vtl 4096 Jul 4 13:45 E01018L4
drwxrwx--- 2 vtl vtl 4096 Jul 4 13:45 E01019L4
drwxrwx--- 2 vtl vtl 4096 Jul 4 13:45 E01020L4
drwxrwx--- 2 vtl vtl 4096 Jul 4 13:45 F01030L5
drwxrwx--- 2 vtl vtl 4096 Jul 4 13:45 F01031L5
drwxrwx--- 2 vtl vtl 4096 Jul 4 13:45 F01032L5
drwxrwx--- 2 vtl vtl 4096 Jul 4 13:45 F01033L5
drwxrwx--- 2 vtl vtl 4096 Jul 4 13:45 F01034L5
drwxrwx--- 2 vtl vtl 4096 Jul 4 13:45 F01035L5
drwxrwx--- 2 vtl vtl 4096 Jul 4 13:45 F01036L5
drwxrwx--- 2 vtl vtl 4096 Jul 4 13:45 F01037L5
drwxrwx--- 2 vtl vtl 4096 Jul 4 13:45 F01038L5
drwxrwx--- 2 vtl vtl 4096 Jul 4 13:45 F01039L5
drwxrwx--- 2 vtl vtl 4096 Jul 4 13:45 G03001TA
drwxrwx--- 2 vtl vtl 4096 Jul 4 13:45 G03002TA
drwxrwx--- 2 vtl vtl 4096 Jul 4 13:45 G03003TA
drwxrwx--- 2 vtl vtl 4096 Jul 4 13:45 G03004TA
drwxrwx--- 2 vtl vtl 4096 Jul 4 13:45 G03005TA
drwxrwx--- 2 vtl vtl 4096 Jul 4 13:45 G03006TA
drwxrwx--- 2 vtl vtl 4096 Jul 4 13:45 G03007TA
drwxrwx--- 2 vtl vtl 4096 Jul 4 13:45 G03008TA
drwxrwx--- 2 vtl vtl 4096 Jul 4 13:45 G03009TA
drwxrwx--- 2 vtl vtl 4096 Jul 4 13:45 G03010TA
drwxrwx--- 2 vtl vtl 4096 Jul 4 13:45 G03011TA
drwxrwx--- 2 vtl vtl 4096 Jul 4 13:45 G03012TA
drwxrwx--- 2 vtl vtl 4096 Jul 4 13:45 G03013TA
drwxrwx--- 2 vtl vtl 4096 Jul 4 13:45 G03014TA
drwxrwx--- 2 vtl vtl 4096 Jul 4 13:45 G03015TA
drwxrwx--- 2 vtl vtl 4096 Jul 4 13:45 G03016TA
drwxrwx--- 2 vtl vtl 4096 Jul 4 13:45 G03017TA
drwxrwx--- 2 vtl vtl 4096 Jul 4 13:45 G03018TA
drwxrwx--- 2 vtl vtl 4096 Jul 4 13:45 G03019TA
drwxrwx--- 2 vtl vtl 4096 Jul 4 13:45 G03020TA
drwxrwx--- 2 vtl vtl 4096 Jul 4 13:45 G03021TA
drwxrwx--- 2 vtl vtl 4096 Jul 4 13:45 G03022TA
drwxrwx--- 2 vtl vtl 4096 Jul 4 13:45 G03023TA
drwxrwx--- 2 vtl vtl 4096 Jul 4 13:45 G03024TA
drwxrwx--- 2 vtl vtl 4096 Jul 4 13:45 G03025TA
drwxrwx--- 2 vtl vtl 4096 Jul 4 13:45 G03026TA
drwxrwx--- 2 vtl vtl 4096 Jul 4 13:45 G03027TA
drwxrwx--- 2 vtl vtl 4096 Jul 4 13:45 G03028TA
drwxrwx--- 2 vtl vtl 4096 Jul 4 13:45 G03029TA
drwxrwx--- 2 vtl vtl 4096 Jul 4 13:45 G03030TA
drwxrwx--- 2 vtl vtl 4096 Jul 4 13:45 G03031TA
drwxrwx--- 2 vtl vtl 4096 Jul 4 13:45 G03032TA
drwxrwx--- 2 vtl vtl 4096 Jul 4 13:45 G03033TA
drwxrwx--- 2 vtl vtl 4096 Jul 4 13:45 G03034TA
drwxrwx--- 2 vtl vtl 4096 Jul 4 13:45 G03035TA
drwxrwx--- 2 vtl vtl 4096 Jul 4 13:45 G03036TA
drwxrwx--- 2 vtl vtl 4096 Jul 4 13:45 G03037TA
drwxrwx--- 2 vtl vtl 4096 Jul 4 13:45 G03038TA
drwxrwx--- 2 vtl vtl 4096 Jul 4 13:45 G03039TA
os01:/opt/mhvtl # ls -l E01001L4
total 576
-rw-rw---- 1 vtl vtl 68308 Jul 4 14:58 data
-rw-rw---- 1 vtl vtl 513024 Jul 4 14:58 indx
-rw-rw---- 1 vtl vtl 1540 Jul 4 14:58 meta

Wenn man eine eigene VTL-Konfiguration wünscht ist dies einfach zu bewerkstelligen:

  1. MHVTL daemon stoppen: /etc/init.d/mhvtl stop
  2. bisherige Bänder löschen: rm -r /opt/mhvtl/*
  3. Konfigurationsdateien in /etc/mhvtl anpassen
  4. MHVTL daemon starten: /etc/init.d/mhvtl start

MHVTL bringt ein eigenes Bedienkommando vtlcmd mit. Damit kann man virt. Bänder aus den Ein-/Ausgabefächern in Schächte laden, etc.. Mit mktape lassen sich neue Bänder erstellen. Genauere Infos enthält das Handbuch (man vtlcmd, man mktape).
Beispiel: neues LTO4-Datenband erzeugen und in Ein-/Ausgabefach der VTL 10 stecken.

os01:/etc/mhvtl # mktape -m E01021L4 -s 500 -t data -d LTO4 -l 10
os01:/etc/mhvtl # ls -l /opt/mhvtl/E01021L4
total 4
-rw-rw---- 1 vtl vtl    0 Jul  8 19:51 data
-rw-rw---- 1 vtl vtl    0 Jul  8 19:51 indx
-rw-rw---- 1 vtl vtl 1536 Jul  8 19:51 meta
os01:/etc/mhvtl # vtlcmd 10 load map E01021L4
MAP not opened
os01:/etc/mhvtl # vtlcmd 10 open map
OK
os01:/etc/mhvtl # vtlcmd 10 load map E01021L4
OK
os01:/etc/mhvtl # vtlcmd 10 close map
OK
os01:/etc/mhvtl # vtlcmd 10 list map
Contents: E01021L4

Prinzipiell kann MHVTL jetzt bereits in einer am selben Host installierten Backup Software konfiguriert werden.
Im nächsten Artikel zeige ich wie MHVTL einfach über eine Weboberfläche bedient werden kann. Das Einrichten von iSCSI wird so zum Kinderspiel.

 

 

Dieser Beitrag wurde unter howto, Labor abgelegt und mit , , , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.

Ein Kommentar zu Installation MHVTL auf openSUSE 12.3

  1. Pingback: Installation Webmanagement Console GUI für MHVTL | Backupinferno

Kommentare sind geschlossen.