项目需要用到磁带库,先装个虚拟磁带库mhvtl来模拟下。
1 下载源码
从网站https://sites.google.com/site/linuxvtl2/home#mhvtl-download下载最新版的mhvtl,我下的是最新的mhvtl-2013-10-20.tgz版本。
2 确保内核版本的一致性
确保你的内核开发包和你系统正在运行的内核是一个版本的,因为mhvtl有会编译它编写的一个内核模块,如果内核开发包和你系统正在运行的内核不是一个版本的话,在安装mhvtl中的内核模块的时候是加载不到内核中的,虽然可以通过源码中的include/linux/vermagic.h中的VERMAGIC_STRING修改成与当前PC内核uname -r一致即可,不过不推荐使用。可以再网上找和你系统正在运行的内核开发包kernel-devel就可以了。
3 解压缩源代码
tar xvfz mhvtl-2013-10-20.tgz
4 安装四个包lsscsi,sg3_utils,liblzo2-dev,mtx直接用apt-get install命令安装就可以了
apt-get lsscsi sg3_utils liblzo2-dev mtx
没有装liblzo2-dev包在编译mhvtl时会提示找不到文件 lzo/lzoconf.h
5 创建mhvtl的组和用户
/usr/sbin/groupadd --system vtl
/usr/sbin/useradd --system -c "Vitrual Tape Library" -d /opt/vtl -g vtl -m vtl
6 编译内核模块
cd mhvtl-2013-10-20/kernel
make
make install
7 编译用户空间代码
cd mhvtl-2013-10-20
make
make install
8 修改/opt/mhvtl和/etc/mhvtl目录拥有者,不修改启动不了mhvtl
chown -R vtl:vtl /opt/mhvtl
chown -R vtl:vtl /etc/mhvtl
/etc/mhvtl为配置文件路径,/opt/mhvtl为虚拟带库存储路径
9 启动mhvtl的守护进程
/etc/init.d/mhvtl start
10 查看虚拟带库状态信息
lsscsi -g
可以看到我们的虚拟设备被挂在HBA#6上,其中mediumx类型的设备为机械臂,本例中的/dev/sg13,/dev/sg14。
运行命令mtx -f /dev/sg13 status