Title: iSCSIを利用してジャーナルをリモートホストに設置する
TeamPage は、基本的に本体(サーバー)とデータ保管場所(ジャーナル)を同じホストで運用しますが、SAN (Storage Area Network) を導入すると、離れたホスト上にジャーナルを設定できるようになります。
参照 : FAQ1707: TeamPage 本体とジャーナルを別ホストで運用できますか?
最近は iSCSI を利用して比較的手軽に SAN を構築できるようになってきましたので、弊社の環境で実験してみました。
接続イメージ
iSCSI では、ストレージを提供する側を「ターゲット (target)」、利用する側を「イニシエーター (initiator)」と呼びます。
ここでは、CentOS 5.6 環境にターゲットとなる仮想ディスクを構築し、Windows Server 2003 R2 にイニシエーター機能をインストールします。(Windows7 や Windows Server 2008 には予めイニシエーター機能が組み込まれています)
そして、イニシエーター側で稼働する TeamPage のジャーナルを、ターゲット側に作成します。

CentOS (ターゲット側) 設定
iSCSI Target デーモンのインストール
iSCSI Target のパッケージは「scsi-target-utils」です。yum を使ってインストールします。
# yum install scsi-target-utils
割り当てディスクの作成
ターゲットに割り当てる(すなわち、Windows Server 2003 の TeamPage からアクセスする)ファイルを作成します。ここでは、dd
コマンドを使って、8GB の空のファイルを /root/iscsi/disk.img として作成します。
# dd if=/dev/zero of=/root/iscsi/disk.img bs=512 seek=16M count=0
0+0 records in
0+0 records out
0 bytes (0 B) copied, 1.0896e-05 seconds, 0.0 kB/s
ls コマンドでファイルが作成されたことを確認します。
# ls -l -h /root/iscsi/disk.img
-rw-r--r-- 1 root root 8.0G 9月 16 11:06 /root/iscsi/disk.img
iSCSI Target デーモンの設定
上記でインストールした scsi-target-utils の設定ファイルは、/etc/tgt/targets.conf です。次のように、作成したディスクイメージ (/root/iscsi/disk.img) を指定します。
- backing-store には、作成したディスク・イメージのパスを指定します。名前の付け方には決まりがあり、「iqn.年-月.ドメインの逆:ディスク名」になります。
- incominguser には、認証に使用するユーザとパスワードを指定します。(パスワードは12文字以上)
- initiator-address には、許可するイニシエータのアドレスを指定します。(ここでは ALL を指定していますので、制限を設けていません)
# iSCSI Test by AKJ Okutsu for this local computer(Grapefruit)
<target iqn.2011-09.local.akj:grapefruit00>
driver iscsi
backing-store /root/iscsi/disk.img
incominguser root idontknowthepw
initiator ALL
</target>
iSCSI Target デーモンの起動
次のようにしてデーモンを起動します。
# /etc/init.d/tgtd start
これでデーモンが起動しますが、環境によっては [OK] が表示されません。そのような場合は tgt-admin --dump
コマンドで起動を確認できます。
# tgt-admin --dump
default-driver iscsi
<target iqn.2011-09.local.akj:grapefruit00>
backing-store /root/iscsi/disk.img
incominguser root PLEASE_CORRECT_THE_PASSWORD
</target>
必要に応じて chkconfig を使ってデーモン (tgtd) が自動起動するようにします。
# chkconfig tgtd on
以上で、CentOS 側の設定は完了です。
Windows (イニシエーター側) 設定
Windows Server 2008 や Windows7 には元からイニシエーター機能がインストールされているようですが、Windows Server 2003 にはそれがありませんので、Microsoft のサイト からインストーラーをダウンロードしてインストールする必要があります。
Microsoft Download Center - Microsoft iSCSI Software Initiator
microsoft.com/dow…
ダウンロードしたインストーラーを実行します。インストールが開始されるので、適当に進めます。

インストールが完了しました。[完了] をクリックしてインストーラーを終了します。

インストールが完了すると、プログラム メニューやコントロールパネルに「iSCSI Initiator」が出現します。

この「iSCSI Initiator」を開きます。[Discovery] タブの [Add] をクリックします。

ターゲット (上記の CentOS のホスト) の IP アドレスを入力し、[OK] をクリックします。

指定したホストが登録されました。

次に [Targets] タブを開き、CentOS 上で設定したディスク名でターゲットが登録されていることを確認します。ターゲットをクリックして選択し、[Log On] ボタンをクリックします。

[Automatically restore this connection when the system boots] チェックボックスをオンにすると、Windows 起動時に自動的にターゲットがマウントされます。

上図の [Advanced] をクリックして設定画面を表示し、このターゲットにログオンするためのユーザー名とパスワードを設定します。[OK] をクリックして画面を閉じます。

以上でイニシエーターの設定は完了です。
コントロールパネル > 管理ツール > コンピュータの管理 > ディスクの管理 を開き、ターゲットがマウントされていることを確認します。

ローカルディスクと同じようにパーティションの作成やフォーマットを行います。ここでは NTFS でフォーマットし、F: ドライブとして割り当てています。

TeamPage のジャーナル設定
TeamPage のジャーナルを F: ドライブに作成します。
参照 : DocJp66: 新規ジャーナルの作成
サーバーセットアップ | 現在のジャーナル タブ の [ジャーナルの切替] をクリックします。

[ファイル形式ジャーナルの新規作成] をクリックし、表示された下図の画面で、iSCSI ターゲットのドライブを指定します。(ここでは F: ドライブの「TeamPageJournal」フォルダを指定します)

画面の支持に従ってジャーナルの作成を進め、新しいジャーナルで TeamPage が再起動します。再起動ゴ、サーバーセットアップで作成したジャーナルを確認します。

以上で作業は完了です。