La instalación se hará en cuatro fases:
1.- Obtener las fuentes del núcleo de Linux
2.- Compilar un núcleo con el proyecto SCST
3.- Compilar proyecto mhvtl
4.- Configurar dispositivos para mhvtl

El escenario:
Se ha elegido la instalación sobre un Sistema Operativo Centos versión 5.4 de 64 bits. En nuestro AA Labs hemos elegido una máquina virtual hospedada en un VMWARE Server sobre OpenSuse 11.2.
1.- Obtener las fuentes del núcleo de Linux
Documentación:
Wiki CentOS: http://wiki.centos.org/HowTos/I_need_the_Kernel_Source
Procedimiento:
Instalar entorno de compilación y todos los paquetes necesitados para las cuatro fases junto con todas sus dependencias:
# yum install make gcc hmaccalc openssl openssl-devel zlib-devel lsscsi mt-st mtx rpm-build redhat-rpm-config unifdef kernel-headers subversion
Crear usuario vtl y asignar contraseña:
#
useradd vtl
#passwd vtl
Crear directorios /opt/mhvtl y /etc/mhvtl y se hace propietario a nuevo usuario:
#
mkdir /opt/mhvtl
#chown -Rf vtl:vtl /opt/mhvtl#
mkdir /etc/mhvtl
#chown -Rf vtl:vtl /etc/mhvtl
Loguearse como usuario vtl:
#su – vtl
Conocer la versión del núcleo Linux que corre en tu sistema:
$ uname -a
Linux centos.ferras.local 2.6.18-194.3.1.el5 #1 SMP Thu May 13 13:08:30 EDT 2010 x86_64 x86_64 x86_64 GNU/Linux
Desempaquetar y preparar los archivos Fuentes:
[vtl@centos ~]$ cd
[vtl@centos ~]$ mkdir -p rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS}
[vtl@centos ~]$ echo '%_topdir %(echo $HOME)/rpmbuild' > .rpmmacros
Descargar el paquete de Fuentes que corresponde a la versión de Kernel de tu CentOS/RHEL desde aquí e instalarlo:
$ rpm -i http://mirror.centos.org/centos/5/updates/SRPMS/kernel-2.6.18-194.3.1.el5.src.rpm$ cd ~/rpmbuild/SPECS
$ rpmbuild -bp --target=`uname -m` kernel-2.6.spec
Comprobar que el árbol de fuentes del kernel esté en /home/vtl/rpmbuild/BUILD/:
$ ls ~/rpmbuild/BUILD/
kernel-2.6.18[vtl@centos SPECS]$ cp -Rf /home/vtl/rpmbuild/BUILD/kernel-2.6.18/linux-2.6.18.x86_64 /usr/src/kernels/
Copiarlos como root a /usr/src/kernels:
#cp -Rf /home/vtl/rpmbuild/BUILD/kernel-2.6.18/linux-2.6.18.x86_64 /usr/src/kernels/
2.- Compilar un núcleo con el proyecto SCST
Documentación:
Howto ISCSI-SCST: http://iscsi-scst.sourceforge.net/iscsi-scst-howto.txt
Procedimiento:
Como usuario root descargar proyecto scst con subversion y añadir los parches indicados:
# cd /root
# svn co https://scst.svn.sourceforge.net/svnroot/scst/trunk scst
# cd /usr/src/kernels/linux-2.6.18.x86_64
# patch -p1 < /root/scst/iscsi-scst/kernel/patches/put_page_callback-2.6.18.1.patch
# patch -p1 < /root/scst/scst/kernel/scst_exec_req_fifo-2.6.18.patch
Compilar la imagen del kernel:
# make clean
#make && make modules
#make modules_install && make install
Comprobar que ha creado entrada el el grub de nuevo kernel vmlinuz-2.6.18-prep:
# cat /boot/grub/menu.lst
(…)
title CentOS (2.6.18-prep)
root (hd0,0)
kernel /vmlinuz-2.6.18-prep ro root=/dev/VolGroup00/LogVol00
initrd /initrd-2.6.18-prep.img
Reiniciar sistema con nuevo kernel y comprobarlo:
# uname -a
Linux centos.ferras.local 2.6.18-prep #1 SMP Thu May 20 21:13:48 CEST 2010 x86_64 x86_64 x86_64 GNU/Linux
Crear e instalar módulo scst:
#cd /root/scst
#make scst scst_install iscsi iscsi_install scstadm scstadm_install
3.- Compilar proyecto mhvtl
Documentación:
Proyecto Linux Virtual Tape Library
Procedimiento:
Descargar proyecto mhvl en formato tgz desde aquí, se ha elegido la versión de desarrollo mhvtl-2010-05-08 (0.18-7):
# wget http://sites.google.com/site/linuxvtl2/mhvtl-2010-05-08.tgz?attredirects=0
Descomprimir y compilar:
# tar xzvf mhvtl-2010-05-08.tgz
# cd mhvtl-0.18/
# make distclean
# cd kernel
# make
# make install
# cd ..
#make
# make install
4.- Configurar dispositivos para mhvtl
Documentación:
Procedimiento:
En el foro de nimsa se ha publicado un script para la creación automática de los ficheros de configuración iscsi-scstd.conf y scst.conf. De esta forma crea una configuración particular de librerías y drives emulados por iSCSI:
[root@centos ~]# cat make_scst_config.sh
#!/bin/ksh
# Customize your own
IQN=iqn.2010-05.es.ferras
# Build /etc/iscsi-scstd.conf
lsscsi -g | grep -e tape -e mediumx| awk '{print $1}'| cut -d "[" -f2| cut -d "]" -f1| while read each; do
echo "Target $IQN:$each" >>/tmp/iscsi-scstd.tmp
done
if [ -f /etc/iscsi-scstd.conf ]; then
cp -f /etc/iscsi-scstd.conf /etc/iscsi-scstd.conf_`date +%m%d%y%H%M%S`
echo Created backup of existing /etc/iscsi-scstd.conf as /etc/iscsi-scstd.conf_`date +%m%d%y%H%M%S`
fi
cat /tmp/iscsi-scstd.tmp >/etc/iscsi-scstd.conf
echo Created new /etc/iscsi-scstd.conf
rm -f /tmp/iscsi-scstd.tmp
echo ——-
# Build /etc/scst.conf
echo "[HANDLER changer]" >/tmp/scst.tmp
lsscsi -g| grep mediumx | awk '{print $1}'| cut -d "[" -f2| cut -d "]" -f1| while read each1; do
echo DEVICE $each1 >>/tmp/scst.tmp
done
echo "[HANDLER tape]" >>/tmp/scst.tmp
lsscsi -g| grep tape | awk '{print $1}'| cut -d "[" -f2| cut -d "]" -f1 | while read each2; do
echo DEVICE $each2 >>/tmp/scst.tmp
done
lsscsi -g | grep -e tape -e mediumx|awk '{print $1}'| cut -d "[" -f2| cut -d "]" -f1| while read each3; do
echo "[GROUP Default_$IQN:$each3]" >>/tmp/scst.tmp
done
lsscsi -g | grep -e tape -e mediumx| awk '{print $1}'| cut -d "[" -f2| cut -d "]" -f1| while read each4; do
echo "[ASSIGNMENT Default_$IQN:$each4]" >>/tmp/scst.tmp
echo "DEVICE $each4,0" >>/tmp/scst.tmp
done
if [ -f /etc/scst.conf ]; then
cp -f /etc/scst.conf /etc/scst.conf_`date +%m%d%y%H%M%S`
echo Created backup of existing /etc/scst.conf as /etc/scst.conf_`date +%m%d%y%H%M%S`
fi
cat /tmp/scst.tmp >/etc/scst.conf
echo Created new /etc/scst.conf
rm -f /tmp/scst.tmp
echo — Done —
Ejecutarlo:
# sh make_scst_config.sh
Arrancar mhvtl:
/etc/init.d/mhvtl start
Cargar los módulos scst:
modprobe scst
modprobe scst_tape
modprobe scst_changer
Si hemos llegado hasta aquí sin errores deberíamos ver los nuevos dispositivos SCSI del sistema:
# lsscsi
[0:0:0:0] disk VMware, VMware Virtual S 1.0 /dev/sda
[1:0:0:0] mediumx SPECTRA PYTHON 550V -
[1:0:1:0] tape IBM ULT3580-TD4 550V /dev/st0
[1:0:2:0] tape IBM ULT3580-TD4 550V /dev/st1
[1:0:3:0] tape IBM ULT3580-TD4 550V /dev/st2
[1:0:4:0] tape IBM ULT3580-TD4 550V /dev/st3
[1:1:0:0] mediumx SPECTRA PYTHON 550V -
[1:1:1:0] tape IBM ULT3580-TD4 550V /dev/st4
[1:1:2:0] tape IBM ULT3580-TD4 550V /dev/st5
[1:1:3:0] tape IBM ULT3580-TD4 550V /dev/st6
[1:1:4:0] tape IBM ULT3580-TD4 550V /dev/st7
# cat /proc/scsi_tgt/scsi_tgt
Device (host:ch:id:lun or name) Device handler
0:0:0:0 dev_disk
1:0:1:0 dev_tape
1:0:2:0 dev_tape
1:0:3:0 dev_tape
1:0:4:0 dev_tape
1:1:1:0 dev_tape
1:1:2:0 dev_tape
1:1:3:0 dev_tape
1:1:4:0 dev_tape
1:0:0:0 dev_changer
1:1:0:0 dev_changer
Una comprobación de que los targets iSCSI están correctamente levantados puede ser la siguiente: Desde un Windows XP con el initiator iSCSI instalado se hace un scan a la IP del servidor mhvtl. Se deberán detectar todos los dispositivos iSCSI:
Y desde el Administrador de dispositivos:

The VTL Open Source sobre iSCSI by Almacenamiento Abierto, unless otherwise expressly stated, is licensed under a Creative Commons Attribution 3.0 Unported License.



[...] de una VTL sobre fibra óptica. Su implementación está basada en los trabajos ya publicados sobre mhVTL y SCST. Siguiendo con la configuración SAN del post anterior, hemos conseguido emular una [...]
[...] Introducción al proyecto SCST sobre el cual está basado el proyecto Linux Virtual Tape Library. VTL 2 – Creando una librerÃa de cintas virtual Open Source –> Una guÃa para implementar paso a paso y de forma secilla una VTL basada en el proyecto [...]
[...] Desde la bajada del precio de los discos, las soluciones de copias de seguridad y recuperación de desastres en los Centros de Datos estan cambiado. La forma tradicional para mantener copias de los datos de nuestros Data Centers ha sido durante décadas sobre cintas magnéticas. Los discos, en la actualidad por precio, mejoras en consumo eléctrico y aumento descomunal de su capacidad, auguran la muerte del soporte magnético que tantas décadas han puesto nuestros datos a buen recaudo. Paralelamente durante estos años se ha desarrollado un software que garantiza la eficacia y el éxito de las copias, automatizando dichas tareas de forma desantendida. La calidad del software de gestión automática de backup y recuperación de desastres se ha convertido en un amortiguador de migración de soportes. Con la reciente aparición de soluciones tipo VDR/SRM en los entornos virtualizados de VMWARE nos podemos hacer una idea del futuro próximo de las fórmulas de backup y contingencia que encontraremos. En la actualidad los grandes proveedores de almacenamiento nos proponen un modelo hÃbrido que incluyen una de las soluciones software de administración automática de copias de seguridad tales como Netbackup, Legato o TSM pero sustituyendo las clásicas librerÃa de cintas por homólogos virtulizados llamados VTL (Virtual Tape Library), que a su vez pueden convivir con las clásicas proporcionando mejoras sustanciales en las ventanas de copias. Estas librerÃas de cintas virtuales son servidores que disponen de targets de fibra óptica, iscsi (o cualquier protocolo de almacenamiento ej. SAS) emulando a nivel software librerÃas y lectores de cintas estándares y dialogan como tales con los administradores software de copias de seguridad, con la diferencia que la información es guardada en discos. De esta forma se consigue desde la administración en los sistemas de copias de seguridad tradicional que la migración de soporte, magnético a disco, no cambie, disfrutando de las virtudes de este software clásico de administración junto con otras de las excelencias que tiene esta migración, el incremento de velocidad de la copia y restauración. Éste modelo hÃbrido en una solución ideal, implementándose desde hace tiempo con éxito en muchos centros de datos, ejemplo de ello son las VTLs de FalconStore . Desde Almacenamiento Abierto, vamos a dedicar una sección a estos entornos virtualizados, aprendiendo como implementar una solución Open Source e integración con un software clásico de backup. [...]
[...] continuación se muestra como la vtl Open Source creada en el capÃtulo anterior se integra en un software tÃpico de administración de copias de seguridad en cintas como Symantec [...]