目次にジャンプページナビゲーションにジャンプ: 前のページ[アクセスキーp]/次のページ[アクセスキーn]
documentation.suse.com / SUSE Linux Enterprise Serverマニュアル / ストレージ管理ガイド / ネットワークストレージ / IPネットワークの大容量記憶域 - iSCSI
適用項目 SUSE Linux Enterprise Server 12 SP5

14 IPネットワークの大容量記憶域 - iSCSI

コンピュータセンターや、サーバをサポートするサイトの主要タスクの1つは、適切なディスク容量を提供することです。この用途には、多くの場合、ファイバチャネルが使用されます。iSCSI(Internet SCSI)ソリューションは、ファイバチャネルに対する低コストの代替であり、コモディティサーバおよびEthernetネットワーキング装置を活用することができます。Linux iSCSIは、iSCSIイニシエータおよびiSCSI LIOターゲットのソフトウェアの提供により、Linuxサーバを中央ストレージシステムに接続します。

iSNSサーバによるiSCSI SAN
図 14.1: iSNSサーバによるiSCSI SAN
注記
注記: LIO

LIO(http://linux-iscsi.org)は、Linux用の標準のオープンソースマルチプロトコルSCSIターゲットです。LIOは、Linuxカーネルのバージョン2.6.38以降において、Linuxにおける標準の統一ストレージターゲットとして、STGT (SCSI Target)フレームワークにとって代わりました。SUSE Linux Enterprise Server 12では、古いバージョンのiSCSIターゲットサーバにiSCSI LIOターゲットサーバに代わっています。

iSCSIは、ストレージネットワーキングプロトコルであり、ブロックストレージデバイスとサーバ間における、TCP/IPネットワーク上でのSCSIパケットのデータ転送を簡素化にします。iSCSIターゲットソフトウェアは、ターゲットサーバ上で実行され、論理ユニットをiSCSIターゲットデバイスとして定義します。iSCSIイニシエータソフトウェアは異なるサーバ上で実行され、ターゲットデバイスに接続して、そのサーバ上でストレージデバイスを使用できるようにします。

iSCSI LIOターゲットサーバおよびiSCSIイニシエータサーバは、LAN内のIPレベルでSCSIパケットを送信して通信します。イニシエータサーバ上のアプリケーションがiSCSI LIOターゲットデバイスに対する照会を開始すると、オペレーティングシステムが必要なSCSIコマンドを発行します。するとSCSIコマンドが、iSCSIイニシエータと呼ばれるソフトウェアによってIPパケットに組み込まれ、必要に応じて暗号化されます。パケットは内部IPネットワーク上で、「iSCSI LIOターゲットサーバ」または単に「iSCSIターゲット」と呼ばれる、対応するiSCSIリモートステーションに転送されます。

多くのストレージソリューションが、iSCSIによるアクセス手段を提供しています。また、LinuxサーバにiSCSIターゲットの役割をさせることもできます。この場合、Linuxサーバをファイルシステムサービス用に最適化しておくことが重要です。iSCSIターゲットはLinux内のブロックデバイスにアクセスします。したがって、RAIDソリューションを使用することでディスク容量を増やし、メモリも増量してデータキャッシングを向上させることができます。RAIDの詳細については、第7章 「ソフトウェアRAIDの設定も参照してください。

14.1 iSCSI LIOターゲットサーバとiSCSIイニシエータのインストール

iSCSIイニシエータはデフォルトでインストールされますが(open-iscsiパッケージとyast2-iscsi-clientパッケージ)、iSCSI LIOターゲットパッケージは手動でインストールする必要があります。

重要
重要: イニシエータとターゲットを同一サーバで実行することはできない

iSCSIターゲットソフトウェアとiSCSIイニシエータソフトウェアを、運用環境内の同じサーバ上で実行することはできません。

iSCSI LIOターゲットサーバをインストールするには、端末コンソールで次のコマンドを実行します。

sudo zypper in yast2-iscsi-lio-server

iSCSIイニシエータまたはその依存関係をインストールする必要がある場合は、コマンドsudo zypper in yast2-iscsi-clientを実行します。

または、YaSTソフトウェア管理モジュールを使用してインストールします。

先に示したパッケージ以外の必要なパッケージは、インストーラによって自動的に組み込まれるか、またはそれぞれのYaSTモジュールの初回実行時にインストールされます。

14.2 iSCSI LIOターゲットサーバのセットアップ

本項では、YaSTを使用してiSCSI LIOターゲットサーバを構成し、iSCSI LIOのターゲットデバイスを設定する方法について説明します。任意のiSCSIイニシエータソフトウェアを使用して、ターゲットデバイスにアクセスすることができます。

14.2.1 iSCSI LIOターゲットサービスの起動およびファイアウォールの設定

iSCSI LIOターゲットサービスは、マニュアルで開始するようデフォルトで設定されています。同サービスを、システムのブート時に自動的に開始するよう設定できます。サーバでファイアウォールを使用していて、iSCSI LIOターゲットをほかのコンピュータでも利用可能としたい場合は、ターゲットへのアクセスに使用する各アダプタ用に、ファイアウォール内のポートを開放する必要があります。TCPポート3260が、iSCSIプロトコル用のポート番号です。これは、IANA (Internet Assigned Numbers Authority)により定義されています。

  1. YaSTを起動し、ネットワークサービス › iSCSI LIOターゲットの順に起動します。

  2. サービスタブに切り替えます。

    Image
  3. サービスを開始で、iSCSI LIOターゲットサービスの開始方法を指定します。

    • ブート時: サービスは、サーバの再起動時に自動的に開始します。

    • 手動: (デフォルト)サーバの再起動後、sudo systemctl start targetコマンドを実行して、手動でサービスを開始する必要があります。ターゲットデバイスは、サービスを開始するまで利用できません。

  4. サーバでファイアウォールを使用していて、iSCSI LIOターゲットをほかのコンピュータでも利用可能としたい場合は、ターゲットへのアクセスに使用する各アダプタインタフェース用に、ファイアウォール内のポート3260を開放します。このポートがネットワークインタフェースのすべてに対してクローズしている場合、iSCSI LIOターゲットはほかのコンピュータでは利用できません。

    サーバでファイアウォールを使用していない場合、ファイアウォール設定は無効です。この場合、次の手順をスキップして、終了を使用して設定ダイアログから移動するか、別のタブに切り替えて設定を続行します。

    1. サービスタブで、ファイアウォールのポートを開くチェックボックスをオンにして、ファイアウォール 設定を有効にします。

    2. ファイアウォールの詳細をクリックして、使用するネットワークインタフェースを確認または設定します。すべての利用可能なネットワークインタフェースが一覧表示され、デフォルトではすべてが選択されています。ポートを開く必要がないすべてのインタフェースを選択解除します。OKをクリックして設定を保存します。

  5. 完了をクリックして、iSCSI LIOターゲットサービスの設定を保存して適します。

14.2.2 iSCSI LIOターゲットおよびイニシエータのディスカバリに対する認証の設定

iSCSI LIOターゲットサーバソフトウェアは、PPP-CHAP (Point-to-Point Protocol Challenge Handshake Authentication Protocol)をサポートしています。これは、Internet Engineering Task Force (IETF) RFC 1994 (http://www.ietf.org/rfc/rfc1994.txt)で定義されている、3方向の認証方法です。サーバはこの認証方法を、ターゲット上のファイルへのアクセスにではなく、iSCSI LIOのターゲットとイニシエータのディスカバリ用に使用します。ディスカバリへのアクセスを制限しない場合は、認証なしを選択します。デフォルトでは検出認証なしオプションが有効になっています。このサーバ上のすべてのiSCSI LIOターゲットは、認証を要求しないので、同じネットワーク上のどのiSCSIイニシエータによっても検出することができます。

よりセキュアな設定に対する認証が必要な場合は、incoming認証、outgoing認証またはその両方を使用できます。 イニシエータによる認証では、iSCSIイニシエータに、iSCSI LIOターゲット上で検出を実行するパーミッションがあることを証明するよう求めます。イニシエータは、incomingのユーザ名とパスワードを入力する必要があります。ターゲットによる認証では、iSCSI LIOターゲットに、自らが目的のターゲットであることをイニシエータに対して証明するよう求めます。iSCSI LIOターゲットは、outgoingのユーザ名とパスワードを、iSCSIイニシエータに提供する必要があります。パスワードはincomingとoutgoingのディスカバリで異なる必要があります。ディスカバリに対する認証を有効にしない場合、その設定は、すべてのiSCSI LIOターゲットグループに適用されます。

重要
重要: セキュリティ

セキュリティ上の理由により、運用環境では、ターゲットおよびイニシエータのディスカバリに認証を使用することをお勧めします。

iSCSI LIOターゲットに対して認証の初期設定を行うには

  1. YaSTを起動し、ネットワークサービス › iSCSI LIOターゲットの順に起動します。

  2. グローバルタブに切り替えます。

    Image
  3. デフォルトでは、認証は無効(検出認証なし)です。認証を有効にするには、イニシエータによる認証または送信認証、あるいはその両方を選択します。

  4. 選択した認証方法に対して資格情報を提供します。ユーザ名とパスワードの組み合わせは、incomingとoutgoingディスカバリで異なっている必要があります。

  5. 完了をクリックして、設定を保存して適用します。

14.2.3 ストレージスペースの準備

LUNをiSCSIターゲットサーバ用に設定する前に、使用するストレージを準備する必要があります。未フォーマットのブロックデバイス全体を1つのLUNとして使用することも、デバイスを複数の未フォーマットパーティションに再分割して、各パーティションを別個のLUNとして使用することもできます。iSCSIターゲット設定では、LUNをiSCSIイニシエータにエクスポートします。

YaSTのパーティショナまたはコマンドラインを使用して、パーティションを設定できます。詳細については、12.1項 「YaSTのパーティショナの使用」を参照してください。iSCSI LIO ターゲットは、Linux、Linux LVM、またはLinux RAIDファイルシステムIDで未フォーマットのパーティションを使用できます。

重要
重要: iSCSIターゲットデバイスをマウントしない

iSCSIターゲットとして使用するデバイスやパーティションを設定したら、ローカルパス経由で直接アクセスしないでください。ターゲットサーバにパーティションをマウントしないでください。

14.2.3.1 仮想環境でのデバイスのパーティション分割

仮想マシンのゲストサーバを、iSCSI LIOターゲットサーバとして使用できます。本項では、Xen仮想マシンにパーティションを割り当てる方法を説明します。また、SUSE Linux Enterprise Serverでサポートされている他の仮想環境も使用できます。

Xen仮想環境で、iSCSI LIOターゲットデバイスに使用するストレージスペースをゲストの仮想マシンに割り当て、ゲスト環境内の仮想ディスクとしてそのスペースにアクセスします。各仮想ディスクは、ディスク全体、パーティション、ボリュームなどの物理ブロックデバイスでも、Xenホストサーバ上の大規模な物理ディスク上の単一イメージファイルが仮想ディスクになっている、ファイルバックディスクイメージのいずれでも可能です。最適なパフォーマンスを得るためには、物理ディスクまたはパーティションから各仮想ディスクを作成してください。ゲストの仮想マシンに仮想ディスクを設定したら、ゲストサーバを起動し、物理サーバの場合と同じ方法で、新しいブランクの仮想ディスクをiSCSIターゲットデバイスとして設定します。

ファイルバックディスクイメージがXenホストサーバ上に作成され、Xenゲストサーバに割り当てられます。デフォルトでは、Xenはファイルバックディスクイメージを/var/lib/xen/images/VM_NAMEディレクトリに保存します。ここでVM_NAMEは仮想マシンの名前です。

14.2.4 iSCSI LIOターゲットグループの設定

YaSTを使用して、iSCSI LIOターゲットデバイスを設定することができます。YaSTでは、lio-utilsソフトウェアにより提供されるAPIを使用します。iSCSI LIO ターゲットは、Linux、Linux LVM、またはLinux RAIDファイルシステムIDで未フォーマットのパーティションを使用できます。

重要
重要: パーティション

始める前に、14.2.3項 「ストレージスペースの準備」に記載しているように、iSCSI LIOターゲットとして使用する未フォーマットのパーティションを作成してください。

  1. YaSTを起動し、ネットワークサービス › iSCSI LIOターゲットの順に起動します。

  2. ターゲットタブに切り替えます。

    Image
  3. 追加をクリックして、新しいiSCSI LIOのターゲットグループとデバイスを定義します。

    iSCSI LIOターゲットソフトウェアにより、ターゲット識別子ポータルグループIPアドレス、およびポート番号の各フィールドが自動的に記入されます。認証を使用するが、デフォルトで選択されています。

    1. 複数のネットワークインタフェースがある場合は、[IPアドレス]ドロップダウンボックスを使用して、このターゲットグループ用に使用するネットワークインタフェースのIPアドレスを選択します。すべてのアドレスでサーバにアクセスできるようにするには、Bind All IP Addresses (すべてのIPアドレスをバインド)を選択します。

    2. このターゲットグループに対してイニシエータ認証を不要にする場合は、認証を使用をオフにします(非推奨)。

    3. 追加をクリックします。デバイスまたはパーティションのパスを入力するか、または参照を使用して追加します。オプションで名前を指定して、OKをクリックします。0から始まるLUN番号が自動的に作成されます。フィールドを空にしておくと、名前が自動的に生成されます。

    4. (オプション)前の手順を繰り返し、このターゲットグループにさらにターゲットを追加します。

    5. 目的のターゲットがすべてグループに追加されたら、次へをクリックします。

  4. iSCSIターゲットイニシエータのセットアップの変更ページで、ターゲットグループ内のLUNへのアクセスを許可されるイニシエータに関する情報を設定します。

    Image

    ターゲットグループに対して少なくとも1つ以上のイニシエータを指定すると、LUNの編集認証の編集削除、およびコピーの各ボタンが有効になります。追加またはコピーを使用して、ターゲットグループにイニシエータを追加できます。

    [iSCSIターゲットの変更]: オプション
    • 追加: 選択したiSCSI LIOターゲットグループに、新たなイニシエータのエントリを追加します。

    • LUNを編集: iSCSI LIOターゲットグループ内のどのLUNが、選択したイニシエータにマップするかを設定します。割り当てられたターゲットのそれぞれを、任意のイニシエータにマップすることができます。

    • 認証を編集: 選択したイニシエータに対する好みの認証方法を設定します。認証なしを指定することも、incoming認証、outgoing認証、またはその両方を設定することもできます。

    • 削除: 選択したイニシエータのエントリを、ターゲットグループに割り当てられたイニシエータのリストから削除します。

    • コピー: 同じLUNのマッピングと認証設定を持つ新たなイニシエータのエントリを、選択したイニシエータのエントリとして追加します。これにより、容易に同じ共有LUNを、クラスタ内の各ノードに順々に割り当てることができます。

    1. 追加をクリックして、イニシエータ名を指定し、TPGからLUNをインポートチェックボックスをオンまたはオフにしてから、OKをクリックして設定を保存します。

    2. イニシエータのエントリを選択して、LUNの編集をクリックし、LUNのマッピングを変更してiSCSI LIOターゲットグループ内のどのLUNを選択したイニシエータに割り当てるかを指定して、OKをクリックして変更内容を保存します。

      iSCSI LIOターゲットグループが複数のLUNで構成されている場合は、1つまたは複数のLUNを、選択したイニシエータに割り当てることができます。デフォルトでは、グループ内の使用可能なLUNのそれぞれが、イニシエータLUNに割り当てられます。

      LUNの割り当てを変更するには、次の操作の1つ以上を実行します。

      • 追加: 追加をクリックして新しいイニシエータのLUNのエントリを作成し、変更ドロップダウンボックスを使用して、そのエントリにターゲットLUNをマップします。

      • 削除: イニシエータのLUNのエントリを選択し、削除をクリックしてターゲットLUNのマッピングを削除します。

      • 変更: イニシエータのLUNのエントリを選択し、変更ドロップダウンボックスを使用して、そのエントリにマップするターゲットLUNを選択します。

      一般的な割り当のプランには、次のようなものがあります。

      • 1台のサーバが、イニシエータとして登録されています。ターゲットグループ内のLUNがすべて、それに割り当てられています。

        このグループ化戦略を使用して、特定のサーバに対して、iSCSI SANストレージを論理的にグループ化することができます。

      • 複数の独立したサーバが、イニシエータとして登録されています。1つまたは複数のターゲットLUNが、それぞれのサーバに割り当てられています。それぞれのLUNは、1台のサーバのみに割り当てられています。

        このグループ化戦略を使用して、データセンター内の特定の部門またはサービスのカテゴリに対して、iSCSI SANストレージを論理的にグループ化することができます。

      • クラスタの各ノードが、イニシエータとして登録されています。共有のターゲットLUNがすべて、各ノードに割り当てられています。すべてのノードがデバイスに接続されていますが、ほとんどのファイルシステムに対して、クラスタソフトウェアによってデバイスによるアクセスがロックされ、一度に1つのノード上にのみデバイスがマウントされます。共有ファイルシステム(OCFS2など)では、複数のノードが同時に同じファイル構造をマウントし、読み込みおよび書き込みアクセスを持つ同じファイルを開くことが可能です。

        このグループ化戦略を使用して、特定のサーバクラスタに対して、iSCSI SANストレージを論理的にグループ化することができます。

    3. イニシエータのエントリを選択して、認証の編集をクリックし、イニシエータに対する認証設定を指定してから、OKをクリックして設定を保存します。

      検出認証なしとすることも、イニシエータによる認証送信認証、またはその両方を設定することもできます。各イニシエータに対して指定できるユーザ名とパスワードの組み合わせは、1つだけです。イニシエータに対するincoming認証とoutgoing認証の資格情報は、異なっても構いません。資格情報は、イニシエータごとに異なっても構いません。

    4. このターゲットグループにアクセスできる各iSCSIイニシエータについて、前の手順を繰り返します。

    5. イニシエータの割り当てを設定し終わったら、次へをクリックします。

  5. 完了をクリックして、設定を保存して適用します。

14.2.5 iSCSI LIOターゲットグループの変更

以下のようにして、iSCSI LIOターゲットグループに変更を加えることができます。

  • ターゲットLUNデバイスをターゲットグループに追加または削除する

  • ターゲットグループに対してイニシエータを追加または削除する

  • ターゲットグループのイニシエータに対する、イニシエータLUNからターゲットLUNへのマッピングを変更する

  • イニシエータ認証(incoming、outgoing、またはその両方)用のユーザ名とパスワードの資格情報を変更する

iSCSI LIOターゲットグループに対する設定を確認または変更するには:

  1. YaSTを起動し、ネットワークサービス › iSCSI LIOターゲットの順に起動します。

  2. ターゲットタブに切り替えます。

  3. 変更するiSCSI LIOターゲットグループを選択して、編集をクリックします。

  4. [iSCSIターゲットLUNのセットアップを変更]ページで、ターゲットグループにLUNを追加し、LUNの割り当てを編集するか、またはターゲットLUNをグループから削除します。すべてグループに目的の変更が行われたら、次へをクリックします。

    オプション情報については、[iSCSIターゲットの変更]: オプションを参照してください。

  5. [iSCSIターゲットイニシエータのセットアップの変更]ページで、ターゲットグループ内のLUNへのアクセスを許可されるイニシエータに関する情報を設定します。すべてグループに目的の変更が行われたら、次へをクリックします。

  6. 完了をクリックして、設定を保存して適用します。

14.2.6 iSCSI LIOターゲットグループの削除

iSCSI LIOターゲットグループを削除すると、グループの定義と、イニシエータに対する関連のセットアップ(LUNのマッピングや認証資格情報を含む)が削除されます。パーティション上のデータは破棄されません。イニシエータに再度アクセス権を付与するには、ターゲットLUNを別のターゲットグループまたは新規のターゲットグループに割り当てて、それらに対するイニシエータアクセスを設定します。

  1. YaSTを起動し、ネットワークサービス › iSCSI LIOターゲットの順に起動します。

  2. ターゲットタブに切り替えます。

  3. 削除するiSCSI LIOターゲットグループを選択して、削除をクリックします。

  4. 確認のメッセージが表示されたら、続行をクリックして削除を確認するか、キャンセルをクリックしてキャンセルします。

  5. 完了をクリックして、設定を保存して適用します。

14.3 iSCSIイニシエータの設定

iSCSIイニシエータを使用して、任意のiSCSIターゲットに接続できます。これは、14.2項 「iSCSI LIOターゲットサーバのセットアップ」で説明されているターゲットソリューションだけに限りません。iSCSIイニシエータの設定には、利用可能なiSCSIターゲットの検出と、iSCSIセッションの設定という2つの主要ステップがあります。どちらの設定も、YaSTを使って行うことができます。

14.3.1 YaSTを使ったiSCSIイニシエータの設定

YaSTの[iSCSIイニシエータの概要]が3つのタブに分割されます。

サービス:

サービスタブでは、ブート時にiSCSIイニシエータを有効にできます。固有のイニシエータ名とディスカバリに使用するiSNSサーバも設定できます。

接続したターゲット:

Connected Targetsタブには、現在接続しているiSCSIターゲットの概要が表示されます。このタブにも、検出されたターゲットタブのように、システムに新しいターゲットを追加するオプションが用意されています。

検出されたターゲット:

検出されたターゲットタブでは、ネットワーク内のiSCSIターゲットを手動で検出することができます。

14.3.1.1 iSCSIイニシエータの設定

  1. YaSTを起動し、 ネットワークサービス ›  iSCSIイニシエータ の順に起動します。

  2. サービスタブに切り替えます。

    Image
  3. サービスを開始で、iSCSIイニシエータサービスの開始方法を指定します。

    • ブート時: サービスは、サーバの再起動時に自動的に開始します。

    • 手動: (デフォルト)サーバの再起動後、sudo systemctl start iscsi iscsidコマンドを実行して、手動でサービスを開始する必要があります。

  4. イニシエータ名を指定、または確認します。

    このサーバ上のiSCSIイニシエータに、正しい形式のiSCSI修飾名(IQN)を指定します。イニシエータ名はネットワーク全体で固有のものでなければなりません。IQNは次の一般的なフォーマットを使用します。

    iqn.yyyy-mm.com.mycompany:n1:n2

    ここでn1とn2はアルファベットか数字です。次に例を示します。

    iqn.1996-04.de.suse:01:a5dfcea717a

    イニシエータ名には、サーバ上の/etc/iscsi/initiatorname.iscsiファイルから対応する値が自動的に入力されます。

    サーバがiBFT(iSCSI Boot Firmware Table)をサポートしている場合は、イニシエータ名にはIBFT内の対応する値が入力され、このインタフェースではイニシエータ名を変更できません。代わりにBIOSセットアップを使用して変更してください。iBFTは、サーバのiSCSIターゲットとイニシエータの説明を含む、iSCSIの起動プロセスに便利な各種パラメータを含んだ情報ブロックです。

  5. 次のいずれかの方法を使用して、ネットワーク上のiSCSIターゲットを検出します。

14.3.1.2 iSNSによるiSCSIターゲットの検出

このオプションを使用する前に、ご使用の環境内でiSNSサーバをインストールし、設定しておく必要があります。詳細については、第13章 「Linux用iSNSを参照してください。

  1. YaSTでiSCSIイニシエータを選択し、次にサービスタブを選択します。

  2. iSNSサーバのIPアドレスとポートを指定します。デフォルトのポートは3205です。

  3. OKをクリックして、変更内容を保存して適用します。

14.3.1.3 iSCSIターゲットの手動検出

iSCSIイニシエータを設定しているサーバからアクセスする各iSCSIターゲットサーバについて、次の手順を繰り返し実行します。

  1. YaSTでiSCSIイニシエータを選択し、次に検出されたターゲットタブを選択します。

  2. 検出をクリックして[iSCSIイニシエータの検出]ダイアログを開きます。

  3. IPアドレスを入力し、必要に応じてポートを変更します。デフォルトポートは3260です。

  4. 認証が必要な場合は、検出認証なしをオフにして、イニシエータによる認証またはターゲットによる認証で資格情報を指定します。

  5. 次へをクリックして、検出を開始し、iSCSIターゲットサーバに接続します。

  6. 資格情報が必要な場合は、検出成功後、接続を使用してターゲットを有効化します。

    指定したiSCSIターゲットを使用するための、認証資格情報の提供を促されます。

  7. 次へをクリックして、設定を完了します

    これでターゲットが接続したターゲットに表示され、仮想iSCSIデバイスが使用可能になります。

  8. OKをクリックして、変更内容を保存して適用します。

  9. lsscsiコマンドを使用すると、iSCSIターゲットデバイスのローカルデバイスパスを検出することができます。

14.3.1.4 iSCSIターゲットデバイスの起動設定

  1. YaSTで、iSCSIイニシエータを選択し、次に接続したターゲットタブを選択して、現在サーバに接続されているiSCSIターゲットデバイスの一覧を表示することができます。

  2. 管理するiSCSIターゲットデバイスを選択します。

  3. 起動の切り替えをクリックして設定を変更します。

    自動: このオプションは、iSCSIサービス自体の起動時に接続するiSCSIターゲットに使用されます。これが通常の設定です。

    Onboot(起動時): このオプションは、起動時、つまりルート(/)がiSCSI上にある場合に接続するiSCSIターゲットに使用します。したがって、iSCSIターゲットデバイスはサーバの起動時にinitrdによって評価されます。このオプションはIBM Zなど、iSCSIからブートできないプラットフォームでは無視されます。したがって、これらのプラットフォームでは使用しないでください。代わりに自動を使用してください。

  4. OKをクリックして、変更内容を保存して適用します。

14.3.2 手動によるiSCSIイニシエータの設定

iSCSI接続の検出や設定を行うには、iscsidが稼働していなければなりません。初めてディスカバリを実行する場合、iSCSIイニシエータの内部データベースが/etc/iscsi/ディレクトリに作成されます。

ディスカバリがパスワードにより保護されている場合は、iscsidに認証情報を渡します。最初にディスカバリを実行するときには内部データベースが存在していないため、現時点でこれは使用できません。かわりに、/etc/iscsid.conf設定ファイルを編集して、情報を指定する必要があります。パスワード情報をiscsidに渡すには、/etc/iscsid.confファイルの最後に、次の行を追加します。

discovery.sendtargets.auth.authmethod = CHAP
discovery.sendtargets.auth.username = USERNAME
discovery.sendtargets.auth.password = PASSWORD

ディスカバリは、受け取ったすべての値を内部データベースに保存します。また、検出したターゲットをすべて表示します。次のコマンドで、このディスカバリを実行します。

sudo iscsiadm -m discovery --type=st --portal=TARGET_IP

次のように出力されます。

10.44.171.99:3260,1 iqn.2006-02.com.example.iserv:systems

iSNSサーバで使用できるターゲットを検出するには、次のコマンドを使用します。

sudo iscsiadm --mode discovery --type isns --portal TARGET_IP

iSCSIターゲットに定義されている各ターゲットが、それぞれ1行に表示されます。保存されたデータの詳細については、14.3.3項 「iSCSIイニシエータデータベース」を参照してください。

iscsiadmコマンドの--loginオプションを使用すると、必要なすべてのデバイスが作成されます。

sudo iscsiadm -m node -n iqn.2006-02.com.example.iserv:systems --login

新しく生成されたデバイスはlsscsiコマンドの出力に表示され、マウントできるようになります。

14.3.3 iSCSIイニシエータデータベース

iSCSIイニシエータにより検出されたあらゆる情報は、/etc/iscsiに存在する2つのデータベースファイルに保存されます。1つは、ディスカバリが検出したターゲット用のデータベースで、もう1つは検出したノード用のデータベースです。データベースにアクセスする場合、まずデータをディスカバリ用データベースから取得するのか、またはノードデータベースから取得するのかを指定する必要があります。指定するには、iscsiadmコマンドの-m discoveryまたは-m nodeパラメータを使用します。iscsiadmコマンドに、どちらかのパラメータを指定して実行すると、そのデータベースに保管されているレコードの概要が表示されます。

tux > sudo iscsiadm -m discovery
10.44.171.99:3260,1 iqn.2006-02.com.example.iserv:systems

この例のターゲット名はiqn.2006-02.com.example.iserv:systemsです。このデータセットに関連する操作を行う場合に、この名前が必要になります。ID iqn.2006-02.com.example.iserv:systemsのデータレコードのコンテンツを調べるには、次のコマンドを使用します。

tux > sudo iscsiadm -m node --targetname iqn.2006-02.com.example.iserv:systems
node.name = iqn.2006-02.com.example.iserv:systems
node.transport_name = tcp
node.tpgt = 1
node.active_conn = 1
node.startup = manual
node.session.initial_cmdsn = 0
node.session.reopen_max = 32
node.session.auth.authmethod = CHAP
node.session.auth.username = joe
node.session.auth.password = ********
node.session.auth.username_in = EMPTY
node.session.auth.password_in = EMPTY
node.session.timeo.replacement_timeout = 0
node.session.err_timeo.abort_timeout = 10
node.session.err_timeo.reset_timeout = 30
node.session.iscsi.InitialR2T = No
node.session.iscsi.ImmediateData = Yes
....

これらの変数の値を変更する場合は、iscsiadmコマンドでupdateオプションを使用します。たとえば、初期化時にiscidをiSCSIターゲットにログインさせる場合は、値にautomaticnode.startupを設定します。

sudo iscsiadm -m node -n iqn.2006-02.com.example.iserv:systems \
-p ip:port --op=update --name=node.startup --value=automatic

deleteで、古くなったデータセットを削除します。ターゲットiqn.2006-02.com.example.iserv:systemsが有効なレコードでなくなった場合は、次のコマンドでこのレコードを削除してください。

sudo iscsiadm -m node -n iqn.2006-02.com.example.iserv:systems \
-p ip:port --op=delete
重要
重要: 確認は表示されない

このオプションでは、確認のメッセージを表示せずにレコードを削除するため、使用する際には細心の注意を払うようにしてください。

検出したすべてのターゲットのリストを取得するには、sudo iscsiadm -m nodeコマンドを実行します。

14.4 インストール時のiSCSIディスクの使用

iSCSI対応のファームウェアを使用している場合は、AMD64/Intel 64およびIBM POWERの各アーキテクチャ上のiSCSIディスクからのブートがサポートされています。

インストール時にiSCSIディスクを使用するには、次のパラメータをブートオプション行に追加する必要があります。

withiscsi=1

インストール中に、インストールプロセスで使用するiSCSIディスクをシステムに接続するオプションが記載された、追加の画面が表示されます。

注記
注記: マウントポイントのサポート

iSCSIデバイスはブートプロセス中は非同期で表示されます。これらのデバイスがルートファイルシステム用に正しく設定されていることがinitrdによって保証されるまでの間、他のファイルシステムや/usrなどのマウントポイントでは、これは保証されません。したがって、/usr/varなどのシステムマウントポイントはサポートされません。これらのデバイスを使用するには、必ず各サービスとデバイスを正しく同期してください。

14.5 iSCSIのトラブルシューティング

本項では、iSCSIターゲットとiSCSIイニシエータに関するいくつかの既知の問題と、考えられる解決策について説明します。

14.5.1 iSCSI LIOターゲットサーバにターゲットLUNをセットアップする際のポータルエラー

iSCSI LIOターゲットグループの追加または編集を行う際に、次のエラーが発生する:

Problem setting network portal IP_ADDRESS:3260

/var/log/YasT2/y2logログファイルに、次のエラーが含まれている:

find: `/sys/kernel/config/target/iscsi': No such file or directory

この問題は、iSCSI LIOターゲットサーバソフトウェアがその時点で実行中ではない場合に発生します。この問題を解決するには、YaSTを終了して、コマンドラインで手動でsystemctl start targetを実行してiSCSI LIOを起動し、再試行します。

次のように入力して、configfsiscsi_target_mod、およびtarget_core_modがロードされているかどうかチェックすることもできます。サンプルの応答を示しています。

tux > sudo lsmod | grep iscsi
iscsi_target_mod      295015  0
target_core_mod       346745  4
iscsi_target_mod,target_core_pscsi,target_core_iblock,target_core_file
configfs               35817  3 iscsi_target_mod,target_core_mod
scsi_mod              231620  16
iscsi_target_mod,target_core_pscsi,target_core_mod,sg,sr_mod,mptctl,sd_mod,
scsi_dh_rdac,scsi_dh_emc,scsi_dh_alua,scsi_dh_hp_sw,scsi_dh,libata,mptspi,
mptscsih,scsi_transport_spi

14.5.2 iSCSI LIOターゲットが他のコンピュータで表示されない

ターゲットサーバでファイアウォールを使用している場合は、他のコンピュータでiSCSI LIOターゲットを表示できるようにするために使用するiSCSIポートを開く必要があります。詳細については、14.2.1項 「iSCSI LIOターゲットサービスの起動およびファイアウォールの設定」を参照してください。

14.5.3 iSCSIトラフィックのデータパッケージがドロップされる

ファイアウォールは、過剰にビジーになるとパケットをドロップすることがあります。SUSEファイアウォールのデフォルトは、3分後にパケットをドロップすることです。iSCSIトラフィックのパケットがドロップされていることが分かった場合は、ファイアウォールがビジーになったとき、パケットをドロップする代わりにキューに入れるように、SUSEファイアウォールを設定することができます。

14.5.4 LVMでiSCSIボリュームを使用する

iSCSIターゲットでLVMを使用する際には、本項のトラブルシューティングのヒントを使用してください。

14.5.4.1 ブート時にiSCSIイニシエータの検出が行われるかどうかを確認する

iSCSIイニシエータをセットアップする際には、udevがブート時にiSCSIデバイスを検出し、LVMによるそれらのデバイスの使用をセットアップできるように、ブート時の検出を有効にしてください。

14.5.4.2 iSCSIターゲットの検出がブート時に起きることを確認する

udevは、デバイスのデフォルトセットアップを提供することを思い出してください。デバイスを作成するすべてのアプリケーションがブート時に起動されることを確認してください。これにより、udevがシステム起動時にそれらを認識し、デバイスを割り当てることができます。アプリケーションまたはサービスが後まで起動しない場合は、udevがブート時のように自動的にデバイスを作成することはありません。

14.5.5 設定ファイルが手動に設定されていると、iSCSIターゲットがマウントされる

Open-iSCSIは、/etc/iscsi/iscsid.confファイルでnode.startupオプションが手動に設定されている場合でも、設定ファイルを手動で変更すれば、起動時にターゲットをマウントできます。

/etc/iscsi/nodes/TARGET_NAME/IP_ADDRESS,PORT/defaultファイルを確認してください。このファイルには、/etc/iscsi/iscsid.confファイルを上書きするnode.startup設定が含まれています。YaSTインタフェースを使用してマウントオプションを手動に設定すると、/etc/iscsi/nodes/TARGET_NAME/IP_ADDRESS,PORT/defaultファイルでもnode.startup = manualが設定されます。

14.6 iSCSI LIOターゲットの用語

backstore

iSCSIのエンドポイントの基礎となる実際のストレージを提供する、物理的ストレージオブジェクト。

CDB (command descriptor block))

SCSIコマンドの標準フォーマット CDBは一般的に6、10、または12バイトの長さですが、16バイトまたは可変長でも構いません。

CHAP (Challenge Handshake Authentication Protocol)

ポイントツーポイントプロトコル(PPP)の認証方法で、あるコンピュータのアイデンティティを別のコンピュータに対して確認するために使用します。Link Control Protocol (LCP)によって2台のコンピュータが接続され、CHAPメソッドがネゴシエートされた後、認証者はランダムなチャレンジをピアに送信します。ピアは、チャレンジおよび秘密鍵に依存した、暗号学的にハッシュされたレスポンスを発行します。認証者は、ハッシュされたレスポンスを、予想されるハッシュ値の自身の計算に対して検証し、認証を了承するか、接続を終了します。CHAPは、RFC 1994で定義されています。

CID (接続識別子)

イニシエータが生成する16ビットの番号で、2つのiSCSIデバイス間の接続を、一意に識別するもの。この番号は、ログインフェーズの間に提示されます。

エンドポイント

iSCSIターゲット名とiSCSI TPG (IQN + Tag)の組み合わせ

EUI (extended unique identifier)

世界中のあらゆるデバイスを一意に識別する、64ビットの番号。フォーマットは、会社ごとに一意である24ビットと、その会社が自社の各デバイスに割り当てる40ビットで構成されます。

イニシエータ

SCSIセッションの開始エンド。通常は、コンピュータなどの制御デバイス。

IPS (Internet Protocol storage)

IPプロトコルを使用してストレージネットワーク内のデータを移動する、プロトコルまたはデバイスのクラス。FCIP (Fibre Channel over Internet Protocol)、iFCP (Internet Fibre Channel Protocol)、およびiSCSI (Internet SCSI)は、すべてIPSプロトコルの例です。

IQN (iSCSI qualified name)

世界中のあらゆるデバイスを一意に識別する、iSCSIの名前形式(たとえば: iqn.5886.com.acme.tapedrive.sn‐a12345678)。

ISID (initiator session identifier)

イニシエータが生成する48ビットの番号で、イニシエータとターゲット間のセッションを一意に識別するもの。この値はログインプロセスの間に作成され、ログインPDUとともにターゲットに送られます。

MCS (multiple connections per session)

iSCSI仕様の一部で、イニシエータとターゲット間での複数のTCP/IP接続を可能にするもの。

MPIO (multipath I/O)

サーバとストレージ間でデータが複数の冗長パスをとることができるメソッド。

ネットワークポータル

iSCSIエンドポイントおよびIPアドレスとTCP (転送制御プロトコル)ポートの組み合わせ。TCPポート3260が、iSCSIプロトコル用のポート番号です。これは、IANA (Internet Assigned Numbers Authority)により定義されています。

SAM (SCSI architectural model)

SCSIの動作を一般的な表記で記載した文書で、異なる種類のデバイスがさまざまなメディア上で通信することを可能にするもの。

ターゲット

SCSIセッションの受信側で、通常はディスクドライブ、テープドライブ、スキャナなどのデバイス。

ターゲットグループ(TG)

ビューの作成時にすべて同じ扱いを受ける、SCSIターゲットポートのリスト。ビューを作成することで、LUN(論理ユニット番号)のマッピングが簡素化されます。それぞれのビューエントリが、ターゲットグループ、ホストグループ、およびLUNを指定します。

ターゲットポート

iSCSIエンドポイントと、1つ以上のLUNの組み合わせ。

ターゲットポートグループ(TPG)

IPアドレスとTCPポート番号のリストで、特定のiSCSIターゲットがどのインタフェースから受信するかを決定するもの。

ターゲットセッション識別子(TSID)

ターゲットが生成する 16ビットの番号で、イニシエータとターゲット間のセッションを一意に識別するもの。この値はログインプロセスの間に作成され、ログインレスポンスPDU(プロトコルデータユニット)とともにイニシエータに送られます。

14.7 追加情報

iSCSIプロトコルは、数年に渡って利用されています。iSCSIとSANソリューションの比較やパフォーマンスのベンチマークは多くのレビューで取り上げられており、ハードウェアソリューションについて説明したドキュメントもあります。open-iscsiの詳細に関する代表的なサイトを以下に示します。

このほか、オンラインマニュアルも利用できます。iscsiadmiscsidietd.confおよびietdの各マニュアルページのほか、環境設定ファイルのサンプル /etc/iscsid.confも参照してください。