ボリュームのマウント

ボリュームを指定すると、デバイスがインスタンスにアタッチされますが、デバイスのマウントとフォーマットは行われません。 ノードの起動時にボリュームをマウントおよびフォーマットする場合は、オプションの属性 Mount を、そのボリュームで使用するマウントポイント構成の名前に設定します。

[[[volume reference-data]]]
Size = 100
Mount = data              # The name of the mountpoint to use with this volume

次に、 という名前 data のマウントポイントは、ノードの構成セクションで定義されます。

[[[configuration cyclecloud.mounts.data]]]
mountpoint = /mount
fs_type = ext4

上記の構成では、 を含Mount = dataむすべてのボリュームをcyclecloud.mountpoint使用して 名前付き data を構成することを指定しています。 このボリュームはファイルシステムで ext4 フォーマットされ、 に /mount表示されます。

デバイス

属性を使用してボリュームを mountpoint 定義すると、デバイス名が自動的に割り当てられ、特定のマウントポイントに使用されます。 ただし、独自のデバイス名を使用してマウントポイントをカスタマイズできます。 例:

[[node scheduler]]
  [[[configuration cyclecloud.mounts.data]]]
  mountpoint = /data
  Azure.LUN=0

Azure では、デバイスは論理ユニット番号 (LUN) を使用して割り当てられます

ほとんどの場合、Azure CycleCloud によってデバイスが自動的に割り当てられます。 デバイスを手動で指定することは高度な使用法であり、ノードに使用しているイメージに、添付ファイルがイメージにベイクされたために自動的にアタッチされるボリュームがある場合に便利です。 デバイスを手動で指定すると、デバイスの順序が特別な意味を持つ場合にも役立ちます。

注意

予約名 boot は、組み込みのブート ボリュームを変更するために使用されます。

高度な使用方法

前の例は非常に簡単でした。1 つの事前に書式設定されたスナップショットをノードにマウントします。 ただし、複数のデバイスを一緒に RAIDing したり、新しいファイルシステムの暗号化やフォーマットを行うなど、より高度なマウントが行われる可能性があります。 例として、複数のボリュームを一緒に RAID し、それらを暗号化してからノードに 1 つのデバイスとしてマウントする方法を次に示します。

[[node scheduler]]
....
  [[[volume vol1]]]
  VolumeId = vol-1234abcd
  Mount = giant

  [[[volume vol2]]]
  VolumeId = vol-5678abcd
  Mount = giant

  [[[volume vol3]]]
  VolumeId = vol-abcd1234
  Mount = giant

  [[[configuration cyclecloud.mounts.giant]]]
  mountpoint = /mnt/giant
  fs_type = xfs
  raid_level = 0
  encryption.bits = 256
  encryption.key = "0123456789abcdef9876543210"

上の例では、 という名前 schedulerのノードにアタッチする必要があり、そのマウントポイントに という名前 giantの 3 つのボリュームがあることを示しています。 マウントポイントの構成では、これら 3 つのボリュームを RAID0 に使用して raid_level = 0 RAID 化し、ファイルシステムを使用して xfs フォーマットし、結果のデバイスを に /mnt/giantマウントする必要があることを示しています。 また、デバイスには、テンプレートで定義されている暗号化キーを持つ 256 ビット AES を使用したブロック レベルの暗号化も必要です。

ディスクの暗号化

CycleCloud では、 Azure Disk Encryption Sets を使用した OS およびデータ ディスク ボリュームのサーバー側暗号化 (SSE) がサポートされています。 Azure では、既定で プラットフォーム マネージド キー (PMK) が使用されます。 ただし、カスタマー マネージド キー (CMK) を使用するには、まず Azure Disk Encryption Set とキーを使用するKey Vaultを設定する必要があります。 こちらのドキュメントに従って 、ディスク暗号化セットを設定します

作成時に Resource ID ディスク暗号化セットの を記録します。 これは、Azure Portal の [ディスク暗号化セット] ブレードの [プロパティ] で確認できます。

CycleCloud ノードのボリュームに CMK を使用して SSE を適用するには、定義に [[[volume]]] 次を追加します。

DiskEncryptionSetId = /subscriptions/$SUBSCRIPTION-ID/resourceGroups/$RESOURCEGROUPNAME/providers/Microsoft.Compute/diskEncryptionSets/$DISK-ENCRYPTION-SET-NAME

次に例を示します。

[[node scheduler]]
....
  [[[volume encryptedVolume]]]
  VolumeId = vol-1234abcd
  Mount = encrypted

  # Insert your RESOURCE ID here:
  DiskEncryptionSetId = /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResouceGroup/providers/Microsoft.Compute/diskEncryptionSets/myCMKDiskEncryptionSet

  [[[configuration cyclecloud.mounts.encrypted]]]
  mountpoint = /mnt/encrypted
  fs_type = ext4
  raid_level = 0

注意

上記の簡略化された構文は、CycleCloud 8.5 で導入されました。 以前のバージョンの場合は、代わりに を使用 Azure.Encryption.DiskEncryptionSetId する必要があります。

Azure.Encryption.DiskEncryptionSetId = /subscriptions/$SUBSCRIPTION-ID/resourceGroups/$RESOURCEGROUPNAME/providers/Microsoft.Compute/diskEncryptionSets/$DISK-ENCRYPTION-SET-NAME. ただし、 を設定 Azure.Encryption.Typeする必要はありません。

CycleCloud 8.5 では、 機密ディスク暗号化もサポートされています。 このスキームは、ディスクのすべての重要なパーティションを保護し、保護されたディスク コンテンツに VM のみがアクセスできるようにします。 機密ディスク暗号化はディスク単位であり、 セキュリティ暗号化の種類 を に設定する DiskWithVMGuestState必要があります。

たとえば、OS ディスクで機密暗号化を使用するには、次のようにします。

[[node scheduler]]
  [[[volume boot]]]

  ConfidentialDiskEncryptionSetId = /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResouceGroup/providers/Microsoft.Compute/diskEncryptionSets/myCMKDiskEncryptionSet
  SecurityEncryptionType = DiskWithVMGuestState

詳細については、「 ボリューム構成リファレンス」を参照 してください。

構成オプションのマウント

オプション 定義
mountpoint 追加の構成が適用された後にデバイスがマウントされる場所。 マウントポイントが指定されていない場合、マウントの名前はマウントポイントの一部として使用されます。 たとえば、マウントの名前が "data" の場合、マウントポイントは既定で '/media/data' になります。
options デバイスのマウント時に使用する既定以外のオプション。
fs_type 書式設定やマウント時に使用するファイルシステム。 使用可能なオプションは、ext3、ext4、xfs です。
size デバイスのフォーマット時に作成するファイルシステムのサイズ。 このパラメーターを省略すると、デバイス上のすべての領域が使用されます。 サイズは、メガバイト (150 MB の場合は 150 M) G (ギガバイトの場合は 200G など)、パーセンテージ (使用可能なすべての領域を使用する場合は 100% など) を使用して指定できます。
disabled true の場合、マウントポイントは作成されません。 テスト用のマウントをすばやく切り替える場合や、自動エフェメラルマウントを無効にする場合に便利です。 既定値は false です。
raid_level 複数のデバイス/ボリュームが使用されている場合に使用する RAID 構成の種類。 既定値は 0 です。つまり RAID0 ですが、1 や 10 などの他の RAID レベルを使用できます。
raid_device_symlink RAID デバイスが作成されると、この属性を指定すると、RAID デバイスへのシンボリック リンクが作成されます。 既定では、この属性は設定されていないため、シンボリック リンクは作成されません。 これは、基になる RAID デバイスにアクセスする必要がある場合に設定する必要があります。
devices これは、マウントポイントを構成する必要があるデバイスの一覧です。 一般に、このパラメーターを指定する必要はありません (CycleCloud は [[[volume]] セクションに基づいてこれを設定するため)、必要に応じてデバイスを手動で指定できます。
vg_name デバイスは、論理ボリューム マネージャー (LVM) を使用して Linux 上で構成されます。 ボリューム グループ名は自動的に割り当てられますが、特定の名前が使用されている場合は、この属性を設定できます。 既定値は に cyclecloud-vgX設定されます。ここで、X は自動的に割り当てられた番号です。
lv_name デバイスは、論理ボリューム マネージャー (LVM) を使用して Linux 上で構成されます。 この値は自動的に割り当てられ、仕様は必要ありませんが、カスタム論理ボリューム名を使用する場合は、この属性を使用して指定できます。 既定値は lv0 です。
順序 順序を指定することで、マウントポイントをマウントする順序を制御できます。 すべてのマウントポイントの既定の順序値は 1000 です。ただし、"エフェメラル" は 0 です (エフェメラルは常に既定で最初にマウントされます)。 この動作は、必要に応じてケースバイケースでオーバーライドできます。
encryption.bits ファイルシステムを暗号化するときに使用するビット数。 標準値は、 128 AES 暗号化または 256 ビット AES 暗号化です。 暗号化が必要な場合は、この値が必要です。
encryption.key ファイルシステムを暗号化するときに使用する暗号化キー。 省略すると、ランダムな 2048 ビット キーが生成されます。 自動的に生成されるキーは、再起動の間に保持されないディスク (エフェメラル デバイスの暗号化など) を暗号化する場合に役立ちます。
encryption.name 暗号化キーを保存するときに使用される、暗号化されたファイルシステムの名前。 既定値は に cyclecloud_cryptX設定されます。ここで、X は自動的に生成される数値です。
encryption.key_path キーがディスクに書き込まれるファイルの場所。 既定値は に /root/cyclecloud_cryptX.key設定されます。ここで、X は自動的に生成される数値です。

マウント構成の既定値

マウントポイントのシステム既定値を設定するには、次のオプションを使用します。これは、特に指定しない限り使用されます。

オプション 定義
cyclecloud.mount_defaults.fs_type マウントに使用するファイルシステムの種類 (それ以外の場合)。 既定値: ext3/ext4 (プラットフォームによって異なります)。
cyclecloud.mount_defaults.size 特に指定しない場合は、使用する既定のファイルシステム サイズ。 既定値: 50 GB。
cyclecloud.mount_defaults.raid_level 複数のデバイスがマウントポイントに割り当てられている場合に使用する既定の raid レベル。 既定値: 0 (RAID0)。
cyclecloud.mount_defaults.encryption.bits 特に指定しない限り、既定の暗号化レベル。 既定値: undefined。