Changement du type de disque d'une instance Scaleway¶
Nous avons une instance avec un type de disque "local" dont la taille est limitée à 40Go.
Nous avons besoin de plus de place disque donc la (seule) solution est de changer le type de disque pour "block storage".
Ce document décrit la procédure à suivre pour faire cet échange en minimisant le temps d'interruption des services installés sur la machine.
Procédure¶
La procédure consiste :
- à éteindre l'instance existante
- à faire un snapshot de son disque
- à créer la nouvelle instance à partir de ce snapshot
- à déplacer les adresses IP de l'ancienne vers la nouvelle instance
- à étendre la partition de la nouvelle instance
Eteindre l'instance¶
Temps estimé : < 5 minutes
Eteindre l'instance depuis l'interface de Scaleway.
Cette étape est optionnelle car il est possible de faire un snapshot de l'instance alors qu'elle est en fonctionnement.
Mais cette étape est fortement recommandée pour être sûr de la cohérence des données du snapshot notamment si des services comme MySQL tournent sur l'instance.
Faire un snapshot du disque¶
Temps estimé : < 5 minutes
Depuis l'interface de Scaleway, aller dans la page de l'ancienne instance
puis dans l'onglet "Volumes associés". Cliquer sur les ... en regard du
disque actuel (qui doit être du type SSD Local) et choisir "Snapshot".

Choisir le type "Unifié" (indispensable pour pouvoir faire un disque de type Block ensuite) :

Notice
Quand j'ai fait le snapshot pour la machine YunoHost d'AddApps, le snapshot a été fait de façon instantané alors qu'il avait duré quelques minutes quand je l'avais fait 2 heures avant.
J'ai 2 hypothèses pour expliquer ça :
- car j'en avais fait un une ou deux heures avant
- car la machine était éteinte
Créer une nouvelle instance à partir du snapshot¶
Temps estimé : < 5 minutes
Créer une nouvelle instance en choisissant le snapshot comme image du disque de démarrage :

Déplacer les adresses IP¶
Depuis la page de l'ancienne instance, détacher l'IP v4 et l'IP v6.

Depuis la page de la nouvelle instance, détacher l'IP v4 puis attacher l'IP v4 et l'IP v6 de l'ancienne instance.

A ce stade, les services installés sur l'instance doivent répondre à nouveau.
Notice
Après avoir supprimé l'IP v4 attribuée à ma nouvelle instance et lui avoir ajouté l'IP v4 et l'IP v6 de l'ancienne instance, j'ai dû redémarrer la nouvelle instance pour que ces changements soient pris en compte.
Notice
Idée : j'aurais pu détacher les 2 IP de l'ancienne instance de façon à pouvoir les affecter à la nouvelle instance dès sa création. A tester la prochaine fois.
Etendre la partition¶
Dans l'interface de Scaleway, augmenter la taille du volume de la nouvelle instance :

Se connecter en SSH sur la nouvelle instance pour étendre la partition.
Avant :
cfadmin@yunohost-addapps:~$ df -h
Filesystem Size Used Avail Use% Mounted on
...
/dev/sda1 37G 33G 2.1G 95% /
...
Augmenter la partition (ici /dev/sda1) :
cfadmin@yunohost-addapps:~$ sudo growpart /dev/sda 1
CHANGED: partition=1 start=262144 old: size=77862823 end=78124967 new: size=155987823 end=156249967
Warning
Attention : il y a un espace entre /dev/sda et 1
Augmenter le filesystem :
cfadmin@yunohost-addapps:~$ sudo resize2fs -p /dev/sda1
resize2fs 1.46.2 (28-Feb-2021)
Filesystem at /dev/sda1 is mounted on /; on-line resizing required
old_desc_blocks = 5, new_desc_blocks = 10
The filesystem on /dev/sda1 is now 19498477 (4k) blocks long.
Après :
cfadmin@yunohost-addapps:~$ df -h
Filesystem Size Used Avail Use% Mounted on
...
/dev/sda1 74G 33G 38G 47% /
...
On voit bien que la taille du disque est passée à 74G.
Supprimer les éléments devenus inutiles¶
Pour éviter de payer des coûts inutiles, nous pouvons supprimer :
- l'ancienne instance avec son disque local
- le snapshot qui a permis de faire le transfert
- l'IP v4 créée avec la nouvelle instance qui est devenue inutile