過去ページ VTL180516
Virtual Tape Library 仮想テープ装置
mhVTL 本家様 https://sites.google.com/site/linuxvtl2/
CentOS7向けのyumパッケージは用意されていないようでした。
mhVTLはユーザスペースで稼働するアプリとkernelに組み込みモジュールが必要なようで、
ここではユーザスペースなアプリは rpm パッケージを構築して導入、組み込みモジュールはソースから作ることにした。
rpmパッケージでアプリの管理を高めたかったので
取得したソースファイルは「mhvtl-2016-03-10.tgz」です。
まずは、ユーザスペース部分のrpmパッケージを作ります。lzo-develとzlib-develが必要
[root@vtl ~]# mkdir -p ~/rpmbuild/{SOURCES,SPECS}
[root@vtl ~]# gzip -cd mhvtl-2016-03-10.tgz | tar xvf - mhvtl-1.5/mhvtl-utils.spec --strip=1
[root@vtl ~]#
[root@vtl ~]# chown root:root mhvtl-utils.spec && mv mhvtl-utils.spec rpmbuild/SPECS/
[root@vtl ~]# mv mhvtl-2016-03-10.tgz rpmbuild/SOURCES/
specファイルに日付が間違っているのがあったので修正
|
また、rpmbuildの途中でユーザvtlが必要となった。この辺はspecファイルの調整で修正可能なのだろうが、一旦ユーザvtlを作って進めた
[root@vtl ~]# groupadd -r vtl
[root@vtl ~]# useradd -r -g vtl -c "VTL daemon" -d /opt/mhvtl -s /bin/bash vtl
[root@vtl ~]# rpmbuild -ba rpmbuild/SPECS/mhvtl-utils.spec
完成したrpmパッケージをインストールします
[root@vtl ~]# ls -l rpmbuild/RPMS/x86_64/mhvtl-utils-1.5-4.el7.centos.x86_64.rpm
-rw-r--r--. 1 root root 481048 5月 16 16:18 rpmbuild/RPMS/x86_64/mhvtl-utils-1.5-4.el7.centos.x86_64.rpm
[root@vtl ~]#
[root@vtl ~]# yum localinstall rpmbuild/RPMS/x86_64/mhvtl-utils-1.5-4.el7.centos.x86_64.rpm
ここでまは vtlのユーザ領域のアプリです。次にvtlのカーネルモジュールをインストールします。
結局ソースコードからインストールするので、rpmパッケージの作成は不要かと思いますが、vtlのアンインストール時を考慮してパッケージを用意した次第です
kernel-develが必要
[root@vtl ~]# gzip -cd rpmbuild/SOURCES/mhvtl-2016-03-10.tgz | tar xf -
[root@vtl ~]# cd mhvtl-1.5/kernel/
[root@vtl kernel]# make
[root@vtl kernel]# make install
これで導入は完了.
現時点では vtl は起動しておりません.
またインストール直後は設定ファイルが用意されておらず、初回起動で設定ファイルが/etc/mhvtlに作られます。
留意
初期設定ファイルは /opt/mhvtl をテープ領域として定義されているので、この領域の所有者を
vtl稼働ユーザに変更する必要があります。そうでないとエラーで止まります。
vtlはinit系のスクリプトファイルで用意されいて
[root@vtl ~]# chown vtl:vtl /opt/mhvtl
[root@vtl ~]# chkconfig --add mhvtl
[root@vtl ~]# /etc/init.d/mhvtl start
にて稼働します。
初回起動で用意される設定ファイルは下記の4枚
ここでは8巻オートローダな仮想テープ装置を用意してみる。
一旦 vtlのデーモンを停止して、作られた仮想テープを削除します
[root@vtl ~]# /etc/init.d/mhvtl stop
[root@vtl ~]# rm -rf /opt/mhvtl/*
そして、まずは「device.conf」を修正します。
留意空行は必須です
[root@vtl ~]# vi /etc/mhvtl/device.conf
VERSION: 5
Library: 1 CHANNEL: 00 TARGET: 00 LUN: 00
Vendor identification: HPE
Product identification: HPE StoreEver 1/8 G2
Unit serial number: XYZZY_A
NAA: 10:22:33:44:ab:00:00:00
Home directory: /opt/mhvtl
PERSIST: False
Backoff: 400
# fifo: /var/tmp/mhvtl
Drive: 2 CHANNEL: 00 TARGET: 01 LUN: 00
Library ID: 01 Slot: 01
Vendor identification: HPE
Product identification: Ultrium 6-SCSI
Unit serial number: XYZZY_A1
NAA: 10:22:33:44:ab:00:01:00
Compression: factor 1 enabled 1
Compression type: lzo
Backoff: 400
# fifo: /var/tmp/mhvtl
[root@vtl ~]#
次に「Library: 1」としたので拡張子「1」でテープ装置の定義ファイルを作ります。
ここでは8巻オートローダーなので
1ドライブ
1ピッカー
8スロット
の情報を定義した「library_contents.1」を用意した
[root@vtl ~]# cat /etc/mhvtl/library_contents.1
Drive 1:
Picker 1:
Slot 1: EM0001L6
Slot 2: EM0002L6
Slot 3: EM0003L6
Slot 4: EM0004L6
Slot 5: EM0005L6
Slot 6: EM0006L6
Slot 7: EM0007L6
Slot 8: CLN101L6
[root@vtl ~]#
vtlを起動させます
[root@vtl ~]# /etc/init.d/mhvtl start
vtllibrary process PID is 30017
[root@vtl ~]#
デバイスらを lsscsi で確認すると下記のようになる。
[root@vtl ~]# lsscsi -g
[0:0:0:0] disk Msft Virtual Disk 1.0 /dev/sda /dev/sg0
[0:0:0:1] cd/dvd Msft Virtual DVD-ROM 1.0 /dev/sr0 /dev/sg1
[1:0:0:0] mediumx HPE HPE StoreEver 1/ 0105 /dev/sch0 /dev/sg3
[1:0:1:0] tape HPE Ultrium 6-SCSI 0105 /dev/st0 /dev/sg2
[root@vtl ~]#
オートローダーのチェンジャーが「scsi generic device」で「/dev/sg3」として認識され、
テープドライブはデバイス「/dev/st0」として認識されている。
mtxコマンドを使ってオートローダーの状況を確認してみる
[root@vtl ~]# mtx -f /dev/sg3 status
Storage Changer /dev/sg3:1 Drives, 8 Slots ( 0 Import/Export )
Data Transfer Element 0:Empty
Storage Element 1:Full :VolumeTag=EM0001L6
Storage Element 2:Full :VolumeTag=EM0002L6
Storage Element 3:Full :VolumeTag=EM0003L6
Storage Element 4:Full :VolumeTag=EM0004L6
Storage Element 5:Full :VolumeTag=EM0005L6
Storage Element 6:Full :VolumeTag=EM0006L6
Storage Element 7:Full :VolumeTag=EM0007L6
Storage Element 8:Full :VolumeTag=CLN101L6
[root@vtl ~]#
VolumeTagは、テープに張られたバーコードって感じでしょうか。
autoloaderと同じような操作をしてみます。
まずテープをドライブに差し込みます。
[root@vtl ~]# mtx -f /dev/sg3 load 7 0
Loading media from Storage Element 7 into drive 0...done
[root@vtl ~]#
[root@vtl ~]# mtx -f /dev/sg3 status
Storage Changer /dev/sg3:1 Drives, 8 Slots ( 0 Import/Export )
Data Transfer Element 0:Full (Storage Element 7 Loaded):VolumeTag = EM0007L6
Storage Element 1:Full :VolumeTag=EM0001L6
Storage Element 2:Full :VolumeTag=EM0002L6
Storage Element 3:Full :VolumeTag=EM0003L6
Storage Element 4:Full :VolumeTag=EM0004L6
Storage Element 5:Full :VolumeTag=EM0005L6
Storage Element 6:Full :VolumeTag=EM0006L6
Storage Element 7:Empty
Storage Element 8:Full :VolumeTag=CLN101L6
[root@vtl ~]#
テープがドライブに差し込まれました。そして tar コマンドでテープに書き込ませて見ます
[root@vtl ~]# cd /etc
[root@vtl etc]# tar cf /dev/nst0 .
[root@vtl etc]# mt -f /dev/nst0 status
SCSI 2 tape drive:
File number=1, block number=0, partition=0.
Tape block size 0 bytes. Density code 0x5a (no translation).
Soft error count since last status=0
General status bits on (81010000):
EOF ONLINE IM_REP_EN
[root@vtl etc]#
巻き戻して、下記のようになる。「File number」が移っていることが分かる
[root@vtl ~]# mt -f /dev/nst0 rewind
[root@vtl ~]# mt -f /dev/nst0 status
SCSI 2 tape drive:
File number=0, block number=0, partition=0.
Tape block size 0 bytes. Density code 0x5a (no translation).
Soft error count since last status=0
General status bits on (41010000):
BOT ONLINE IM_REP_EN
[root@vtl ~]#