开源虚拟磁带库MHVTL 安装on RHEL6.2

server端使用RHEL6.2

client使用windows 2008

一、安装MHVTL

1、安装需要的rpm包

yum -y install zlib-devel mtx mt-st lsscsi kernel-devel kernel-headers sg3_utils gcc

2、安装mhvtl,
编译内核

[root@MHVTL mhvtl]# cd mhvtl-0.18/

[root@MHVTL mhvtl-0.18]# cd kernel/

[root@MHVTL kernel]#

[root@MHVTL kernel]# make

make -C /lib/modules/2.6.32-220.el6.x86_64/build SUBDIRS=/mhvtl/mhvtl-0.18/kernel modules

make[1]: Entering directory `/usr/src/kernels/2.6.32-220.el6.x86_64'

CC [M] /mhvtl/mhvtl-0.18/kernel/mhvtl.o

/mhvtl/mhvtl-0.18/kernel/mhvtl.c:316: warning: initialization from incompatible pointer type

Building modules, stage 2.

MODPOST 1 modules

CC /mhvtl/mhvtl-0.18/kernel/mhvtl.mod.o

LD [M] /mhvtl/mhvtl-0.18/kernel/mhvtl.ko.unsigned

NO SIGN [M] /mhvtl/mhvtl-0.18/kernel/mhvtl.ko

make[1]: Leaving directory `/usr/src/kernels/2.6.32-220.el6.x86_64'

[root@MHVTL kernel]#

[root@MHVTL kernel]# make install

install -o root -g root -m 644 mhvtl.ko /lib/modules/`uname -r`/kernel/drivers/scsi/; \

depmod -ae; \

if [ -f "/etc/modprobe.d/unsupported-modules" ]; then \

sed -e 's/^allow_unsupported_modules 0/allow_unsupported_modules 1/' /etc/modprobe.d/unsupported-modules > /etc/new; \

/bin/mv /etc/new /etc/modprobe.d/unsupported-modules; \

fi

[root@MHVTL kernel]#

[root@MHVTL kernel]# cd ..

[root@MHVTL mhvtl-0.18]# make

make -C usr USR=vtl GROUP=vtl MHVTL_HOME_PATH=/opt/mhvtl MHVTL_CONFIG_PATH=/etc/mhvtl

make[1]: Entering directory `/mhvtl/mhvtl-0.18/usr'

cc -Wall -Wshadow -g -O2 -D_LARGEFILE64_SOURCE -I../kernel -DMHVTL_VERSION=\"0.18.9\" -DMHVTL_DEBUG -DUSR=\"vtl\" -DMHVTL_HOME_PATH=\"/opt/mhvtl\" -DMHVTL_CONFIG_PATH=\"/etc/mhvtl\" -c -fpic vtllib.c

cc -Wall -Wshadow -g -O2 -D_LARGEFILE64_SOURCE -I../kernel -DMHVTL_VERSION=\"0.18.9\" -DMHVTL_DEBUG -DUSR=\"vtl\" -DMHVTL_HOME_PATH=\"/opt/mhvtl\" -DMHVTL_CONFIG_PATH=\"/etc/mhvtl\" -c -fpic spc.c

cc -shared -o libvtlscsi.so vtllib.o spc.o

cc -Wall -Wshadow -g -O2 -D_LARGEFILE64_SOURCE -I../kernel -DMHVTL_VERSION=\"0.18.9\" -DMHVTL_DEBUG -DUSR=\"vtl\" -DMHVTL_HOME_PATH=\"/opt/mhvtl\" -DMHVTL_CONFIG_PATH=\"/etc/mhvtl\" -c -o vtltape.o vtltape.c

cc -Wall -Wshadow -g -O2 -D_LARGEFILE64_SOURCE -I../kernel -DMHVTL_VERSION=\"0.18.9\" -DMHVTL_DEBUG -DUSR=\"vtl\" -DMHVTL_HOME_PATH=\"/opt/mhvtl\" -DMHVTL_CONFIG_PATH=\"/etc/mhvtl\" -c -o vtlcart.o vtlcart.c

cc -Wall -Wshadow -g -O2 -D_LARGEFILE64_SOURCE -I../kernel -DMHVTL_VERSION=\"0.18.9\" -DMHVTL_DEBUG -DUSR=\"vtl\" -DMHVTL_HOME_PATH=\"/opt/mhvtl\" -DMHVTL_CONFIG_PATH=\"/etc/mhvtl\" -c -o q.o q.c

cc -Wall -Wshadow -g -O2 -D_LARGEFILE64_SOURCE -I../kernel -DMHVTL_VERSION=\"0.18.9\" -DMHVTL_DEBUG -DUSR=\"vtl\" -DMHVTL_HOME_PATH=\"/opt/mhvtl\" -DMHVTL_CONFIG_PATH=\"/etc/mhvtl\" -o vtltape vtltape.o vtlcart.o q.o -lz -L. -lvtlscsi

cc -Wall -Wshadow -g -O2 -D_LARGEFILE64_SOURCE -I../kernel -DMHVTL_VERSION=\"0.18.9\" -DMHVTL_DEBUG -DUSR=\"vtl\" -DMHVTL_HOME_PATH=\"/opt/mhvtl\" -DMHVTL_CONFIG_PATH=\"/etc/mhvtl\" -c -o dump_tape.o dump_tape.c

cc -Wall -Wshadow -g -O2 -D_LARGEFILE64_SOURCE -I../kernel -DMHVTL_VERSION=\"0.18.9\" -DMHVTL_DEBUG -DUSR=\"vtl\" -DMHVTL_HOME_PATH=\"/opt/mhvtl\" -DMHVTL_CONFIG_PATH=\"/etc/mhvtl\" -o dump_tape dump_tape.o vtlcart.o -L. -lvtlscsi

cc -Wall -Wshadow -g -O2 -D_LARGEFILE64_SOURCE -I../kernel -DMHVTL_VERSION=\"0.18.9\" -DMHVTL_DEBUG -DUSR=\"vtl\" -DMHVTL_HOME_PATH=\"/opt/mhvtl\" -DMHVTL_CONFIG_PATH=\"/etc/mhvtl\" -c -o vtlcmd.o vtlcmd.c

cc -Wall -Wshadow -g -O2 -D_LARGEFILE64_SOURCE -I../kernel -DMHVTL_VERSION=\"0.18.9\" -DMHVTL_DEBUG -DUSR=\"vtl\" -DMHVTL_HOME_PATH=\"/opt/mhvtl\" -DMHVTL_CONFIG_PATH=\"/etc/mhvtl\" -o vtlcmd q.o vtlcmd.o

cc -Wall -Wshadow -g -O2 -D_LARGEFILE64_SOURCE -I../kernel -DMHVTL_VERSION=\"0.18.9\" -DMHVTL_DEBUG -DUSR=\"vtl\" -DMHVTL_HOME_PATH=\"/opt/mhvtl\" -DMHVTL_CONFIG_PATH=\"/etc/mhvtl\" -c -o dump_messageQ.o dump_messageQ.c

cc -Wall -Wshadow -g -O2 -D_LARGEFILE64_SOURCE -I../kernel -DMHVTL_VERSION=\"0.18.9\" -DMHVTL_DEBUG -DUSR=\"vtl\" -DMHVTL_HOME_PATH=\"/opt/mhvtl\" -DMHVTL_CONFIG_PATH=\"/etc/mhvtl\" -o dump_messageQ dump_messageQ.o q.o

cc -Wall -Wshadow -g -O2 -D_LARGEFILE64_SOURCE -I../kernel -DMHVTL_VERSION=\"0.18.9\" -DMHVTL_DEBUG -DUSR=\"vtl\" -DMHVTL_HOME_PATH=\"/opt/mhvtl\" -DMHVTL_CONFIG_PATH=\"/etc/mhvtl\" -c -o mktape.o mktape.c

cc -Wall -Wshadow -g -O2 -D_LARGEFILE64_SOURCE -I../kernel -DMHVTL_VERSION=\"0.18.9\" -DMHVTL_DEBUG -DUSR=\"vtl\" -DMHVTL_HOME_PATH=\"/opt/mhvtl\" -DMHVTL_CONFIG_PATH=\"/etc/mhvtl\" -o mktape mktape.o vtlcart.o -L. -lvtlscsi

cc -Wall -Wshadow -g -O2 -D_LARGEFILE64_SOURCE -I../kernel -DMHVTL_VERSION=\"0.18.9\" -DMHVTL_DEBUG -DUSR=\"vtl\" -DMHVTL_HOME_PATH=\"/opt/mhvtl\" -DMHVTL_CONFIG_PATH=\"/etc/mhvtl\" -c -o vtllibrary.o vtllibrary.c

cc -Wall -Wshadow -g -O2 -D_LARGEFILE64_SOURCE -I../kernel -DMHVTL_VERSION=\"0.18.9\" -DMHVTL_DEBUG -DUSR=\"vtl\" -DMHVTL_HOME_PATH=\"/opt/mhvtl\" -DMHVTL_CONFIG_PATH=\"/etc/mhvtl\" -o vtllibrary vtllibrary.o q.o -L. -lvtlscsi

sed -e s'/@HOME_PATH@/\/opt\/mhvtl/' make_vtl_media.in > make_vtl_media.1

sed -e s'/@CONF_PATH@/\/etc\/mhvtl/' make_vtl_media.1 > make_vtl_media

rm -f make_vtl_media.1

make[1]: Leaving directory `/mhvtl/mhvtl-0.18/usr'

make -C etc USR=vtl GROUP=vtl MHVTL_HOME_PATH=/opt/mhvtl MHVTL_CONFIG_PATH=/etc/mhvtl

make[1]: Entering directory `/mhvtl/mhvtl-0.18/etc'

make[1]: `mhvtl' is up to date.

make[1]: Leaving directory `/mhvtl/mhvtl-0.18/etc'

make -C scripts MHVTL_HOME_PATH=/opt/mhvtl MHVTL_CONFIG_PATH=/etc/mhvtl

make[1]: Entering directory `/mhvtl/mhvtl-0.18/scripts'

make[1]: `update_device.conf' is up to date.

make[1]: Leaving directory `/mhvtl/mhvtl-0.18/scripts'

[root@MHVTL mhvtl-0.18]#

[root@MHVTL mhvtl-0.18]# make install

make usr

make[1]: Entering directory `/mhvtl/mhvtl-0.18'

make -C usr USR=vtl GROUP=vtl MHVTL_HOME_PATH=/opt/mhvtl MHVTL_CONFIG_PATH=/etc/mhvtl

make[2]: Entering directory `/mhvtl/mhvtl-0.18/usr'

make[2]: Nothing to be done for `all'.

make[2]: Leaving directory `/mhvtl/mhvtl-0.18/usr'

make[1]: Leaving directory `/mhvtl/mhvtl-0.18'

make -C usr install /usr

make[1]: Entering directory `/mhvtl/mhvtl-0.18/usr'

install -d -m 755 /usr/lib64

install -o root -g bin -m 755 libvtlscsi.so /usr/lib64/

install -d -m 755 /usr/bin

install -o root -g vtl -m 4750 vtltape /usr/bin/

install -o root -g vtl -m 4750 vtllibrary /usr/bin/

install -o vtl -g vtl -m 750 vtlcmd /usr/bin/

install -o vtl -g vtl -m 750 mktape /usr/bin/

install -o vtl -g vtl -m 750 dump_tape /usr/bin/

install -m 700 build_library_config /usr/bin/

install -m 700 make_vtl_media /usr/bin/

install -m 700 make_vtl_devices /usr/bin/

make[1]: Warning: File `/usr' has modification time 2.3e+04 s in the future

make[1]: Nothing to be done for `/usr'.

make[1]: warning: Clock skew detected. Your build may be incomplete.

make[1]: Leaving directory `/mhvtl/mhvtl-0.18/usr'

make scripts

make[1]: Entering directory `/mhvtl/mhvtl-0.18'

make -C scripts MHVTL_HOME_PATH=/opt/mhvtl MHVTL_CONFIG_PATH=/etc/mhvtl

make[2]: Entering directory `/mhvtl/mhvtl-0.18/scripts'

make[2]: `update_device.conf' is up to date.

make[2]: Leaving directory `/mhvtl/mhvtl-0.18/scripts'

make[1]: Leaving directory `/mhvtl/mhvtl-0.18'

make -C scripts install

make[1]: Entering directory `/mhvtl/mhvtl-0.18/scripts'

install -m 700 update_device.conf /usr/bin/

make[1]: Leaving directory `/mhvtl/mhvtl-0.18/scripts'

make etc

make[1]: Entering directory `/mhvtl/mhvtl-0.18'

make -C etc USR=vtl GROUP=vtl MHVTL_HOME_PATH=/opt/mhvtl MHVTL_CONFIG_PATH=/etc/mhvtl

make[2]: Entering directory `/mhvtl/mhvtl-0.18/etc'

make[2]: `mhvtl' is up to date.

make[2]: Leaving directory `/mhvtl/mhvtl-0.18/etc'

make[1]: Leaving directory `/mhvtl/mhvtl-0.18'

make -C etc install

make[1]: Entering directory `/mhvtl/mhvtl-0.18/etc'

install -d -m 755 /etc

install -d -m 755 /etc/init.d

install -m 700 mhvtl /etc/init.d/

test ! -x /sbin/insserv || /sbin/insserv mhvtl

make[1]: Leaving directory `/mhvtl/mhvtl-0.18/etc'

启动mhvtl服务

[root@MHVTL mhvtl-0.18]# service mhvtl start

vtltape: version 0.18.9

vtltape: version 0.18.9

vtltape: version 0.18.9

vtltape: version 0.18.9

vtltape: version 0.18.9

vtltape: version 0.18.9

vtltape: version 0.18.9

vtltape: version 0.18.9

vtllibrary: version 0.18.9

vtllibrary process PID is 3733

vtllibrary: version 0.18.9

vtllibrary process PID is 3737


查看带库状态

[root@MHVTL mhvtl-0.18]# 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 /dev/sch0 /dev/sg10

[3:0:1:0] tape IBM ULT3580-TD5 /dev/st0 /dev/sg2

[3:0:2:0] tape IBM ULT3580-TD5 /dev/st1 /dev/sg3

[3:0:3:0] tape IBM ULT3580-TD4 /dev/st2 /dev/sg4

[3:0:4:0] tape IBM ULT3580-TD4 /dev/st3 /dev/sg5

[3:0:8:0] mediumx STK L80 /dev/sch1 /dev/sg11

[3:0:9:0] tape STK T10000B /dev/st4 /dev/sg6

[3:0:10:0] tape STK T10000B /dev/st5 /dev/sg7

[3:0:11:0] tape STK T10000B /dev/st6 /dev/sg8

[3:0:12:0] tape STK T10000B /dev/st7 /dev/sg9



3、设置开机自启动mhvtl服务

[root@MHVTL mhvtl]# chkconfig mhvtl on



查看生成的文件 和配置文件目录

clip_image001



查看配置文件,默认每个磁带大小500M

clip_image002



二、配置iscsi

安装scsi-target-utils 执行以下命令,RHEL6.2 DVD里面install scsi-target-utils 这个包

[root@MHVTL mhvtl]# yum -y install scsi-target-utils

启动服务,设置开机自启动

clip_image003



查看现有的target配置

clip_image004



新建一个target配置,并查看

clip_image005



查看现有的驱动器和机械臂

clip_image006



添加机械臂和驱动器到已创建的target

clip_image007



上一步报错tgtadm: invalid reques,解决方法:先关掉selinux

clip_image008



查看现有的target配置

[root@MHVTL kernel]# tgtadm --lld iscsi --op show --mode target

Target 1: iqn.2014-08.com.example:storage.vtl.liuzhen

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

Readonly: 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

Readonly: 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

Readonly: 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

Readonly: 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

Readonly: 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

Readonly: No

Backing store type: sg

Backing store path: /dev/sg5

Backing store flags:

Account information:

ACL information:

设置targets访问控制策略,允许同一网段访问

clip_image009



关掉防火墙

clip_image010



windows client端连接测试

clip_image011



进入设备管理器已经能够看到机械臂和驱动器

clip_image012





前面命令有好多在截图里,在这里列出
  tgtadm --lld iscsi --op show --mode target
  tgtadm --lld iscsi --op new --mode target --tid 1 -T iqn.2014-08.com.example:storage.vtl.liuzhen
  tgtadm --lld iscsi --op new --mode logicalunit --tid 1 --lun 1 --bstype=sg --device-type=pt -b /dev/sg10
  tgtadm --lld iscsi --op new --mode logicalunit --tid 1 --lun 2 --bstype=sg --device-type=pt -b /dev/sg2
  tgtadm --lld iscsi --op new --mode logicalunit --tid 1 --lun 3 --bstype=sg --device-type=pt -b /dev/sg3
  tgtadm --lld iscsi --op new --mode logicalunit --tid 1 --lun 4 --bstype=sg --device-type=pt -b /dev/sg4
  tgtadm --lld iscsi --op new --mode logicalunit --tid 1 --lun 5 --bstype=sg --device-type=pt -b /dev/sg5
  tgtadm --lld iscsi --op show --mode target
  tgtadm --lld iscsi --op bind --mode target --tid 1 -I 10.1.1.0/24

使用tgtadm可以配置targets,但只是临时生效,重启tgtd服务后,配置全部消失

如需永久生效,使用下面的方法修改配置文件,修改完后重启tgt服务即看到效果

[root@MHVTL tgt]# pwd

/etc/tgt

[root@MHVTL tgt]# tail targets.conf

 

 

       device-type pt

       bs-type sg

 

include /etc/tgt/mhvtl_targets.conf

 

       allow-in-use yes

[root@MHVTL tgt]#

[root@MHVTL tgt]# cat /etc/tgt/mhvtl_targets.conf

backing-store /dev/sg10

backing-store /dev/sg2

backing-store /dev/sg3

backing-store /dev/sg4

backing-store /dev/sg5

 

查看target状态   ,下面命令和 tgtadm --lld iscsi --op show --mode target 功能基本一样

 

[root@MHVTL tgt]# tgt-admin  --show

Target 1: iqn.2014-08.com.mhvtl75.nbusyd.com.liuzhen:mhvtl.target1

    System information:

        Driver: iscsi

        State: ready

    I_T nexus information:

        I_T nexus: 1

            Initiator: iqn.1991-05.com.microsoft:win-opi7pesls6t

            Connection: 1

                IP Address: 10.1.1.10

    LUN information:

        LUN: 0

            Type: controller

            SCSI ID: IET     00010000

            SCSI SN: beaf10

            Size: 0 MB, Block size: 1

            Online: Yes

            Removable media: No

            Readonly: 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

            Readonly: 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

            Readonly: 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

            Readonly: 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

            Readonly: 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

            Readonly: No

            Backing store type: sg

            Backing store path: /dev/sg5

            Backing store flags:

    Account information:

    ACL information:

        ALL

 配置完成。

 此次只是做了简单的连接使用测试,使用的是0.18版本,目前已经有1.5版本,还有很多细节需要完善,以后再一一测试。




来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/27771627/viewspace-1260644/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/27771627/viewspace-1260644/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值