何でも屋: 小規模環境に最適な iSCSI

Greg Shields

古き良き時代の SCSI を覚えていらっしゃるでしょうか。当時、SCSI の接続、速度、頭字語、およびインターフェイスを把握するには、実際のところ、秘密のデコーダー リングが必要でした。サーバーで Fast SCSI、Ultra SCSI、Ultra2 Wide SCSI、またはこの中間に位置するものが必要かどうかを確認する必要があるため、SCSI ディスク ドライブを使用するのは複雑な作業でした。

その結果、多くのユーザーが行き詰って SCSI の使用を諦めました。当時は、多くの場合、SCSI に関する作業は外部のコンサルタントに委託したり、十分に理解しているフレームワークで動作する低速のディスクを好んで使用していました。

その後、大幅な標準化の促進により、事態は大きく変化しました。今日、SCSI は至るところで使用されています。サーバーの製造元では、SATA ドライブや Secure Attention Sequence (SAS) ドライブを内蔵した機器を提供するようになりました。これで、頭字語、コネクター、または秘密のデコーダー リングを気にかける必要はなくなりました。必要なのは、ディスクを追加して使用するだけです。

ただし、このような直接接続型 SCSI の標準化が進んでも、記憶装置は直接サーバーに接続する必要があるという事実を避けて通ることはできません。従来の直接接続型 SCSI を使用しても、既存のネットワークを経由して複数のサーバーを一元管理された記憶域に接続する明確な方法はありません。

ネットワーク接続に対応できるソリューションが必要になったため、iSCSI が誕生しました。iSCSI では、SCSI で日常的に実行されていた、ありふれた Ethernet ケーブルによる多数の接続がなくなります。SCSI のサーバー単位の記憶域を単一の共有デバイスに統合し、既存のネットワーク経由でサーバーを記憶域に接続することで、小規模環境では、記憶域を必要に応じてサーバーやファイル共有に個別に割り当てて、効率的に使用することができます。

銅線の Ethernet を使用した SCSI の物理接続の代わりに iSCSI を使用することで、物理層の管理が簡略化されます。ただし、iSCSI をお使いの小規模環境に適切に組み込むには、いくつかの手法と追加のプロトコルが必要になり、これらは一見してわかるようなものではないかもしれません。iSCSI は、低コストで管理が簡単なので、何でも屋である IT プロフェッショナルが必要としている記憶域として打って付けです。このコラムでは、iSCSI を正しく使用できるようになるために必要な情報を提供します。

物理接続から論理接続へ

iSCSI による接続の可能性を理解するには、オプションを検証するのが一番です。任意のサーバーでリモート コンソールを起動してください。続いて、管理ツールの iSCSI イニシエーターを開きます。このコンソールは、Windows Server 2008 R2 で、必要とされていた見直しが行われました。中でも最も大きな変更は、クイック接続の追加です (図 1 参照)。クイック接続を使用すると、操作中のサーバーと公開されている iSCSI LUN の間の基本接続を簡単に作成できます。

管理ツールの iSCSI イニシエーター

図 1 管理ツールの iSCSI イニシエーター

ここで少し補足説明をしましょう。物理的な世界と同様に、各 iSCSI 接続では 2 つのデバイスが必要になります。操作中のサーバー側が、いわゆる iSCSI イニシエーターです。iSCSI イニシエーターは、一連の iSCSI ディスクからサービスを要求する "クライアント" と見なせます。

反対側にあるのは iSCSI ターゲットです。iSCSI ターゲットには、接続するディスクがあります。iSCSI ターゲットは、1 つ以上のクライアント イニシエーターの要求に応答する "サーバー" として機能します。ターゲットとイニシエーター間で接続を確立すると、1 つ以上の LUN を検出して、その LUN をサーバーでディスク ボリュームとして初期化できます。

iSCSI を使用するには、iSCSI プロトコルをサポートしているデバイスが必要になります。たとえば、このようなデバイスは、お使いのネットワーク上にある既存の SAN、iSCSI ターゲットのソフトウェアを実行している、通常の Windows サーバーの場合もあります。

マイクロソフトは、iSCSI Software Target というソフトウェアを開発しました。ただし、このソフトウェアは Windows Storage Server で使用することを目的としています。また、標準的な Windows サーバーにサービスとしてインストールするサードパーティ製のソフトウェアもあります。このサービスでは、ネットワーク上の任意の場所に、サーバーの直接接続型ディスクを公開できます。

ソフトウェアをインストールしたら、次の手順は iSCSI ターゲットで開始します。このデバイスで公開する LUN に "クライアント" コンピューターを接続する前に、まず、この LUN を作成してネットワークに公開する必要があります。この手順の詳細は、お使いのデバイスやソフトウェアによって大きく異なります。詳細については、お使いの iSCSI ターゲットのマニュアルを参照してください。LUN を適切なネットワークやネットワーク インターフェイスに接続したり、セキュリティや認証に関するオプションを追加したりして、少なくとも、LUN 用のディスク領域を、ある程度確保する必要があります。

この最初の手順が完了したら、あとは数回のクリック操作で、基本接続を作成できます。まず、図 1 に表示されている [ターゲット] ボックスに、iSCSI ターゲットのソフトウェアを実行しているサーバーやデバイスの IP アドレスまたは DNS 名を入力して、[クイック接続] をクリックします。LUN を適切に作成して、このサーバーに公開すると、[検出されたターゲット] ボックスの一覧に LUN が表示されます。

図 1 には、検出されたターゲットが 4 つ表示されており、そのうち 3 つは接続されています。通常、検出されたターゲットは、最初は非アクティブな状態で表示されます。これは、準備が完了している場合にのみ、ターゲットに接続できるようにするための動作です。

ターゲットへの接続ウィザード

図 2 ターゲットへの接続ウィザード

ターゲットを選択して、[接続] をクリックします。図 2 のようなウィンドウが表示されます。最も基本的な接続を確立するには、1 つ目のチェック ボックスがオンになっていることを確認して、[OK] をクリックします。1 つ目のチェック ボックスをオンにすると、再起動するたびに、自動的に接続が復元されます。

また、このウィンドウには [詳細設定] ボタンがあります。詳細については後で説明しますが、最も基本的な接続以外のすべての接続では、イニシエーター IP やターゲット ポータル IP の指定など、一連の詳細な構成が必要になります。

基本接続に関しては、ドライブを準備する手順が 2 つ残っています。まず、[iSCSI イニシエーターのプロパティ] ダイアログ ボックスの [ボリュームとデバイス] タブをクリックして、[自動構成] をクリックします。この手順を実行すると、使用可能なすべてのデバイスが自動的に構成され、バインドされるので、次回システムを再起動したときには使用できるようになっています。

この手順が完了すると、ディスクの管理でディスクを確認できるようになります。後は、ディスクをオンラインにして、初期化し、(必要に応じて) フォーマットします。これで、ディスクは、直接接続型ディスクのように使用することができます。

MPIO/MCS: 必要不可欠な高可用性と負荷分散

iSCSI ディスクを既存のネットワーク経由でサーバーに接続するのは、幅広く使用されている接続に適していますが、お使いのネットワークの相互接続が障害点となります (または、障害点となる可能性があります)。誤ってケーブルを抜いたり、ルーターの構成を誤ったり、従来のネットワークで起こる無数の問題が発生する可能性があります。このため、iSCSI の実稼働環境では、冗長な接続を使用する必要があります。

実稼動ネットワーク接続と同様に、NIC チーミングを使用する方法が簡単な解決法に見えるかもしれません。ただし、iSCSI 接続では、従来の NIC チーミングを使用することはサポートされておらず、ベストプラクティスとも考えられていません。ですから、NIC チーミングは使用しないでください。

iSCSI デバイスと接続する際には、高可用性と負荷分散を処理する、一連の専用のプロトコルを活用します。iSCSI のマルチパス I/O (MPIO) と複数接続セッション (MCS) のプロトコルは、多くの点で従来の NIC チーミングよりも優れていることがわかるでしょう。たとえば、各プロトコルには、非常に多様なフェールオーバー機能と負荷分散機能が備わっています。

MPIO は MCS とはまったく異なるプロトコルです。MPIO を使用するには、iSCSI イニシエーターを実行しているサーバーに Device-Specific Module (DSM) を接続する必要があります。Windows OS には、マイクロソフト独自の "既定" の DSM が搭載されており、サーバー マネージャーにマルチパス I/O 機能としてインストールされています。

多くの記憶装置では、追加のソフトウェアをインストールすることなく、この DSM を使用できます。ただし、記憶装置によっては、製造元が提供する DSM が必要になることがあります。専用のドライバーをインストールする必要があるのか、または組み込みの Microsoft DSM で問題ないのかを判断するには、お使いのデバイスの製造元に問い合わせてください。

MCS では、このような DSM をサーバーにインストールする必要がありません。ただし、MCS を使用するには、記憶装置で MCS のプロトコルがサポートされている必要があります。すべてのデバイスが MCS に対応しているわけではないので、少し調査をして、状況に合ったプロトコルを特定する必要があります。

基盤となるコードは異なりますが、マルチパスの管理方法は類似しています。MPIO と MCS では、どちらともサーバーと iSCSI ターゲット間の複数の並列的な接続を作成する方法を提供します。どちらのプロトコルでも必要になる作業の大半は、使用する NIC とネットワークを具体的に特定することです。

2 つのプロトコルのうち、MCS の方が少ない手順で設定を完了できるので、MCS の設定方法について説明します。ここで紹介する手順は、MPIO を使用する場合にも適用できます。先ほど説明した、単一のネットワーク接続を経由してサーバーを記憶域に接続した基本接続の例を思い出してください。この接続は、サーバーの単一の IP アドレスと記憶装置の単一の IP アドレスの間で確立されました。

それぞれ 4 つのネットワーク インターフェイスを備えた 2 台のサーバーと、4 つのネットワーク インターフェイスを備えた単一の記憶装置との接続

図 3 それぞれ 4 つのネットワーク インターフェイスを備えた 2 台のサーバーと、4 つのネットワーク インターフェイスを備えた単一の記憶装置との接続

MCS の M は、複数の接続を確立することで、基本の設定を補強することを表しています。各接続にはネットワーク カードと関連付けられている IP アドレスが必要で、iSCSI ターゲットと iSCSI イニシエーターでは、それぞれ複数のネットワーク カードと IP アドレスを使用します。図 3 では、それぞれ 4 つのネットワーク インターフェイスと関連付けられた IP アドレスを使用する 2 台のサーバーが、記憶装置の 4 つのネットワーク インターフェイスの IP アドレスに接続した場合の例を示しています。

MCS 構成コンソール

図 4 MCS 構成コンソール

MCS を管理するには、図 1 のダイアログ ボックスでターゲットを 1 つ選択して、[プロパティ] をクリックし、[MCS] をクリックします。図 4 のようなコンソールが表示されます。先ほど説明した "基本" の設定の例では、ローカル サーバーのソース ポータルと記憶装置のターゲット ポータル間の単一の接続を構成しました。

接続を追加するための [詳細設定] ダイアログ ボックス

図 5 接続を追加するための [詳細設定] ダイアログ ボックス

接続を追加するには、[追加] をクリックし、[詳細設定] をクリックします。これで、[詳細設定] ダイアログ ボックスが表示されます (図 5 参照)。このコンソールで、[イニシエーター IP] ボックスに 2 番目の ローカル NIC の IP アドレスを指定して、SAN 上の 2 番目のリモート ターゲット ポータルの IP アドレスを指定します。

ここで使用できる追加のターゲット ポータルの IP アドレスがない場合は、メイン コンソールの [探索] タブで確認する必要があります。イニシエーターとターゲット ポータルの各組み合わせごとに、この手順を繰り返します。

動作を定義する MCS ポリシー

このように複数の接続を作成することで、記憶域のネットワーク トラフィックを転送できる、複数のパス (物理パスと論理パス) を指定します。ある接続が切断されると、これらの複数のパスは、フェールオーバー ターゲットとして機能します。また、それぞれの新しい接続により、さらに多くのネットワーク容量を追加して、トラフィックの負荷を分散することもできます。

ただし、このような複数の接続では、フェールオーバーと負荷分散の動作を定義するなんらかの方法が必要になります。MCS では、次の 5 つのポリシーを構成できます。

  1. フェールオーバーのみ: このポリシーを使用すると、トラフィックは負荷分散されません。単一のパスのみを使用し、最初の接続のパスが切断されるまで、他のパスはスタンバイ モードのままです。
  2. ラウンド ロビン: これは負荷分散機能を含む最も単純なポリシーです。このポリシーを使用すると、トラフィックは使用可能なパスの間を順番に移動します。
  3. サブセットのラウンド ロビン: このポリシーはラウンド ロビンと同様に機能しますが、負荷分散の対象から 1 つ以上のパスが除外されます。これらのパスは、プライマリ パスでエラーが発生した場合に備えて、スタンバイの状態で使用されます。
  4. 最小キューの深さ: このポリシーもラウンド ロビンと同様で、キューの要求が最も少ないパスを特定し、このパスを使用することでトラフィックの負荷を分散します。
  5. 加重パス: このポリシーを使用すると、パスに重みを付けて、パスによっては、他のパスよりも多くの容量を使用できるようにすることが可能です。割り当てられた重みに応じて、トラフィックの負荷をパスの間で分散します。

MCS はセッション単位で機能するので、個々のセッションと接続に固有の MCS ポリシーを設定できます。ストレージ接続のパフォーマンスと可用性全体に多大な影響を与える可能性があるため、使用するポリシーは慎重に選択してください。

小規模環境に最適

iSCSI イニシエーター コンソールについては、"左から右へ操作する" とよく言われています。図 1 をもう一度見てみると、[ターゲット]、[探索]、[お気に入りのターゲット]、[ボリュームとデバイス]、[RADIUS]、および [構成] という 6 つの異なるタブがあります。

多くの接続では [RADIUS] タブや [構成] タブの設定を編集する必要はありませんが、このコンソールで接続を作成する際には、[ターゲット] タブから始めて [ボリュームとデバイス] タブまでの設定を構成することをお勧めします。一方、接続を解除するには、これらの手順を逆に実行し、右から左へ操作します。

iSCSI の高可用性に関するオプションを構成する追加の手順は複雑に見えるかもしれませんが、新しいディスクをサーバーに追加するときにだけ実行する必要があることを覚えておいてください。接続したら、ディスクはサーバーが再起動するたびに再接続され、あるパスで障害が発生すると、自動的に再構成されます。

iSCSI は既存のネットワーク インフラストラクチャに依存しているので、この従来の SCSI を補強した方法は、小規模環境に最適な方法になり得ます。iSCSI SAN は比較的低価格で購入でき、昨年公開された冷蔵庫ほどのサイズがある SAN シャーシとは比べものになりません。他の記憶域メディアほど難解な知識は必要ないので、iSCSI の管理のしやすさは、何でも屋である IT プロフェッショナルにとって最適なソリューションです。

Greg Shields (MVP) は、Concentrated Technology の共同経営者です。何でも屋である IT プロフェッショナル向けのヒントとテクニックについては、ConcentratedTech.com (英語) を参照してください。

関連コンテンツ