Criar e configurar um disco suplementar numa instância
Objetivo
Pode criar discos suplementares para as suas instâncias Public Cloud.
Tal pode ser útil nos seguintes casos:
- Se deseja aumentar a sua capacidade de armazenamento sem ter de alterar o modelo de instância.
- Se deseja dispor de um espaço de armazenamento de alta disponibilidade e de alta performance.
- Se pretender mover o seu armazenamento e os seus dados para outra instância.
- Se pretender preparar o ambiente para utilizar o Terraform, deverá preparar o ambiente.
Saiba como criar um disco adicional e configurá-lo na instância.
Requisitos
- Dispor de uma instância Public Cloud na sua conta OVHcloud.
- Ter acesso de administrador (sudo) à sua instância através de SSH.
- Preparar o ambiente se deseja utilizar Terraform.
Acesso à Área de Cliente OVHcloud
Warning
Esta funcionalidade não está atualmente disponível para as instâncias Metal.
Instruções
Os diferentes tipos de volumes
A OVHcloud propõe três tipos de volumes Block Storage, cada um adaptado a necessidades específicas em matéria de desempenho, de capacidade e de custos. Estas soluções permitem-lhe associar volumes de armazenamento persistentes às suas instâncias, garantindo um alto nível de fiabilidade e disponibilidade. Se a funcionalidade estiver disponível, a encriptação pode ser ativada na criação de um volume para todos os tipos de volumes, com exceção dos volumes Classic Multi-Attach nas regiões 3AZ.
Classic - 500 IOPS garantidos
O volume Classic é uma solução de armazenamento fiável e económica, ideal para cargas de trabalho exigentes em termos de desempenho. Oferece 500 IOPS garantidos, o que o torna adaptado às seguintes utilizações:
- Alojamento de aplicações web clássicas
- Armazenamento de bases de dados de pequena a média dimensão
- Backup e arquivamento de dados
Nas regiões 3AZ, os volumes Classic são serviços regionais que utilizam um Erasure Coding distribuído entre várias zonas de disponibilidade. Isto garante a disponibilidade dos dados sem impacto nem interrupção em caso de falha de uma zona, desde que sejam respeitadas as exigências da arquitetura resiliente com apego múltiplo. Para mais informações, consulte o guia "Utilização correta e limitações do armazenamento Classic Multi-Attach nas regiões 3AZ".
High-Speed - Até 3000 IOPS
O volume High-Speed foi concebido para aplicações que requerem um acesso mais rápido aos dados. Com um rendimento de até 3000 IOPS, é ideal para os seguintes casos de utilização:
- Bases de dados transacionais (MySQL, PostgreSQL, etc.)
- Ambientes de virtualização e de containers
- Aplicações que requerem uma latência reduzida e uma velocidade elevada
High-Speed Gen2 - 30 IOPS/GB e até 20 000 IOPS
A geração 2 dos volumes High-Speed é otimizada para as cargas de trabalho mais exigentes. Com um desempenho de 30 IOPS/GB, até 20 000 IOPS, este tipo de volume é recomendado para as seguintes utilizações:
- Big Data e análises em tempo real
- Inteligência artificial e Machine Learning
- Tratamento de grandes bases de dados e armazenamento de alta performance
Info
Cada tipo de volume está igualmente disponível em versão encriptada (LUKS). Estes volumes asseguram a confidencialidade dos dados sem afetar o desempenho. Estão disponíveis a partir da Área de Cliente OVHcloud, bem como com as ferramentas apresentadas na secção seguinte, especificando o tipo <volume_type>-luks.
Associar um novo volume
Abra o Block Storage no menu à esquerda, em Storage & backup.
Nesta parte, clique no botão Criar um volume.

Siga os passos de configuração para selecionar as opções de localização, tipo de disco, encriptação e capacidade do disco. Introduza um nome para o volume e valide clicando em Criar volume.
Warning
Nota: O seu volume deve ser criado na mesma região que a instância à qual deseja associá-lo. Se o criar noutra região, poderá eliminá-lo e recriá-lo na região correta.

O novo disco aparecerá então na Área de Cliente.

À direita do volume, clique no botão ... e selecione Associar à instância.

Na janela que aparece, escolha uma instância da lista e clique em Confirmar para associar o disco.

O processo de associação do disco à sua instância vai então começar. A operação pode levar alguns minutos.
Warning
Certifique-se de que não sai da página atual da sua Área de Cliente OVHcloud enquanto o disco estiver a ser ligado. Isso poderia interromper o processo.
Warning
Tenha em conta que os tipos de volume "high-speed-gen2" ou "luks" podem não estar disponíveis em todas as regiões.
Tipos de volumes:
- Classic
- High-speed
- High-speed-gen2
- Classic-luks
- High-speed-luks
- High-speed-gen2-luks
Os tipos que terminam com -us são encriptados (LUKS).
Warning
A criação de um volume -luks gera automaticamente uma chave dedicada.
Não altere nem elimine esta chave se esta estiver associada a um volume Block Storage. Isto tornaria os dados deste volume e todas as suas snapshots definitivamente irrecuperáveis.
Para criar um volume Block Storage simples, precisa de 3 elementos:
- O nome do volume
- A região
- O tamanho do volume em GB
No nosso exemplo, vamos criar um Block Storage na região GRA11 com um tamanho de 10 GB. Adicione as seguintes linhas a um ficheiro chamado simples_blockstorage.tf:
# Creation of a block storage volume
resource "openstack_blockstorage_volume_v3" "terraform_blockstorage" {
name = "terraform_blockstorage" # Name of the block storage volume
size = 10 # Volume size
region = "GRA11" # Region where the volume must be created
volume_type = "volume_type" # classic, high-speed, high-speed-gen2 or equivalent `-luks`
}
E iremos associá-lo à instância de destino.
Warning
A instância e o volume devem encontrar-se na mesma região.
Adicione as seguintes linhas abaixo das anteriores:
# Attach the volume to the instance
resource "openstack_compute_volume_attach_v2" "volume_attach" {
instance_id = "<your_instance_id>"
volume_id = openstack_blockstorage_volume_v3.terraform_volume.id
}
Pode criar o seu volume de tipo Block Storage e associá-lo à instância desejada introduzindo o seguinte comando:
A saída deve ser como esta:
$ terraform apply
Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with the following symbols:
+ create
Terraform will perform the following actions:
# openstack_blockstorage_volume_v3.terraform_blockstorage will be created
+ resource "openstack_blockstorage_volume_v3" "terraform_blockstorage" {
+ attachment = (known after apply)
+ availability_zone = (known after apply)
+ id = (known after apply)
+ metadata = (known after apply)
+ name = "terraform_blockstorage"
+ region = "GRA11"
+ size = 10
+ volume_type = "high-speed-gen2"
}
# openstack_compute_volume_attach_v2.volume_attach will be created
+ resource "openstack_compute_volume_attach_v2" "volume_attach" {
+ device = (known after apply)
+ id = (known after apply)
+ instance_id = "11cc1279-xxxx-xxxx-xxxx-3ace4c954780"
+ region = (known after apply)
+ volume_id = (known after apply)
}
Plan: 2 to add, 0 to change, 0 to destroy.
Do you want to perform these actions in workspace "test_terraform"?
Terraform will perform the actions described above.
Only 'yes' will be accepted to approve.
Enter a value: yes
openstack_blockstorage_volume_v3.terraform_blockstorage: Creating...
openstack_blockstorage_volume_v3.terraform_blockstorage: Still creating... [10s elapsed]
openstack_blockstorage_volume_v3.terraform_blockstorage: Creation complete after 12s [id=daf3a86e-xxxx-xxxx-xxxx-ac7b6ffbb806]
openstack_compute_volume_attach_v2.volume_attach: Creating...
openstack_compute_volume_attach_v2.volume_attach: Still creating... [10s elapsed]
openstack_compute_volume_attach_v2.volume_attach: Creation complete after 14s [id=11cc1279-xxxx-xxxx-xxxx-3ace4c954780/daf3a86e-xxxx-xxxx-xxxx-ac7b6ffbb806]
Apply complete! Resources: 2 added, 0 changed, 0 destroyed.
Aceda à secção pendente Volumes, clique em Volumes e depois em Create Volume.

Introduza o campo Volume Name e selecione o tipo de volume que deseja. De seguida, clique em Create Volume.
Warning
Tenha em conta que se o tipo de volume "high-speed-gen2" ou "luks" não aparecer na lista, tal significa que não está disponível nesta região.

Para associar este volume a uma instância, na linha do seu volume, clique em a seta que se encontra no fim da linha ao lado de Edit Volume. Clique em Manage Attachments

Selecione a instância à qual deseja associar o seu volume e, a seguir, clique em Attach Volume.

Warning
Tenha em conta que se o tipo de volume "high-speed-gen2" ou "luks" não aparecer na lista, tal significa que não está disponível nesta região.
Tipos de volumes:
- Classic
- High-speed
- High-speed-gen2
- Classic-luks
- High-speed-luks
- High-speed-gen2-luks
Os tipos que terminam com -us são encriptados (LUKS).
Warning
A criação de um volume -luks gera automaticamente uma chave dedicada.
Não altere nem elimine esta chave se esta estiver associada a um volume Block Storage. Isto tornaria os dados deste volume e todas as suas snapshots definitivamente irrecuperáveis.
Listar os tipos de volumes disponíveis na região:
openstack volume type list
Crie um volume especificando, no mínimo, o seu tamanho (em GB), bem como um dos tipos listados anteriormente. Também pode indicar um nome para o seu volume no final da encomenda.
openstack volume create --size 1 --type high-speed-gen2 volumeName # classic, high-speed, high-speed-gen2 or equivalent `-luks`
Para associar um volume a uma instância disponível na região, utilize o seguinte comando:
openstack server add volume <server-id|server-name> <volume-id|volume-name>
+-----------+-------------------------------------+
| Field | Value |
+-----------+-------------------------------------+
| ID | 7d3d670f- ****-****-****-60dd1e6**** |
| Server ID | 74317f97-****-****-80cf2d4**** |
| Volume ID | 7d3d670f-****-****-****-60dd1e6**** |
| Device | /dev/sdb |
| Tag | None |
+-----------+-------------------------------------+
Configuração do novo disco
Os exemplos abaixo pressupõem que está ligado enquanto utilizador com autorizações suficientes.
Em Linux
Abra uma ligação SSH à sua instância e utilize o comando abaixo para listar os discos ligados.
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vda 254:0 0 10G 0 disk
└─vda1 254:1 0 10G 0 part /
vdb 254:16 0 10G 0 disk
Info
Neste exemplo, vda refere-se ao disco predefinido da instância. O disco adicional será então denominado vdb.
Crie uma partição no disco suplementar através dos comandos abaixo.
Se o disco adicional tiver menos de 2 TB:
Welcome to fdisk (util-linux 2.25.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Device does not contain a recognized partition table.
Created a new DOS disklabel with disk identifier 0x95c4adcc.
Command (m for help): n
Partition type
p primary (0 primary, 0 extended, 4 free)
e extended (container for logical partitions)
Select (default p):
Using default response p.
Partition number (1-4, default 1):
First sector (2048-20971519, default 2048):
Last sector, +sectors or +size{K,M,G,T,P} (2048-20971519, default 20971519):
Created a new partition 1 of type 'Linux' and of size 10 GiB.
Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.
Se o disco adicional for maior do que 2 TB:
GNU Parted 3.5
Using /dev/vdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) help
align-check TYPE N check partition N for TYPE(min|opt) alignment
help [COMMAND] print general help, or help on COMMAND
mklabel,mktable LABEL-TYPE create a new disklabel (partition table)
mkpart PART-TYPE [FS-TYPE] START END make a partition
name NUMBER NAME name partition NUMBER as NAME
print [devices|free|list,all] display the partition table, or available devices, or free space, or all found partitions
quit exit program
rescue START END rescue a lost partition near START and END
resizepart NUMBER END resize partition NUMBER
rm NUMBER delete partition NUMBER
select DEVICE choose the device to edit
disk_set FLAG STATE change the FLAG on selected device
disk_toggle [FLAG] toggle the state of FLAG on selected device
set NUMBER FLAG STATE change the FLAG on partition NUMBER
toggle [NUMBER [FLAG]] toggle the state of FLAG on partition NUMBER
unit UNIT set the default unit to UNIT
version display the version number and copyright information of GNU Parted
(parted) mklabel gpt
(parted) mkpart primary 0 3750G
Warning: The resulting partition is not properly aligned for best performance: 34s % 2048s != 0s
Ignore/Cancel? I
(parted) quit
De seguida, configure a nova partição vdb1 utilizando o seguinte comando:
mke2fs 1.42.12 (29-Aug-2014)
Creating filesystem with 2621184 4k blocks and 655360 inodes
Filesystem UUID: 781be788-c4be-462b-b946-88429a43c0cf
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632
Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
Monte a partição com os seguintes comandos:
sudo mount /dev/vdb1 /mnt/disk/
Por fim, verifique o ponto de montagem com este comando:
Filesystem Size Used Avail Use% Mounted on
/dev/vda1 9.8G 840M 8.6G 9% /
udev 10M 0 10M 0% /dev
tmpfs 393M 5.2M 388M 2% /run
tmpfs 982M 0 982M 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 982M 0 982M 0% /sys/fs/cgroup
/dev/vdb1 9.8G 23M 9.2G 1% /mnt/disk
Info
A montagem não é persistente pois o disco será desligado aquando do reboot da instância. Para automatizar a montagem, é necessário editar o ficheiro fstab.
Primeiro, obtenha a UUID (bloco ID) do novo volume:
/dev/vda1: UUID="51ba13e7-398b-45f3-b5f3-fdfbe556f62c" TYPE="ext4" PARTUUID="000132ff-01"
/dev/vdb1: UUID="2e4a9012-bf0e-41ef-bf9a-fbf350803ac5" TYPE="ext4" PARTUUID="95c4adcc-01"
Abra /etc/fstab com um editor de texto:
Adicione a linha abaixo ao ficheiro e substitua a UUID pela sua:
UUID=2e4a9012-bf0e-41ef-bf9a-fbf350803ac5 /mnt/disk ext4 nofail 0 0
Registe e saia do editor. O disco deve ser automaticamente montado em cada reinício.
Em Windows
Crie uma ligação RDP (Remote Desktop) com a sua instância Windows.
Uma vez ligado, clique com o botão Iniciar e abra a Gestão de Discos.
O novo disco será apresentado como um volume desconhecido com espaço não atribuído.
Se o disco for indicado como estando fora de linha, deve ser iniciado. Para isso, pode utilizar a interface de utilizador Windows ou o utilitário DISKPART. Caso contrário, faça a formatação do disco na Gestão dos discos.
Iniciar o disco na Gestão dos discos
Faça um clique direito no disco e selecione Online.
Se o disco for indicado como estando offline, isso deve-se provavelmente a uma política existente na instância. Para resolver este problema, clique com o botão direito do rato e selecione a opção online.
Faça novamente um clique direito e selecione Iniciar o disco.
Em seguida, seleccione MBR se o disco adicional tiver menos de 2 TB, ou GPT se tiver mais de 2 TB e, em seguida, clique em OK.
Clique com o botão Iniciar e abra a Executar.
Introduza cmd e clique em OK para abrir a aplicação de linha de comando.
No menu de encomenda, abra o DISKPART:
Utilize a seguinte série de comandos DISKPart para colocar o disco online:
DISKPART> san
SAN Policy : Offline Shared
DISKPART> san policy = OnlineAll
DiskPart successfully changed the SAN policy for the current operating system .
- Implementation of the strategy on the extra disk:
[Code] DISKPART> list disk
Disk ### Status Size Free Dyn Gpt
-------- ------------- ------- ------- --- ---
Disk 0 Online 200 GB 0 B
* Disk 1 Offline 10 GB 1024 KB
DISKPART> select disk 1
Disk 1 is now the selected disk.
DISKPART> attributes disk clear readonly
Disk attributes cleared successfully.
DISKPART> attributes disk
Current Read-only State : No
Read-only : No
Boot Disk : No
Pagefile Disk : No
Hibernation File Disk : No
Crashdump Disk : No
Clustered Disk : No
DISKPART> online disk
DiskPart successfully onlined the selected disk.
Na ferramenta Gestão dos discos, clique com o botão direito do rato no novo disco e selecione Novo volume simples....
No assistente, clique em Seguinte para especificar o tamanho do volume. Por predefinição, deve estar no máximo. Clique em Seguinte para continuar.
Deixe a nova letra de leitor predefinida ou selecione outra e clique em Seguinte.
Dê um nome ao volume (facultativo) e confirme as opções de formatação ao clicar em Seguinte.
Na última janela, clique em Terminar para formatar o disco.
O disco estará disponível como leitor no explorador de ficheiros.
Desassociar um volume
Se deseja desassociar um volume da sua instância, a melhor prática é desmontar o volume do sistema operativo antes de o desassociar da instância.
Warning
Pode surgir uma mensagem de erro se os softwares ou processos estiverem a ser executados no disco suplementar. Neste caso, recomenda-se que interrompa todos os processos antes de continuar.
Eis como desmontar o volume do sistema operativo antes de o desmontar da instância:
Abra uma ligação SSH à sua instância e utilize o comando abaixo para listar os discos ligados.
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vda 254:0 0 10G 0 disk
└─vda1 254:1 0 10G 0 part /
vdb 8:0 0 10G 0 disk
└─vdb1 8:1 0 10G 0 part /mnt/disk
Desmonte a partição utilizando o seguinte comando:
Elimine o ID do periférico do fstab para terminar o processo de desmontagem. Se não o fizer, a partição será aumentada após uma reinicialização.
Registe e saia do editor.
Crie uma ligação RDP (Remote Desktop) com a sua instância Windows.
Uma vez ligado, clique com o botão direito do rato no menu Iniciar e abra a Gestão de Discos.

Clique com o botão direito do rato sobre o volume que pretende desmontar e selecione Alterar letra e os caminho de unidade....

Clique em Remover para retirar o disco.

A seguir, clique em Sim para confirmar a eliminação da letra do leitor de disco.

Quando tiver terminado, pode fechar a janela de gestão do disco.
Por fim, vamos desassociar o volume da instância:
Aceda à secção Public Cloud da Área de Cliente OVHcloud e clique em Block Storage no menu à esquerda em Backup Storage.
Clique no botão ... junto do volume correspondente e selecione Desassociar a instância.

Clique em Confirmar na nova janela para lançar o processo.

Comece por eliminar estas linhas anteriormente criadas no seu ficheiro Terraform:
# Associar o volume à instância
resource "openstack_compute_volume_attach_v2" "volume_attach" {
instance_id = "<votre_instance_id>"
volume_id = openstack_blockstorage_volume_v3.terraform_volume.id
}
Queira introduzir o seguinte comando para verificar se o recurso correto vai ser eliminado:
A saída deve ser como esta:
$ terraform plan
openstack_compute_volume_attach_v2.va_1: Refreshing state... [id=11cc1279-xxxx-xxxx-xxxx-3ace4c954780/daf3a86e-xxxx-xxxx-xxxx-ac7b6ffbb806]
openstack_blockstorage_volume_v3.terraform_volume: Refreshing state... [id=daf3a86e-xxxx-xxxx-xxxx-ac7b6ffbb806]
Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with the following symbols:
- destroy
Terraform will perform the following actions:
# openstack_compute_volume_attach_v2.va_1 will be destroyed
# (because openstack_compute_volume_attach_v2.va_1 is not in configuration)
- resource "openstack_compute_volume_attach_v2" "va_1" {
- device = "/dev/sdb" -> null
- id = "11cc1279-xxxx-xxxx-xxxx-3ace4c954780/daf3a86e-xxxx-xxxx-xxxx-ac7b6ffbb806" -> null
- instance_id = "11cc1279-xxxx-xxxx-xxxx-3ace4c954780" -> null
- region = "GRA11" -> null
- volume_id = "daf3a86e-xxxx-xxxx-xxxx-ac7b6ffbb806" -> null
}
Plan: 0 to add, 0 to change, 1 to destroy.
Aplicar as alterações introduzindo este comando:
$ terraform apply
openstack_compute_volume_attach_v2.va_1: Refreshing state... [id=11cc1279-xxxx-xxxx-xxxx-3ace4c954780/daf3a86e-xxxx-xxxx-xxxx-ac7b6ffbb806]
openstack_blockstorage_volume_v3.terraform_volume: Refreshing state... [id=daf3a86e-xxxx-xxxx-xxxx-ac7b6ffbb806]
Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with the following symbols:
- destroy
Terraform will perform the following actions:
# openstack_compute_volume_attach_v2.va_1 will be destroyed
# (because openstack_compute_volume_attach_v2.va_1 is not in configuration)
- resource "openstack_compute_volume_attach_v2" "va_1" {
- device = "/dev/sdb" -> null
- id = "11cc1279-xxxx-xxxx-xxxx-3ace4c954780/daf3a86e-xxxx-xxxx-xxxx-ac7b6ffbb806" -> null
- instance_id = "11cc1279-xxxx-xxxx-xxxx-3ace4c954780" -> null
- region = "GRA11" -> null
- volume_id = "daf3a86e-xxxx-xxxx-xxxx-ac7b6ffbb806" -> null
}
Plan: 0 to add, 0 to change, 1 to destroy.
Do you want to perform these actions in workspace "test_terraform"?
Terraform will perform the actions described above.
Only 'yes' will be accepted to approve.
Enter a value: yes
openstack_compute_volume_attach_v2.va_1: Destroying... [id=11cc1279-xxxx-xxxx-xxxx-3ace4c954780/daf3a86e-xxxx-xxxx-xxxx-ac7b6ffbb806]
openstack_compute_volume_attach_v2.va_1: Still destroying... [id=11cc1279-xxxx-xxxx-xxxx-3ace4c954780/daf3a86e-xxxx-xxxx-xxxx-ac7b6ffbb806, 10s elapsed]
openstack_compute_volume_attach_v2.va_1: Destruction complete after 17s
Apply complete! Resources: 0 added, 0 changed, 1 destroyed.
Quer saber mais?
Aumentar o tamanho de um disco adicional
Fale com nossa comunidade de utilizadores.