11.10. ファイルシステムおよびストレージ

LVM writecache の制限

writecache LVM キャッシュメソッドには以下の制限がありますが、cache メソッドには存在しません。

  • pvmove コマンドを使用すると、writecache 論理ボリュームに名前を付けることはできません。
  • writecache を指定した論理ボリュームは、シンプールまたは VDO と組み合わせて使用できません。

以下の制限は、cache メソッドにも適用されます。

  • cache または writecache がアタッチされている間は、論理ボリュームのサイズを変更することはできません。

(JIRA:RHELPLAN-27987, BZ#1798631, BZ#1808012)

XFS クォータ警告が頻繁にトリガーされる

クォータタイマーを使用すると、クォータ警告が頻繁にトリガーされるため、ソフトクォータが必要以上に速く実行されます。この問題を回避するには、警告のトリガーを妨げるソフトクォータを使用しないでください。その結果、警告メッセージの量はソフトクォータ制限を強制せず、設定されたタイムアウトを尊重するようになります。

(BZ#2059262)

LUKS ボリュームを格納する LVM mirror デバイスが応答しなくなることがある

セグメントタイプが mirror のミラーリング LVM デバイスで LUKS ボリュームを格納すると、特定の条件下で応答しなくなる可能性があります。デバイスが応答しなくなると、すべての I/O 操作を拒否します。

耐障害性のソフトウェア定義ストレージに、LUKS ボリュームをスタックする必要がある場合に、この問題を回避するには、Red Hat は セグメントタイプが mirror ではなく raid1 の LVM RAID 1 デバイスを使用することを推奨します。

raid1 のセグメントタイプは、デフォルトの RAID 設定タイプで、mirror の代わりに、推奨のソリューションとしてこのタイプが使用されます。

mirror デバイスを raid に変換するには、ミラーリングされた LVM デバイスの RAID1 デバイスへの変換 を参照してください。

(BZ#1730502)

/boot ファイルシステムを LVM に配置することができない

/boot ファイルシステムを LVM 論理ボリュームに配置することはできません。この制限は、以下の理由により存在します。

  • EFI システムでは、EFI システムパーティション が従来の /boot ファイルシステムとして機能します。uEFI 標準では、特定の GPT パーティションタイプと、このパーティションの特定のファイルシステムタイプが必要です。
  • RHEL 8 は、システムブートエントリーに Boot Loader Specification (BLS) を使用します。この仕様では、プラットフォームのファームウェアが /boot ファイルシステムを読み込める必要があります。EFI システムでは、プラットフォームファームウェアは uEFI 標準で定義された /boot 設定のみを読み取ることができます。
  • GRUB 2 ブートローダーでの LVM 論理ボリュームに対するサポートは完全ではありません。Red Hat は、uEFI や BLS などの標準があるので、この機能のユースケース数が減少しているため、サポートを改善する予定はありません。

Red Hat では、LVM での /boot のサポートを提供する予定はありません。代わりに、Red Hat は、/boot ファイルシステムを LVM 論理ボリュームに配置する必要がないシステムスナップショットおよびロールバックを管理するツールを提供します。

(BZ#1496229)

LVM で、複数のブロックサイズを持つボリュームグループが作成できない

vgcreate または vgextend などの LVM ユーティリティーでは、物理ボリューム (PV) の論理ブロックサイズが異なるボリュームグループ (VG) を作成できなくなりました。別のブロックサイズの PV で基礎となる論理ボリューム (LV) を拡張するとファイルシステムがマウントに失敗するため、LVM はこの変更を採用しました。

ブロックサイズが混在する VG の作成を再度有効にするには、lvm.conf ファイルの allow_mixed_block_sizes=1 オプションを設定します。

(BZ#1768536)

blk-availability systemd サービスは、複雑なデバイススタックを非アクティブ化します

systemd では、デフォルトのブロック非アクティブ化コードは、仮想ブロックデバイスの複雑なスタックを常に正しく処理するとは限りません。一部の設定では、シャットダウン中に仮想デバイスが削除されない場合があり、エラーメッセージがログに記録されます。この問題を回避するには、次のコマンドを実行して、複雑なブロックデバイススタックを非アクティブ化します。

# systemctl enable --now blk-availability.service

その結果、複雑な仮想デバイススタックはシャットダウン中に正しく非アクティブ化され、エラーメッセージは生成されません。

(BZ#2011699)

VDO ドライバーのバグにより、ジャーナルブロックを介してデバイスがフリーズする可能性があります

デバイスマッパーの suspend 操作を追跡しているときに、VDO ドライバーのバグにより、システムが一部のジャーナルブロックをメタデータの更新待ちとしてマークします。suspend 呼び出し以降、更新はすでに適用されています。

ジャーナルが同じ物理ブロックに戻ると、ブロックは使用できなくなります。最終的に、ブロックが再び使用可能になるまで、すべての書き込みが停止します。VDO デバイスでの growPhysicalgrowLogical、および setWritePolicy 操作には、一時停止/再開サイクルが含まれているため、多数のジャーナル更新後にデバイスがフリーズする可能性があります。

VDO プールまたはその上の論理ボリュームのサイズを増やすか、LVM ツールで管理されている VDO デバイスで pvmove および lvchange 操作を使用すると、この問題が発生する可能性があります。

回避策として、一時停止/再開サイクルを含む方法で VDO デバイスの設定を変更し、VDO デバイスを完全にシャットダウンしてから、再度起動します。これにより、メモリー内の不適切な状態がクリアされ、ジャーナルブロックがリセットされます。その結果、デバイスはフリーズしなくなり、正常に動作します。

(BZ#2109047)