付録B iSCSI ディスク
iSCSI (Internet Small Computer System Interface) は、SCSI の要求と応答を TCP/IP 上で運用することでコンピューターとストレージデバイスとの通信を可能にするプロトコルです。iSCSI は標準の SCSI プロトコルを土台にしているため、SCSI の用語を一部使用します。要求の送信先であり、その要求に応える SCSI バス上のデバイスは ターゲット、要求を発信する側のデバイスは イニシエーター と呼ばれます。言い替えると、iSCSI ディスクがターゲットで、SCSI コントローラーや SCSI Host Bus Adapter (HBA) に相当する iSCSI ソフトウェアがイニシエーターです。この付録での説明は、iSCSI イニシエーターとしての Linux に iSCSI ディスクを使用させる方法に限定しています。したがって、Linux に iSCSI ディスクをホストさせる方法については触れていません。
Linux には、SCSI HBA ドライバーの代わりとなるソフトウェア iSCSI イニシエーターがカーネルに内蔵されています。Linux ではこれを利用して iSCSI ディスクを使用します。ただし、iSCSI は完全にネットワークベースのプロトコルとなるため、iSCSI イニシエーターに対応するには、ネットワーク上で単に SCSI パケットを送信するだけではなくそれ以上の能力が必要とされます。Linux で iSCSI ターゲットを使用する前に、Linux 側からネットワーク上のターゲットを検出して接続を行わなければなりません。ターゲットへのアクセスを得るため、Linux 側から認証情報を送信しなければならない場合もあります。また、ネットワーク接続に障害が発生した場合には、Linux 側で障害の検出および新規接続の確立を行う必要があります。また必要に応じて再ログインも必要になります。
検出、接続、およびログインは iscsiadm ユーティリティーによりユーザー空間で処理され、エラーは iscsid ユーティリティーによってユーザー空間で処理されます。
iscsiadm と iscsid はいずれも、Red Hat Enterprise Linux の iscsi-initiator-utils パッケージに含まれます。
B.1. Anaconda での iSCSI ディスク
Anaconda インストールプログラムは、次の 2 つの方法で iSCSI ディスクを検出してログインできます。
- Anaconda が起動すると、システムの BIOS またはアドオンブート ROM が iSCSI から起動できるシステムの BIOS 拡張である iBFT ( iSCSI Boot Firmware Table )に対応しているかどうかを確認します。BIOS が iBFT に対応している場合、Anaconda は BIOS から設定済みのブートディスクの iSCSI ターゲット情報を読み取り、このターゲットにログインし、インストールターゲットとして利用可能にします。重要iSCSI ターゲットに自動接続するには、ターゲットにアクセスするネットワークデバイスがアクティベートされている必要があります。こにれついての推奨の方法として、起動オプション
ip=ibft
を使用します。 - anaconda のグラフィカルユーザーインターフェイスでは、iSCSI ターゲットを手動で検出して追加できます。メインメニューのインストールの概要画面でインストール先オプションをクリックします。次に、画面の 特殊 をクリックします。タブが付いたストレージデバイスの一覧が表示されます。右下隅の ディスク セクションで ディスクの追加 ボタンをクリックし、検出プロセスに進みます。詳細は、「ストレージデバイス選択の画面」 を参照してください。重要制限:
/boot
パーティションは、この方法を使用して手動で追加された iSCSI ターゲットには配置できません。/boot
パーティションを含む iSCSI ターゲットは、iBFT で使用するように設定する必要があります。ただし、インストールされたシステムが、たとえば iPXE を使用してファームウェア iBFT 以外の方法で提供された iBFT 設定で iSCSI から起動する場合は、inst.nonibftiscsiboot
インストーラー起動オプションを使用して/boot
パーティション制限を無効にすることができます。
Anaconda は iscsiadm を使用して iSCSI ターゲットを検索し、ログインしますが、iscsiadm はこれらのターゲットに関する情報を iscsiadm iSCSI データベースに自動的に保存します。次に、Anaconda はこのデータベースをインストール済みシステムにコピーし、
/
に使用されていない iSCSI ターゲットをマークし、システムの起動時にシステムが自動的にログインできるようにします。/
が iSCSI ターゲットに配置されている場合、initrd はこのターゲットにログインし、Anaconda は同じターゲットに複数のログインを試みないように起動スクリプトにこのターゲットを含めません。