第13章 Image Mode for RHEL を使用した実行時のルートレベルのディレクトリーとシンボリックリンクの作成
特権ユーザーは、transient-ro オプションを使用することで、ファイルシステムをデフォルトで読み取り専用の状態に維持しながら、実行時に動的なトップレベルのマウントポイントを作成できます。これは、プラットフォーム固有のホストパスや動的なホストパスのバインドマウントを必要とするアプリケーションに役立ちます。
この機能は、次のユースケースに対応します。
- バインドマウント用に特定の絶対ホストパスを必要とするアプリケーション。
-
特定のマウントポイント (例:
/users) を必要とするプラットフォーム。 - デプロイ後、アプリケーションの起動前に動的マウントポイントを作成する必要がある。
- セキュリティー要件として、すべての通常のプロセスに対してルートファイルシステムを読み取り専用に維持する必要がある。
13.1. transient-ro true オプションの動作 リンクのコピーリンクがクリップボードにコピーされました!
ステートレスなデプロイメントを実現するには、Red Hat Enterprise Linux の bootc イメージで transient-ro=true オプションを有効にします。この設定では、ファイルシステムへの書き込みを一時ストレージに振り向け、システム再起動時にランタイムの変更を破棄します。
次のワークフローは、ブートプロセスの変更内容を説明したものです。
transient-ro=trueは、デフォルトではoverlayfsの上位ディレクトリーをread-onlyモードでマウントします。-
これにより、
rootやsystemdサービスなどの特権プロセスが、新しいプライベートなマウント名前空間内に限り、ルートファイルシステムをread-writeとして再マウントできるようになります。
-
これにより、
- このプライベートな名前空間内であれば、特権プロセスは、マウントポイントとして機能する新しいトップレベルディレクトリーの作成などの変更を実行できます。
- マウントポイントはシステムが起動している間は保持されますが、再起動後やアップグレード後は保持されません。
-
システム上の他の通常プロセスはすべて、元の変更されていない
read-onlyのルートファイルシステムを引き続き参照します。
セキュリティー上の理由から、これらのマウントポイントを作成できるのは特権ユーザー (root) のみです。
- マウントポイントは一時的なものであり、再起動後は保持されません。
-
ファイルシステムは、非特権プロセスに対しては
read-onlyのまま維持されます。
util-linux の制限により、transient-ro オプションを使用してマウント操作を実行する場合は、環境変数 LIBMOUNT_FORCE_MOUNT2=always を設定する必要があります。この変数は、transient-ro が必要とするマウント名前空間の機能に影響を与えます。