Partilhar via


Volumes de montagem

Ao especificar um volume, liga o(s) dispositivo(s) à sua instância, mas não monta nem formata o(s) dispositivo(s). Se preferir ter os volumes montados e formatados quando o nó for iniciado, defina o atributo opcional Mount com o nome da configuração do ponto de montagem que deseja usar com esse volume.

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

O ponto de montagem denominado data é então definido na seção de configuração no nó.

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

A configuração acima especifica que está a configurar um cyclecloud.mountpoint chamado data utilizando todos os volumes que incluem Mount = data. Este volume seria formatado com o sistema de ficheiros ext4 e apareceria em /mount.

Dispositivos

Ao definir volumes com um atributo mountpoint, os nomes dos dispositivos serão automaticamente atribuídos e usados para um determinado ponto de montagem. No entanto, pode personalizar um ponto de montagem com os seus próprios nomes de dispositivos. Por exemplo:

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

No Azure, os dispositivos são atribuídos usando Logical Unit Numbers (LUN)

Na maioria dos casos, o Azure CycleCloud irá atribuir automaticamente dispositivos para si. Especificar dispositivos manualmente é um uso avançado e útil em casos onde a imagem que está a utilizar para o seu node tem volumes que serão automaticamente anexados porque o anexo deles foi incorporado na imagem. Especificar os dispositivos manualmente também pode ser útil quando a ordem dos dispositivos tem um significado especial.

Observação

O nome reservado boot é utilizado para modificar o volume de arranque incorporado.

Utilização Avançada

O exemplo anterior foi bastante simples: montar uma única snapshot pré-formatada num nó. No entanto, pode ser realizado um montagem mais avançada, incluindo a combinação de múltiplos dispositivos em RAID, a encriptação e a formatação de novos sistemas de ficheiros. Por exemplo, o seguinte descreverá como reunir vários volumes em RAID e criptografá-los antes de montá-los como um único dispositivo em um nó.

[[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"

O exemplo acima mostra que existem três volumes que devem ser anexados ao nó chamado scheduler, e que o seu ponto de montagem é chamado giant. A configuração para o ponto de montagem indica que estes três volumes devem ser combinados em RAID utilizando raid_level = 0 para RAID0, formatados com o sistema de arquivos xfs, e o dispositivo resultante deve ser montado em /mnt/giant. O dispositivo também deve ter criptografia a nível de bloco utilizando AES de 256 bits com uma chave de encriptação conforme definido no modelo.

Encriptação de disco

CycleCloud suporta a encriptação do lado do servidor (SSE) para volumes de disco do sistema operativo (OS) e de dados usando conjuntos de encriptação de disco Azure . O Azure usa Chaves Gerenciadas de Plataforma (PMK) por padrão. Para utilizar Chaves Geridas pelo Cliente (CMK), deve primeiro configurar um Conjunto de Encriptação de Discos Azure e um Cofre de Chaves com a sua chave. Siga a documentação aqui para configurar seu conjunto de criptografia de disco.

Registe o Resource ID do Conjunto de Criptografia de Disco quando o criar. Pode encontrar isto no Portal do Azure em Propriedades na lâmina de Conjuntos de Encriptação de Discos.

Para aplicar SSE com CMK aos volumes do nó CycleCloud, adicione o seguinte à sua [[[volume]]] definição:

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

Por exemplo:

[[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

Observação

A sintaxe simplificada acima foi introduzida no CycleCloud 8.5. Para versões anteriores, você deve usar Azure.Encryption.DiskEncryptionSetId em vez disso:

Azure.Encryption.DiskEncryptionSetId = /subscriptions/$SUBSCRIPTION-ID/resourceGroups/$RESOURCEGROUPNAME/providers/Microsoft.Compute/diskEncryptionSets/$DISK-ENCRYPTION-SET-NAME. No entanto, não é necessário definir Azure.Encryption.Type.

CycleCloud 8.5 também suporta Encriptação de disco confidencial. Esse esquema protege todas as partições críticas do disco e torna o conteúdo do disco protegido acessível apenas à VM. A encriptação confidencial de disco é por disco e requer que o tipo de encriptação de segurança seja definido para .

Por exemplo, para usar a encriptação confidencial no disco do sistema operativo:

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

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

Consulte a Referência de Configuração de Volume para obter detalhes.

Opções de Configuração de Montagem

Opção Definição
ponto de montagem O local onde o(s) dispositivo(s) será(ão) montado(s) após a aplicação de qualquer configuração adicional. Se um ponto de montagem não for especificado, o nome da montagem será usado como parte do ponto de montagem. Por exemplo, se a sua montagem fosse chamada ‘data’, o ponto de montagem padrão seria ‘/media/data’.
Opções Quaisquer opções não padrão para usar ao montar o dispositivo.
fs_type O sistema de ficheiros a utilizar ao formatar e/ou montar. As opções disponíveis são: ext3, ext4, xfs.
tamanho O tamanho do sistema de ficheiros a criar ao formatar o(s) dispositivo(s). Omissão deste parâmetro fará uso de todo o espaço no dispositivo. O tamanho pode ser especificado usando "M" para megabytes (ex.: 150M para 150MB), "G" para gigabytes (ex.: 200G para 200GB) ou percentagens (ex.: 100% para utilizar todo o espaço disponível).
deficientes Se verdadeiro, o ponto de montagem não será criado. Útil para alternar rapidamente entre montagens para testes e desativar a montagem automática efémera. Predefinição: false.
nível_de_raid O tipo de configuração RAID a ser usada quando vários dispositivos/volumes estão sendo usados. O valor predefinido é 0, o que significa RAID0, mas outros níveis de RAID podem ser usados, como 1 ou 10.
raid_dispositivo_link_simbólico Quando um dispositivo raid é criado, especificar esse atributo criará um link simbólico para o dispositivo raid. Por padrão, esse atributo não está definido e, portanto, nenhum link simbólico é criado. Isso deve ser definido nos casos em que você precisa acessar o dispositivo raid subjacente.
dispositivos Esta é uma lista de dispositivos que devem compor o ponto de montagem. Em geral, este parâmetro não precisa ser especificado (uma vez que o CycleCloud irá configurá-lo com base nas secções de [[[volume]]]), mas pode especificar manualmente os dispositivos, caso assim o deseje.
vg_name Os dispositivos são configurados no Linux usando o LVM (Logical Volume Manager). O nome do grupo de volumes será atribuído automaticamente, mas nos casos em que um nome específico é usado, esse atributo pode ser definido. O padrão é definido como cyclecloud-vgX, onde X é um número atribuído automaticamente.
lv_name Os dispositivos são configurados no Linux usando o LVM (Logical Volume Manager). Esse valor é atribuído automaticamente e não precisa de especificação, mas se você quiser usar um nome de volume lógico personalizado, ele pode ser especificado usando esse atributo. O padrão é lv0.
Ordem / Encomenda Ao especificar uma ordem, você pode controlar a ordem na qual os pontos de montagem são montados. O valor de ordem predefinido para todos os pontos de montagem é 1000, exceto para 'ephemeral', que é 0 (ephemeral é sempre montado primeiro por predefinição). Pode substituir este comportamento caso a caso, conforme necessário.
criptografia.bits O número de bits a utilizar ao encriptar o sistema de ficheiros. Os valores padrão são criptografia AES de 128 ou 256 bits. Esse valor é necessário se a criptografia for desejada.
encryption.key A chave de encriptação a utilizar ao encriptar o sistema de ficheiros. Se omitida, uma chave aleatória de 2048 bits será gerada. A chave gerada automaticamente é útil para quando você está criptografando discos que não persistem entre reinicializações (por exemplo, criptografando dispositivos efêmeros).
encriptação.nome O nome do sistema de arquivos criptografado, usado ao salvar chaves de criptografia. Por padrão, é cyclecloud_cryptX, em que X é um número automaticamente gerado.
encryption.caminho_chave O local do arquivo em que a chave será gravada no disco. Define-se por padrão como /root/cyclecloud_cryptX.key, onde X é um número gerado automaticamente.

Padrões de Configuração de Montagem

Use estas opções para definir predefinições do sistema para os pontos de montagem, que serão usadas, a menos que especificado de outra forma.

Opções Definição
cyclecloud.mount_defaults.fs_type O tipo de sistema de ficheiros a ser utilizado para as montagens, caso não seja especificado de outra forma. Padrão: ext3/ext4 (dependendo da plataforma).
cyclecloud.mount_defaults.size O tamanho do sistema de ficheiros predefinido a usar, caso não seja especificado de outra forma. Padrão: 50GB.
cyclecloud.definições_padrão_montagem.nível_raid O nível de raid padrão a ser usado se vários dispositivos estiverem atribuídos ao ponto de montagem. Padrão: 0 (RAID0).
cyclecloud.mount_defaults.encryption.bits O nível de encriptação padrão, a menos que especificado de outra forma. Padrão: indefinido.