先日 Microsoft iSCSI Software Target 3.3 の無償提供が開始されました。
ということで今回の投稿では、VM Role に iSCSI Target をインストールして接続ができるかを試してみたいと思います。
■環境
今回検証した環境は
- iSCSI クライアント
- Windows 7 Enterprise Edition x64 Non SP Japanese
- Microsoft iSCSI Initiator (OS 標準のもの)
- Windows Azure Connect
- iSCSI Target
- VM Role のインスタンス (Windows Server 2008 R2 Non SP English)
- Microsoft iSCSI Software Target 3.3
- Windows Azure Connect
となっています。
iSCSI Software Target のインストールはデフォルトの状態で進めています。
Windows Server 2008 R2 + iSCSI Target 3.3 の組み合わせでは F/W の許可ルールは自動で作成されていました。
■iSCSI Target の設定
VM Role の基本は、[設定が終わっている環境をアップロード] になります。
ということで、iSCSI Target の設定を行います。
最初はターゲットを作成します。
- [Administrative Tools] → [Microsoft iSCSI Software Target] を起動します。
- [iSCSI Targets] を右クリックして、[Create iSCSI Target] をクリックします。
- [Next] をクリックします。
- iSCSI ターゲット名を入力して、[Next] をクリックします。
- 接続するイニシエーターの IQN を入力して、[Next] をクリックします。
今回は Windows 7 のイニシエーターの IQN を設定しています。 - [Finish] をクリックします。
ターゲットの作成が終了したらディスクを作成します。
- 作成したターゲットを右クリックして [Create Virtual Disk for iSCSI Target] をクリックします。
- [Next] をクリックします。
- VHD の作成場所を設定し、[Next] をクリックします。
- VHD のサイズを入力して、[Next] をクリックします。
- 必要に応じて説明を入力し、[Next] をクリックします。
- [Finish] をクリックします。
以上で、準備は完了です。
一般化 (Generalize) した Sysprep を実行してシャットダウンします。
ここで作成したターゲットの IQN には Sysprep 前のホスト名が含まれてしまうので本当は Sysprep 後にターゲットの作成からを実行できればよいのですが今回はスルーの方向で…。
■エンドポイントの設定
iSCSI では TCP 3260 を使用していますので、サービス定義ファイル (.csdef) で 3260 の設定を入れておきます。
ファイルの内容としてはこのようになります。
<?xml version="1.0" encoding="utf-8"?> |
# 最近、諸般の事情から VWD 使わないでパッケージを作っているので生のテキスト出しています。
この定義を使用したパッケージで VM Role のインスタンスを起動させます。
■イニシエーターからの接続確認
それではイニシエーターから接続確認をしたいと思います。
インスタンスの DNS Name でクイック接続を行ってみます。
Network Monitor でパケットを確認するといかのような内容を取得することができます。
上記は Target が接続先の情報として返答している内容なのですが、[TargetAddress] が VM Role nのインスタンスに割り当てられているローカルの IP アドレスとなってしまっています。
iSCSI Initiator は Target から返答された TargetAddress の IP に対して接続をしに行くのですが、これが DNS 名ではないため接続ができないようです。
Target から返答されている [TargetAddress] ですが、iSCSI Target で有効となっているインターフェースが返答されます。
この値ですが、DNS 名を新規に登録する方法がわかりませんでした…。
[wbemtest.exe] を実行して、[rootwmi] 名前空間の [WT_Portal] クラスに接続をします。
# 管理者として実行する必要があります。
# WT_Portal は Enter キーではなくダブルクリックで選択します。
この時のインスタンスが iSCSI Target のプロパティで表示される内容のようなのですが、ここに新規のインスタンスを追加する方法が分からなかったのですよね…。
インスタンスを追加しようとすると wbemtest が応答なくなってしまうのですよね…。
VM Role のインスタンスに DNS Name を使って接続するためにはこの辺の設定をクリアしないといけないようです。
# iSNS でいけるのかもいまいちわかっていないです…。
■Windows Azure Connect 経由で接続
ということで趣向を変えて Windows Azure Connect 経由だとどうなるかを試してみました。
Windows Azure Connect で VM Role と Windows 7 を接続しています。
Windows Azure Connect で接続が完了している状態で iSCSI イニシエーターを VM Role のホスト名で接続します。
Windows Azure Connect 経由だと接続が可能です。
Windows Azure Connect で使用している [PPP アダプター Windows Azure Connect Relay1 1] がネットワークモニタでキャプチャできなかったのでネットワークの情報はないのですが、Target 側では PPP アダプターの IP も自動で有効になっているので[TargetAddress] としては PPP アダプターの設定も含まれてきているはずです。
ディスクもフォーマットでき認識できています。
# フォーマットがかなりのんびりとした速度ですが。あまりにも遅かったのでフォーマットしている最中にインスタンス削除してしまいました…。
かなり速度が遅いですが、Azure Connect 経由であれば iSCSI Target にさほど苦労もなく接続できそうですね。
ダイレクトに接続するためには、[TargetAddress] に DNS Name を含めるようにしないといけないのですが、方法は少し時間をかけて考えてみたいと思います。