introduction
Stockage en bloc vous permet de gérer un stockage supplémentaire pour vos droplets DigitalOcean d'une manière similaire à l'utilisation de disques durs. L'ajout de blocs de stockage à nos droplets peut être effectué en quelques clics à partir de l'interface graphique simplifiée ou de l'interface utilisateur graphique de DigitalOcean. Cependant, comme ce n'est pas une façon pratique de fonctionner dans des environnements plus grands et plus complexes, DigitalOcean propose une API pour travailler à grande échelle. Nous pouvons interagir directement avec l'API viadoctl
, l'outil de ligne de commande officiel de DigitalOcean.
Dans ce didacticiel, nous allons apprendre à utiliserdoctl
pour créer, répertorier, attacher, détacher et supprimer des volumes de stockage en bloc de nos Droplets.
Conditions préalables
Avant de commencer ce didacticiel, vous devez vous familiariser avecdoctl
et le stockage par blocs de DigitalOcean. Les articles suivants seront utiles:
Vous devez vous assurer que la dernière version dedoctl
(au moment de la rédaction de cet article est la 1.7.1) installée et authentifiée avant de continuer. Vérifiez la version de votredoctl
en exécutantdoctl version
. Vous aurez également besoin d'unSSH key added to your DigitalOcean account.
Enfin, pour suivre ce didacticiel, vous aurez besoin d'un Droplet créé sur l'une des régions permettant l'utilisation du stockage en bloc (au moment de la rédaction de cet article, les régions suivantes offrent un stockage en bloc:BLR1,FRA1,LON1,NYC1,NYC3,SFO2,SGP1 etTOR1).
[.note] #Note: Bien que les régions mentionnées ci-dessus prennent en charge le stockage par blocs, cette fonctionnalité n'est actuellement pas disponible pour toutes les gouttelettes dans les régions indiquées. Pour vous assurer que le Droplet sur lequel vous travaillez prend en charge le stockage par blocs, vous devrez lui attacher un volume au moment de la création.
#
Créer des volumes
Pour créer un volume avecdoctl
, vous devez fournir les paramètres suivants à la commande:
-
volume name: dans notre exemple ce serafirstvolume
-
region: pour notre tutoriel, nous allons créer le volume enNYC3
-
size (par défaut à 4 To): dans cet exemple, nous le définirons sur100 GiB
Vous pouvez également fournir une description avec l'indicateurdesc, mais c'est entièrement facultatif. La commande complète ressemblera à ceci:
doctl compute volume create firstvolume --region nyc3 --size 100GiB
Vous devriez voir une sortie semblable à ceci:
OutputID Name Size Region Droplet IDs
______your_volume_ID1_______ firstvolume 100 GiB nyc3
À ce stade, vous connaissez la commandedoctl
et les informations requises pour créer un nouveau volume. Vous apprendrez ensuite comment imprimer une liste complète des volumes existants.
Liste des volumes
doctl
nous offre la possibilité d'afficher les volumes existants dans une liste formatée. Il existe plusieurs raisons pour lesquelles vous souhaitez répertorier vos volumes. Les deux plus courants sont d’afficher l’ID de chaque volume à utiliser dans les commandes ultérieures et d’indiquer quels droplets sont dotés de volumes.
Pour répertorier tous les volumes de stockage de bloc actuels, vous pouvez exécuter la commande suivante.
doctl compute volume list
Il s'agit de la sortie de la commandelist
exécutée dans notre exemple:
OutputID Name Size Region Droplet IDs
______your_volume_ID1______ firstvolume 100 GiB nyc3
______your_volume_ID1______ secondvolume 4096 GiB nyc3
______your_volume_ID1_______ thirdvolume 100 GiB nyc3 [ID]
Dans cette section, vous avez appris la commandedoctl
pour voir une liste des volumes que vous avez créés. Dans la section suivante, nous verrons comment attacher un volume à un droplet.
Joindre des volumes
Parfois, votre Droplet peut nécessiter un espace supplémentaire pour gérer des actifs tels que des données d'application et des fichiers de configuration. L'ajout d'un volume est un excellent moyen d'ajouter cet espace sans perturber le service.
Pour joindre des volumes, vous aurez besoin de deux informations:
-
l'ID de volume
-
l'ID de gouttelette
Dans la section précédente, nous avons vu comment obtenir lesvolume ID en utilisant la commandedoctl compute volume list
.
Nous pouvons obtenir nosDroplet ID en exécutant la commande suivante pour afficher des informations sur les Droplets de notre compte:
doctl compute droplet list
Une fois que nous avons les identifiants de volume et de droplet, nous pouvons exécuter la commande suivante pour attacher un volume à un droplet:
doctl compute volume-action attach your_volume_ID your_droplet_ID
Cela produira une sortie similaire à celle-ci:
OutputID Status Type Started At Completed At Resource ID Resource Type Region
346253669 in-progress attach_volume 2017-12-28 19:53:28 +0000 UTC 0 backend nyc3
Plus tôt dans ce didacticiel, il était recommandé de joindre un volume au Droplet au moment de la création, afin de s'assurer qu'il utilise une infrastructure prenant en charge le stockage en mode bloc. Si vous avez créé un Droplet sans attacher de volume à ce moment-là, le message d'erreur suivant peut s'afficher lorsque vous essayez d'y attacher un volume:
OutputError: POST https://api.digitalocean.com/v2/volumes/your_volume_ID/actions: 422 Droplet can't attach volumes due to a region restriction
Si vous rencontrez cette erreur, vous ne pourrez pas associer le volume à la droplet spécifiée et vous devrez réessayer.
Une fois qu'un volume est correctement connecté à un droplet qui l'accepte, vous pouvez passer à la section suivante pour savoir comment détacher le volume au cas où vous n'auriez plus besoin de cet espace supplémentaire.
Détachement de volumes
Il peut arriver que vous n'ayez besoin d'associer temporairement un volume à une Droplet, par exemple en déboguant un problème nécessitant une grande quantité de journaux ou en créant une sauvegarde de certaines données limitées dans le temps. Dans ce cas, nous devrons être en mesure de détacher un volume une fois l’utilisation terminée.
Détacher un volume revient à attacher un volume et utilise les mêmes informations. La commande et la sortie varient légèrement.
doctl compute volume-action detach your_volume_ID your_droplet_ID
OutputID Status Type Started At Completed At Resource ID Resource Type Region
346254931 in-progress detach_volume 2017-12-28 19:57:51 +0000 UTC 0 backend nyc3
À ce stade, vous savez comment détacher un volume avecdoctl
. Dans la section suivante, vous apprendrez à supprimer un volume dont vous n’avez plus besoin.
Suppression de volumes
Lorsque vous n’avez plus besoin d’un certain volume de stockage de bloc, vous pouvez le détacher, puis le supprimer de votre compte par suppression. Une fois que vous avez détaché un volume, vous aurez besoin de son identifiant pour le supprimer.
doctl compute volume delete your_volume_id
L'exécution de cette commande demandera une confirmation:
OutputWarning: Are you sure you want to delete volume (y/N) ?
Si vous êtes satisfait de vouloir supprimer le volume, appuyez sury
pour confirmer.
Une fois le volume supprimé, vous serez renvoyé à l'invite de commande. Vous pouvez vérifier que le volume a été supprimé à l'aide de la commandelist
.
Obtenir des informations sur un volume
Si vous avez besoin d'informations sur un volume spécifique, vous pouvez le demander en appelant la commande suivante.
doctl compute volume get your_volume_id
Vous trouverez la sortie de cette commande familière car elle est automatiquement exécutée lors de la création d'un volume.
OutputID Name Size Region Droplet IDs
______your_volume_ID1_______ firstvolume 100 GiB nyc3
Dans cette section, vous avez appris comment supprimer un volume devenu inutile.
Vous disposez maintenant de toutes les informations dont vous avez besoin pour utiliser avec succèsdoctl
afin de travailler avec des volumes de stockage en bloc DigitalOcean.
Conclusion
Dans ce didacticiel, nous avons appris à utiliserdoctl
pour ajouter, attacher, détacher, répertorier et supprimer des volumes de nos Droplets.