ボリュームを指定する場合は、デバイスをインスタンスにアタッチしますが、デバイスのマウントやフォーマットは行いません。 ノードの起動時にボリュームをマウントしてフォーマットするには、オプションの属性 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を持つすべてのボリュームを使用するdataという名前のcyclecloud.mountpointを設定します。 このボリュームは ext4 ファイルシステムでフォーマットすると、 /mountに表示されます。
デバイス
mountpoint属性を使用してボリュームを定義すると、マウントポイントごとにデバイス名が自動的に割り当てられます。 ただし、独自のデバイス名を使用して、マウントポイントをカスタマイズすることが可能です。 例えば次が挙げられます。
[[node scheduler]]
[[[configuration cyclecloud.mounts.data]]]
mountpoint = /data
Azure.LUN=0
Azure では、 論理ユニット番号 (LUN) を使用してデバイスを割り当てます。
ほとんどの場合、Azure CycleCloud によってデバイスが自動的に割り当てられます。 デバイスを手動で指定することは高度な使用法です。 これは、ノードに使用するイメージに、イメージが自動的にアタッチするボリュームが含まれている場合に役立ちます。 デバイスを手動で指定することは、デバイスの順序が重要な場合にも役立ちます。
注
boot予約名を使用して、組み込みのブート ボリュームを変更します。
詳細な使用方法
前の例は非常に単純な例です。単一の事前にフォーマットされたスナップショットをノードにマウントします。 ただし、複数のデバイスを一緒に 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 という名前のノードに 3 つのボリュームをアタッチし、そのマウントポイントの名前が giant であることを示します。 マウントポイントの構成では、RAID0 の raid_level = 0 を使用してこれら 3 つのボリュームを一緒に RAID し、 xfs ファイルシステムを使用してフォーマットし、結果のデバイスを /mnt/giant にマウントします。 また、256 ビット AES でブロック レベルの暗号化を使用し、テンプレートで暗号化キーを定義します。
ディスクの暗号化
CycleCloud では、 Azure Disk Encryption Sets を使用した OS およびデータ ディスク ボリュームのサーバー側暗号化 (SSE) がサポートされています。 Azure の既定では、Platform マネージド キー (PMK) が使用されます。 カスタマー マネージド キー (CMK) を使用するには、キーを使用して Azure Disk Encryption Set と Key Vault を設定します。 ディスク暗号化セットの設定については、ドキュメントを参照してください。
作成時にディスク暗号化セットの Resource ID を記録します。 この ID は、Azure portal の [ディスク暗号化セット] ブレードの [プロパティ] にあります。
CMK を使用して SSE を CycleCloud ノードのボリュームに適用するには、 [[[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 | デバイスのフォーマット時に作成するファイルシステムのサイズ。 このパラメーターを省略すると、コマンドはデバイス上のすべての領域を使用します。 MB に M を使用してサイズを指定します (たとえば、150 MB の場合は 150M)、GB の場合は G (20 GB の場合は 200G など)、パーセンテージ (使用可能なすべての領域を使用するには 100% など) を使用します。 |
| 無効 | true の場合、マウント ポイントは作成されません。 この設定は、テスト用のマウントをすばやく切り替え、一時的な自動マウントを無効にする場合に便利です。 既定値: false。 |
| レイドレベル | 複数のデバイスまたはボリュームを使用するときに使用する RAID 構成の種類。 既定値は 0 で、RAID0 を意味します。 1 や 10 などの他の RAID レベルを使用できます。 |
| raid_device_symlink | RAID デバイスを作成するときは、この属性を指定して RAID デバイスへのシンボリック リンクを作成します。 既定では、この属性は設定されず、シンボリック リンクは作成されません。 基になる RAID デバイスにアクセスする必要がある場合は、この属性を設定します。 |
| devices | マウント ポイントを構成するデバイスの一覧。 一般に、CycleCloud では [[volume]] セクションに基づいて設定されるため、このパラメーターを指定する必要はありません。 ただし、必要に応じてデバイスを手動で指定できます。 |
| vg_name | Linux では、論理ボリューム マネージャー (LVM) を使用してデバイスを構成します。 ボリューム グループ名は自動的に割り当てられますが、特定の名前を使用する場合は、この属性を設定できます。 既定値は cyclecloud-vgX で、X は自動的に割り当てられた番号です。 |
| lv_name | デバイスは、論理ボリューム マネージャー (LVM) を使用して Linux で構成されます。 この値は自動的に割り当てられるため、指定する必要はありません。 カスタム論理ボリューム名を使用する場合は、この属性で指定します。 既定値は lv0 です。 |
| 順序 | 順序を指定することで、マウントポイントをマウントする順序を制御できます。 すべてのマウントポイントの既定の順序値は 1000 です。ただし、 ephemeral 0 を除く (ephemeral は常に既定で最初にマウントされます)。 必要に応じて、この動作をオーバーライドできます。 |
| encryption.bits | ファイルシステムを暗号化するときに使用するビット数。 標準値は、128 または 256 ビットの AES 暗号化です。 暗号化する場合は、この値を指定する必要があります。 |
| encryption.key | ファイルシステムを暗号化するときに使用する暗号化キー。 このキーを省略すると、ランダムな 2,048 ビット キーが生成されます。 自動的に生成されるキーは、再起動の間に保持されないディスクを暗号化する場合 (エフェメラル デバイスを暗号化する場合など) に便利です。 |
| 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 | 指定しない場合の既定の暗号化レベル。 既定値: 未定義。 |