PowerVS IBM i VSIにVTL (仮想テープ・ライブラリー) を接続してみました。

# はじめに
IBM PowerのIaaSであるPower Virtual Server (PowerVS) でFalconStor StorSafe VTL (仮想テープ・ライブラリー) のサポートが始まりました。これによってPowerVSのIBM i でもテープ・ライブラリーを用いたバックアップが可能になりました。

今回このPowerVS FalconStor StorSafe VTLを検証で構成する機会がありましたので、セットアップ手順をまとめてみようと思います。

なお、セットアップはこちら2つのガイドを参照して進めて行きました。
　[FalconStor VTL for IBM Deployment Guide](https://falconstor-download.s3.us-east.cloud-object-storage.appdomain.cloud/FalconStor%20VTL%20for%20IBM%20Deployment%20Guide.pdf)
　[FalconStor VTL for IBM User Guide](https://falconstor-download.s3.us-east.cloud-object-storage.appdomain.cloud/FalconStor%20VTL%20for%20IBM%20User%20Guide.pdf)

# 目次
1. [今回の構成イメージ](#1-今回の構成イメージ)
1. [FalconStor StorSafe VTLのデプロイ](#2-falconstor-storsafe-vtlのデプロイ)
1. [VTLサーバー用ブロック・ストレージの準備](#3-vtlサーバー用ブロックストレージの準備)
1. [VTL ConsoleのインストールとVTLサーバーの初期セットアップ](#4-vtl-consoleのインストールとvtlサーバーの初期セットアップ)
1. [ICOSバケットを重複削減リポジトリーとして登録](#5-icosバケットを重複削減リポジトリーとして登録)
1. [重複削減ポリシーの作成とテープ・イメージの登録](#6-重複削減ポリシーの作成とテープイメージの登録)
1. [IBM i でのiSCSI接続の構成](#7-ibm-i-でのiscsi接続の構成)
1. [VTLサーバーでのiSCSIターゲットの設定とiSCSIイニシエーターの登録](#8-vtlサーバーでのiscsiターゲットの設定とiscsiイニシエーターの登録)
1. [IBM i でテープ・ライブラリーとして認識](#9-ibm-i-でテープライブラリーとして認識)

# 1. 今回の構成イメージ
東京リージョンのPowerVSにIBM i とVTLを構成します。
PowerVSには以下3つのサブネットを構成しました。
　a. アクセス用サブネット: ユーザー・アクセスのためのサブネットです。
　b. iSCSI接続用サブネット: IBM i とVTLはiSCSIで接続しますが、そのためのサブネットです。
　c. レプリケーション用サブネット: VTL間のレプリケーションを行う際に利用するサブネットです (レプリケーションは当記事では設定しておらず、[こちらの記事](https://qiita.com/yohichi/items/0c90488695e53da9b58f)で設定しています。)。

またICOSとVTL間の接続のためにリバース・プロキシー用としてIBM Cloud ClassicにLinux VMを1つ構成し、VTL Console用のWindows VMを1つ使うようにしています。
IBM Cloud Object StorageにはVTLの重複削減リポジトリーとして利用するバケットを1つ構成しています。

PowerVSとIBM Cloud Classic間はDirect Link ConnectとTransit Gatewayを使用して接続するようにしています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1305251/06683e22-212d-0062-455e-5cd58140fa97.png)

# 2. FalconStor StorSafe VTLのデプロイ
IBM Cloudのカタログに「VTL」と入力して表示されてくる「FalconStor VTL for PowerVS」を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1305251/c32b6835-83f3-cbcd-2810-1ce0b1b4d336.png)

FalconStor StorSafe VTL for PowerVSのオーダー画面が表示されます。
製品のバージョンは、2022/12月時点では10.3.1-3となります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1305251/d27eec71-848d-114a-5b2b-ab4a1deeae4f.png)
VTLをデプロイするためのTerraformが動くIBM Cloud Schemanticsワークスペースの名前を入力します。名前もロケーションもIBM Cloud Schemanticsワークスペースの名前・ロケーションになりますので、PowerVSワークスペースやロケーションとは異なって大丈夫です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1305251/5821464d-9c2f-bdea-3184-0e63f50009ca.png)
デプロイに必要な事項を埋めていきます。
crnはVTLをデプロイする先となるPowerVSワークスペースで事前に別途作成しておいたものを指定します。
instance_nameとして今回デプロイするVTLインスタンスの名称を入力します。
license_repository_capacityはVTLで利用するリポジトリーのサイズとのことですが、今回は検証のためデフォルトの1TBとしました。memoryはVTLインスタンスに割り当てるメモリー・サイズです。こちらもデフォルトの18GBにしています。
network_1はアクセス用サブネットの名称です。同名のサブネットをPowerVSワークスペースに予め作成しておきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1305251/3496eba5-aa6a-3387-7721-849ee05a5fac.png)
network_2はiSCSI用サブネットの名称で、network_3にはレプリケーション用サブネットの名称を指定します。
processorsはVTLインスタンスに割り当てるプロセッサーで、デフォルトの1コアにしました。
ssh_key_nameにはVTLインスタンスにSSHでアクセスする際に使用する公開鍵の名称を指定します。こちらも予めPowerVSワークスペースに登録しておいたものを指定します。
storage_typeはVTLで使用するストレージのTierです。デフォルトのTier1を指定しました。
sys_typeはVTLをデプロイする先のモデルとなります。検証用ということでs922にしています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1305251/f3cf78db-710d-d3da-4ce1-01aa64a3beb8.png)
オプションで指定できる値があります。今回は各ネットワークで使用するIPアドレスを明示指定しました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1305251/d027ee4d-2cf1-d051-580d-f6929884a186.png)
画面右下の使用条件にチェックを入れて「インストール」をクリックするとIBM Cloud Semanticsのワークスペースが作成されてTerraformによるPowerVSへのVTLの自動デプロイが始まります。今回は20分ほどで完了しました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1305251/b11da6ab-8df4-83ab-c37a-4e49a04f677f.png)
完了後、PowerVSワークスペースに移って「仮想アプライアンス」を見てみるとVTLインスタンスがデプロイされたことが確認できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1305251/34cd736d-7576-6df2-1a74-bd2a0c25ad7b.png)

# 3. VTLサーバー用ブロック・ストレージの準備
デプロイした直後のVTLインスタンスは、200GBのボリューム1つで動いている状態でした。
VTLの構成にはガイドによると構成リポジトリー/テープ・データベース用とバックアップ・キャッシュ用、重複削減リポジトリーおよび索引用の3つのストレージ領域が必要なるとのことで、それぞれストレージ・ボリュームを作成し、VTLインスタンスに接続させます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1305251/9e225da6-4a14-f2d9-d574-d65f66c7005a.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1305251/a648954a-26fb-45c2-c050-1327dae969d4.png)

# 4. VTL ConsoleのインストールとVTLサーバーの初期セットアップ
FalconStor StorSafe VTLの管理運用にはVTL Consoleと呼ばれるGUIの管理ソフトウェアをWindowsにインストールして利用します。
インストール・モジュールはDeployment Guideに記載されたURLからダウンロードできます。今回はIBM Cloud Classic環境にWidnows VMをデプロイして、そこにVTL Consoleをインストールしました。
まずはダウンロードしたexeファイルをダブル・クリックしてインストール・ウィザードを開始します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1305251/9f2e09d2-3f99-4ebf-1045-46850fc17e5e.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1305251/dd954ddd-0a71-1e19-1a63-41679882c8ec.png)
ライセンス条項に同意してウィザードを進めます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1305251/0129c55e-3f35-a5eb-0532-90dfeef4153b.png)
ユーザー名と会社名を入力して、そのままウィザードを進めていきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1305251/447356fe-e4fb-f08c-4d32-03b83f4da5e3.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1305251/ff776843-7376-7b29-9e54-ca0d880aaf24.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1305251/e70d6244-6784-cf17-891b-429da541d2cb.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1305251/fc337e6b-d80b-9649-9cdb-c78c9320c563.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1305251/05dac83e-4150-85ca-a1ba-418ae5255d0f.png)
インストールが完了です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1305251/f54af219-3e7c-4205-25db-8447d30dad30.png)
インストール完了後、デスクトップに作成されたアイコンをダブル・クリックしてVTL Consoleを起動させます。
初回起動時はライセンス条項のポップアップが表示されますので同意すると起動してきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1305251/e6a7d72d-9b95-542e-502f-62da220953e6.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1305251/52473406-e990-8a78-88c8-bc961bb43ab6.png)
ここからVTLサーバーの初期セットアップを進めて行きます。
まず、Serversを右クリック→Addを選択して、デプロイしたVTLインスタンスを登録します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1305251/34a29bd2-bb19-707f-5a3e-850f032265ad.png)
VTLインスタンスへの接続情報を入力します。
ServerにはIPアドレスを入れます。今回はアクセス用のIPアドレスとして192.168.1.100を割り振っていますのでそちらを入れています。
ユーザー/パスワードは初期状態ではroot/IPStor101です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1305251/f11b5b33-2107-d8df-0c09-5b6284fd2433.png)
パスワードの変更が求められますので変更しておきます。記載されたパスワード・ルールに則った値にします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1305251/885e2d55-740a-4d5b-dce0-64762c59c02f.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1305251/9f26d64c-16eb-e680-f52c-34e86791965b.png)
変更が完了するとVTLの構成ステップのプロンプトが表示されますので、そちらに従って構成していきます。
なお、Configureを押すとそのステップの設定画面に入り、Skipを押すとそのステップをスキップして次の項目に移れます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1305251/6ae2c331-3b26-a8d9-6384-85e4dc398a85.png)
## Step 1. Enter license keys
VTLのライセンスはデフォルトでは60日間のトライアル・ライセンスが登録されています。
今回は検証ということでそのままOKを押して次に進みます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1305251/f0c43113-d69d-1658-eb27-0923fd914dad.png)

## Step 2. Setup network
ネットワークの設定では、PowerVSでのドメイン名、デフォルト・ゲートウェイとSSH/SFTP使用可能化のチェックを入れておきました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1305251/a25182b5-1523-6885-958b-f5451d0e72c1.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1305251/b4e3fc64-a4cd-ebd6-a7a0-171fb309d540.png)
なおネットワーク設定後はネットワークの再起動が入ります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1305251/e9134b2d-0d03-f536-edc7-f02aebaa0ec5.png)
なお、設定後SSHでアクセスしてみると無事にアクセスできました。
SSHではユーザーcentosで接続します。
デプロイで指定したSSH公開鍵がユーザーcentosに登録されていますので、鍵での認証ができます。
centosでアクセス後、`sudo su -` でrootに昇格しコマンド実行をしていく形です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1305251/585a5a21-7bf3-c494-e139-d06fe02dbce7.png)

## Step 3. Set hostname
VTLサーバーのホスト名はVTLインスタンス名がデフォルトで入っていました。
特に変更せずにCancelで進んでいきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1305251/9c0291df-67a1-1808-d93b-52458eb0effd.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1305251/33beb70c-dbcf-aa05-ac7c-6870ae188c68.png)

## Step 4. Enable FC Target mode
PowerVSでのFalconStor StorSafe VTLにはFibre Channel接続はありませんので、Skipします。

## Step 5. Prepare devices
[VTLサーバー用ブロック・ストレージの準備](#3-vtlサーバー用ブロックストレージの準備)で追加したボリュームを構成リポジトリー、重複削減リポジトリーおよび索引、バックアップ・キャッシュの各用途に割り当てていきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1305251/d776525b-b4fb-d4b7-4e91-9a99576bf845.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1305251/3c14cee6-c7f5-ae4e-9e0a-260c85c4c3a9.png)

## Step 6. Enable Configuration Repository
構成リポジトリーを使用可能にします。[Step 5. Prepare devices](#step-5-prepare-devices)で構成リポジトリーとして割り当てたボリュームがリストされていることを確認してウィザードを進めます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1305251/11f508fe-f56f-841c-8c1c-9c84441a3e3d.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1305251/bc887add-a878-06cf-41ae-fa9abe624390.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1305251/c2fd222d-af0e-7fe6-b8c6-0e792d2c2a29.png)

## Step 7. Create Virtual Tape Library database
VTLデータベースの作成ステップになります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1305251/71b199f4-4333-a1e9-58f4-33f73142f667.png)
Expressを選択して進めます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1305251/6a64ae11-8f1a-ca71-5535-1bc32a3fabd3.png)
VTLでのソフトウェア圧縮機能を有効にしました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1305251/3e2e7887-c994-fa8f-1814-552e1fdc59e6.png)
ディスク領域のしきい値はデフォルトの90%のままにしています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1305251/1ec7fd9a-ffdd-281d-cb87-f80af647a9b7.png)
Finishを押してデータベースを作成します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1305251/9ed8d7c2-7a0c-a090-b40a-9fe64b506174.png)
作成が完了するとミラー保護について聞かれますが、今回は検証ということで特に保護はせずNoを選択しました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1305251/46658ad0-d0a3-3887-f89f-d07a4e895523.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1305251/de078095-28be-134e-6037-8cbcc053cb9c.png)

## Step 8. Enable Virtual Tape Encryption
テープ暗号化の設定ですが、今回はSkipします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1305251/0b6726ef-6e7d-8f01-c1c9-9f76f9715df1.png)

## Step 9. Assign physical libraries/drives
物理テープ・ライブラリーについての構成ステップになるため、今回はこちらもSkipします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1305251/984e4007-5e92-a885-0ff2-d26b5b289e02.png)

## Step 10. Create virtual libraries
仮想テープ・ライブラリーの作成ステップです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1305251/652540ef-c1cc-9965-af3e-66ee7bc7a227.png)
最初に仮想テープ・ライブラリーの名称とタイプを選択します。
テープ・ライブラリーのタイプはIBM i に接続させるライブラリーの場合はFALCON TS3500L32 (03584L32) を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1305251/77bebbfc-b093-ac38-1af0-ff62d633e8c8.png)
テープ・ドライブ名のPrefixとドライブ数、ドライブの規格を選択しますが規格はUltrium3以上のものを選択します。
今回はUltrium7のドライブを6つ構成することとしています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1305251/413ce585-23a2-d80d-1784-5fbffc07b535.png)
Enable Automated Tape Cachingはスキップします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1305251/039757d3-737a-5c9c-988f-13dc9cfc18e0.png)
Auto Archive/Replication/Migrationもスキップします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1305251/0259e475-24fe-4269-fff8-b8ebf3449e7f.png)
Enable Tape Duplicationもこのタイミングではスキップです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1305251/41e35e80-32af-4b32-f48f-ac14a13db8c1.png)
バーコードのレンジ、スロット数やI/Oステーションの数を設定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1305251/d16a6fd9-f438-75a2-716e-074bd0027ca5.png)
Tape Capacity On Demandはオンにして、初期サイズと増分、最大サイズを指定します。
増分は (最大-最小)/63で5GB以上に設定する必要があります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1305251/b899ef52-7bee-9d11-e695-2afd78baa167.png)
サマリーが表示されますので確認してFinishを押します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1305251/599b1553-5184-79f9-47d3-85a43a66aa75.png)
無事に作成できました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1305251/ab090f78-e28e-99f1-7f46-f8634cc3da14.png)
なお、この後テープ・イメージや追加の仮想テープ・ライブラリーの作成ができますが、今回はどちらも行いませんでした。

## Step 11. Assign virtual library to clients
このタイミングではIBM i 側のセットアップができていないのでクライアントへの割り当てはskipします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1305251/570d228e-82e2-aec0-888a-0d370797f49b.png)

## Step 12. Enable Deduplication
重複削減の設定もこのタイミングではskipします。
Finishをクリックして構成ステップが完了です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1305251/4b6f1a66-b84e-3d88-3425-b2dde1be54d2.png)
構成後、VTL Consoleでは以下のように作成した仮想テープ・ライブラリーが認識されました。
このうちVirtual IDの番号 (今回は4でした) は後のiSCSI接続の設定で使用するので控えておきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1305251/66c98293-077b-e5eb-993b-8bf2c1954538.png)

# 5. ICOSバケットを重複削減リポジトリーとして登録
今回デプロイしたVTLインスタンスに対してICOSバケットを重複削減リポジトリーとして割り当てました。
割り当てはCUIで行いますが、VTLインスタンスのCUIはコンソールもしくはSSH接続のターミナルになります。


重複削減リポジトリーのICOSバケットとして今回vtl-bucket-yn-tokというバケットをjp-tokに作成しています。
なお、割り当てるバケットは中身が空である必要があります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1305251/a23e4f5e-73a7-c449-694b-1558b5a0dc83.png)
またICOSバケットに接続するためのWriterロールの資格情報vtl-writerを作成しました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1305251/c56a0a9b-d3ad-f416-47ff-01433ed092be.png)
今回はjp-tokのプライベート・エンドポイントにリバース・プロキシーを経由して接続します。
リバース・プロキシーのプライベートIPアドレスは10.192.218.112で、20080番ポートにhttpでアクセスするとjp-tokのプライベート・エンドポイントにアクセスできるようにnginxを構成しています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1305251/2f1b212d-6a04-0195-4b31-21be10ab4a99.png)
登録は以下の`iscon object-storage-add` コマンドで実施します。
```
iscon object-storage-add -s <VTL server name> -u <username> -p <password> -On <object storage name> -Ot GENERIC_S3 -Oi <HMAC access key ID> -Os <HMAC secret key> -Ob <bucket name> -Op <true (for https)|false (for http)> -Ou <Full URI/URL path> -Oe false -Ol true [-Oc <optional comments>] -Ps <Proxy server to access object storage> -Pp <Proxy port number> -Ph <true (proxy access via https)|false (proxy access via http)> -PU <Proxy username> -PP <Proxy password>
```
なお、CUIとしてコンソールも使用できますがコピー&ペーストが難しいので、今回はSSH接続のターミナルで行いました。
前述の通りユーザーcentosで接続、`sudo su -` でrootに昇格して実行しています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1305251/7266c770-18c2-94c6-4baa-6d5cbff2f282.png)

コマンド実行後、ICOSバケットにはフォルダーの作成、ヘッダー情報が書き込まれているのが確認できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1305251/abec61e2-c755-22e6-9c82-a9770fbfe0a2.png)
重複削減リポジトリーの登録が完了したので重複削減機能を有効にします。
VTL ConsoleでVTLサーバーを右クリック→Options→Enable Deduplicationを選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1305251/a513d62d-7caf-5f54-2b1e-61ed919604ae.png)
今回暗号化機能は有効にしないので、チェックを入れずにそのまま次へ進みます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1305251/e7e588cb-a809-8303-aaf5-a2607d305385.png)
重複削減リポジトリーのストレージ・タイプとして「Object Storage」を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1305251/8c1c839b-9044-829d-fd93-4f208bb25e9f.png)
ProviderはGeneric S3を選びます。
Object storage account nameは今登録したICOS定義を選択します。
今回はサイズは200GBとしてみました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1305251/48fbc1c3-43bc-21f7-7eaf-a244ec8827a7.png)
索引情報を配置するローカル・ストレージとしてウィザードで構成したストレージを選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1305251/143c17a9-9d87-400a-165c-24c1e30a8196.png)
サマリーが表示されるので内容を確認してFinishを押します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1305251/ccb57281-22e7-968e-589d-0f21a552c383.png)
構成が完了後、ICOSバケットを見てみるとデータ配置用のフォルダーなどが作成されたのが確認できました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1305251/5fbf6b81-88f5-4651-74d3-edc1481a7ada.png)
これで重複削減リポジトリーの登録が完了です。

# 6. 重複削減ポリシーの作成とテープ・イメージの登録
FalconStor StorSafe VTLでのテープ・イメージの重複削減は重複削減ポリシーを作成し、そのポリシーにテープ・イメージを登録することで行います。
ポリシーの作成はVTLサーバー→Virtual Tape Library System→Deduplication Policiesを右クリック→Newをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1305251/eaefa6e3-5434-b165-fee2-0004c9669544.png)
ポリシー名称を決めて次に進みます。
今回はInline_dedup_Policyとしました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1305251/7dc3a4e1-c9e5-703f-c6f7-cd7f289f5993.png)
重複削減クラスターの選択ではVTLサーバー自身のみで構成されているローカル・クラスターがリストされてきますので選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1305251/b6588ca0-5527-e6d8-9625-4498f5f3986c.png)
今回はバックアップ実施中に都度重複削減を行うようにしたいので、Inline Deduplicationを選択しています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1305251/3c62e7e3-5ed8-a0a1-ddb9-9f1ee4595800.png)
次に重複削減処理の優先度とリトライ設定を行います。
今回はMediumで設定しました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1305251/23a32c0b-ba10-7f11-53f9-39de19b2bf52.png)
レプリケーションはこの時点では構成していないのでチェックを入れずに進みます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1305251/23159d64-f41a-ada9-b5fe-469df611fa39.png)
サマリーが表示されますので内容を確認後、Finishを押してポリシーを作成します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1305251/3cf67cbe-2965-fe5e-d33f-cad203cdb48d.png)
次はテープ・イメージの作成です。
作成はVTLを右クリック→New Tape(s) を選択して行います。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1305251/25c90a9a-4eaa-c92e-a2ed-73fe8347a0c8.png)
Expressを選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1305251/21223848-edd0-afbf-fcd3-61ee441de8bf.png)
WORM (Write Once Read Many) 設定では今回は通常のテープ・イメージとするので特に指定せずに進みます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1305251/b553ca4c-6e56-e0d8-0987-3bf04091a113.png)
作成先の領域としてPhysical Devicesを選択し、構成ウィザードでバックアップ・キャッシュとして指定したボリュームを選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1305251/1945589d-43c6-a8ee-be86-88d7c80aa3dd.png)
仮想テープ・イメージの名称のPrefixやサイズ、作成する本数を指定します。
今回は日次バックアップ用のテープ・イメージとして10GBのイメージを7本作ることにしました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1305251/9489d64c-7b16-cf6c-2f71-71c76c8904fd.png)
バーコードはDAY001からDAY007になるようにします。
Barcode StartsにDAY001と入力後、Refresh Ending Barcodeを押してから次に進みます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1305251/52ad1021-4a69-7aec-6e8a-204322368127.png)
サマリーが表示されるので内容を確認後、Finishを押してテープ・イメージを作成します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1305251/b0fd5413-13cc-2e44-7e5a-a27c2bd3615d.png)

作成したテープ・イメージを重複削減ポリシーに登録します。
作成したポリシーを右クリック→Add Tapesをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1305251/34a355e5-a4d6-433a-d854-fbe2a34984d6.png)
登録するテープ・イメージにチェックを入れて、Addをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1305251/671ae8ea-20ed-2454-9c91-85886483c13c.png)
確認画面が表示されるので、内容を確認後にYesをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1305251/1ffa24f4-b0b3-bf8e-2b13-99e7c67b9fd4.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1305251/06345c79-832f-b8aa-4bae-39853e98930d.png)
これで作成したテープ・イメージにデータが書き込まれる際に重複削減処理が行われる形になりました。

# 7. IBM i でのiSCSI接続の構成
PowerVSのVTLとIBM i VSIはiSCSIで接続させることになります。
今回は
* iSCSIイニシエーター (IBM i側): 192.168.100.10
* iSCSIターゲット (VTL側): 192.168.100.100

の間でiSCSI接続をさせます。

まずiSCSI接続の前提となるPTFがありますので以下のサイトで情報を随時確認して適用するようにします。
[IBM i Removable Media: Support for iSCSI VTL](https://www.ibm.com/support/pages/ibm-i-removable-media-support-iscsi-vtl)

ここでは既に適用済みであるとしてIBM i 側でのiSCSI接続構成を行っていきます。
iSCSIアダプターの仮想IOP (I/Oプロセッサー) はタイプ型式が298A-001となります。`WRKHDWRSC TYPE(*STG)`で298A-001がリストされるのを確認します。
今回の検証環境では仮想IOPの資源名はCMB02となっていました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1305251/c287e5dc-cf38-15d3-791c-9d2d046c1ab1.png)
SSTからも確認できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1305251/7e424fba-211e-dbb4-0ecf-8da762332bfe.png)
iSCSI接続構成は各コマンドがIBM i サービスとして提供されていますのでDb2 for i SQLインターフェースから行います。
(もしくはNavigator for i でもできます。)
SQLインターフェースからもiSCSI IOPを確認してみます。確認は`QSYS2.ISCSI_INFO()`プロシージャーで行えます。
```
SELECT * FROM TABLE(QSYS2.ISCSI_INFO());
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1305251/b8ac1317-4f4a-9cc8-5275-aa87bf8432e6.png)
CMB02がリストされてくるのが確認できます。
またINITIATOR_NAMEとしてデフォルトで値が設定されています。
今回は iqn.1924-02.com.ibm:192-168-100-10.fromi74yntok という名称でiSCSIイニシエーターを登録したいと思います。
またVTL側であるiSCSIターゲットとしては iqn.2000-03.com.falconstor:192-168-100-100.toi74yntok という名称にしたいと思います。
iSCSIイニシエーターおよびiSCSIターゲットの名称とiSCSIターゲットのIPアドレスを`QSYS2.ADD_ISCSI_TARGET`プロシージャーで登録します。
```
CALL QSYS2.ADD_ISCSI_TARGET(
  TARGET_NAME => 'iqn.2000-03.com.falconstor:192-168-100-100.toi74yntok',
  TARGET_HOST_NAME => '192.168.100.100',
  INITIATOR_NAME => 'iqn.1924-02.com.ibm:192-168-100-10.fromi74yntok');
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1305251/3e4cf957-4e93-c2b6-87da-e3fdc1ad3424.png)
設定完了後、iSCSIアダプターの仮想IOPをIPLします。
仮想IOPのIPLは以前よりSSTから行えていますが、`QSYS2.CHANGE_IOP()`プロシージャーでもできるようになっています。
今回はこのプロシージャーで実施しました。
```
CALL QSYS2.CHANGE_IOP(IOP=>'ISCSI', OPTION=>'IPL');
```
これでIBM i 側iSCSIイニシエーターの設定が完了です。


# 8. VTLサーバーでのiSCSIターゲットの設定とiSCSIイニシエーターの登録
VTLサーバー側でiSCSIターゲットの設定として最初にiSCSIターゲット・モードを有効化する必要があります。
VTL ConsoleでVTLサーバーを右クリック→Options→Enable iSCSI Target Modeを選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1305251/18a65ac8-4fbf-e493-3918-5fcb21af8c94.png)
有効化完了メッセージが出ればOKです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1305251/d234eabd-489a-64b4-64fa-a361e18974e8.png)
iSCSIターゲットの設定とiSCSIイニシエーターの登録はVTL Consoleでも行えますが、今回はCLIで実施してみました。
## Step 1. iSCSIイニシエーターの登録
`iscon addiscsiclient`コマンドでiSCSIクライアントとしてiSCSIイニシエーターを追加できます。
クライアント名 (-c) は今回IBM i のシステム名であるi74yntokを指定しました。
iSCSIイニシエーターはIBM i 側で登録したものを登録します。
```
iscon addiscsiclient -s my-first-vtl -c i74yntok -I 'iqn.1924-02.com.ibm:192-168-100-10.fromi74yntok'
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1305251/ea8237d8-7c5e-e28f-28fd-4eaaf5031250.png)
## Step 2. iSCSIターゲットの設定
iSCSIターゲットの設定は`iscon createiscsiclienttarget`コマンドで行えます。
コマンドを実行するとターゲットのIDが返ってくるので控えておきます。
```
iscon createiscsiclienttarget -s my-first-vtl -c i74yntok -I 192.168.100.100 -R 'iqn.2000-03.com.falconstor:192-168-100-100.toi74yntok' -l 1
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1305251/74027543-fc2f-d685-b302-a0da5d45ad99.png)
これでiSCSIターゲットとイニシエーター間の設定ができました。
## Step 3. VTLの紐付け
次にVTLをこの設定に紐付けします。
紐付けは`iscon assignvdevtoiscsiclient`コマンドで行います。
このコマンドではiSCSIクライアント名とVTLのVirtual ID、iSCSIターゲットのIDを指定する形です。
```
iscon assignvdevtoiscsiclient -s my-first-vtl -c i74yntok -v 4 -r 33 -y
```
以上で設定が完了です。

# 9. IBM i でテープ・ライブラリーとして認識
最後にIBM i 側で仮想IOPを`QSYS2.CHANGE_IOP()`プロシージャーで再度IPLします。
```
CALL QSYS2.CHANGE_IOP(IOP=>'ISCSI', OPTION=>'IPL');
```
IPL後、`QSYS2.ISCSI_INFO()`プロシージャーで状況を確認するとActiveになりました。
```
SELECT * FROM TABLE(QSYS2.ISCSI_INFO());
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1305251/da5ee0b7-c572-b8d7-94eb-a2921a6a996e.png)
`WRKHDWRSC TYPE(*STG)`コマンドで見てみると、VTLがTAPMLB01として認識されたことが分かります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1305251/773043de-de2d-8ff8-9bea-e9137b3c0026.png)
テープ・ドライブも構成したUltrium7の6ドライブが認識されていました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1305251/7f778367-923b-6146-097d-0ca13e1b5f77.png)
テープ・イメージもDAY001からDAY007の7本が見えています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1305251/dcd27c66-9ecb-74bd-b8cd-1ebf7beac0b6.png)

このTAPMLB01を物理テープ・ライブラリーと同じようにバックアップ処理に使用できます。
テープ・ライブラリーなので世代管理や自動化にもスムーズに対応できますね。

ステップ数は多いですが、ガイドに沿って順に追っていけば問題なく構成できることが分かりました。
5733-ICC (IBM Cloud Storage Solutions for i) を使用したICOSへのバックアップでは一旦IBM i のストレージ領域にバックアップされてからICOSへの転送がされるのでIBM i としてディスク容量が必要となる点などがありますが、VTLであればIBM i 側には追加のストレージ領域は不要です。また重複削減も効きますので、より効率的なバックアップが実現できるかなと思います。

以上です。