Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

付録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 のみを説明します。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 ディスクを検出(およびログイン)できます。
  1. anaconda が起動すると、システムの BIOS またはアドオンブート ROM が iSCSI から起動できる BIOS 拡張である iBFT ( iSCSI Boot Firmware Table )に対応しているかどうかを確認します。BIOS が iBFT に対応している場合、anaconda は BIOS から設定されたブートディスクの iSCSI ターゲット情報を読み込み、このターゲットにログインしてインストールターゲットとして利用できるようにします。
  2. インストール時に Specialized Storage Devices オプションを選択すると、ストレージデバイスの選択画面に Advanced Target の追加 ボタンが表示されます。このボタンをクリックすると、検出 IP アドレスなどの iSCSI ターゲット情報を追加できます。Anaconda は指定の IP アドレスを確認し、見つかったターゲットにログインします。iSCSI ターゲットに指定できる詳細は、「 高度なストレージオプション 」 を参照してください。
anacondaiscsiadm を使用して iSCSI ターゲットを見つけてログインしますが、iscsiadm はこれらのターゲットに関する情報を iscsiadm iSCSI データベースに自動的に保存します。Anaconda はこのデータベースをインストール済みシステムにコピーし、/ に使用されていない iSCSI ターゲットをマークし、システムの起動時にシステムが自動的にログインできるようにします。/ が iSCSI ターゲットに配置されると、initrd はこのターゲットにログインし、anaconda には同じターゲットへの複数のログイン試行を回避するために、起動スクリプトにこのターゲットを含めません。
/ が iSCSI ターゲットに置かれている場合、anaconda はインストールプロセス中にアクティブなネットワークインターフェイスを無視するように NetworkManager を設定します。これらのインターフェイスは、システムの起動時に initrd によっても設定されます。NetworkManager がこれらのインターフェイスを再設定すると、システムは / への接続を失います。