任意のiSCSIターゲットに接続するには、iSCSIイニシエータ(iSCSIクライアントとも呼ぶ)を使用できます。これは、「セクション 13.2, iSCSIターゲットのセットアップ」で説明されているターゲットソリューションだけに限りません。iSCSIイニシエータの設定には、利用可能なiSCSIターゲットの検出と、iSCSIセッションの設定という2つの主要ステップがあります。どちらの設定も、YaSTを使って行うことができます。
YaSTの[iSCSIイニシエータの概要]が3つのタブに分割されます。
サービス: [
]タブでは、ブート時にiSCSIイニシエータを有効にできます。固有の とディスカバリに使用するiSNSサーバも設定できます。iSNSのデフォルトポートは3205です。接続したターゲット: [Connected Targets]
このタブにも、[ ]タブのように、システムに新しいターゲットを追加するオプションが用意されています。このページでは、ターゲットデバイスを選択して、各iSCSIターゲットデバイスの起動時の設定を切り替えることができます。
自動: このオプションは、iSCSIサービス自体の起動時に接続するiSCSIターゲットに使用されます。これが通常の設定です。
Onboot(起動時): このオプションは、起動時、つまりルート(/)がiSCSI上にある場合に接続するiSCSIターゲットに使用します。したがって、iSCSIターゲットデバイスはサーバの起動時にinitrdによって評価されます。
検出されたターゲット: [
]では、ネットワーク内のiSCSIターゲットを手動で検出することができます。YaSTを開き、rootユーザとしてログインします。
[
> ]を選択します。[iSCSIイニシエータの概要]ページで[
]タブが選択された状態で、YaSTが開きます。[
]領域で、次のいずれかを選択します。起動時: その後の再起動時には、イニシエータサービスが自動的に開始します。
手動(デフォルト): サービスを手動で開始します。
[
]を指定、または確認します。このサーバ上の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の起動プロセスに便利な各種パラメータを含んだ情報ブロックです。次のいずれかの方法を使用して、ネットワーク上のiSCSIターゲットを検出します。
iSNS: iSNS (Internet Storage Name Service)を使用してiSCSIターゲットを検出するには、続いてiSNSによるiSCSIターゲットの検出を実行します。
検出されたターゲット: iSCSIターゲットデバイスを手動で検出するには、続いてiSCSIターゲットの手動検出を実行します。
このオプションを使用する前に、ご使用の環境内でiSNSサーバをインストールし、設定しておく必要があります。詳細については、セクション 12.0, Linux用iSNSを参照してください。
YaSTで[
]を選択し、次に[ ]タブを選択します。iSNSサーバのIPアドレスとポートを指定します。
デフォルトのポートは3205です。
[iSCSIイニシエータの概要]ページで、[
]をクリックして変更内容を保存、および適用します。iSCSIイニシエータを設定しているサーバからアクセスする各iSCSIターゲットサーバについて、次の手順を繰り返し実行します。
YaSTで[
]を選択し、次に[ ]タブを選択します。[
]をクリックして[ ]ダイアログを開きます。IPアドレスを入力し、必要に応じてポートを変更します。
デフォルトポートは3260です。
認証が必要な場合は、[
]の選択を解除して、[ ]または[ ]認証用の資格情報を指定します。[
]をクリックして、検出を開始し、iSCSIターゲットサーバに接続します。資格情報が必要な場合は、検出成功後、[
]を使用してターゲットを有効化します。指定したiSCSIターゲットを使用するための、認証資格情報の提供を促されます。
[
]をクリックして、設定を完了します作業が正常に完了すると、[
]にターゲットが表示されます。これで、仮想iSCSIデバイスを利用できるようになりました。
[iSCSIイニシエータの概要]ページで、[
]をクリックして変更内容を保存、および適用します。lsscsiコマンドを使用すると、iSCSIターゲットデバイスのローカルデバイスパスを検出することができます。
lsscsi [1:0:0:0] disk IET VIRTUAL-DISK 0 /dev/sda
YaSTで、[
]を選択し、次に[ ]タブを選択して、現在サーバに接続されているiSCSIターゲットデバイスの一覧を表示することができます。管理するiSCSIターゲットデバイスを選択します。
[
]をクリックして設定を変更します。自動: このオプションは、iSCSIサービス自体の起動時に接続するiSCSIターゲットに使用されます。これが通常の設定です。
Onboot(起動時): このオプションは、起動時、つまりルート(/)がiSCSI上にある場合に接続するiSCSIターゲットに使用します。したがって、iSCSIターゲットデバイスはサーバの起動時にinitrdによって評価されます。
[
]をクリックして、変更を保存、および適用します。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>コマンドを使用します。次のような実行結果が表示されます。
149.44.171.99:3260,1 iqn.2006-02.com.example.iserv:systems
iSNSサーバで使用できるターゲットを検出するには、コマンドiscsiadm --mode discovery --type isns --portal <targetip>を使用します。
iSCSIターゲットに定義されている各ターゲットが、それぞれ1行に表示されます。保存されたデータの詳細については、「セクション 13.3.3, iSCSIクライアントデータベース」を参照してください。
iscsiadmコマンドの--loginオプションを使用すると、必要なすべてのデバイスが作成されます。
iscsiadm -m node -n iqn.2006-02.com.example.iserv:systems --login
lsscsiコマンドを実行すると、新しく生成されたデバイスが表示されます。これらのデバイスをマウントして、アクセスできるようになりました。
iSCSIイニシエータが検出した情報は、/var/lib/open-iscsiに格納されている2つのデータベースファイルに保管されます。1つは、ディスカバリが検出したターゲット用のデータベースで、もう1つは検出したノード用のデータベースです。データベースにアクセスする場合、まずデータをディスカバリ用データベースから取得するのか、またはノードデータベースから取得するのかを指定する必要があります。指定するには、iscsiadmコマンドの-m discoveryまたは-m nodeパラメータを使用します。iscsiadmコマンドに、どちらかのパラメータを指定して実行すると、そのデータベースに保管されているレコードの概要が表示されます。
iscsiadm -m discovery 149.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ターゲットにログインさせる場合は、値にautomaticとnode.startupを設定します。
iscsiadm -m node -n iqn.2006-02.com.example.iserv:systems --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 --op=delete
重要: このオプションでは、確認のメッセージを表示せずかにレコードを削除するため、使用する際には細心の注意を払うようにしてください。
検出したすべてのターゲットのリストを取得するには、iscsiadm -m nodeコマンドを実行します。
iSCSIプロトコルは、数年に渡って利用されています。そのため、iSCSIとSANソリューションの比較、ベンチマークテスト、ハードウェアソリューションの解説など、さまざまなレビューや参考資料が発表または公開されています。open-iscsiの詳細に関する代表的なサイトを以下に示します。
このほか、オンラインマニュアルも利用できます。iscsiadm、iscsid、ietd.confおよびietdの各マニュアルページのほか、環境設定ファイルのサンプル /etc/iscsid.confも参照してください。