MHVTL Webmanagement console GUI
Im letzen Beitrag habe ich die Installation von MHVTL, einer virtuellen Tape Library Software für Linux, beschrieben.
Die Bedienung dieser Software erfolgt über das init-Skript /etc/init.d/mhvtl und die Kommandozeilenbefehle vtlcmd und mktape. Das ist zwar funktional aber nicht unbedingt intuitiv.
Über das MHVTL Forum wurde eine webbasierte Lösung MHVTL Webmanagement Console GUI vorgestellt. Bei der Software wurde auf Funktionalität und einfache Bedienung Wert gelegt, Sicherheitsaspekte spielten eine geringe Rolle. Über einen Einsatz der Lösung sollte also jeder selbst entscheiden. Für mein privates Testlab nutze ich es gern.
Was leistet MHVTL Webmanagement console GUI im Detail?
- start/stop MHVTL daemon
- div. Statusanzeigen
- Konfiguration der VTL(s)
- Bedienung der VTL(s)
- Konfiguration iSCSI target (für Remote-Zugriff auf VTL via LAN/iSCSI)
- Durchführung von Updates
Voraussetzungen
Installation der Pakete git-core, lsscsi, mtx, mt_st, sysstat, sg3_utils und tgt:
os01:~/mhvtl-gui # zypper se lsscsi Loading repository data... Reading installed packages... S | Name | Summary | Type --+--------+-------------------------------------+-------- i | lsscsi | List all SCSI devices in the system | package os01:~/mhvtl-gui # zypper se mtx Loading repository data... Reading installed packages... S | Name | Summary | Type --+----------------------+---------------------------------------------------------------------+-------- | libdmtx-devel | Software for reading and writing Data Matrix barcodes | package i | libdmtx0 | Software for reading and writing Data Matrix barcodes | package | mtx | A Program for Controlling the Robotic Mechanism in DDS Auto Loaders | package | texlive-delimtxt | Read and parse text tables | package | texlive-delimtxt-doc | Documentation for texlive-delimtxt | package os01:~/mhvtl-gui # zypper install mtx Loading repository data... Reading installed packages... Resolving package dependencies... The following NEW package is going to be installed: mtx 1 new package to install. Overall download size: 71.6 KiB. After the operation, additional 276.0 KiB will be used. Continue? [y/n/?] (y): y Retrieving package mtx-1.3.12-16.1.1.x86_64 (1/1), 71.6 KiB (276.0 KiB unpacked) Retrieving: mtx-1.3.12-16.1.1.x86_64.rpm .......................................................................................[done] (1/1) Installing: mtx-1.3.12-16.1.1 ............................................................................................[done] os01:~/mhvtl-gui # zypper se mt-st Loading repository data... Reading installed packages... No packages found. os01:~/mhvtl-gui # zypper se mt_st Loading repository data... Reading installed packages... S | Name | Summary | Type --+-------+-------------------------------------+-------- | mt_st | mt-st Controls Magnetic Tape Drives | package os01:~/mhvtl-gui # zypper install mt_st Loading repository data... Reading installed packages... Resolving package dependencies... The following NEW package is going to be installed: mt_st 1 new package to install. Overall download size: 27.6 KiB. After the operation, additional 69.2 KiB will be used. Continue? [y/n/?] (y): y Retrieving package mt_st-0.9b-114.1.1.x86_64 (1/1), 27.6 KiB ( 69.2 KiB unpacked) Retrieving: mt_st-0.9b-114.1.1.x86_64.rpm ......................................................................................[done] (1/1) Installing: mt_st-0.9b-114.1.1 ...........................................................................................[done] os01:~/mhvtl-gui # zypper se sysstat Loading repository data... Reading installed packages... S | Name | Summary | Type --+--------------+-------------------------------------------------+-------- | sysstat | Sar and Iostat Commands for Linux | package | sysstat-isag | Interactive System Activity Grapher for sysstat | package os01:~/mhvtl-gui # zypper install sysstat Loading repository data... Reading installed packages... Resolving package dependencies... The following NEW package is going to be installed: sysstat 1 new package to install. Overall download size: 246.7 KiB. After the operation, additional 996.0 KiB will be used. Continue? [y/n/?] (y): y Retrieving package sysstat-10.0.5-6.1.2.x86_64 (1/1), 246.7 KiB (996.0 KiB unpacked) Retrieving: sysstat-10.0.5-6.1.2.x86_64.rpm ....................................................................................[done] (1/1) Installing: sysstat-10.0.5-6.1.2 .........................................................................................[done] os01:~/mhvtl-gui # os01:~/mhvtl-gui # zypper se sg3_utils Loading repository data... Reading installed packages... S | Name | Summary | Type --+-----------------+----------------------------------------------------------+-------- i | sg3_utils | A collection of tools that send SCSI commands to devices | package | sg3_utils-devel | A collection of tools that send SCSI commands to devices | package os01:~/mhvtl-gui # zypper se git-core Loading repository data... Reading installed packages... S | Name | Summary | Type --+----------+----------------+-------- i | git-core | Core git tools | package os01:~/mhvtl-gui # rpm -qa|grep git-core git-core-1.8.1.4-1.1.1.x86_64 >> git >= 1.7.4.1 required fpr liveupdate os01:~/mhvtl-gui # zypper se tgt Loading repository data... Reading installed packages... S | Name | Summary | Type --+--------------------------------+-----------------------------------------------------------------------------+-------- | istgt | Userspace iSCSI Target | package | libQtGTL-devel | Header Files for LibQtGTL | package | libQtGTL0_1 | Qt4 Wrapper Classes and Widgets for OpenGTL | package i | libwebkitgtk-1_0-0 | Library for rendering web content, GTK+ Port | package | libwebkitgtk-1_0-0-32bit | Library for rendering web content, GTK+ Port | package i | libwebkitgtk-3_0-0 | Library for rendering web content, GTK+ Port | package | libwebkitgtk-3_0-0-32bit | Library for rendering web content, GTK+ Port | package | libwebkitgtk-devel | Library for rendering web content, GTK+ Port | package | libwebkitgtk2-lang | Languages for package libwebkit | package | libwebkitgtk3-devel | Library for rendering web content, GTK+ Port | package | libwebkitgtk3-lang | Languages for package libwebkit3 | package | nagios-plugins-mrtgtraf | Check incoming/outgoing transfer rates of a router | package | python-SpiceClientGtk | Gtk client and libraries for SPICE remote desktop servers - python-bindings | package | python-webkitgtk | Python bindings for WebKit/Gtk | package | python-webkitgtk-devel | Python bindings for WebKit/Gtk -- Development Files | package | tgt | Generic Linux target framework (tgt) | package | typelib-1_0-SpiceClientGtk-2_0 | Gtk client and libraries for SPICE remote desktop servers - gi-bindings | package | typelib-1_0-SpiceClientGtk-3_0 | Gtk client and libraries for SPICE remote desktop servers - gi-bindings | package os01:~/mhvtl-gui # zypper install tgt Loading repository data... Reading installed packages... Resolving package dependencies... The following NEW packages are going to be installed: perl-Config-General tgt 2 new packages to install. Overall download size: 232.7 KiB. After the operation, additional 657.1 KiB will be used. Continue? [y/n/?] (y): y Retrieving package perl-Config-General-2.50-10.1.1.x86_64 (1/2), 68.8 KiB (154.7 KiB unpacked) Retrieving: perl-Config-General-2.50-10.1.1.x86_64.rpm .........................................................................[done] Retrieving package tgt-1.0.28-6.1.1.x86_64 (2/2), 163.9 KiB (502.4 KiB unpacked) Retrieving: tgt-1.0.28-6.1.1.x86_64.rpm ........................................................................................[done] (1/2) Installing: perl-Config-General-2.50-10.1.1 ..............................................................................[done] (2/2) Installing: tgt-1.0.28-6.1.1 .............................................................................................[done]
Ausschalten von Sicherheitsfunktionen:
- deaktivieren von SE-Linux (via yast)
- Anpassung der sudo-Konfiguration, so dass vom Webserver aus Kommandos unter root-Berechtigungen gestartet wrden dürfen
Aus der sudo-Konfiguration entfernen:
Zeile „Defaults requiretty“ in /etc/sudoers
Der sudo-Konfiguration hinzufügen:
echo "wwwrun ALL=(ALL) NOPASSWD: ALL" >>/etc/sudoers
Download MHVTL Console/GUI via git Versionsverwaltung:
os01:~ # mkdir mhvtl-gui os01:~ # cd mhvtl-gui os01:~/mhvtl-gui # git init Initialized empty Git repository in /root/mhvtl-gui/.git/ os01:~/mhvtl-gui # git pull http://github.com/niadev67/mhvtl-gui.git remote: Counting objects: 2264, done. remote: Compressing objects: 100% (573/573), done. remote: Total 2264 (delta 1648), reused 2130 (delta 1514) Receiving objects: 100% (2264/2264), 834.76 KiB | 398 KiB/s, done. Resolving deltas: 100% (1648/1648), done. From http://github.com/niadev67/mhvtl-gui * branch HEAD -> FETCH_HEAD
Installation
Kopieren ins Webserver documentroot Verzeichnis:
os01:/srv/www/htdocs # cd /root os01:~ # pwd /root os01:~ # cp -r mhvtl-gui /srv/www/htdocs/
Konfiguration
Bei der openSUSE Installation wurde bereits das Pattern „Web/LAMP Server“ ausgewählt. Bei Bedarf muß noch der Webserver apache2 und die Programmiersprache PHP5 nachinstalliert werden.
Über yast > system > system services runlevel kann der automatische Start des Webservers eingestellt werden.
Nun noch die Apache2 Webserver Konfiguration ergänzen:
os01:~ # vi /etc/apache2/httpd.conf #MHVTL Alias /mhvtl "/srv/www/htdocs/mhvtl-gui" <Directory "/srv/www/htdocs/mhvtl-gui"> Options None AllowOverride None Order allow,deny Allow from all
Bedienung
Aufruf von http://localhost/mhvtl/ bzw. http://127.0.0.1/mhvtl/ im Browser (über Netzwerk ist der hostname bzw. die IP-Adresse des Servers einzugeben) und dann Anmeldung via Passwort mhvtl (Änderung über Datei /srv/www/htdocs/mhvtl-gui/go.php)
- Console: start/stop MHVTL daemon, Zustandsanzeige MHVTL und Linux
- Setup: Konfiguration der VTL(s) und der virt. Bänder
- Operator: Bedienung der VTL(s)
- iSCSI (tgt): Konfiguration iSCSI target
- Utility: Verschiedenes, u.a. Auflistung der konfigurierten Devices, Bearbeitung von Bändern, Liveupdate
iSCSI target
Die Einrichtung und Bedienung von iSCSI target auf der Shell wird im MHVTL Forum beschrieben.
Über MHVTL Webmanagement Console GUI lässt sich die iSCSI target Konfiguration auch bequem grafisch erledigen.
Zunächst aktiviert man iSCSI target. Mit Quickstart wird für jede VTL eine iSCSI target und für jedes Bandlaufwerk und jeden Controller eine iSCSI LUN erstellt. Zugriff wird jedem Host gewährt.
Natürlich lässt sich diese Konfiguration bei Bedarf anpassen.
Hier nochmals die Kontrolle via Shell:
os01:/ # 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 os01:/ # tgtadm --lld iscsi --op show --mode target Target 1: iqn.2011-04.com.nia:os01:mhvtl:stgt:1 System information: Driver: iscsi State: ready I_T nexus information: LUN information: LUN: 0 Type: controller SCSI ID: IET 00010000 SCSI SN: beaf10 Size: 0 MB, Block size: 1 Online: Yes Removable media: No Prevent removal: No Readonly: No Thin-provisioning: No Backing store type: null Backing store path: None Backing store flags: LUN: 1 Type: passthrough SCSI ID: IET 00010001 SCSI SN: beaf11 Size: 0 MB, Block size: 1 Online: Yes Removable media: No Prevent removal: No Readonly: No Thin-provisioning: No Backing store type: sg Backing store path: /dev/sg10 Backing store flags: LUN: 2 Type: passthrough SCSI ID: IET 00010002 SCSI SN: beaf12 Size: 0 MB, Block size: 1 Online: Yes Removable media: No Prevent removal: No Readonly: No Thin-provisioning: No Backing store type: sg Backing store path: /dev/sg2 Backing store flags: LUN: 3 Type: passthrough SCSI ID: IET 00010003 SCSI SN: beaf13 Size: 0 MB, Block size: 1 Online: Yes Removable media: No Prevent removal: No Readonly: No Thin-provisioning: No Backing store type: sg Backing store path: /dev/sg3 Backing store flags: LUN: 4 Type: passthrough SCSI ID: IET 00010004 SCSI SN: beaf14 Size: 0 MB, Block size: 1 Online: Yes Removable media: No Prevent removal: No Readonly: No Thin-provisioning: No Backing store type: sg Backing store path: /dev/sg4 Backing store flags: LUN: 5 Type: passthrough SCSI ID: IET 00010005 SCSI SN: beaf15 Size: 0 MB, Block size: 1 Online: Yes Removable media: No Prevent removal: No Readonly: No Thin-provisioning: No Backing store type: sg Backing store path: /dev/sg5 Backing store flags: Account information: ACL information: ALL Target 2: iqn.2011-04.com.nia:os01:mhvtl:stgt:2 System information: Driver: iscsi State: ready I_T nexus information: LUN information: LUN: 0 Type: controller SCSI ID: IET 00020000 SCSI SN: beaf20 Size: 0 MB, Block size: 1 Online: Yes Removable media: No Prevent removal: No Readonly: No Thin-provisioning: No Backing store type: null Backing store path: None Backing store flags: LUN: 1 Type: passthrough SCSI ID: IET 00020001 SCSI SN: beaf21 Size: 0 MB, Block size: 1 Online: Yes Removable media: No Prevent removal: No Readonly: No Thin-provisioning: No Backing store type: sg Backing store path: /dev/sg11 Backing store flags: LUN: 2 Type: passthrough SCSI ID: IET 00020002 SCSI SN: beaf22 Size: 0 MB, Block size: 1 Online: Yes Removable media: No Prevent removal: No Readonly: No Thin-provisioning: No Backing store type: sg Backing store path: /dev/sg6 Backing store flags: LUN: 3 Type: passthrough SCSI ID: IET 00020003 SCSI SN: beaf23 Size: 0 MB, Block size: 1 Online: Yes Removable media: No Prevent removal: No Readonly: No Thin-provisioning: No Backing store type: sg Backing store path: /dev/sg7 Backing store flags: LUN: 4 Type: passthrough SCSI ID: IET 00020004 SCSI SN: beaf24 Size: 0 MB, Block size: 1 Online: Yes Removable media: No Prevent removal: No Readonly: No Thin-provisioning: No Backing store type: sg Backing store path: /dev/sg8 Backing store flags: LUN: 5 Type: passthrough SCSI ID: IET 00020005 SCSI SN: beaf25 Size: 0 MB, Block size: 1 Online: Yes Removable media: No Prevent removal: No Readonly: No Thin-provisioning: No Backing store type: sg Backing store path: /dev/sg9 Backing store flags: Account information: ACL information: ALL
Die LUN 0 ist jeweils der VTL Controller, die restlichen LUNs sind die Bandlaufwerke.
Fazit
Mittels MHVTL Webmanagement Console GUI lässt sich MHVTL einfach konfigurieren und bedienen.
Die Konfiguration von iSCSI target wird zum Kinderspiel. Damit lassen sich eingerichtete VTLs nun auch über LAN ansprechen. Das ist vor allem praktisch wenn die Backupsoftware nicht unter Linux läuft, man aber eine VTL benötigt.
In Test- und Laborumgebungen kann man ggf. über die sicherheitsbedenkliche Konfiguration hinwegsehen. ansonsten kann MHVTL inkl. iSCSI target auch sicher via Shell konfiguriert werden.