第14章 ストレージ
バージョン 4.2 への DM のリベース
デバイスマッパー(DM)がアップストリームバージョン 4.2 にアップグレードされ、大規模な DM 暗号化パフォーマンス更新や、マルチキューブロック I/O キューイングメカニズム(blk-mq)をサポートする DM コアの更新など、以前のバージョンに比べて多くのバグ修正と機能拡張が提供されています。
blk-mq を使用したマルチキュー I/O スケジューリング
Red Hat Enterprise Linux 7.2 には、blk-mq と呼ばれるブロックデバイス用の新しい複数のキュー I/O スケジューリングメカニズムが含まれています。特定のデバイスドライバーが I/O 要求を複数のハードウェアまたはソフトウェアキューにマップできるようにすることで、パフォーマンスを向上させることができます。パフォーマンスの向上は、複数の実行スレッドが 1 つのデバイスに対して I/O を実行する場合に、ロックの競合を減らすことから来ています。Non-Volatile Memory Express (NVMe)などの新しいデバイスは、複数のハードウェア送信および完了キューのネイティブサポートと低レイテンシーのパフォーマンス特性により、この機能を利用するのに最適です。パフォーマンスは、常に正確なハードウェアとワークロードによって異なります。
現在、blk-mq 機能は virtio-blk、mtip32xx、nvme、および rbd ドライバーで実装され、デフォルトで有効になっています。
関連する機能 scsi-mq により、Small Computer System Interface (SCSI)デバイスドライバーが blk-mq インフラストラクチャーを使用できるようになります。scsi-mq 機能は、Red Hat Enterprise Linux 7.2 ではテクノロジープレビューとして提供されています。scsi-mq を有効にするには、カーネルコマンドラインで scsi_mod.use_blk_mq=y を指定します。デフォルト値は n (無効)です。
要求ベースの DM を使用するデバイスマッパー(DM)マルチパスターゲットは、dm_mod.use_blk_mq=y カーネルオプションが指定されている場合は、blk-mq インフラストラクチャーを使用するように設定することもできます。デフォルト値は n (無効)です。
DM レイヤーでのロックオーバーヘッドを減らすため、基礎となる SCSI デバイスも blk-mq を使用している場合は dm_mod.use_blk_mq=y を設定すると便利です。
DM マルチパスがシステムで blk-mq を使用しているかどうかを確認するには、/sys/block/dm-X/dm/use_blk_mq ファイルを cat します。dm-X は、目的の DM マルチパスデバイスに置き換えられます。このファイルは読み取り専用で、要求ベースの DM マルチパスデバイスの作成時に /sys/module/dm_mod/parameters/use_blk_mq のグローバル値を反映します。
multipath.conf ファイルの新しい delay_watch_checks オプションおよび delay_wait_checks オプション
接続が頻繁にドロップまたは頻繁に切断される場合のように、パスが信頼できない場合には、multipathd はそのパスを引き続き使用しようとします。multipathd が、パスがアクセスできなくなったことを認識するためのタイムアウトは 300 秒であるため、multipathd が停止した外観を得ることができます。
これを修正するには、delay_watch_checks と delay_wait_checks の 2 つの新しい設定オプションが追加されました。delay_watch_checks は、multipathd がオンラインになった後にパスを監視するサイクルの数に設定します。割り当てられた値でパスが失敗すると、multipathd はそれを使用しません。multipathd は delay_wait_checks オプションに依存して、パスが再び有効になるまで、パスが再び有効になるまでに連続するサイクルの数を示します。これにより、信頼できないパスがオンラインに戻るとすぐに使用されるのを防ぐことができます。
multipath.conf ファイルの新しい config_dir オプション
ユーザーは、/etc/multipath.conf およびその他の設定ファイル間で設定を分割できませんでした。これにより、ユーザーはすべてのマシンに 1 つの主要設定ファイルを設定し、マシン固有の設定情報を各マシンの個別の設定ファイルに保持できなくなりました。
これに対処するために、multipath.config ファイルに新しい config_dir オプションが追加されました。config_dir オプションを空の文字列または完全修飾ディレクトリーパス名のいずれかに変更する必要があります。空の文字列以外の値に設定すると、マルチパスはすべての .conf ファイルをアルファベット順に読み込みます。次に、設定が /etc/multipath.conf に追加されたかのように適用されます。この変更を加えないと、config_dir はデフォルトで /etc/multipath/conf.d になります。
device-mapper ドライバーを使用するデバイス領域の I/O 統計を表示および管理する新しい dmstats コマンド
dmstats
コマンドは、デバイスマッパー I/O 統計のユーザー空間サポートを提供します。これにより、ユーザーはデバイスマッパーデバイスのユーザー定義のリージョンの I/O カウンター、メトリック、およびレイテンシーヒストグラムデータを作成、管理、およびレポートできます。dmsetup
レポートで統計フィールドが利用可能になり、dmstats
コマンドは、統計情報で使用するように設計された新しい特殊なレポートモードを追加します。dmstats
コマンドの詳細は、dmstats (8)の man ページを参照してください。
LVM Cache
LVM キャッシュは、Red Hat Enterprise Linux 7.1 以降で完全にサポートされています。この機能により、小規模の高速なデバイスで論理ボリューム(LV)を作成できます。これは、大規模で低速なデバイスへのキャッシュとして実行されます。キャッシュ論理ボリュームの作成については、lvmcache (7) man ページを参照してください。
キャッシュ LV の使用に対する以下の制限に注意してください。
* キャッシュ LV はトップレベルのデバイスである必要があります。これは、シンプール LV、RAID LV のイメージ、またはその他のサブ LV タイプとしては使用できません。
* キャッシュ LV (作成元の LV、メタデータ LV、およびデータ LV)は、リニア、ストライプ、または RAID タイプのみにすることができます。
* キャッシュ LV のプロパティーは、作成後に変更できません。キャッシュプロパティーを変更するには、lvmcache (7)の説明に従ってキャッシュを削除し、必要なプロパティーで再作成します。
新しい LVM/DM キャッシュポリシー
メモリー消費を削減し、ほとんどのユースケースでパフォーマンスを向上させる新しい
smq
dm-cache ポリシーが作成されました。これは、新しい LVM キャッシュ論理ボリュームのデフォルトキャッシュポリシーになりました。レガシーの mq
キャッシュポリシーの使用を希望するユーザーは、キャッシュ論理ボリュームの作成時に -cachepolicy
引数を指定することで引き続き実行できます。
LVM systemID
LVM ボリュームグループに所有者を割り当てることができるようになりました。ボリュームグループの所有者は、ホストのシステム ID です。指定のシステム ID を持つホストのみが VG を使用できます。これにより、共有デバイスに存在し、複数のホストに見えるボリュームグループを利用できます。それ以外の場合は、複数のホストからの同時使用から保護されません。システム ID が割り当てられた共有デバイスの LVM ボリュームグループは、1 つのホストによって所有され、他のホストから保護されます。
新しい lvmpolld
デーモン
lvmpolld
デーモンは、長時間実行される LVM コマンドのポーリング方法を提供します。有効にすると、長時間実行される LVM コマンドの制御が元の LVM コマンドから lvmpolld
デーモンに転送されます。これにより、操作は元の LVM コマンドから独立して続行できます。lvmpolld
デーモンはデフォルトで有効になっています。
lvmpolld
デーモンの導入前に、systemd サービスの cgroup
内で開始された lvm2 コマンドで発信されたバックグラウンドポーリングプロセスは、cgroup
でメインプロセス(メインサービス)が終了すると強制終了される可能性がありました。これにより、lvm2 ポーリングプロセスの早期終了が発生する可能性があります。さらに、lvmpolld
は、進行中のすべてのポーリングタスクの進捗を追跡するため、同じタスクで進捗について複数回クエリーする lvm2 ポーリングプロセスの起動を防ぐのに役立ちます。
lvmpolld
デーモンの詳細は、lvm.conf
設定ファイル を参照してください。
LVM 選択基準の強化
Red Hat Enterprise Linux 7.2 リリースでは、LVM の選択基準にいくつかの機能拡張がサポートされています。以前は、報告コマンドにのみ選択基準を使用することができました。LVM は、複数の LVM 処理コマンドの選択基準にも対応していました。さらに、今回のリリースには、時間レポートフィールドおよび選択のサポートを改善するためにいくつかの変更があります。
これらの新機能の実装については、論理ボリューム管理マニュアルの付録 LVM 選択基準 を参照してください。
SCSI LUN のデフォルトの最大数が増えました。
max_report_luns
パラメーターのデフォルト値が 511 から 16393 に増えました。このパラメーターは、システムが Report LUN メカニズムを使用して SCSI 相互接続をスキャンする際に設定できる論理ユニットの最大数を指定します。