Подключение томов

Указание тома подключает устройства к экземпляру, но не подключает и не форматирует устройство. Если вы предпочитаете подключать и форматировать тома при запуске узла, задайте для необязательного атрибута 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

Приведенная выше конфигурация указывает, что вы настраиваете именованный cyclecloud.mountpointdata объект с использованием всех томов, включая Mount = data. Этот том будет отформатирован с файловой ext4 системой и будет отображаться в ./mount

.

При определении томов с помощью атрибута mountpoint имена устройств будут автоматически назначаться и использоваться для заданной точки подключения. Однако вы можете настроить точку подключения с собственными именами устройств. Пример:

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

В Azure устройства назначаются с помощью логических номеров единиц (LUN)

В большинстве случаев Azure CycleCloud автоматически назначает устройства. Указание устройств вручную является расширенным использованием и полезно в тех случаях, когда образ, который вы используете для узла, имеет тома, которые будут автоматически присоединены, так как их вложение было встроено в образ. Указание устройств вручную также может быть полезно, если порядок устройств имеет особое значение.

Примечание

Зарезервированное имя boot используется для изменения встроенного загрузочного тома.

Расширенные возможности использования

Предыдущий пример был довольно простым: подключение одного предварительно отформатированного snapshot к узлу. Однако может выполняться более сложное подключение, в том числе RAID нескольких устройств вместе, шифрование и форматирование новых файловых систем. В качестве примера ниже описано, как выполнить RAID-массив нескольких томов и зашифровать их перед подключением к узлу в качестве одного устройства:

[[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. В конфигурации для точки подключения указано, что эти три тома должны быть разделены RAID вместе с помощью raid_level = 0 raid0, отформатированы с помощью xfs файловой системы, а результирующее устройство должно быть подключено по адресу /mnt/giant. Устройство также должно иметь шифрование на уровне блоков с использованием 256-разрядной AES с ключом шифрования, как определено в шаблоне.

Шифрование дисков

CycleCloud поддерживает шифрование на стороне сервера (SSE) для томов дисков операционной системы и данных с помощью наборов шифрования дисков Azure. Azure по умолчанию использует ключи, управляемые платформой (PMK). Однако для использования ключей, управляемых клиентом (CMK), необходимо сначала настроить набор шифрования дисков Azure и Key Vault с ключом. Следуйте инструкциям здесь, чтобы настроить набор шифрования дисков.

Resource ID Запишите набор шифрования дисков при его создании. Его можно найти на портале Azure в разделе Свойства в колонке Наборы шифрования дисков .

Чтобы применить SSE с CMK к томам узла 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 также поддерживает шифрование конфиденциальных дисков. Эта схема защищает все критически важные разделы диска и делает содержимое защищенного диска доступным только для виртуальной машины. Шифрование конфиденциального диска выполняется для каждого диска и требует, чтобы для параметра Тип шифрования безопасности было задано значение DiskWithVMGuestState.

Например, чтобы использовать конфиденциальное шифрование на диске ОС, выполните следующие действия.

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

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

Дополнительные сведения см. в справочнике по конфигурации томов .

Параметры конфигурации подключения

Параметр Определение
точка подключения Место, к которому будут подключены устройства после применения дополнительной конфигурации. Если точка подключения не указана, имя подключения будет использоваться в качестве части точки подключения. Например, если подключение было названо "data", точка подключения по умолчанию будет "/media/data".
параметры Все параметры, отличные от параметров по умолчанию, используемые при подключении устройства.
fs_type Файловая система, используемая при форматировании и (или) подключении. Доступные варианты: ext3, ext4, xfs.
size Размер файловой системы, создаваемой при форматировании устройств. Пропуск этого параметра приведет к использованию всего пространства на устройстве. Размер можно указать с помощью M для мегабайт (например, 150M для 150 МБ), G для гигабайт (например, 200G для 20 ГБ) или процентов (например, 100 % для использования всего доступного пространства).
disabled Если значение равно true, точка подключения не будет создана. Полезно для быстрого переключения монтирования для тестирования и отключения автоматического эфемерного подключения. По умолчанию: false.
raid_level Тип конфигурации RAID, используемой при использовании нескольких устройств или томов. По умолчанию используется значение 0, то есть RAID0, но можно использовать и другие уровни raid, например 1 или 10.
raid_device_symlink При создании устройства raid при указании этого атрибута будет создана символьная ссылка на устройство raid. По умолчанию этот атрибут не задан, поэтому символьная ссылка не создается. Этот параметр следует устанавливать в тех случаях, когда требуется доступ к базовому устройству raid.
устройства Это список устройств, которые должны составлять точку подключения. Как правило, этот параметр не нужно указывать (так как CycleCloud установит его на основе разделов [[[volume]]]]), но при необходимости вы можете вручную указать устройства.
vg_name Устройства настраиваются в Linux с помощью диспетчера логических томов (LVM). Имя группы томов будет назначено автоматически, но в случаях, когда используется определенное имя, этот атрибут можно задать. По умолчанию задано значение cyclecloud-vgX, где X — это автоматически назначаемое число.
lv_name Устройства настраиваются в Linux с помощью диспетчера логических томов (LVM). Это значение присваивается автоматически и не требует спецификации, но если вы хотите использовать пользовательское имя логического тома, его можно указать с помощью этого атрибута. По умолчанию — lv0.
порядок Указав порядок, можно управлять порядком монтирования точек подключения. Значение порядка по умолчанию для всех точек подключения равно 1000, за исключением "эфемерного", который равен 0 (эфемерный всегда подключается первым по умолчанию). Это поведение можно переопределить в индивидуальном порядке при необходимости.
encryption.bits Количество битов, используемых при шифровании файловой системы. Стандартные значения: 128 или 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 ГБ.
cyclecloud.mount_defaults.raid_level Уровень raid по умолчанию, используемый, если точке подключения назначено несколько устройств. Значение по умолчанию: 0 (RAID0).
cyclecloud.mount_defaults.encryption.bits Уровень шифрования по умолчанию, если не указано иное. Значение по умолчанию: undefined.