25.11. ストレージデバイスまたはパスの追加

デバイスを追加する際には、システムが新規デバイスに割り当てるパスベースのデバイス名 (例えば、/dev/sd 名、major:minor 番号、および /dev/disk/by-path 名など) がすでに削除されているデバイスで以前に使用されていた可能性があることに注意してください。これまでに使用されたパスベースのデバイス名がある場合、これに対する古い参照がすべて削除されていることを確認してください。そうしないと、新規デバイスが古いデバイスとして誤って認識されてしまう可能性があります。

手順25.13 ストレージデバイスまたはパスの追加

  1. ストレージデバイスまたはパスを追加する際の最初のステップは、その新規デバイスへのアクセス、または既存デバイスまでの新規パスへのアクセスを物理的に有効にすることです。これは、ファイバーチャネルまたは iSCSI ストレージサーバーでベンダー固有のコマンドを使用して実行します。これを行う際には、使用するホストに表示される新規ストレージ用の LUN の値に注意してください。ストレージサーバーがファイバーチャネルの場合は、そのストレージサーバーの World Wide Node Name (WWNN) を記録し、ストレージサーバー上のすべてのポートに単一の WWNN が使用されるかどうかを判別します。そうでない場合は、新規の LUN へのアクセスには、各ポートの World Wide Port Name (WWPN) が使用されることに注意してください。
  2. 次に、オペレーティングシステムに新規のストレージデバイス、または既存デバイスへのパスを認識させるようにします。使用するコマンドは以下のとおりです。
    $ echo "c t l" >  /sys/class/scsi_host/hosth/scan
    上記のコマンドで、h は HBA 番号を、c は HBA 上のチャネルを示し、t は SCSI のターゲット ID を、l は LUN を示します。

    注記

    このコマンドの古い形式である、echo "scsi add-single-device 0 0 0 0" > /proc/scsi/scsi は廃止予定になっています。
    1. ファイバーチャネルハードウェアの中には、RAID アレイに新たに作成される LUN が Loop Initialization Protocol (LIP) オペレーションが実行されるまでオペレーティングシステムから確認できないものもあります。確認する方法については 「ストレージの相互接続のスキャン」 を参照してください。

      重要

      LIP が必要な場合、このオペレーションを実行している間は I/O を停止する必要があります。
    2. 新しい LUN が RAID アレイに追加されているのにもかかわらず、オペレーティングシステムで設定されていない場合、sg3_utils パッケージに含まれている sg_luns コマンドを使用して、LUN のリストがアレイによってエクスポートされていることを確認してください。これにより、RAID アレイに対して SCSI REPORT LUNS コマンドが実行され、現在ある LUN のリストが返されます。
    すべてのポートに単一の WWNN を実装するファイバーチャネルストレージサーバーでは、sysfs で WWNN を検索することにより、正しい値の hc、およびt (HBA 番号、HBA チャネルおよび SCSI ターゲット ID) を判別できます。

    例25.5 正しい hct の値を判別

    たとえば、ストレージサーバーの WWNN が 0x5006016090203181 の場合、以下を使用します。
    $ grep 5006016090203181 /sys/class/fc_transport/*/node_name
    これにより、以下のような出力が表示されます。
    /sys/class/fc_transport/target5:0:2/node_name:0x5006016090203181 
    /sys/class/fc_transport/target5:0:3/node_name:0x5006016090203181 
    /sys/class/fc_transport/target6:0:2/node_name:0x5006016090203181 
    /sys/class/fc_transport/target6:0:3/node_name:0x5006016090203181
    上記は、このターゲットに対して 4 つのファイバーチャネルのルート (2 つの単一チャネル HBA のそれぞれが 2 つのストレージポートへのアクセスが設定されている) があることを示しています。LUN の値が 56 であると想定すると、以下のコマンドで最初のパスが設定されます。
    $ echo "0 2 56" >  /sys/class/scsi_host/host5/scan
    新規デバイスへの各パスに対してこれを実行する必要があります。
    すべてのポートに対する単一の WWNN を実装しないファイバーチャネルのストレージサーバーでは、sysfs 内でそれぞれの WWPN を検索することによって、正しい HBA 番号、HBA チャネル、および SCSI ターゲット ID を判別することができます。
    HBA 番号、HBA チャネル、および SCSI ターゲット ID を判別するための別の方法として、新規デバイスと同じパス上にすでに設定してある別のデバイスを参照する方法があります。これは、lsscsiscsi_idmultipath -l、および ls -l /dev/disk/by-* などの様々なコマンドで達成できます。この情報、および新規デバイスの LUN 番号は、上記に示してあるように新規デバイスへのパスの探索とその設定に使用することができます。
  3. デバイスへすべての SCSI パスを追加した後には、multipath コマンドを実行して、デバイスが正しく設定されているかどうかチェックします。この時点で、デバイスは、md、LVM、mkfs、または mount などに追加することができます。
上述のステップに従うと、デバイスは実行中のシステムに安全に追加することができます。これを実行する際に他のデバイスへの I/O を停止する必要はありません。SCSI バスの再スキャン (またはリセット) を伴う他の手順は、これによりオペレーティングシステムが現在のデバイスの接続状態を反映するように状態の更新を行うため、ストレージの I/O が実行中の場合は推奨されません。