エンタープライズな環境であったりすると、
バックアップも高価なテープライブラリを使ったりするわけですが、
その検証をやりたくても、個人ではなかなか出来ませんでした。
と思っていたのですが、MHVTLという仮想テープライブラリ(https://sites.google.com/site/linuxvtl2/)がオープンソースで公開されていることを知り、早速試してみました。
環境
仮想テープライブラリ側(MHVTL+iSCSIターゲット) Amazon Linux AMI 2012.09.1 (ami-5d7dfa5c) マイクロインスタンス
バックアップホスト (ARCserve16.5*+iSCSIイニシエータ) Windows2008 R2 マイクロインスタンス
*バックアップソフトはなんでも良かったんですが、
体験版のダウンロードが簡単だったのでARCserveにしました。
(バックアップソフトは、お好みに合わせてNetbackup、BackupExec,DataProtector,Netvault等使えば良いかと思います
以下の4までの手順はどのバックアップソフトでも共通です)
1.仮想テープライブラリ側にてパッケージインストール&ダウンロード
Amazon Linuxのリポジトリでは何故かscsi-target-utilsが用意されていないので、
CentOS6のリポジトリからscsi-target-utilsを引っ張ってきます。
また、yum -y updateでカーネルのアップデートも行うので、
一旦リブートします。
packages.sh
#!/bin/bash yum -y update cat > /etc/yum.repos.d/CentOS-Base.repo <<'EOF' [centbase] name=CentOS-6 - Base mirrorlist=http://mirrorlist.centos.org/?release=6&arch=x86_64&repo=os enabled=0 gpgcheck=1 gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6 EOF curl https://sites.google.com/site/linuxvtl2/mhvtl-2013-01-31.tgz -O -L curl https://sites.google.com/site/linuxvtl2/mhvtl-utils-1.4-6.x86_64.rpm -O -L yum -y install --enablerepo=centbase scsi-target-utils zlib-devel sg3_utils lsscsi mt-st mtx lzo lzo-devel make gcc kernel-devel reboot
$sudo sh ./packages.sh
*CentOS6(64bit)であれば、Amazon Linuxでなくてもyum -y installの部分のパッケージ名は同じでいけると思います。
2.仮想テープライブラリ側にてmhvtlのmake&install
RedHat/CentOS/OracleLinuxであれば、elrepoというリポジトリを使えば、
mhvtl(カーネルモジュール)をyum経由でインストールできるのですが、
このリポジストリはカーネルバージョンに依存するため、
RedHat/CentOS/OracleLinuxと異なるカーネルバージョンであるAmazon Linuxでは、
mhvtlのサイトからtgzを落としてきてmakeする必要があります。
install_mhvtl.sh
#!/bin/bash rpm -ivh mhvtl-utils-1.4-6.x86_64.rpm tar zxvf mhvtl-2013-01-31.tgz cd mhvtl-1.4 cd kernel make make install /etc/init.d/mhvtl start chkconfig mhvtl on
$sudo sh ./install_mhvtl.sh
このタイミングでAmazon Linux側では、仮想テープライブラリが使用できる状態になっています。
[ec2-user@ip-10-0-0-69 ~]$ lsscsi -g [0:0:0:0] mediumx STK L700 0104 /dev/sch0 /dev/sg8 [0:0:1:0] tape IBM ULT3580-TD5 0104 /dev/st0 /dev/sg0 [0:0:2:0] tape IBM ULT3580-TD5 0104 /dev/st1 /dev/sg1 [0:0:3:0] tape IBM ULT3580-TD4 0104 /dev/st2 /dev/sg2 [0:0:4:0] tape IBM ULT3580-TD4 0104 /dev/st3 /dev/sg3 [0:0:8:0] mediumx STK L80 0104 /dev/sch1 /dev/sg9 [0:0:9:0] tape STK T10000B 0104 /dev/st4 /dev/sg4 [0:0:10:0] tape STK T10000B 0104 /dev/st5 /dev/sg5 [0:0:11:0] tape STK T10000B 0104 /dev/st6 /dev/sg6 [0:0:12:0] tape STK T10000B 0104 /dev/st7 /dev/sg7
mhvtl(1.4)ではデフォルトで二つのライブラリ(L700とL80)にそれぞれ、4つのテープドライブがぶら下がった状態
で設定されるようです。
この後、Amazon Linux側で認識している仮想テープライブラリをiSCSI経由で公開します。
3.仮想テープライブラリ側にてiSCSIターゲットの設定
scsi_target.sh
#!/bin/bash cat > /etc/tgt/targets.conf <<'EOF' <target iqn.2013-03.org.jpoug:vtl1-changer> <backing-store /dev/sg8> device-type pt bs-type sg lun 1 </backing-store> <backing-store /dev/sg0> device-type pt bs-type sg lun 2 </backing-store> <backing-store /dev/sg1> device-type pt bs-type sg lun 3 </backing-store> <backing-store /dev/sg2> device-type pt bs-type sg lun 4 </backing-store> <backing-store /dev/sg3> device-type pt bs-type sg lun 5 </backing-store> </target> <target iqn.2013-03.org.jpoug:vtl2-changer> <backing-store /dev/sg9> device-type pt bs-type sg lun 1 </backing-store> <backing-store /dev/sg4> device-type pt bs-type sg lun 2 </backing-store> <backing-store /dev/sg5> device-type pt bs-type sg lun 3 </backing-store> <backing-store /dev/sg6> device-type pt bs-type sg lun 4 </backing-store> <backing-store /dev/sg7> device-type pt bs-type sg lun 5 </backing-store> </target> EOF /etc/init.d/tgtd start chkconfig tgtd on
$sudo sh ./scsi_target.sh
scsiターゲットの状態は、tgt-admin --showで確認できます。
$sudo tgt-admin --show
[ec2-user@ip-10-0-0-69 ~]$ sudo tgt-admin --show Target 1: iqn.2013-03.org.jpoug:vtl1-changer 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 Prevent removal: 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 Prevent removal: No Readonly: No Backing store type: sg Backing store path: /dev/sg8 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 Prevent removal: No Readonly: No Backing store type: sg Backing store path: /dev/sg0 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 Prevent removal: No Readonly: No Backing store type: sg Backing store path: /dev/sg1 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 Prevent removal: No Readonly: No Backing store type: sg Backing store path: /dev/sg2 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 Prevent removal: No Readonly: No Backing store type: sg Backing store path: /dev/sg3 Backing store flags: Account information: ACL information: ALL Target 2: iqn.2013-03.org.jpoug:vtl2-changer System information: Driver: iscsi State: ready I_T nexus information: LUN information: LUN: 0 Type: controller SCSI ID: IET 00020000 SCSI SN: beaf20 Size: 0 MB, Block size: 1 Online: Yes Removable media: No Prevent removal: No Readonly: No Backing store type: null Backing store path: None Backing store flags: LUN: 1 Type: passthrough SCSI ID: IET 00020001 SCSI SN: beaf21 Size: 0 MB, Block size: 1 Online: Yes Removable media: No Prevent removal: No Readonly: No Backing store type: sg Backing store path: /dev/sg9 Backing store flags: LUN: 2 Type: passthrough SCSI ID: IET 00020002 SCSI SN: beaf22 Size: 0 MB, Block size: 1 Online: Yes Removable media: No Prevent removal: No Readonly: No Backing store type: sg Backing store path: /dev/sg4 Backing store flags: LUN: 3 Type: passthrough SCSI ID: IET 00020003 SCSI SN: beaf23 Size: 0 MB, Block size: 1 Online: Yes Removable media: No Prevent removal: No Readonly: No Backing store type: sg Backing store path: /dev/sg5 Backing store flags: LUN: 4 Type: passthrough SCSI ID: IET 00020004 SCSI SN: beaf24 Size: 0 MB, Block size: 1 Online: Yes Removable media: No Prevent removal: No Readonly: No Backing store type: sg Backing store path: /dev/sg6 Backing store flags: LUN: 5 Type: passthrough SCSI ID: IET 00020005 SCSI SN: beaf25 Size: 0 MB, Block size: 1 Online: Yes Removable media: No Prevent removal: No Readonly: No Backing store type: sg Backing store path: /dev/sg7 Backing store flags: Account information: ACL information: ALL
以上で、仮想テープライブラリ側の設定は完了です。
4.iSCSIイニシエータの設定
スタート→管理ツール→iSCSIイニシエータ→Microsoft iSCSIサービスが〜と表示されるので、はいを押す→クイック接続のターゲットに仮想テープライブラリのIPを入力しクイック接続をクリックする。→iqn.xxxx-が2つ検出されるので、それぞれ接続をクリックした後、完了をクリックする
この段階でデバイスマネージャ(OS)からはこのように見えます。
5.Windows2008R2側でバックアップソフト&仮想CD/DVDドライブソフトのインストール
ARCserveの体験版はisoで公開されていたので、isoをマウント出来るソフトが必要です。
今回は、WinCDEmu(http://wincdemu.sysprogs.org/)を使いました。
ARCserveの体験版は以下のURLからダウンロード出来ます。
https://www.arcserve.com/us/register/forms/ca-arcserve-backup.aspx
*日本のサイトからもダウンロードできるみたいなんですが、日本のサイトの方がアンケート項目多くて面倒なので、
USのサイトにしています。
6.ARCserveのインストール
5でダウンロードしたisoをWinCDEmuでマウントします。
インストールはウィザードにしたがってできますので、こまかい手順は割愛します。
7.ARCserveからデバイスの認識状態を確認
スタート→すべてのプログラム→CA→マネージャ を選択するとARCserveのマネージャが起動します。
ナビゲーションバー→管理→デバイスにてデバイスの認識状態が確認できます
あとは、通常のテープライブラリと同じように使用できるはずです。
参考サイト
MHVTL関連
http://hi.baidu.com/imyerik/item/3ab8682fb209b08b9d63d116
http://mhvtl-linux-virtual-tape-library-community-forums.966029.n3.nabble.com/NBU-keep-mounting-tape-forever-td3787713.html
Amazon LinuxにCentOSのリボジトリ追加
http://fdbklp.blogspot.jp/2012/05/amazon-linux-yum.html