Installation Quadstor VTL auf SLES 11 SP2

QUADStor VTL

Vor kurzem erklärte ich das Thema VTL und erwähnte dabei QUADStor VTL, eine Open Source VTL Software (GPL v2) vom Hersteller QUADStor aus Bangalore/Indien. Heute möchte ich die Installation, Konfiguration und Bedienung demonstrieren.

Voraussetzungen

QUADStor VTL benötigt eine nicht gemountete Platte bzw. LVM-Volume mit mindestens 4GB Größe.

Nach der Installation von SLES 11 SP2 wird zunächst geprüft ob alle notwendigen Pakete vorhanden sind.

sles01:~ # rpm -qa apache2
apache2-2.2.12-1.28.1
sles01:~ # rpm -qa gcc
gcc-4.3-62.198
sles01:~ # rpm -qa perl
perl-5.10.0-64.55.1
sles01:~ # rpm -qa kernel-default-devel
kernel-default-devel-3.0.13-0.27.1
sles01:~ # rpm -qa sg3_utils
sg3_utils-1.31-1.11.14

Der Apache2 Webserver ist zu starten.

yast > system > system services (run level) > apache2 > enable

Dann sind alle QUADStor VTL Pakete für SLES 11 SP2 herunterzuladen.

Installation

Nun sind die beiden QUADStor rpm-Dateien zu installieren.

sles01:~ # cd quadstor_vtl/
sles01:~/quadstor_vtl # ls -l
total 7580
-rw-r--r-- 1 root root     437 Jul 15 15:54 ReleaseNotes.txt
-rw-r--r-- 1 root root 7326357 Jul 15 15:56 quadstor-vtl-core-2.2.7-sles11sp2.x86_64.rpm
-rw-r--r-- 1 root root  412328 Jul 15 15:56 quadstor-vtl-itf-2.2.7-sles11sp2.x86_64.rpm
sles01:~/quadstor_vtl # rpm -ivh quadstor-vtl-core-2.2.7-sles11sp2.x86_64.rpm
Preparing...                ########################################### [100%]
   1:quadstor-vtl-core      ########################################### [100%]
Performing post install. Please wait...
sles01:~/quadstor_vtl # rpm -ivh quadstor-vtl-itf-2.2.7-sles11sp2.x86_64.rpm
Preparing...                ########################################### [100%]
   1:quadstor-vtl-itf       ########################################### [100%]
Building required kernel modules
Running /quadstor/bin/builditf
rm -rf *.o *.ko .*.cmd *.mod.c .tmp_versions Module.symvers .*.o.d Module.* rm *.unsigned modules.order
cp /quadstor/lib/modules/corelib.o /quadstor/src/export
make -C /lib/modules/3.0.13-0.27-default/build SUBDIRS=/quadstor/src/export modules
make[1]: Entering directory `/usr/src/linux-3.0.13-0.27-obj/x86_64/default'
make -C ../../../linux-3.0.13-0.27 O=/usr/src/linux-3.0.13-0.27-obj/x86_64/default/. modules
  CC [M]  /quadstor/src/export/ldev_linux.o
  CC [M]  /quadstor/src/export/devq.o
  CC [M]  /quadstor/src/export/core_linux.o
  LD [M]  /quadstor/src/export/vtlcore.o
  LD [M]  /quadstor/src/export/ldev.o
  Building modules, stage 2.
  MODPOST 2 modules
WARNING: could not find /quadstor/src/export/.corelib.o.cmd for /quadstor/src/export/corelib.o
  CC      /quadstor/src/export/ldev.mod.o
  LD [M]  /quadstor/src/export/ldev.ko
  CC      /quadstor/src/export/vtlcore.mod.o
  LD [M]  /quadstor/src/export/vtlcore.ko
make[1]: Leaving directory `/usr/src/linux-3.0.13-0.27-obj/x86_64/default'
rm -f *.o *.ko iscsit.mod.c .*.o.cmd .*.ko.cmd Module.symvers .*unsigned* modules.order *.unsigned Module.markers
rm -rf .tmp_versions
make -C /lib/modules/3.0.13-0.27-default/build SUBDIRS=/quadstor/src/target-mode/iscsi/kernel modules
make[1]: Entering directory `/usr/src/linux-3.0.13-0.27-obj/x86_64/default'
make -C ../../../linux-3.0.13-0.27 O=/usr/src/linux-3.0.13-0.27-obj/x86_64/default/. modules
  CC [M]  /quadstor/src/target-mode/iscsi/kernel/tio.o
  CC [M]  /quadstor/src/target-mode/iscsi/kernel/iscsi.o
  CC [M]  /quadstor/src/target-mode/iscsi/kernel/nthread.o
  CC [M]  /quadstor/src/target-mode/iscsi/kernel/config.o
  CC [M]  /quadstor/src/target-mode/iscsi/kernel/digest.o
  CC [M]  /quadstor/src/target-mode/iscsi/kernel/conn.o
  CC [M]  /quadstor/src/target-mode/iscsi/kernel/session.o
  CC [M]  /quadstor/src/target-mode/iscsi/kernel/target.o
  CC [M]  /quadstor/src/target-mode/iscsi/kernel/event.o
  CC [M]  /quadstor/src/target-mode/iscsi/kernel/param.o
  CC [M]  /quadstor/src/target-mode/iscsi/kernel/scdefs.o
  CC [M]  /quadstor/src/target-mode/iscsi/kernel/seq_list.o
  LD [M]  /quadstor/src/target-mode/iscsi/kernel/iscsit.o
  Building modules, stage 2.
  MODPOST 1 modules
  CC      /quadstor/src/target-mode/iscsi/kernel/iscsit.mod.o
  LD [M]  /quadstor/src/target-mode/iscsi/kernel/iscsit.ko
make[1]: Leaving directory `/usr/src/linux-3.0.13-0.27-obj/x86_64/default'
strip --strip-debug *.ko
rm -f *.o ietd ietadm
cc -DLINUX -O2 -fno-inline -Wall -Wstrict-prototypes -g -I../include -I. -D_GNU_SOURCE    -c -o ietd.o ietd.c
cc -DLINUX -O2 -fno-inline -Wall -Wstrict-prototypes -g -I../include -I. -D_GNU_SOURCE    -c -o iscsid.o iscsid.c
cc -DLINUX -O2 -fno-inline -Wall -Wstrict-prototypes -g -I../include -I. -D_GNU_SOURCE    -c -o conn.o conn.c
cc -DLINUX -O2 -fno-inline -Wall -Wstrict-prototypes -g -I../include -I. -D_GNU_SOURCE    -c -o session.o session.c
cc -DLINUX -O2 -fno-inline -Wall -Wstrict-prototypes -g -I../include -I. -D_GNU_SOURCE    -c -o target.o target.c
cc -DLINUX -O2 -fno-inline -Wall -Wstrict-prototypes -g -I../include -I. -D_GNU_SOURCE    -c -o message.o message.c
cc -DLINUX -O2 -fno-inline -Wall -Wstrict-prototypes -g -I../include -I. -D_GNU_SOURCE    -c -o ctldev.o ctldev.c
cc -DLINUX -O2 -fno-inline -Wall -Wstrict-prototypes -g -I../include -I. -D_GNU_SOURCE    -c -o log.o log.c
cc -DLINUX -O2 -fno-inline -Wall -Wstrict-prototypes -g -I../include -I. -D_GNU_SOURCE    -c -o chap.o chap.c
cc -DLINUX -O2 -fno-inline -Wall -Wstrict-prototypes -g -I../include -I. -D_GNU_SOURCE    -c -o event.o event.c
cc -DLINUX -O2 -fno-inline -Wall -Wstrict-prototypes -g -I../include -I. -D_GNU_SOURCE    -c -o param.o param.c
cc -DLINUX -O2 -fno-inline -Wall -Wstrict-prototypes -g -I../include -I. -D_GNU_SOURCE    -c -o plain.o plain.c
cc -DLINUX -O2 -fno-inline -Wall -Wstrict-prototypes -g -I../include -I. -D_GNU_SOURCE    -c -o isns.o isns.c
cc -DLINUX -O2 -fno-inline -Wall -Wstrict-prototypes -g -I../include -I. -D_GNU_SOURCE    -c -o md5.o md5.c
cc -DLINUX -O2 -fno-inline -Wall -Wstrict-prototypes -g -I../include -I. -D_GNU_SOURCE    -c -o sha1.o sha1.c
cc ietd.o iscsid.o conn.o session.o target.o message.o ctldev.o log.o chap.o event.o param.o plain.o isns.o md5.o sha1.o -o ietd
cc -DLINUX -O2 -fno-inline -Wall -Wstrict-prototypes -g -I../include -I. -D_GNU_SOURCE    -c -o ietadm.o ietadm.c
cc ietadm.o param.o -o ietadm
rm -f *.o *.ko qla2xxx.mod.c .*.*.cmd .*.ko.cmd Module.symvers .*.o.d *.ko.unsigned modules.order
rm -rf .tmp_versions
make -C /lib/modules/3.0.13-0.27-default/build SUBDIRS=/quadstor/src/target-mode/fc/qla2xxx modules
make[1]: Entering directory `/usr/src/linux-3.0.13-0.27-obj/x86_64/default'
make -C ../../../linux-3.0.13-0.27 O=/usr/src/linux-3.0.13-0.27-obj/x86_64/default/. modules
  CC [M]  /quadstor/src/target-mode/fc/qla2xxx/qla_os.o
  CC [M]  /quadstor/src/target-mode/fc/qla2xxx/qla_init.o
  CC [M]  /quadstor/src/target-mode/fc/qla2xxx/qla_mbx.o
  CC [M]  /quadstor/src/target-mode/fc/qla2xxx/qla_iocb.o
  CC [M]  /quadstor/src/target-mode/fc/qla2xxx/qla_isr.o
  CC [M]  /quadstor/src/target-mode/fc/qla2xxx/qla_gs.o
  CC [M]  /quadstor/src/target-mode/fc/qla2xxx/qla_dbg.o
  CC [M]  /quadstor/src/target-mode/fc/qla2xxx/qla_sup.o
  CC [M]  /quadstor/src/target-mode/fc/qla2xxx/qla_attr.o
  CC [M]  /quadstor/src/target-mode/fc/qla2xxx/qla_mid.o
  CC [M]  /quadstor/src/target-mode/fc/qla2xxx/qla_dfs.o
  CC [M]  /quadstor/src/target-mode/fc/qla2xxx/qla_bsg.o
  CC [M]  /quadstor/src/target-mode/fc/qla2xxx/qla_nx.o
  CC [M]  /quadstor/src/target-mode/fc/qla2xxx/qla_target.o
  CC [M]  /quadstor/src/target-mode/fc/qla2xxx/qla_sc.o
  CC [M]  /quadstor/src/target-mode/fc/qla2xxx/fcbridge.o
  CC [M]  /quadstor/src/target-mode/fc/qla2xxx/fcq.o
  LD [M]  /quadstor/src/target-mode/fc/qla2xxx/qla2xxx.o
  Building modules, stage 2.
  MODPOST 1 modules
  CC      /quadstor/src/target-mode/fc/qla2xxx/qla2xxx.mod.o
  LD [M]  /quadstor/src/target-mode/fc/qla2xxx/qla2xxx.ko
make[1]: Leaving directory `/usr/src/linux-3.0.13-0.27-obj/x86_64/default'
strip --strip-debug *.ko
strip --strip-unneeded *.ko
rm -f *.o *.ko ib_srpt.mod.c .*.*.cmd .*.ko.cmd Module.symvers .*.o.d *.ko.unsigned modules.order
rm -rf .tmp_versions
make -C /lib/modules/3.0.13-0.27-default/build SUBDIRS=/quadstor/src/target-mode/fc/srpt modules
make[1]: Entering directory `/usr/src/linux-3.0.13-0.27-obj/x86_64/default'
make -C ../../../linux-3.0.13-0.27 O=/usr/src/linux-3.0.13-0.27-obj/x86_64/default/. modules
  CC [M]  /quadstor/src/target-mode/fc/srpt/fcbridge.o
  CC [M]  /quadstor/src/target-mode/fc/srpt/fcq.o
  CC [M]  /quadstor/src/target-mode/fc/srpt/qla_sc.o
  CC [M]  /quadstor/src/target-mode/fc/srpt/ibsrpt.o
  LD [M]  /quadstor/src/target-mode/fc/srpt/ib_srpt.o
  Building modules, stage 2.
  MODPOST 1 modules
  CC      /quadstor/src/target-mode/fc/srpt/ib_srpt.mod.o
  LD [M]  /quadstor/src/target-mode/fc/srpt/ib_srpt.ko
make[1]: Leaving directory `/usr/src/linux-3.0.13-0.27-obj/x86_64/default'
strip --strip-debug *.ko
Moving original qla2xxx driver to /lib/modules/3.0.13-0.27-default/kernel/drivers/scsi/qla2xxx/qla2xxx.ko.qssave
Recreating initrd image

Kernel image:   /boot/vmlinuz-3.0.13-0.27-default
Initrd image:   /boot/initrd-3.0.13-0.27-default
Root device:    /dev/sda2 (mounted on / as ext3)
Resume device:  /dev/sda1
Kernel Modules: hwmon thermal_sys thermal processor fan scsi_mod scsi_transport_spi mptbase mptscsih mptspi libata ata_piix ata_generic vmxnet3 vmw_pvscsi vmxnet scsi_dh scsi_dh_rdac scsi_dh_hp_sw scsi_dh_alua scsi_dh_emc mbcache jbd ext3 usb-common usbcore ohci-hcd uhci-hcd ehci-hcd hid usbhid crc-t10dif sd_mod
Features:       acpi block usb resume.userspace resume.kernel
Bootsplash:     SLES (1024x768)
34658 blocks
>>> Network: auto
>>> Calling mkinitrd -B -k /boot/vmlinuz-3.0.13-0.27-default -i /boot/initrd-3.0.13-0.27-default-kdump -f 'kdump network'  -s ''
Regenerating kdump initrd ...

Kernel image:   /boot/vmlinuz-3.0.13-0.27-default
Initrd image:   /boot/initrd-3.0.13-0.27-default-kdump
Root device:    /dev/sda2 (mounted on / as ext3)
Resume device:  /dev/sda1
Kernel Modules: hwmon thermal_sys thermal processor fan scsi_mod scsi_transport_spi mptbase mptscsih mptspi libata ata_piix ata_generic vmxnet3 vmw_pvscsi vmxnet scsi_dh scsi_dh_rdac scsi_dh_hp_sw scsi_dh_alua scsi_dh_emc mbcache jbd ext3 usb-common usbcore ohci-hcd uhci-hcd ehci-hcd hid usbhid af_packet e1000 nls_utf8 crc-t10dif sd_mod
Features:       acpi block usb network resume.userspace resume.kernel kdump
48642 blocks
Don't refresh the bootloader. You may have to do  that manually!
sles01:~/quadstor_vtl #

Grundkonfiguration

Nun QUADStor VTL starten

sles01:~/quadstor_vtl # /sbin/chkconfig --del quadstor
quadstor                  0:off  1:off  2:off  3:off  4:off  5:off  6:off
sles01:~/quadstor_vtl # /etc/init.d/quadstor start
Starting quadstor: Starting iSCSI target service:

Für den automatischen Start:

yast > system > system services (run level) > quadstor > enable

Hat man SELinux aktiv ist noch folgendes auszuführen:

/usr/sbin/setsebool -P httpd_enable_cgi 1
/usr/sbin/semanage permissive -a httpd_t

Das Absichern des Webinterface ist hier beschrieben.

Bedienung

Aufruf von http://localhost bzw. http://127.0.0.1 im Browser (über Netzwerk ist der hostname bzw. die IP-Adresse des Servers einzugeben)

QUADStor VTL

QUADStor VTL, Screenshot: Otmar Meier, unter CC-BY-SA-3.0 (http://creativecommons.org/licenses/by-sa/3.0/)

Zunächst wird ein neuer Pool erzeugt:

QUADStor VTL - Pool erzeugen

QUADStor VTL – Pool erzeugen, Screenshot: Otmar Meier, unter CC-BY-SA-3.0 (http://creativecommons.org/licenses/by-sa/3.0/)

QUADStor VTL - Pool konfiguriert

QUADStor VTL – Pool konfiguriert, Screenshot: Otmar Meier, unter CC-BY-SA-3.0 (http://creativecommons.org/licenses/by-sa/3.0/)

Jetzt kann Platttenplatz dem pool zugewiesen werden. Physical storage > add …

QUADStor VTL - add phys. storage

QUADStor VTL – add phys. storage, Screenshot: Otmar Meier, unter CC-BY-SA-3.0 (http://creativecommons.org/licenses/by-sa/3.0/)

QUADStor VTL - add phys. storage to pool

QUADStor VTL – add phys. storage to pool, Screenshot: Otmar Meier, unter CC-BY-SA-3.0 (http://creativecommons.org/licenses/by-sa/3.0/)

QUADStor VTL - phys. storage dem pool zugewiesen

QUADStor VTL – phys. storage dem pool zugewiesen, Screenshot: Otmar Meier, unter CC-BY-SA-3.0 (http://creativecommons.org/licenses/by-sa/3.0/)

Nun zu Virtual Libraries wechseln und add VTL drücken:

QUADStor VTL - add VTL

QUADStor VTL – add VTL, Screenshot: Otmar Meier, unter CC-BY-SA-3.0 (http://creativecommons.org/licenses/by-sa/3.0/)

Namen der VTL eingeben, Modell/Bandlaufwerke/Anzahl Laufwerke/Schächte angeben und submit drücken…

QUADStor VTL - VTL konfiguriert

QUADStor VTL – VTL konfiguriert, Screenshot: Otmar Meier, unter CC-BY-SA-3.0 (http://creativecommons.org/licenses/by-sa/3.0/)

dann add vtl drücken…

QUADStor VTL - VTL Konfiguration abschliessen

QUADStor VTL – VTL Konfiguration abschliessen, Screenshot: Otmar Meier, unter CC-BY-SA-3.0 (http://creativecommons.org/licenses/by-sa/3.0/)

Die VTL ist nun konfiguriert.

sles01:~ # 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
[2:0:0:0]    cd/dvd  NECVMWar VMware IDE CDR10 1.00  /dev/sr0   /dev/sg2
[4:0:0:0]    mediumx IBM      03584L32         6.24  /dev/sch0  /dev/sg7
[5:0:0:0]    tape    IBM      ULT3580-TD5      B170  /dev/st0   /dev/sg3
[6:0:0:0]    tape    IBM      ULT3580-TD5      B170  /dev/st1   /dev/sg4
[7:0:0:0]    tape    IBM      ULT3580-TD5      B170  /dev/st2   /dev/sg5
[8:0:0:0]    tape    IBM      ULT3580-TD5      B170  /dev/st3   /dev/sg6

Mit add vcartridge können nun virtuelle Bänder erzeugt werden.

Achtung! Der Barcode-Label muß 6 Zeichen betragen.

QUADStor VTL - Bänder erstellen

QUADStor VTL – Bänder erstellen, Screenshot: Otmar Meier, unter CC-BY-SA-3.0 (http://creativecommons.org/licenses/by-sa/3.0/)

QUADStor VTL - Bänder angelegt

QUADStor VTL – Bänder angelegt, Screenshot: Otmar Meier, unter CC-BY-SA-3.0 (http://creativecommons.org/licenses/by-sa/3.0/)

Die VTL Controller und Laufwerke sind bereits via iSCSI target freigegeben.

QUADStor VTL - iSCSI target controller

QUADStor VTL – iSCSI target controller, Screenshot: Otmar Meier, unter CC-BY-SA-3.0 (http://creativecommons.org/licenses/by-sa/3.0/)

QUADStor VTL - iSCSI target drive

QUADStor VTL – iSCSI target drive, Screenshot: Otmar Meier, unter CC-BY-SA-3.0 (http://creativecommons.org/licenses/by-sa/3.0/)

Fazit

QUADStor VTL ist eine interessante Alternative zu MHVTL. Es ist zwar noch nicht lange am Markt, wirkt aber durchdacht und ist auch für den produktiven Einsatz vorgesehen. Kommerzieller Support ist auf Anfrage verfügbar. Die Anzahl verschiedener emulierter Tape Libraries und Drives ist ordentlich, von Adic (Quantum) bis IBM und von SDLT bis LTO ist alles vertreten. Sicherheitstechnisch hat es gegenüber MHVTL Vorteile (wenn man die MHVTL Console/GUI benutzt). Zudem unterstützt QUADStor neben iSCSI den Zugriff via Fibre Channel und Infiniband. Es steht neben Linux auch für FreeBSD zur Verfügung. Gegenüber MHVTL fällt die Konfiguration und Installation leicht.

Laut Hersteller QUADStor sind noch weitere Features geplant:

  • Emulation weiterer Libraries/drives
  • Verschlüsselung der virt. Bänder
  • Deduplizierung
  • VTL Replikation

Hier gibt es eine Dokumentation/FAQ und ein Supportforum.

Wer denn neuesten Kram braucht kann natürlich auf github zugreifen und selbst kompilieren…

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