Jump to contentJump to page navigation: previous page [access key p]/next page [access key n]
適用先 SUSE Linux Enterprise Server 11 SP4

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

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

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

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

重要
重要

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

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

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

14.1 iSCSIターゲットおよびイニシエータのインストール

YaSTにはiSCSIターゲットとiSCSIイニシエータソフトウェアのエントリが含まれていますが、パッケージはデフォルトではインストールされません。

重要
重要

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

14.1.1 iSCSIターゲットソフトウェアのインストール

iSCSIターゲットデバイスを作成したいサーバに、iSCSIターゲットソフトウェアをインストールします。

  1. YaSTを、rootユーザとして起動します。

  2. ネットワークサービスiSCSI ターゲットを選択します。

  3. iscsitargetパッケージのインストールを促されたら、インストールをクリックします。

  4. 画面上のインストール指示に従って、必要に応じてインストールメディアを提供します。

    インストールが完了したら、[iSCSIターゲットの概要]ページでサービスタブを選択した状態で、YaSTが開きます。

  5. 14.2項 「iSCSIターゲットのセットアップ」に進みます。

14.1.2 iSCSIイニシエータソフトウェアのインストール

iSCSIサーバ上に設定したターゲットデバイスにアクセスしたい各サーバに、iSCSIイニシエータソフトウェアをインストールします。

  1. YaSTを、rootユーザとして起動します。

  2. ネットワークサービスiSCSIイニシエータを選択します。

  3. open-iscsiパッケージのインストールを促されたら、インストールをクリックします。

  4. 画面上のインストール指示に従って、必要に応じてインストールメディアを提供します。

    インストールが完了したら、[iSCSIイニシエータの概要]ページでサービスタブを選択した状態で、YaSTが開きます。

  5. 14.3項 「iSCSIイニシエータの設定」に進みます。

14.2 iSCSIターゲットのセットアップ

SUSE® Linux Enterprise Serverには、Ardis iSCSIターゲットから進化したオープンソースのiSCSIターゲットソリューションが付属しています。基本的な設定はYaSTを使って行えますが、iSCSIの機能をフル活用するには、手動で設定を行う必要があります。

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

iSCSIターゲットの設定により、既存のブロックデバイスをiSCSIイニシエータにエクスポートします。YaSTのパーティショナを使用して、またはコマンドラインからパーティション分割を行うことで、未フォーマットのパーティションやデバイスを設定し、ターゲットデバイスで使用するストレージスペースを準備する必要があります。iSCSI LIO ターゲットは、Linux、Linux LVM、またはLinux RAIDファイルシステムIDで未フォーマットのパーティションを使用できます。

重要
重要

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

14.2.1.1 デバイスのパーティショニング

  1. YaSTを、rootユーザとして起動します。

  2. システムパーティショナを選択します。

  3. パーティショナの使用に関する警告に対してはいを選択して続行します。

  4. 追加をクリックしてパーティションを作成しますが、フォーマットやマウントは行いません。

    1. プライマリパーティションを選択し、次へをクリックします。

    2. 使用する容量を指定して、次へをクリックします。

    3. フォーマットしないを選択し、ファイルシステムIDの種類を指定します。

      iSCSIターゲットは、Linux、Linux LVM、またはLinux RAIDファイルシステムIDで未フォーマットのパーティションを使用できます。

    4. マウントしないを選択します。

    5. 完了をクリックします。

  5. 後でiSCSI LUNとして使用したい各エリアに対して、ステップ 4を繰り返し実行します。

  6. 受諾をクリックして変更を保存し、YaSTを閉じます。

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

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

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

たとえば、サイズが4GBの/var/lib/xen/images/vm_one/xen--0ディスクイメージを作成する場合は、まず、ディレクトリが存在することを確認し、次に、イメージ自体を作成します。

  1. ホストサーバにrootユーザとしてログインします。

  2. 端末コンソールプロンプトで次のコマンドを入力します。

    mkdir -p /var/lib/xen/images/vm_one
    dd if=/dev/zero of=/var/lib/xen/images/vm_one/xen-0 seek=1M bs=4096 count=1
  3. Xen設定ファイルで、ファイルシステムイメージをゲスト仮想マシンに割り当てます。

  4. ゲストサーバにrootユーザとしてログインし、YaSTを使用して14.2.1.1項 「デバイスのパーティショニング」の手順で仮想ブロックデバイスを設定します。

14.2.2 YaSTを使ったiSCSIターゲットの作成

iSCSIターゲットを設定するには、YaSTのiSCSIターゲットモジュールを起動します(コマンドyast2 iscsi-server)。設定項目は、3つのタブに分かれています。Serviceタブでは、実行モードとファイアウォールの設定を行います。リモートコンピュータからiSCSIターゲットにアクセスする場合は、ファイアウォールでポートを開くを選択します。iSNSサーバが検出およびアクセス制御を管理する場合は、iSNSアクセス管理を有効にして、iSNSサーバのIPアドレスを入力します。ホスト名やDNSは使用できません。IPアドレスを使用する必要があります。 iSNSの詳細は、第13章 「Linux用iSNSを参照してください。

Globalタブでは、iSCSIサーバの設定を行います。ここで設定する認証方法は、サービスの検出に使用します。ターゲットにアクセスする場合のものではありません。ディスカバリへのアクセスを制限しない場合は、No Authenticationを選択します。

認証が必要な場合、2つの検討事項があります。「incoming認証」では、イニシエータに、iSCSIターゲット上でディスカバリを実行するパーミッションがあることを証明するよう求めます。「outgoing認証」では、iSCSIターゲットに、自らが目的のターゲットであることを証明するよう求めます。そのため、iSCSIターゲットもユーザ名とパスワードを使用できます。認証の詳細は、RFC 3720を参照してください。

ターゲットは、Targetsタブで定義します。新しいiSCSIターゲットを作成するには、追加をクリックします。最初のダイアログボックスでは、エクスポートするデバイスに関する情報を指定します。

ターゲット

Target行には、以下のような固定形式の構文を指定します。

iqn.yyyy-mm.<reversed domain name>:unique_id

この行は常に「iqn」から始まります。「yyyy-mm」の部分には、このターゲットをアクティブにする日付を指定します。命名規則の詳細については、RFC 3722を参照してください。

Identifier

Identifierは、自由に指定することができます。ただし、システムを体系的に管理するためにも、一定のスキーマを使用するようにしてください。

LUN

ターゲットに複数のLUNを割り当てることができます。そのためには、ターゲットタブでターゲットを選択し、編集をクリックします。次に、既存ターゲットに新しいLUNを追加します。

パス

エクスポートするブロックデバイス、またはファイルシステムイメージのパスを追加します。

次のメニューでは、ターゲットへのアクセス制限を設定します。ここの設定は、ディスカバリの認証設定とほとんど変わりありません。この場合、少なくとも着信認証を設定する必要があります。

新しいターゲットの設定を完了するには、次へをクリックします。Targetタブの概要ページが表示されます。変更内容を有効にするには、完了をクリックします。

ターゲットデバイスを作成するには:

  1. YaSTを、rootユーザとして起動します。

  2. ネットワークサービスiSCSI ターゲットを選択します。

    [iSCSIターゲットの概要]ページでサービスタブを選択した状態で、YaSTが開きます。.

  3. サービスの開始領域で、次のいずれかを選択します。

    • 起動時: その後の再起動時には、イニシエータサービスが自動的に開始します。

    • 手動(デフォルト): サービスを手動で開始します。

  4. ターゲットアドバタイジングにiSNSを使用する場合は、iSNSアクセス制御チェックボックスを選択し、IPアドレスを入力します。

  5. 必要に応じて、ファイアウォールポートを開き、リモートコンピュータからサーバへのアクセスを許可します。

    1. ファイアウォールでポートを開くチェックボックスを選択します。

    2. ファイアウォールの詳細をクリックして、ポートを開くネットワークインタフェースを指定し、ネットワークインタフェースの横のチェックボックスをオンにして有効にし、OKをクリックして設定を受け入れます。

  6. このサーバで設定したターゲットデバイスへの接続に認証が必要な場合は、グローバルタブを選択し、認証なしの選択を解除して、送受信の認証に必要な資格情報を指定します。

    デフォルトでは認証なしのオプションが有効になっています。設定をより安全にするには、着信、発信、または着信と発信の両方に認証を指定できます。ユーザ名とパスワードのペアを受信認証の一覧に追加することで、受信認証の資格情報を複数セット指定することもできます。

  7. iSCSIターゲットデバイスを指定します。

    1. ターゲットタブを選択します。

    2. まだそうしていない場合は、一覧からサンプルのiSCSIターゲットを選択して削除し、続けるをクリックして削除を確認します。

    3. 追加をクリックして、新しいiSCSIターゲットを追加します。

      iSCSIターゲットによって自動的に未フォーマットのパーティションやブロックデバイスが提示され、[ターゲット]および[イニシエータ]フィールドに情報が入力されます。

    4. これを受諾することも、別なスペースを選択することもできます。

      追加をクリックして、そのLUNに割り当てるセクタを指定することで、スペースをさらに分割して、デバイス上にLUNを作成することもできます。これらのLUNに追加のオプションが必要な場合は、エキスパート設定を選択します。

    5. Click Next

    6. 作成する各iSCSIターゲットデバイスに対して、ステップ 7.cからステップ 7.eを繰り返し実行します。

    7. (オプション)サービスタブで保存をクリックして、設定したiSCSIターゲットの情報をファイルにエクスポートします。

      こうしておくと、後でこの情報をリソースの利用者に簡単に提供することができます。

    8. 完了をクリックしてデバイスを作成し、はいをクリックしてiSCSIソフトウェアスタックをリスタートします。

14.2.3 iSCSIターゲットの手動設定

iSCSIターゲットを設定するには、/etc/ietd.confを編集します。このファイル中の、最初のTarget宣言より前にあるすべてのパラメータは、ファイルのグローバルパラメータになります。この部分にある認証情報は、グローバルパラメータではありません。iSCSIターゲットの検出に用いられます。

iSNSサーバにアクセスできる場合は、まず、ファイルを、このサーバについてターゲットに通知するように設定する必要があります。iSNSサーバのアドレスは、必ず、IPアドレスで指定する必要があります。iSNSサーバのDNS名を指定することはできません。この機能の設定は、次のようになります。

iSNSServer 192.168.1.111
iSNSAccessControl no

この設定では、iSCSIターゲットがiSNSサーバでそれ自体を登録し、ディスカバリのイニシエータとなります。iSNSの詳細は、第13章 「Linux用iSNSを参照してください。iSNSディスカバリのためのアクセス制御はサポートされていません。[iSNSアクセス管理]を[いいえ]のままにします。

すべての直接iSCSI認証は、双方向で行うことができます。iSCSIターゲットがiSCSIイニシエータに認証を要求するには、IncomingUserを使用します。このオプションは、複数回追加できます。iSCSIイニシエータも、iSCSIターゲットに認証を要求することができます。この場合は、OutgoingUserを使用します。どちらの場合も、構文は同じです。

IncomingUser <username> <password>
OutgoingUser <username> <password>

認証後は、1つまたは複数のターゲット定義を指定します。定義する各ターゲットについて、Targetセクションを追加します。このセクションは、常にTarget識別子で始まり、その後に論理ユニット番号の定義が続きます。

Target iqn.yyyy-mm.<reversed domain name>[:identifier]
          Lun 0 Path=/dev/mapper/system-v3
          Lun 1 Path=/dev/hda4
          Lun 2 Path=/var/lib/xen/images/xen-1,Type=fileio

Target行では、yyyy-mmにターゲットを有効にする日付を指定し、identifierに任意の識別子を指定できます。命名規則の詳細については、RFC 3722を参照してください。この例では、3つの異なるブロックデバイスをエクスポートしています。最初のブロックデバイスは論理ボリューム(第4章 「LVMの設定も参照)、2番目はIDEパーティション、3番目はローカルファイルシステムで使用可能なイメージです。これらはすべてiSCSIイニシエータへのブロックデバイスのようになります。

iSCSIターゲットを有効にする前に、Lun定義の後に、最低1つのIncomingUserを追加してください。このパラメータは、このターゲットの使用に対する認証を指定します。

変更内容を有効にするには、rcopen-iscsi restartコマンドを実行して、iscsitargetデーモンを再起動します。/procファイルシステムで、設定内容を確認してください。

cat /proc/net/iet/volume
tid:1 name:iqn.2006-02.com.example.iserv:systems
        lun:0 state:0 iotype:fileio path:/dev/mapper/system-v3
        lun:1 state:0 iotype:fileio path:/dev/hda4
        lun:2 state:0 iotype:fileio path:/var/lib/xen/images/xen-1

ここで説明しているほかにも、iSCSIターゲットの動作を制御するさまざまなオプションがあります。詳細については、ietd.confのマニュアルページを参照してください。

/procファイルシステムには、アクティブなセッションも表示されます。接続されている各イニシエータに対応するエントリが、/proc/net/iet/sessionに追加されます。

cat /proc/net/iet/session
tid:1 name:iqn.2006-02.com.example.iserv:system-v3
   sid:562949957419520 initiator:iqn.2005-11.de.suse:cn=rome.example.com,01.9ff842f5645
      cid:0 ip:192.168.178.42 state:active hd:none dd:none
   sid:281474980708864 initiator:iqn.2006-02.de.suse:01.6f7259c88b70
      cid:0 ip:192.168.178.72 state:active hd:none dd:none

14.2.4 ietadmを使ったオンラインターゲットの設定

iSCSIターゲットの設定の変更が必要な場合は、必ず、ターゲットを再起動して、設定ファイルで行った変更を有効にする必要があります。ただし、この作業を行うと、アクティブなセッションがすべて中断されます。この問題を回避するには、環境設定ファイルの/etc/ietd.confを変更すると同時に、ietadm管理ユーティリティを使って現在の設定も変更してください。

LUNを指定した新しいiSCSIターゲットを作成するには、まず設定ファイルを更新します。追加するエントリの例を以下に示します。

Target iqn.2006-02.com.example.iserv:system2
          Lun 0 Path=/dev/mapper/system-swap2
          IncomingUser joe secret

この設定を手動で行うには、次の手順に従ってください。

  1. ietadm --op new --tid=2 --params Name=iqn.2006-02.com.example.iserv:system2コマンドを実行して、新しいターゲットを作成します。

  2. ietadm --op new --tid=2 --lun=0 --params Path=/dev/mapper/system-swap2コマンドを実行して、LUNを追加します。

  3. ietadm --op new --tid=2 --user --params=IncomingUser=joe,Password=secretコマンドを実行して、このターゲットにユーザ名とパスワードを設定します。

  4. cat /proc/net/iet/volumeコマンドを実行して、設定内容を確認します。

アクティブな接続を削除することもできます。まず、cat /proc/net/iet/sessionコマンドを実行して、アクティブな接続を表示します。たとえば、次のように表示されます。

cat /proc/net/iet/session
tid:1 name:iqn.2006-03.com.example.iserv:system
        sid:281474980708864 initiator:iqn.1996-04.com.example:01.82725735af5
                cid:0 ip:192.168.178.72 state:active hd:none dd:none

セッションIDが 281474980708864のセッションを削除する場合は、ietadm --op delete --tid=1 --sid=281474980708864 --cid=0コマンドを実行します。このコマンドを実行すると、クライアントシステムからデバイスにアクセスできなくなるため、このデバイスにアクセスしているデバイスがハングアップする可能性があることに注意してください。

ietadmを使って、さまざまな環境設定パラメータを変更することもできます。グローバル変数を一覧表示する場合は、ietadm --op show --tid=1 --sid=0コマンドを実行します。次のような実行結果が表示されます。

InitialR2T=Yes
ImmediateData=Yes
MaxConnections=1
MaxRecvDataSegmentLength=8192
MaxXmitDataSegmentLength=8192
MaxBurstLength=262144
FirstBurstLength=65536
DefaultTime2Wait=2
DefaultTime2Retain=20
MaxOutstandingR2T=1
DataPDUInOrder=Yes
DataSequenceInOrder=Yes
ErrorRecoveryLevel=0
HeaderDigest=None
DataDigest=None
OFMarker=No
IFMarker=No
OFMarkInt=Reject
IFMarkInt=Reject

これらのパラメータは、すべて容易に変更できます。たとえば、最大接続数を2に変更する場合は、=2を実行します。

ietadm --op update --tid=1 --params=MaxConnections=2.

/etc/ietd.confファイルでは、このパラメータに対応する行がMaxConnections 2のように指定されています。

警告
警告

ietadmユーティリティによる変更は、システムに対して永久的なものではありません。これらの変更は、/etc/ietd.conf環境設定ファイルに追加しない限り、次の再起動で失われます。ネットワークでのiSCSIの利用方法によっては、これによって重大な問題が発生する可能性があります。

ietadmユーティリティには、他にも使用可能なオプションがあります。ietadm -hを使用して、概要をつかんでください。また、省略形も利用できます。省略形には、ターゲットID (tid)、セッションID (sid)、および接続ID (cid)などがあります。これらの情報は、/proc/net/iet/sessionにもあります。

14.3 iSCSIイニシエータの設定

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

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

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

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

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

    このページでは、ターゲットデバイスを選択して、各iSCSIターゲットデバイスの起動時の設定を切り替えることができます。

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

    • Onboot(起動時): このオプションは、起動時、つまりルート(/)がiSCSI上にある場合に接続するiSCSIターゲットに使用します。したがって、iSCSIターゲットデバイスはサーバの起動時にinitrdによって評価されます。

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

14.3.1.1 iSCSIイニシエータの設定

  1. YaSTを、rootユーザとして起動します。

  2. ネットワークサービスiSCSIイニシエータの順に選択します(yast2 iscsi-clientも使用できます)。

    [iSCSIイニシエータの概要]ページでサービスタブが選択された状態で、YaSTが開きます。

  3. サービスの開始領域で、次のいずれかを選択します。

    • 起動時: その後の再起動時には、イニシエータサービスが自動的に開始します。

    • 手動(デフォルト): サービスを手動で開始します。

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

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

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

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

    iqn.1996-04.de.suse:01:9c83a3e15f64

    イニシエータ名には、サーバ上の/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. [iSCSIイニシエータの概要]ページで、完了をクリックして変更内容を保存、および適用します。

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

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

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

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

  3. IPアドレスを入力し、必要に応じてポートを変更します。IPv6アドレスはサポートされています。

    デフォルトポートは3260です。

  4. 認証が必要な場合は、認証なしの選択を解除して、受信または送信認証用の資格情報を指定します。

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

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

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

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

    作業が正常に完了すると、Connected Targetsにターゲットが表示されます。

    これで、仮想iSCSIデバイスを利用できるようになりました。

  8. [iSCSIイニシエータの概要]ページで、完了をクリックして変更内容を保存、および適用します。

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

    lsscsi
    [1:0:0:0]   disk    IET      VIRTUAL-DISK     0     /dev/sda

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

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

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

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

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

    • Onboot(起動時): このオプションは、起動時、つまりルート(/)がiSCSI上にある場合に接続するiSCSIターゲットに使用します。したがって、iSCSIターゲットデバイスはサーバの起動時にinitrdによって評価されます。

  4. 完了をクリックして、変更を保存、および適用します。

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

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

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

discovery.sendtargets.auth.authmethod = CHAP
discovery.sendtargets.auth.username = <username>
discovery.sendtargets.auth.password = <password>

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

iscsiadm -m discovery --type=st --portal=<targetip>

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

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

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

iscsiadm --mode discovery --type isns --portal <targetip>

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

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

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

lsscsiコマンドを実行すると、新しく生成されたデバイスが表示されます。これらのデバイスをマウントして、アクセスできるようになりました。

14.3.3 iSCSIクライアントデータベース

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

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のデータレコードのコンテンツを調べるには、次のコマンドを使用します。

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を設定します。

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が有効なレコードでなくなった場合は、次のコマンドでこのレコードを削除してください。

iscsiadm -m node -n iqn.2006-02.com.example.iserv:systems -p ip:port --op=delete
重要
重要

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

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

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

iSCSI対応のファームウェアを使用している場合は、i386、x86_64、およびppc64アーキテクチャ上のiSCSIディスクからの起動がサポートされています。

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

withiscsi=1

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

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

14.5.1 ホットプラグでiSCSIターゲットをマウントできない

SLES 10では、iSCSIターゲットをマウントするため、/etc/fstabファイルでhotplugオプションをデバイスに追加できました。次に例を示します。

/dev/disk/by-uuid-blah /oracle/db   ext3       hotplug,rw            0 2

SLES 11では、hotplugオプションは機能しません。代わりに、nofailオプションを使用してください。次に例を示します。

/dev/sdb1   /mnt/mountpoint   ext3   acl,user,nofail   0 0

TID 7004427: /etc/fstab entry does not mount iSCSI device on boot up 』を参照してください。

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

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

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

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

14.5.3.1 ブート時にiSCSIイニシエータの検出が行われることを確認する

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

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

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

YaSTでLVM2とiSCSIのランレベル設定を確認するには、システムシステムサービス(ランレベル)エキスパートモードの順に選択します。次のサービスをブート時に有効にします(B)。

boot.lvm
boot.open-iscsi
open-iscsi

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

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

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

14.6 追加情報

iSCSIプロトコルは、数年に渡って利用されています。そのため、iSCSIとSANソリューションの比較、ベンチマークテスト、ハードウェアソリューションの解説など、さまざまなレビューや参考資料が発表または公開されています。open-iscsiの詳細に関する代表的なサイトを以下に示します。

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

このページを印刷