QNAP エンタープライズクラス ES NAS で Microsoft iSCSI ストレージを設定する
iSCSIとは
iSCSI (Internet Small Computer System Interface) は、ネットワーク越しにSCSIコマンドを送信できるようにするプロトコルです。SCSIコマンドはSAN (Storage Area Network) 環境のTCP/IPを介して転送され、サーバーを接続し、データストレージ機能へのアクセスを可能にします。iSCSIプロトコルでは、ホストクライアントをイニシエーター (Windows Server)、iSCSIサーバー (ストレージアプライアンス) をターゲットと呼びます。この記事では、Windows Serverにおけるストレージ容量を拡張するためにES NAS上で iSCSIターゲットを使用する方法について説明します。
ES NAS上に iSCSI ターゲットとLUNを作成
以下のステップに従って、NAS 上に iSCSI ターゲットとLUNを作成します。
- 「ストレージマネージャー」 > 「iSCSIストレージ」 > 「作成」に進み、クイックコンフィギュレーションウィザードを起動します。

- LUNがマッピングされている iSCSIターゲットを選択します。

- ウィザードがマッピングされているLUNで iSCSIターゲットを作成するようガイドすることを確認します。その後「次へ」をクリックしてください。

- ターゲット名およびエイリアスを入力します。「データダイジェスト」および「ヘッダーダイジェスト」は、オプションフィールド (「CRC/チェックサムに関する) であり、iSCSI イニシエータが冗長性チェックを用いて検証するためのパラメータです。「次へ」をクリックします。

- CHAP 認証設定を入力し、「次へ」をクリックします。「Use CHAP authentication (CHAP 認証の使用)」にチェックを入れると、イニシエータは、iSCSI ターゲットによってのみ認証され、イニシエータのユーザーは、ターゲットにアクセスするためにこで指定されたユーザー名とパスワードの入力が要求されます。iSCSI ターゲットとイニシエータ間の双方向認証に場合は、「Mutual CHAP (相互 CHAP) にチェックを入れます。ターゲットは、最初のユーザー名とパスワードを使って、イニシエータを認証します。イニシエータは、「Mutual CHAP (相互 CHAP)」設定を使って、ターゲットを認証します。ユーザー名とパスワードに関する以下の制限をご覧ください。
- ユーザー名の制限: 有効な文字は、0 ~9、a ~ z、A ~ Z のみで、最大長さは、256 文字です。
- パスワードの制限: 有効な文字は、0 ~9、a ~ z、A ~ Z のみで、最大長は12~16文字です。

- ターゲットがデータ転送に使用するインターフェイスを選択します。その後「次へ」をクリックしてください。

- ターゲットにアクセスするため、または新しいホストを追加 (下に新しいホストをさらに追加) するために既存ホストに対するアクセス権を指定します。リスト上の少なくとも1つのホストには「すべてのアクセス」アクセス権がなければなりません (「アクセス」の下のフィールドをクリックしてそのホストに対するアクセス権を編集できます)。「次へ」をクリックします。
- 新規ホストの追加:
- 「ホストの作成」をクリックします。

- ホストのエイリアス名フィールドにホスト名を入力します。「IPv4アドレス/サブネット」あるいは「IPv6アドレス/サブネット」内の「+」をクリックし、新しいホストのIPアドレスまたはネットワークIDをCIDR表記のサブネットマスクと共に入力してホストを追加します。

- ホストのオペレーティングシステムを選択し、「適用」をクリックします。

- 設定を確認し、追加するホストに対するアクセス権が「すべてのアクセス」であるようにします。その後「次へ」をクリックしてください。

- 「ホストの作成」をクリックします。
- 新規ホストの追加:
- 次の行い iSCSI LUNを作成します。
- -LUNの名前を指定
- -LUN配分方法を選択
- シンプロビジョニング: ディスク領域を柔軟な方法で割り当てます。ディスク領域は、NAS 上で現在利用可能なストレージ容量に関わらずいつでもターゲットに割り当てられます。オンライン RAID 容量拡張を利用し、NAS のストレージ容量を拡張できるため、過剰な割り当てが許可されます。
- 即時配分: ディスク領域を LUN に即時に割り当てます。このオプションは、ディスク領域が LUN に割り当てられることを保証しますが、LUN 作成により多くの時間がかかる場合があります。
- -LUNロケーション (NAS上のストレージプール)、容量、アラートしきい値を選択。
- -ドロップダウンリストからパフォーマンスプロファイル (一般、Hyper-V、VMware、データベース、カスタマイズ) を選択。それぞれのオプションは、性能の最適化のために作成されたLUNに対して異なるブロックサイズが設定されます。どれを選んでいいかわからない場合は、「一般」を選択してください。
- -SSD キャッシュ:この共有フォルダーのSSD キャッシュを有効にします。SSD キャッシュを使用すると、NAS のパフォーマンスを上げることができます。この機能を有効にするには、少なくとも1つのSSDがインストールされているようにしてください。
- -重複排除: ZFS重複排除は、ES NASで利用できるもうひとつのデータ量削減手法です。このオプションでは、システムがデータの重複コピーを無くすことで消費するストレージの量を減らすことができます。ただしこれは、ワークロードによっては (ストリーミングワークロードなど) コンピューターの能力を集中的に使用しますので注意して使用してください。このオプションを有効にする場合、よく使われるワークロードに対する共有フォルダーだけにこれを使用し、他のワークロードは圧縮されている共有フォルダー上に置いてください。
- -圧縮: ES NASはZFSのインラインデータ量削減を利用して圧縮と重複排除オプションを提供します。このオプションを有効にした場合、NAS の CPU リソースはたくさん消費されますが、共有フォルダーのサイズは小さくなります。
- -暗号化: LUNを暗号化するための暗号化パスワードを入力します。パスワードの長さは 8 ~ 16 文字にする必要があります。記号 (! @ # $ % ^ & * ( )_+ = ?) がサポートされます。iSCSI LUNは256 ビット AES 暗号で暗号化してデータ侵害を保護します。暗号化されたLUNは、正規のパスワードにより通常の読み書きアクセス用に iSCSIターゲットにだけマップできます。NASが再起動された場合に暗号化されたLUNへの自動アンロックおよびマッピングを行うため、「暗号化キーを保存」を選択します。

- 設定を確認し、「次へ」をクリックします。

- 「完了」をクリックすると、ターゲットおよびマップされたLUNの両方がリストに表示されます。

Microsoft iSCSI イニシエーターを利用した iSCSI ターゲットの作成
Microsoft iSCSIソフトウェアイニシエーターv2.08は、Windowsホスト用の公式アプリケーションで、それらから iSCSI ストレージアレイへのEthernetネットワークアダプターを介した接続を可能にします。Windows Server 2012、Server 2008 R2、Windows 7、Windows Server 2008、Windows Vistaを使用している場合、Microsoft iSCSI ソフトウェアイニシエーターは既定で含まれています。より詳細 (Microsoft iSCSI ソフトウェアイニシエーターv2.08のダウンロードリンクなど) は、https://www.microsoft.com/en-us/download/details.aspx?id=18986を参照してください。
注意: Windows Server内の iSCSI ターゲットを複数サポート (MPIO) 付で設定するには、「MPIOでWindows Serverに iSCSI 接続する設定」を参照してください。
Microsoft iSCSI イニシエーターを使用しているクライアントコンピューターから iSCSI ターゲットデバイスへの接続を確立するには次の手順を完了させてください (Windows Server 2012 R2を用いて説明)。
- 「開始」をクリックし、「検索開始」に「iSCSI」を入力してから、「プログラム」の下で「iSCSI イニシエーター」をクリックします。
- Microsoft iSCSI イニシエーターを初めて起動した場合には、Microsoft iSCSI サービスが実行されていないというプロンプトが表示されます。正常に実施するにはMicrosoft iSCSI イニシエーターのサービスを開始する必要があります。「はい」をクリックしてサービスを開始します。Microsoft iSCSI イニシエータープロパティのダイアログボックスが開き、「ターゲット」タブが表示されます。

- 「探索」タブをクリックします。ターゲットポータルを追加するには、「ポータルを探索」をクリックしてから、「ターゲットポータルの探索」ダイアログボックスに接続するターゲットポータルのIPアドレスまたは名前を入力します。TCPポートはデフォルトの3260のままにしてください。


注意: アウトバウンドIPアドレス (複数のネットワークアダプターを使う場合) などの追加設定や、セキュリティ設定 (CHAPなど) を入れるには、「詳細」をクリックします。 - 利用できる iSCSI ターゲットとそのステータスが「ターゲット」タブに表示されます。接続するターゲットを選択し、「接続」をクリックします。

- ターゲットのステータスが「接続」になります。

注意: Microsoft iSCSI イニシエーターに関する詳細は、Microsoft TechNetウェブサイトの「Microsoft iSCSI イニシエーターステップバイステップガイド」をご覧ください。
Microsoft TechNetでMPIOによる iSCSI 接続を設定する
ES NASは、 iSCSI ストレージエリアネットワーキング (SAN) 環境で複数ポート設定をもつ複数のホストからの接続をサポートし、標準のEthernetインフラストラクチャを利用できます。これにより、統合されたMultipath I/O (MPIO) をサポートするWindowsサーバークラスのオペレーティングシステムが動作しているホストコンピューターの接続が可能になります。
マルチパスのソリューションは冗長ネットワークインフラストラクチャを採用し、サーバー、ネットワーク、ストレージデバイス間の相互接続を作成します。冗長ネットワークインフラストラクチャの代替パスにより、1台あるいは複数のネットワークデバイスに障害があった際にも継続してアクセスが可能になります。
ストレージへの無停止アクセスを行うためには、それぞれのストレージコントローラーは、そのような冗長ネットワークインフラストラクチャを使って接続していなければなりません。
iSCSI 接続を設定する場合には次のガイドラインに従ってください。
- 同じサブネット上のEthernetインターフェイス2つを設定しないでください。それぞれのEthernetインターフェイスは別々のサブネット上になければなりません。
- QESでは、データサービス専用のEthernetポートに対する固定IPアドレスだけが可能です。
- VLANまたは異なるネットワーク機器を用いて iSCSI ネットワークのトラフィックを他のネットワークトラフィックと分離します。
次の図は、この接続の実現例です。

ES NASはフェイルオーバー保護機能をもつデュアルコントローラーNASですので、iSCSI 接続上でのMultipath I/O (MPIO) を強くおすすめします。次の項では、MPIO 付 Windows Serverでの iSCSI ターゲットの使用方法をご説明します。この例では次の設定を使用します。
- 2つの10GbE NICをもつWindows Server 2012 R2
NIC 1 IP: 8.8.1.90
NIC 2 IP: 8.8.2.90 - ES NAS コントローラーA:
データポート1: 8.8.1.107
データポート2: 8.8.2.107 - ES NAS コントローラーB:
データポート1: 8.8.1.108
データポート2: 8.8.2.108
Windows ServerにMPIOサービスをインストールします
マルチパスI/Oのインストール方法:
- Server Managerを開きます。
Server Managerを開くには、「スタートメニュー」 > 「すべてのアプリケーション」 > 「Server Manager」をクリックします。 - 左メニューの「ダッシュボード」で、「このローカルサーバーを設定」の下の「役割と機能の追加」をクリックします。

- 「始める前に」の手順で説明を読み、「次へ」をクリックします。

- 「インストレーションタイプの選択」手順で、「役割ベースまたは機能ベースのインストレーション」を選択し、「次へ」をクリックします。

- 「サーバープールからサーバーを選択」を選んでから、サーバープールからWindows Server 2012 R2 (このサーバーはそのIPアドレスで識別できます) を選択し、「次へ」をクリックします。

- 「サーバー役割の選択」手順で、「次へ」をクリックします。

- 「機能」リストで「マルチパスI/O」を見つけて選択し、「次へ」をクリックします。

- 「インストレーション選択の確認」ウィンドウで、「インストール」をクリックします。終了したら、「閉じる」をクリックします。

Windows ServerにMPIOサービスを構成する
次の手順で iSCSI デバイスに対するMPIOサポートを追加します。Microsoft MPIOに関する詳細は、Microsoft TechNetウェブサイトのMicrosoft Multipath I/O (MPIO)を参照してください。
- 「ダッシュボード」で、「ツール」 > 「MPIO」をクリックし、「MPIOプロパティ」ウィンドウが開きます。

- 「マルチパスを探索」タブに移り、「iSCSI デバイスのサポートを追加」を選択し、「追加」をクリックします。

- 「はい」をクリックしてサーバーを再起動します。

- コンピューターの再起動後、ドメイン管理者としてログインし、MPIOを再度立ち上げます。デバイスリストに「MSFT2005iSCSIBusType_0x9」が表示されます。

iSCSI イニシエーターの有効化と構成
Microsoft iSCSI イニシエーターを使用しているクライアントコンピューターから iSCSI ターゲットデバイスへの接続を確立するには次の手順を完了させてください。
- 「開始」をクリックし、「検索開始」に「iSCSI」を入力してから、「プログラム」の下で「iSCSI イニシエーター」をクリックします。
- Microsoft iSCSI イニシエーターを初めて起動した場合には、Microsoft iSCSI サービスが実行されていないというプロンプトが表示されます。正常に実施するにはMicrosoft iSCSI イニシエーターのサービスを開始する必要があります。「はい」をクリックしてサービスを開始します。Microsoft iSCSI イニシエータープロパティウィンドウが開きます。

- 「探索」タブをクリックします。ターゲットポータルを追加するには、「ポータルを探索」をクリックしてから、「ターゲットポータルの探索」ダイアログボックスに接続するターゲットポータルのIPアドレスまたは名前を入力します。ここでは同じサブネットに属するデュアルコントローラーのデータポート (管理用ポートではなく) のIPアドレスを追加します。TCPポートはデフォルトの3260のままにしてください。

- 利用できる iSCSI ターゲットとそのステータスが「ターゲット」タブに表示されます。接続するターゲットを選択し、「接続」をクリックします。

- 「マルチパスを有効化」を選択し、「詳細」をクリックします。

- 「詳細設定」ウィンドウで、「Microsoft iSCSI イニシエーター」を選択します。次に、「イニシエーターIP」ドロップダウンリストと「ターゲットポータルIP」ドロップダウンリストのそれぞれからIPアドレスを選択します。イニシエーターIPとターゲットポータルIPは同じサブネットであるようにしてください。

- 「OK」をクリックしてウィンドウを閉じます。

- これらの iSCSIターゲットのひとつが正しく接続されたことが表示されます。このターゲットを選択肢、「プロパティ」をクリックします。

- 「セッション」タブで、「セッションの追加」を選択します。

- 「マルチパスを有効化」を選択し、「詳細...」をクリックします。

- 別のサブネットに属する他のデータポートのIPアドレスを追加します。イニシエーターIPとターゲットポータルIPは同じサブネットであるようにしてください。「OK」をクリックしてウィンドウを閉じます。

- 別のセッションが追加されたことがわかります。「OK」をクリックしてウィンドウを閉じます。

- 手順3から手順12を繰り返して他のMPIO付 iSCSI ターゲットを設定します。

- 両方のターゲットをMPIO付で設定した後、iSCSI サービスに永続的につなげる iSCSI ボリュームやデバイスを追加します。これは、永続的につなげられたボリュームとデバイスがコンピューターで利用可能になるまで、iSCSI イニシエータサービスは初期化を完了しないようにします。iSCSI イニシエータプロパティ上の「ボリュームとデバイス」タブを選択し、「自動設定」をクリックして利用できるデバイスを自動的に設定します。新しいボリュームには、ボリュームリスト中で「mpio#disk………….」という新しいボリューム名となります。「OK」をクリックしてウィンドウを閉じます。

iSCSI 仮想ディスクのマウント
ターゲットが接続されると、Windows はその存在を検出し、新しいハードディスクドライブが追加されたように扱います。新しい iSCSI ディスクは使用前に初期化とフォーマットが必要です。
- 左メニューの「ダッシュボード」で、「ツール」(右上隅) > 「コンピューターの管理」に進みます。

- 左ペインのストレージフォルダーの下で、「ディスク管理」を選択します。新しいディスクは一番下のパネルで「オフライン」と表示されます。「オフライン」をクリックし、「オンライン」を選択してこのディスクをオンラインにします。

- ディスクのステータスが「初期化されていません」となります。ディスクを使用可能にする前に、まずそれを初期化する必要があります。「初期化されていません」をクリックし、「ディスクの初期化」を選択してそのディスクを初期化します。

- ディスクが初期化されます。これでその上にボリュームを作成できます。ディスク上をクリックし、「新しいシンプルボリューム」を選択します。

- 「新しいシンプルボリュームウィザード」に関する画面上の指示に従い、新しいボリューム作成し、そのボリュームにドライブレターを割当てます。ボリュームフォーマットが終わると、新しいドライブが PC に追加されます。この iSCSI ターゲットを通常のディスクパーティションとして利用できます。

注意: ディスク管理に関する詳細は、Microsoft TechNetウェブサイトのディスク管理を参照してください。
高可用性と性能の最適化
MPIOポリシーと性能の最適化
手順 1.ディスク管理を開き、マウントされている iSCSI ディスクを右クリックして「プロパティ」を選択します。

手順 2.「MPIO」タブをクリックし、「MPIOポリシーの選択」フィールドの「サブネットでラウンドロビン」を選択します。サブネットでラウンドロビンは、コントローラーパスを閉じる際にのみデータが送信されます。転送効率の改善。性能をテストするには、「最小キュー深度」を選択することをおすすめします。

手順 3.「詳細」ボタンをクリックして、DSM詳細内の「パス検証の有効化」がチェックされていることを確認します。

Microsoft TechNetウェブサイトを参照してください。https://technet.microsoft.com/en-us/library/dd851699(v=ws.11).aspx
MPIO高可用性耐障害性タイマーの最適化
手順 1.Windowsキーと「R」ボタンを押し、「regedit」と入力します。

手順 2.「HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Disk」パスで「TimeOutValue」を見つけ、マウスの右ボタンをクリックしてして「変更」を押します。

手順 3.右のデシマルオプションをクリックしてから、左側に値を入力します。

手順 4.次のページの指示に従い、他の登録キーの値を変更します。

ヒント:登録キーの推奨変更
SCSI Miniportドライバーの登録エントリー
パス:HKLM\SYSTEM\CurrentControlSet\Services\Disk
値の名称:TimeOutValue
説明:ディスクがオフラインになった後のタイムアウト (秒)。
デフォルト値:60
推奨値:60または適宜調整
範囲:1~255
Microsoft iSCSI イニシエータードライバータイマー
パス:HKLM\SYSTEM\CurrentControlSet\Control\Class\ {4D36E97B-E325-11CE-BFC1-08002BE10318}\0001\Parameters
値の名称:DelayBetweenReconnect
説明:接続が中断された場合、iSCSI ドライバーは再接続を試み、ログインします。再接続の間隔はこの値 (秒) を調整してください。
デフォルト値:5
推奨値:10
値の名称:LinkDownTime
説明:I/O要求が送出され、最大時間 (秒) 待機してから接続が中断されたと判断し、その後再接続を行います。
デフォルト値:15
推奨値:300
値の名称:MaxRequestHoldTime
説明:送出されたI/O要求がターゲットが見つからないことがわかり、最大時間 (秒) 待機してから再接続を行います。
デフォルト値:60
推奨値:300
値の名称:SrbTimeoutDelta
説明:システムディスクドライバー (disk.sysなど) は、送信タイムアウトをチェックする際にネットワーク遅延は考慮しません。この値はそうしたディスクドライバーに対し、ネットワークタイムアウトの参照時間 (秒) を提供します。
デフォルト値:15
推奨値:300
Microsoft Multipath I/O (MPIO) タイマー
パス:HKLM\SYSTEM\CurrentControlSet\Services\mpio\Parameters
値の名称:PathVerificationPeriod
説明:MPIOがパスの検証を実施する時間 (秒) を示します。
デフォルト値:30
推奨値:30または適宜調整
値の名称:PDORemovePeriod
説明:すべてのデバイスパスが失敗してもMPIO LUNがシステムメモリに残る時間数 (秒) 。この時間を過ぎた場合、I/O動作は失敗し、システムはパスの接続を回復することをやめ、アプリケーションにI/Oが失敗したことを伝えます。
デフォルト値:20
推奨値:600
値の名称:RetryCount
説明:DSM (device-specific modules) がI/O要求失敗と判断した時に再試行しなければならない回数。
デフォルト値:3
推奨値:3または適宜調整
値の名称:RetryInterval
説明:DSM (device-specific modules) がI/O要求失敗と判断した時に再試行しなければならない時間間隔 (秒) 。
デフォルト値:1
推奨値:1または適宜調整
ネットワークパフォーマンスの最適化
ヒント:異なるブランドのネットワークアダプターモデルでは、最適化の手法が異なり、効果は同じではありません。ここではIntel X540ネットワークカードを例として使用しています。
手順 1: デバイスマネージャーを開き、カードのデータポートを右クリックし、「プロパティ」を押します。

手順 2: 「詳細」ページをクリックし、「設定」で「ジャンボパケット」項目を見つけ、その値を9000または9014バイトに変更します。

手順 3: 「割り込み限度」をクリックし、無効化する値を変更します。(この手順はオプションで、カードがIntel X550の場合はデフォルト値を推奨します)

手順 4: 「性能オプション」をクリックしてから右側の「プロパティ」ボタンを押し、「割り込み限度割合」をオフにします。(この手順はオプションで、カードがIntel X550の場合はデフォルトのままにすることをおすすめします)

手順 5.Windows PowerShellを開き、画面に「OK」と出るまで「netsh int tcp set supplemental datacenter」と入力します。

参照
Microsoft iSCSI イニシエーターステップバイステップガイド。Microsoft TechNetからの抜粋
https://technet.microsoft.com/en-us/library/ee338476(v=ws.10).aspx
Microsoft Multipath I/O (MPIO) 。Microsoft TechNetからの抜粋
https://technet.microsoft.com/en-us/library/dd759254(v=ws.11).aspx
ディスク管理Microsoft TechNetからの抜粋
https://technet.microsoft.com/en-us/library/cc770943(v=ws.11).aspx