第12章 ファイルシステムおよびストレージ

12.1. ファイルシステム

12.1.1. Btrfs が削除される

Btrfs ファイルシステムが、Red Hat Enterprise Linux 8 で削除されました。これには、次のコンポーネントが含まれます。

  • btrfs.ko カーネルモジュール
  • btrfs-progs パッケージ
  • snapper パッケージ

Red Hat Enterprise Linux 8 で Btrfs ファイルシステムを作成、マウント、またはインストールすることができなくなりました。Anaconda インストーラーおよびキックスタートコマンドが Btrfs をサポートしなくなりました。

12.1.2. XFS が、共有コピーオンライトのデータエクステントに対応

XFS ファイルシステムは、共有コピーオンライトのデータエクステント機能に対応します。この機能により、2 つ以上のファイルで共通のデータブロックセットを共有できます。共通ブロックを共有しているファイルのいずかを変更すると、XFS が共通ブロックへのリンクを解除して、新しいファイルを作成します。これは、その他のファイルシステムに見られるコピーオンライト (COW) 機能と似ています。

共有コピーオンライトのデータエクステントには次の特徴があります。

Fast
共有コピーを作成しても、ディスク I/O を使用しません。
Space-efficient
共有ブロックは、追加のディスク容量を使用しません。
Transparent
共通ブロックを共有するファイルは、通常のファイルと同じように機能します。

ユーザー領域ユーティリティーは、次の目的で共有コピーオンライトのデータエクステントを使用できます。

  • cp --reflink コマンドなどを使用した効果的なファイルのクローン作成
  • ファイルごとのスナップショット

この機能は、Overlayfs、NFS などのカーネルサブシステムで、より効率的な操作に使用されます。

共有コピーオンライトエクステントは、xfsprogs パッケージのバージョン 4.17.0-2.el8 以降で、XFS ファイルシステムの作成時にデフォルトで有効になります。

直接アクセス (DAX) デバイスは、現在、共有コピーオンライトデータエクステントを使用する XFS をサポートしていません。この機能を使用せずに XFS ファイルシステムを作成するには、次のコマンドを使用します。

# mkfs.xfs -m reflink=0 block-device

Red Hat Enterprise Linux 7 は、読み取り専用モードでのみ、共有コピーオンラインとデータエクステントを持つ XFS ファイルシステムをマウントできます。

12.1.3. ext4 ファイルシステムがメタデータのチェックサムをサポート

この更新により、ext4 メタデータはチェックサムにより保護されます。これにより、ファイルシステムが破損メタデータを認識させます。これにより破損を回避し、ファイルシステムの耐障害性を高めます。

12.1.4. /etc/sysconfig/nfs ファイルおよびレガシーの NFS サービス名が利用できない

Red Hat Enterprise Linux 8.0 では、NFS 設定が、Red Hat Enterprise Linux 7 で使用されていた /etc/sysconfig/nfs 設定ファイルから、/etc/nfs.conf に移動しています。

/etc/nfs.conf ファイルが異なる構文を使用します。Red Hat Enterprise Linux 7 からアップグレードすると、Red Hat Enterprise Linux 8 が、すべてのオプションを /etc/sysconfig/nfs から /etc/nfs.conf へ自動的に変換しようとします。

Red Hat Enterprise Linux 7 では、現在、この両方の設定ファイルがサポートされます。Red Hat は、新しい /etc/nfs.conf ファイルを使用して、Red Hat Enterprise Linux のすべてのバージョンの NFS 設定を、自動化した設定システムと互換性を持たせるようにすることを推奨します。

また、以下の NFS サービスエイリアスが削除され、アップストリームの名前に置き換えられました。

  • nfs.service ( nfs-server.service に置き換え)
  • nfs-secure.service (rpc-gssd.service に置き換え)
  • rpcgssd.service (rpc-gssd.service に置き換え)
  • nfs-idmap.service (nfs-idmapd.service に置き換え)
  • rpcidmapd.service (nfs-idmapd.service に置き換え)
  • nfs-lock.service (rpc-statd.service に置き換え)
  • nfslock.service (rpc-statd.service に置き換え)

12.2. ストレージ

12.2.1. BOOM ブートマネージャーが、ブートエントリーを作成するプロセスを簡素化

BOOM は、Linux システム用のブートマネージャーで、ブートエントリー設定の BootLoader 仕様に対応するブートローダを使用します。柔軟なブート設定が可能になり、ブートエントリーの新規作成や変更が容易になります。たとえば、LVM を使用して作成したシステムのスナップショットイメージを起動できます。

BOOM は、既存のブートローダー設定を変更せず、追加エントリーを挿入するだけです。既存の設定は維持され、ディストリビューションの統合 (カーネルのインストールや更新のスクリプトなど) は、以前と同じように引き続き機能します。

BOOM には、ブートエントリーを作成するタスクを容易にする、単純化されたコマンドラインインターフェース (CLI) および API があります。

12.2.2. Stratis が利用可能に

Stratis は、ユーザーへの追加機能を備えたストレージプールに、管理されるファイルシステムを提供する新しいローカルストレージマネージャーです。

Stratis を使用すると、次のようなストレージタスクをより簡単に実行できます。

  • スナップショットおよびシンプロビジョニングを管理する
  • 必要に応じてファイルシステムのサイズを自動的に大きくする
  • ファイルシステムを維持する

Stratis ストレージを管理するには、バックグランドサービス stratisd と通信する stratis ユーティリティーを使用します。

Stratis はテクノロジープレビューとして提供されます。

詳細は、Stratis のドキュメント「Managing layered local storage with Stratis」を参照してください。

12.2.3. LUKS2 が、ボリューム暗号化のデフォルトフォーマットに

RHEL 8 では、LUKS バージョン 2 (LUKS2) 形式が、レガシーの LUKS (LUKS1) 形式に代わり使用されます。dm-crypt サブシステムおよび cryptsetup ツールでは、暗号化ボリュームのデフォルト形式として LUKS2 が使用されるようになりました。LUKS2 は、部分的なメタデータ破損イベントが発生した場合に備えて、暗号化されたボリュームにメタデータの冗長性と自動回復を提供します。

内部の柔軟なレイアウトにより、LUKS2 は将来の機能も実現します。これは、libcryptsetup に組み込まれた一般的なカーネルキーリングトークンにより自動ロック解除に対応し、カーネルキーリング保持サービスに保存されているパスフレーズを使用して LUKS2 ボリュームのロックを解除します。

以下は、その他の主な機能強化です。

  • ラップ鍵暗号方式を使用した保護鍵の設定
  • Policy-Based Decryption (Clevis) とのより簡単な統合
  • 最大 32 個の鍵スロット (LUKS1 は鍵スロットを 8 個だけ提供します)

詳細は、man ページの cryptsetup(8) および cryptsetup-reencrypt(8) を参照してください。

12.2.4. ブロックデバイスにおけるマルチキュースケジューリング

Red Hat Enterprise Linux 8 では、ブロックデバイスがマルチキュースケジューリングを使用するようになりました。これにより、高速ソリッドステートドライブ (SSD) およびマルチコアシステムでの拡張が向上します。

SCSI マルチキュー (scsi-mq) ドライバーがデフォルトで有効になり、カーネルが scsi_mod.use_blk_mq=Y オプションで起動します。この変更は、アップストリームの Linux カーネルと同じです。

デバイスマッパーマルチパス (DM Multipath) を使用するには、scsi-mq ドライバーがアクティブになっている必要があります。

12.2.5. VDO がすべてのアーキテクチャーに対応

Virtual Data Optimizer (VDO) が、RHEL 8 でサポートされるすべてのアーキテクチャーで利用可能になりました。

12.2.6. VDO が読み込みキャッシュに対応しなくなる

読み込みキャッシュ機能は、VDO (Virtual Data Optimizer) から削除されました。読み込みキャッシュは常に VDO ボリュームで無効になり、vdo ユーティリティーの --readCache オプションを使用して有効にできなくなりました。

Red Hat は、異なる実装を使用して、後続の Red Hat Enterprise Linux リリースで VDO 読み取りキャッシュを再実装できるようになりました。

12.2.7. dmraid パッケージが削除される

dmraid パッケージは、Red Hat Enterprise Linux 8 から削除されています。ハードウェアとソフトウェアの RAID ホストバスアダプター (HBA) のサポートが必要な場合は、ネイティブの MD software RAID、SNIA RAID Common Disk Data Format (DDF)、Intel® Matrix Storage Manager (IMSM) 形式をサポートする mdadm ユーティリティーを使用する必要があります。

12.2.8. Software FCoE および Fibre Channel ではターゲットモードに対応しない

  • Software FCoE - NIC Software FCoE ターゲット機能は Red Hat Enterprise Linux 8.0 から削除されました。
  • ファイバーチャンネルは、ターゲットモードをサポートしません。ターゲットモードは、Red Hat Enterprise Linux 8.0 の qla2xxx QLogic Fibre Channel ドライバーに対して無効になります。

詳細は「FCoE ソフトウェアの削除」を参照してください。

12.2.9. DM Multipath のマージナルパスの検出が改善

multipathd サービスでは、マージナルパスの検出が改善しました。これにより、マルチパスデバイスが、繰り返し失敗する可能性があるパスを回避して、パフォーマンスを向上します。マージナルパスは、永続的で断続的な I/O エラーがあるパスです。

マージナルパスの動作は、 /etc/multipath.conf ファイルの以下のオプションで制御します。

  • marginal_path_double_failed_time
  • marginal_path_err_sample_time
  • marginal_path_err_rate_threshold
  • marginal_path_err_recheck_gap_time

以下の場合、DM Multipath はパスを無効にし、サンプル期間中に I/O を繰り返しテストします。

  • multipath.conf オプションが設定されている
  • 設定した期間内にパスが 2 回失敗する
  • その他のパスが利用できる

このテスト中に、パスのエラーが設定されたエラー率よりも大きい場合に、設定したギャップ時間の間、DM Multipath はパスを無視してから、それが復旧できるぐらいに適切に機能しているかどうかを再確認します。

詳細は、man ページのmultipath.confを参照してください。

12.2.10. DM Multipath 設定ファイルの overrides セクションが追加

/etc/multipath.conf ファイルには、全デバイスの設定値を設定できる overrides セクションが含まれるようになりました。この属性は、デバイスを含むパスに対して、/etc/multipath.conf ファイルの multipaths セクションに指定した属性で上書きした場合を除き、DM Multipath によりすべてのデバイスに使用されます。この機能は、設定ファイルの devices セクションの all_devs パラメーターに代わるものです。

12.2.11. Broadcom Emulex および Marvell Qlogic のファイバーチャンネルアダプターで NVMe/FC に完全対応

NVMe をサポートする Broadcom Emulex アダプターおよび Marvell Qlogic Fibre Channel 32Gbit アダプターともに使用すると、イニシエーターモードで NVMe/FC (NVMe over Fibre Channel) トランスポートタイプに完全に対応するようになりました。

Red Hat Enterprise Linux に同梱されていた RDMA (Remote Direct Memory Access) プロトコルに加えて、NVMe over Fibre Channel が、NVMe (Nonvolatile Memory Express) プロトコルのファブリックトランスポートタイプとして追加されました。

NVMe/FC を有効にするには、以下を行います。

  • lpfc ドライバーで NVMe/FC を有効にするには、/etc/modprobe.d/lpfc.conf ファイルに以下のオプションを追加します。

    lpfc_enable_fc4_type=3
  • qla2xxx ドライバーで NVMe/FC を有効にするには、/etc/modprobe.d/qla2xxx.conf ファイルに以下のオプションを追加します。

    qla2xxx.ql2xnvmeenable=1

その他の制限:

  • マルチパスは、NVMe/FC ではサポートされません。
  • NVMe クラスタリングは、NVMe/FC ではサポートされません。
  • Marvell Qlogic アダプターを使用すると、Red Hat Enterprise Linux は、イニシエーターモードで NVMe/FC および SCSI/FC の同時使用をサポートしていません。
  • kdump は、NVMe/FC ではサポートされません。
  • SAN (Storage Area Network) の NVMe/FC からのシステム起動はサポートされません。

12.2.12. DIF/DIX (Data Integrity Field/Data Integrity Extension) のサポート

DIF/DIX は SCSI 規格への追加分です。サポートされていると明記されている場合を除き、引き続き HBA およびストレージアレイのテクノロジープレビューとなります。

DIF/DIX により DIF (Data Integrity Field) が追加され、一般的に使用される 512 バイトのディスクブロックのサイズが 512 から 520 バイトに増加します。DIF は、書き込みの発生時に HBA (Host Bus Adapter) により算出されるデータブロックのチェックサム値を保存します。その後、受信時にストレージデバイスがチェックサムを確認し、データとチェックサムの両方を保存します。読み取りが発生すると、チェックサムが、ストレージデバイスおよび受信する HBA により検証されます。

12.3. LVM

12.3.1. 共有ストレージデバイスを管理する clvmd の削除

LVM は、共有ストレージデバイスの管理に clvmd (cluster lvm daemon) を使用しなくなりました。代わりに、LVM が lvmlockd (lvm lock daemon) を使用するようになりました。

  • lvmlockd の詳細は、man ページの lvmlockd(8) を参照してください。共有ストレージを使用する一般的な方法は、man ページの lvmsystemid(7) を参照してください。
  • Pacemaker クラスターで LVM を使用する方法は、LVM-activate リソースエージェントのヘルプ画面を参照してください。
  • Red Hat High Availability クラスターで共有論理ボリュームを設定する手順例は、「ククラスターに GFS2 ファイルシステムを設定」を参照してください。

12.3.2. lvmetad デーモンの削除

LVM は、メタデータのキャッシュに lvmetad デーモンを使用しなくなり、ディスクからメタデータを常に読み込みます。LVM ディスクの読み込みが減っており、それによりキャッシュの利点が減ります。

以前、論理ボリュームの自動アクティベーションは、lvm.conf 設定ファイルの use_lvmetad 設定に間接的に関連付けられていました。lvm.conf ファイルに auto_activation_volume_list を設定し続ける自動アクティベーションを無効にすることが適切な方法となります。

12.3.3. LVM が、GFS プールボリュームマネージャー、または lvm1 メタデータ形式でフォーマットしたデバイスを管理できない

LVM は、GFS プールのボリュームマネージャー、または lvm1 メタデータ形式でフォーマットしたデバイスは管理できなくなりました。Red Hat Enterprise Linux 4 を導入する前に論理ボリュームを作成した場合は、影響を及ぼす場合があります。lvm1 形式を使用したボリュームグループは、vgconvert コマンドを使用して lvm2 形式に変換する必要があります。

12.3.4. LVM ライブラリーおよび LVM Python バインディングが削除されている

lvm2-python-libs パッケージにより提供される lvm2app ライブラリーおよび LVM Python バインディングは削除されました。Red Hat は、代わりに以下のソリューションを推奨します。

  • LVM D-Bus API と lvm2-dbusd サービスの組み合わせ。このソリューションでは Python バージョン 3 を使用する必要があります。
  • JSON 形式の LVM コマンドラインユーティリティー。このフォーマットは、lvm2 パッケージのバージョン 2.02.158 以降で利用できます。
  • C/C++ の AppStream に含まれる libblockdev ライブラリー

Red Hat Enterprise Linux 8 へアップグレードする前に、削除したライブラリーおよび D-Bus API へのバインディングを使用して、アプリケーションをポートする必要があります。

12.3.5. LVM ミラーのログをミラーリングする機能が削除される

ミラー化された LVM ボリュームでのミラー化されたミラーログ機能が非推奨となりました。Red Hat Enterprise Linux (RHEL) 8 では、ミラー化されたミラーログを持つ LVM ボリュームの作成またはアクティブ化がサポートされなくなりました。

推奨される代替ソリューションは以下のとおりです。

  • RAID1 LVM ボリューム。RAID1 ボリュームの優れた点は、劣化モードにおいても機能し、一時的な障害の後に回復できることです。
  • ディスクのミラーログ。ミラー化されたミラーログをディスクのミラーログに変換するには、lvconvert --mirrorlog disk my_vg/my_lv コマンドを実行します。