このページでは、Container-Optimized OS のファイルシステムの概要を示し、ディスクのマウントとフォーマットを行う方法を説明します。
ファイル システム
Container-Optimized OS ノードイメージのファイル システム レイアウトは、ノード セキュリティを強化するように最適化されています。ブートディスク領域は次の 3 種類のパーティションに分割されます。
- ルート パーティション: 読み取り専用としてマウントされます。
- ステートフル パーティション: 書き込み可能でステートフルです。
- ステートレス パーティション: 書き込み可能ですが、リブート時に内容が保存されません。
Container-Optimized OS の使用中にコンテナ外の特定のファイルシステム レイアウトを想定する独自のサービスを実行する場合は、パーティショニングに注意してください。
システムの整合性を確保するため、ルート ファイルシステムは読み取り専用としてマウントされます。ただし、ホーム ディレクトリと /mnt/stateful_partition
は永続的で、書き込み可能です。
Container-Optimized OS ファイル システムを使用する
以下に Container-Optimized OS ノードイメージのファイルシステムのパスの一覧を示し、その特性や推奨される使用方法を説明します。
パス | プロパティ | 目的 |
---|---|---|
/ |
|
整合性を維持するため、ルート ファイルシステムは読み取り専用としてマウントされます。カーネルによって、整合性のあるルート ファイルシステムが起動時に確認され、エラー時にはブートが拒否されます。 |
/home /var |
|
これらのパスは、ブートディスクの存続期間にわたって保存されるようにデータを格納するためのものです。これらは /mnt/stateful_partition からマウントされます。 |
/var/lib/google /var/lib/docker /var/lib/toolbox |
|
これらのパスはそれぞれ、Compute Engine パッケージ(アカウント マネージャー サービスなど)、Docker、Toolbox の作業ディレクトリです。 |
/var/lib/cloud |
|
このパスは、cloud-init パッケージの作業ディレクトリです。 |
/etc |
|
通常、構成(cloud-init によって定義される systemd サービスなど)が保存されます。インスタンスを新規作成するときやインスタンスを再起動するときに cloud-init が適用されるため、インスタンスの望ましい状態を cloud-init にキャプチャすることをおすすめします。 |
/tmp |
|
通常、一時的な領域として使用され、永続的なデータの格納には使用できません。 |
/mnt/disks |
|
/mnt/disks 内のディレクトリには永続ディスクをマウントできます。 |
ディスクのマウントとフォーマット
Container-Optimized OS を使用する場合は、永続ディスクをアタッチするか、ローカル SSD でインスタンスを作成できます。該当するユースケースについて、永続ディスクをフォーマットしてマウントするまたはローカル SSD デバイスをフォーマットしてマウントするの手順に従ってください。
/mnt/disks
ディレクトリ内にサブディレクトリを作成して、ディスクをマウントできます。Container-Optimized OS 上では /etc/
はステートレスであるため、/etc/fstab
を使用して起動時にディスクを自動的に fsck(ファイル システム整合性チェック)を実行し、マウントすることはできません。ただし、cloud-config
の bootcmd
セクションから以下のオペレーションを行って、同じ操作を行うことができます。
次の例では、ディスク DEVICE_ID
を /mnt/disks
ディレクトリにマウントします。
次の内容を使用してスクリプト ファイルを作成します。
#cloud-config bootcmd: - fsck.ext4 -tvy /dev/DEVICE_ID - mkdir -p /mnt/disks/MNT_DIR - mount -t ext4 -o ... /dev/DEVICE_ID /mnt/disks/MNT_DIR
以下のように置き換えます。
DEVICE_ID
: フォーマットしてマウントするディスクのデバイス ID です。MNT_DIR
: ディスクをマウントするディレクトリです。
fsck.ext4
コマンドとmount
コマンドでサポートされているオプションの完全なセットについては、Linux のドキュメントをご覧ください。--metadata-from-file
フラグを使用して、スクリプト ファイルが含まれるように VM メタデータを更新します。VM を作成するには、次のコマンドを使用します。
gcloud compute instances create INSTANCE_NAME \ --metadata-from-file user-data=SCRIPT_FILE_NAME
既存のインスタンスを更新するには、次のコマンドを使用します。
gcloud compute instances add-metadata INSTANCE_NAME \ --metadata-from-file user-data=SCRIPT_FILE_NAME
以下のように置き換えます。
INSTANCE_NAME
: VM インスタンスの名前。SCRIPT_FILE_NAME
: メタデータ スクリプト ファイルの名前。