過去ページ VTL180516

Virtual Tape Library 仮想テープ装置
mhVTL 本家様 https://sites.google.com/site/linuxvtl2/

関連VTL/iSCSI

導入

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/SPECS/mhvtl-utils.spec.orig        2016-03-10 12:05:22.000000000 +0900
+++ rpmbuild/SPECS/mhvtl-utils.spec     2018-05-16 16:13:34.117413781 +0900
@@ -132,7 +132,7 @@
 * Sat Jan 12 2013 Mark Harvey <markh794@gmail.com> - 1.4-5
 - Updated to release 1.4-5 (2013-01-12).
 
-* Thu Aug 13 2012 Mark Harvey <markh794@gmail.com> - 1.4-4
+* Mon Aug 13 2012 Mark Harvey <markh794@gmail.com> - 1.4-4
 - Updated to release 1.4-4 (2012-09-13).
 
 * Wed Aug  8 2012 Mark Harvey <markh794@gmail.com> - 1.4-1

また、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枚

  • mhvtl.conf
    テープライブラリの設定ファイル場所と既定のメディアサイズを定義
  • device.conf
    テープライブラリ/オートローダーのデバイス(チェンジャー)とテープドライブの定義
  • library_contents.10
  • library_contents.30
    device.confの「Library: 10」と「Library: 30」のそれぞれのドライブID,picker,MAP,slotを定義している
    slot にはラベルを定義することができて、このラベルは「/opt/mhvtl」でディレクトリ名になる。

ここでは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 ~]#

トップ   編集 添付 複製 名前変更     ヘルプ   最終更新のRSS
Last-modified: 2018-05-23 (水) 05:21:03 (5d)