6 効率的なストレージのためのマルチパスの使用

警告:

Oracle Linux 7は現在延長サポート中です。詳細は、Oracle Linux拡張サポートおよびOracleオープン・ソース・サポート・ポリシーを参照してください。

できるだけ早くアプリケーションとデータをOracle Linux 8またはOracle Linux 9に移行してください。

ストレージ・デバイスへの複数のパスによって、接続の冗長性、フェイルオーバー機能、ロード・バランシングおよびパフォーマンスの向上が提供されます。Device-Mapper Multipath (DM-Multipath)は、サーバーとストレージ・デバイスの間の複数のI/Oパスを1つのパスとして表すことができるマルチパス化ツールです。

デバイス・マルチパス化のサンプル設定

多くの場合は、ファイバ・チャネルベースのストレージ・エリア・ネットワーク(SAN)上のストレージにアクセスできるシステムでマルチパス化を構成することになります。イニシエータとターゲット間に冗長ネットワーク接続が存在する場合は、iSCSIイニシエータでもマルチパス化を使用できます。

図6-1は、サーバーとSAN接続ストレージ・アレイのディスク間に、2つのI/Oパスが構成されている単純なDM-Multipath構成を示しています。

  • サーバーのホスト・バス・アダプタhba1とストレージ・アレイのコントローラctrl1との間。

  • サーバーのホスト・バス・アダプタhba2とストレージ・アレイのコントローラctrl2との間。

図6-1 SANを介したディスクへの2つのパスのDM-Multipathマッピング


図では、サーバーとSAN接続ストレージ・アレイのディスク間に、2つのI/Oパスが構成されている単純なDM-Multipath構成を示しています。DM-Multipathは、基礎となるデバイス/dev/sdcおよび/dev/sdfが組み込まれた単一のマルチパス・デバイス/dev/mapper/mpathNを作成します。

DM-Multipathがないと、サーバーが同じストレージ・デバイスに接続されても、システムでは各パスが別々に取り扱われます。DM-Multipathは、基礎となるデバイス/dev/sdcおよび/dev/sdfが組み込まれた単一のマルチパス・デバイス/dev/mapper/mpathNを作成します。

次のいずれかの方法でマルチパス化サービス(multipathd)を構成し、マルチパス化デバイスとのI/Oを処理できます。

アクティブ/アクティブ

ラウンドロビン割当または動的ロード・バランシングのいずれかで、使用可能なすべてのパスにI/Oが分散されます。

アクティブ/パッシブ(スタンバイ・フェイルオーバー)

I/Oには1つのパスのみが使用されます。アクティブなパスに障害が発生すると、DM-MultipathによってI/Oがスタンバイ・パスに切り替わります。これはデフォルトの構成です。

ノート:

DM-Multipathは、SANファブリック内のパス障害など、パス障害時にフェイルオーバーを提供できます。ディスク・メディア障害は、ソフトウェアまたはハードウェアのRAIDソリューションを使用して処理する必要があります。

マルチパス化の構成

次の手順では、SAN接続ストレージにアクセスできるサーバーで単純なマルチパス構成を設定する方法について説明します。

  1. device-mapper-multipathパッケージをインストールします。

    sudo yum install device-mapper-multipath
  2. マルチパス機能の基本構成設定を開始します。

    sudo mpathconf --enable --with_multipathd y

    このコマンドは、/etc/multipath.confファイルも作成します。

  3. (オプション)マルチパス化のステータスを確認するには、次のコマンドを使用します。

    sudo mpathconf
  4. 必要に応じて、/etc/multipath.confを編集します。

    詳細は、マルチパス構成ファイルの操作を参照してください。

    現在のマルチパス構成を表示する場合は、multipath - llコマンドを使用します。次に例を示します。

    sudo multipath -ll

    マルチパスが正しく構成されている場合、コマンドの出力は次のようになります。

    mpath1(360000970000292602744533030303730) dm-0 SUN,(StorEdge 3510|T4
    size=20G features=‘0’ hwhandler=‘0’ wp=rw
    |-+- policy=‘round-robin 0’ prio=1 status=active
    | ‘- 5:0:0:2 sdb 8:16    active ready running
    ‘-+- policy=‘round-robin 0’ prio=1 status=active
      ‘- 5:0:0:3 sdc 8:32    active ready running

    前の出力は、ラウンドロビンI/Oパス選択を使用して、/dev/mapper/mpath1に20GBのストレージへの2つのパス(/dev/sdb/dev/sdc)がアクティブ/アクティブ構成で組み込まれていることを示しています。ストレージを識別するWWIDは360000970000292602744533030303730で、sysfsのマルチパス・デバイス名前はdm-0です。

    詳細は、mpathconf(8)multipath(8)multipathd(8)multipath.conf(5)およびscsi_id(8)の各マニュアル・ページを参照してください。

マルチパス構成ファイルの操作

/etc/multipath.confファイルを使用して、システム環境の設定に従ってマルチパス化をカスタマイズする定義の組合せを追加できます。コメント付きの構成例は、/usr/share/doc/device-mapper-multipath/multipath.confから取得できます。

/etc/multipath.confファイルは、次の一般的なセクションに分かれています。

defaults

デフォルトのマルチパス設定を定義します。このデフォルト設定はdevicesセクションの設定によってオーバーライドされ、このセクションの設定はmultipathsセクションの設定によってオーバーライドされます。

blacklist

マルチパス・トポロジ検出から除外されるデバイスを定義します。ブラックリストに登録されたデバイスはマルチパス・デバイスには組み込まれません。

例には、デバイスの除外に使用できる方法として、WWID(wwid)、デバイス名(devnode)およびデバイス・タイプ(device)による3つの方法が記載されています。

blacklist_exceptions

デバイスがblacklistセクションに暗黙的または明示的にリストされている場合も、マルチパス・トポロジ検出に含めるデバイスを定義します。

multipaths

WWIDで識別されるマルチパス・デバイスの設定を定義します。

alias属性には、WWIDまたはマルチパス・グループ番号に基づく名前ではなく、/dev/mapperに表示されるマルチパス・デバイスの名前を指定します。

SCSIデバイスのWWIDを取得するには、scsi_idコマンドを使用します。

sudo scsi_id --whitelisted --replace-whitespace --device=device_name
devices

ストレージ・コントローラの個々のタイプの設定を定義します。各コントローラ・タイプは、vendorproductおよびオプションのrevision設定で識別され、これがデバイスのsysfsの情報と一致する必要があります。

DM-Multipathがサポートするストレージ・アレイの詳細とそのデフォルトの構成値は/usr/share/doc/device-mapper-multipath-version/multipath.conf.defaultsにあり、/etc/multipath.confファイルのエントリのベースとして使用できます。

DM-Multipathのサポート対象としてリストされていないストレージ・デバイスを追加するには、/sys/block/device_name/devicevendormodelおよびrevファイルからベンダー、製品およびリビジョンの情報を取得します。

/etc/multipath.confファイルの次のエントリは、指定されたWWIDのiSCSI LUNにアクティブ/パッシブ・マルチパス化を設定するのに適しています。

defaults {
    user_friendly_names    yes
    uid_attribute          ID_SERIAL        
}

multipaths {
    multipath {
        wwid 360000970000292602744533030303730
    }
}

このスタンバイ・フェイルオーバー構成では、iSCSIイニシエータでネットワーク・インタフェースに障害が発生した場合は、残りのアクティブなネットワーク・インタフェースを介してI/Oが続行されます。

ノート:

/etc/multipath.confファイルを編集した場合は、multipathdサービスを再起動してファイルが再読取りされるようにします。

/etc/multipath.confの構成エントリに関する詳細は、multipath.conf(5)マニュアル・ページを参照してください。