Découvrez comment attacher un nouveau volume à votre instance Public Cloud
Objectif
Vous pouvez créer des disques supplémentaires pour vos instances Public Cloud.
Cela peut être utile dans les cas suivants :
Si vous souhaitez augmenter votre capacité de stockage sans avoir à changer le modèle d’instance.
Si vous souhaitez disposer d’un espace de stockage hautement disponible et performant.
Si vous souhaitez déplacer votre stockage et vos données vers une autre instance.
Si vous souhaitez préparer l'environnement pour utiliser Terraform, vous devez préparer l'environnement.
Découvrez comment créer un disque supplémentaire et le configurer sur votre instance.
Prérequis
Disposer d'une instance Public Cloud dans votre compte OVHcloud
Avoir un accès administratif (sudo) à votre instance via SSH (Linux) ou RDP (Windows).
Préparer l'environnement si vous souhaitez utiliser Terraform
Accès à l'espace client OVHcloud
Lien direct :
Pour accéder à vos services :Public Cloud > Sélectionnez votre projet
Warning
Cette fonctionnalité n'est actuellement pas disponible pour les instances Metal.
En pratique
Les différents types de volumes
OVHcloud propose trois types de volumes Block Storage, chacun adapté à des besoins spécifiques en matière de performance, de capacité et de coûts. Ces solutions vous permettent d’attacher des volumes de stockage persistants à vos instances, en garantissant un haut niveau de fiabilité et de disponibilité. Si la fonctionnalité est disponible, le chiffrement peut être activé à la création d'un volume, pour tous les types de volumes à l'exception des volumes Classic Multi-Attach dans les régions 3AZ.
Classic – 500 IOPS garantis
Le volume Classic est une solution de stockage fiable et économique, idéale pour les charges de travail nécessitant des performances modérées. Il offre 500 IOPS garantis, ce qui le rend adapté aux usages suivants :
Hébergement d’applications web classiques
Stockage de bases de données de petite à moyenne taille
Sauvegarde et archivage de données
Dans les régions 3AZ, les volumes Classic sont des services régionaux qui utilisent un Erasure Coding distribué entre plusieurs zones de disponibilité. Cela garantit la disponibilité des données sans impact ni interruption en cas de défaillance d’une zone, à condition que les exigences de l’architecture résiliente avec attachement multiple soient respectées. Pour plus d'informations, consultez notre guide « Utilisation correcte et limitations du stockage Classic Multi-Attach dans les régions 3AZ ».
High Speed Gen2 – 30 IOPS/Go et jusqu’à 20 000 IOPS
La génération 2 des volumes High Speed est optimisée pour les workloads les plus exigeants. Les performances s’adaptent à la taille du volume :
Ce type de volume est recommandé pour les usages suivants :
Big Data et analyses en temps réel
Intelligence artificielle et Machine Learning
Traitement de grandes bases de données et stockage haute performance
Info
Vous ne pouvez plus commander de volumes High Speed (Gen1) depuis l’espace client OVHcloud. Ils ont été remplacés par les volumes High Speed Gen2 au même tarif, avec de meilleures performances pour les volumes de plus de 100 Go. Les volumes High Speed restent disponibles via l’API, Terraform et OpenStack.
Chaque type de volume est également disponible en version chiffrée (LUKS). Ces volumes assurent la confidentialité des données sans impact sur les performances. Ils sont disponibles depuis l'espace client OVHcloud ainsi qu’avec les outils présentés dans la section suivante, en spécifiant le type <volume_type>-luks.
Attacher un nouveau volume
Via l'espace client OVHcloud
Via Terraform
Via l'interface Horizon
Via la CLI OpenStack
Via la CLI OVHcloud
Ouvrez Block Storage dans le menu de gauche sous Storage & Backup.
Dans cette partie, cliquez sur le bouton Créer un volume.
Suivez les étapes de configuration afin de sélectionner les options d'emplacement, de type de disque, de chiffrement et de capacité de disque. Renseignez un nom pour le volume et validez en cliquant sur Créer le volume.
Warning
Remarque : Votre volume doit être créé dans la même région que l'instance à laquelle vous souhaitez l'attacher. Si vous le créez dans une autre région, vous pouvez le supprimer et le recréer dans la bonne région.
Le nouveau disque s’affichera alors dans l’espace client.
À droite du volume, cliquez sur le bouton ... puis sélectionnez Attacher à l'instance.
Dans la fenêtre qui apparaît, choisissez une instance dans la liste et cliquez sur Confirmer pour attacher le disque.
Le processus d’attachement du disque à votre instance va alors commencer. L'opération peut prendre quelques minutes.
Warning
Veillez à ne pas quitter la page actuelle de votre espace client OVHcloud lorsque le disque est en cours de connexion. Cela pourrait interrompre le processus.
Warning
Veuillez noter que les types de volume « high-speed-gen2 » ou « luks » peuvent ne pas être disponibles dans toutes les régions.
Types de volumes :
Classic
High-speed
High-speed-gen2
Classic-luks
High-speed-luks
High-speed-gen2-luks
Les types se terminant par -luks sont chiffrés (LUKS).
Warning
La création d’un volume -luks génère automatiquement une clé dédiée.
Ne modifiez pas et ne supprimez pas cette clé si elle est liée à un volume Block Storage. Cela rendrait les données de ce volume et tous ses snapshots définitivement irrécupérables.
Pour créer un volume block storage simple, vous avez besoin de 3 éléments :
Le nom du volume
La région
La taille du volume en GB
Dans notre exemple, nous allons créer un block storage dans la région GRA11 d'une taille de 10 GB. Ajoutez les lignes suivantes dans un fichier nommé simple_blockstorage.tf :
# Création d'un volume block storageresource "openstack_blockstorage_volume_v3" "terraform_blockstorage" { name = "terraform_blockstorage" # Nom du volume block storage size = 10 # Taille du volume region = "GRA11" # Région ou le volume doit être crée volume_type = "volume_type" # classic, high-speed, high-speed-gen2 ou équivalent `-luks`}
Puis nous allons l'attacher à l'instance cible.
Warning
L'instance et le volume doivent se trouver dans la même région.
Ajoutez les lignes suivantes sous les précédentes :
# Attacher le volume à l'instanceresource "openstack_compute_volume_attach_v2" "volume_attach" { instance_id = "<votre_instance_id>" volume_id = openstack_blockstorage_volume_v3.terraform_volume.id}
Vous pouvez créer votre volume de type block storage et l'attacher à l'instance voulue en entrant la commande suivante :
terraform apply
La sortie devrait ressembler à ceci :
$ terraform applyTerraform used the selected providers to generate the following execution plan. Resource actions are indicated with the following symbols: + createTerraform 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: yesopenstack_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.
Rendez-vous dans la section déroulante Volumes, cliquez sur Volumes puis sur Create Volume.
Renseignez le champ Volume Name et sélectionnez le type de volume que vous souhaitez. Cliquez ensuite sur Create Volume.
Warning
Veuillez noter que si le type de volume « high-speed-gen2 » ou « luks » n'apparaît pas dans la liste, cela signifie qu'il n'est pas disponible dans cette région.
Pour attacher ce volume à une instance, sur la ligne de votre volume, cliquez sur la flèche se trouvant en bout de ligne à côté de Edit Volume. Cliquez alors sur Manage Attachments
Selectionnez l'instance à laquelle vous souhaitez attacher votre volume, puis cliquez sur Attach Volume.
Warning
Veuillez noter que si le type de volume « high-speed-gen2 » ou « luks » n'apparaît pas dans la liste, cela signifie qu'il n'est pas disponible dans cette région.
Types de volumes :
Classic
High-speed
High-speed-gen2
Classic-luks
High-speed-luks
High-speed-gen2-luks
Les types se terminant par -luks sont chiffrés (LUKS).
Warning
La création d’un volume -luks génère automatiquement une clé dédiée.
Ne modifiez pas et ne supprimez pas cette clé si elle est liée à un volume Block Storage. Cela rendrait les données de ce volume et tous ses snapshots définitivement irrécupérables.
Listez les types de volumes disponibles dans la région :
openstack volume type list
Créez un volume en spécifiant au minimum sa taille (en GB) ainsi qu’un type parmi ceux listés précédemment. Vous pouvez également indiquer un nom pour votre volume à la fin de la commande.
Pour attacher un volume à une instance disponible dans la région, utilisez la commande suivante :
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 |+-----------+-------------------------------------+
Warning
Si le type de volume high-speed-gen2 ou luks n'apparaît pas dans la liste, il n'est pas disponible dans cette région.
Option
Description
<region>
Région dans laquelle le volume sera créé (ex. : GRA11)
--name
Nom du volume
--size
Taille du volume en GB
--type
Type de volume : classic, high-speed, high-speed-gen2, ou la variante -luks correspondante
--wait
Attend la fin de la création avant de quitter
Créez un volume en spécifiant la région, un nom, la taille en GB et un type :
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTvda 254:0 0 10G 0 disk└─vda1 254:1 0 10G 0 part /vdb 254:16 0 10G 0 disk
Info
Dans cet exemple, vda fait référence au disque par défaut de l'instance. Le disque additionnel sera alors nommé vdb.
Créez une partition sur le disque supplémentaire via les commandes ci-dessous.
Si votre disque additionnel est inférieur à 2TB :
sudo fdisk /dev/vdb
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): nPartition typep 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): wThe partition table has been altered.Calling ioctl() to re-read partition table.Syncing disks.
Si votre disque additionnel est supérieur à 2TB :
sudo parted /dev/vdb
GNU Parted 3.5Using /dev/vdbWelcome 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 pt (parted) mkpart primary 0 3750G Warning: The resulting partition is not properly aligned for best performance: 34s % 2048s != 0sIgnore/Cancel? I (parted) quit
Formatez ensuite la nouvelle partition vdb1 à l’aide de la commande ci-dessous :
sudo mkfs.ext4 /dev/vdb1
mke2fs 1.42.12 (29-Aug-2014)Creating filesystem with 2621184 4k blocks and 655360 inodesFilesystem UUID: 781be788-c4be-462b-b946-88429a43c0cfSuperblock backups stored on blocks:32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632Allocating group tables: doneWriting inode tables: doneCreating journal (32768 blocks): doneWriting superblocks and filesystem accounting information: done
Montez la partition avec les commandes suivantes :
sudo mkdir /mnt/disksudo mount /dev/vdb1 /mnt/disk/
Enfin, vérifiez le point de montage à l’aide de cette commande :
Le montage n'est pas persistant car le disque sera détaché au redémarrage de l'instance. Afin d'automatiser le montage, il est nécessaire d'éditer le fichier fstab.
Récupérez tout d'abord l'UUID (block ID) du nouveau volume :
Faites un clic-droit sur le disque et sélectionnez En ligne.
Si le disque est indiqué ici comme étant hors-ligne, cela est probablement dû à une politique en place sur l'instance. Pour résoudre ce problème, faites un clic-droit sur le disque et sélectionnez En ligne.
Effectuez à nouveau un clic-droit et sélectionnez cette fois-ci Initialiser le disque.
Ensuite, sélectionnez MBR si votre disque additionnel est inférieur à 2TB, ou GPT s'il est supérieur à 2TB, puis cliquez sur OK.
Initialiser le disque avec DISKPART
Faites un clic-droit sur le bouton Démarrer et ouvrez Exécuter.
Tapez cmd et cliquez sur OK pour ouvrir l'application de ligne de commande.
À l'invite de commande, ouvrez DISKPART :
C:\> diskpart
Utilisez la série de commandes DISKPART suivante pour mettre le disque en ligne :
DISKPART> sanSAN Policy : Offline SharedDISKPART> san policy = OnlineAllDiskPart successfully changed the SAN policy for the current operating system .- Implementation of the strategy on the extra disk:[Code] DISKPART> list diskDisk ### Status Size Free Dyn Gpt-------- ------------- ------- ------- --- ---Disk 0 Online 200 GB 0 B* Disk 1 Offline 10 GB 1024 KBDISKPART> select disk 1Disk 1 is now the selected disk.DISKPART> attributes disk clear readonlyDisk attributes cleared successfully.DISKPART> attributes diskCurrent Read-only State : NoRead-only : NoBoot Disk : NoPagefile Disk : NoHibernation File Disk : NoCrashdump Disk : NoClustered Disk : NoDISKPART> online diskDiskPart successfully onlined the selected disk.
Formatage du disque
Dans l'outil Gestion des disques, faites un clic droit sur le nouveau disque et sélectionnez Nouveau volume simple....
Dans l'assistant, cliquez sur Suivant pour spécifier la taille du volume. Par défaut, il doit être au maximum. Cliquez sur Suivant pour continuer.
Laissez la nouvelle lettre de lecteur par défaut ou sélectionnez-en une autre, puis cliquez sur Suivant.
Nommez le volume (facultatif) et confirmez les options de formatage en cliquant sur Suivant.
Dans la dernière fenêtre, cliquez sur Terminer pour formater le disque.
Le disque sera par la suite disponible en tant que lecteur dans l'explorateur de fichiers.
Détacher un volume
Si vous souhaitez détacher un volume de votre instance, la meilleure pratique est de démonter le volume du système d'exploitation avant de le détacher de l'instance.
Warning
Un message d'erreur peut s'afficher si des logiciels ou processus sont en cours d'exécution sur le disque supplémentaire. Dans ce cas, il est recommandé d'arrêter tous les processus avant de continuer.
Voici comment démonter le volume du système d'exploitation avant de le détacher de l'instance :
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTvda 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
Démontez la partition en utilisant la commande ci-dessous :
sudo umount /dev/vdb1
Supprimez l'ID de périphérique du fstab pour terminer le processus de démontage. Si ce n'est pas fait, la partition sera remontée après un redémarrage.
sudo nano /etc/fstab
Enregistrez et quittez l'éditeur.
Établissez une connexion RDP (Remote Desktop) avec votre instance Windows.
Une fois connecté faites un clic-droit sur le menu Démarrer et ouvrez Gestion du disque.
Faites un clic-droit sur le volume que vous souhaitez démonter et sélectionnez Modifier la lettre de lecteur et les chemins d'accès....
Cliquez sur Supprimer pour retirer le disque.
Cliquez ensuite sur Oui pour confirmer la suppression de la lettre du lecteur de disque.
Lorsque vous avez terminé, vous pouvez fermer la fenêtre de gestion de disque.
Pour finir, nous allons détacher le volume de l'instance :
Via l'espace client OVHcloud
Via Terraform
Via la CLI OVHcloud
Rendez-vous dans la rubrique Public Cloud de votre espace client OVHcloud et cliquez sur Block Storage dans le menu de gauche sous Storage & Backup.
Cliquez sur le bouton ... à côté du volume correspondant et sélectionnez Détacher de l'instance.
Cliquez sur Confirmer dans la fenêtre qui s'affiche pour lancer le processus.
Commencez par supprimer ces lignes précédemment crées dans votre fichier Terraform :
# Attacher le volume à l'instanceresource "openstack_compute_volume_attach_v2" "volume_attach" { instance_id = "<votre_instance_id>" volume_id = openstack_blockstorage_volume_v3.terraform_volume.id}
Veuillez entrer la commande suivante pour vérifier si la ressource correcte va être supprimée :
terraform plan
La sortie devrait ressembler à ceci :
$ terraform planopenstack_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: - destroyTerraform 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.
Puis appliquer les changements en entrant cette commande :
terraform apply
La sortie devrait ressembler à ceci :
$ terraform applyopenstack_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: - destroyTerraform 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: yesopenstack_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 17sApply complete! Resources: 0 added, 0 changed, 1 destroyed.