Aller au contenu
English
Cloud medium

Block Storage Scaleway : volumes, snapshots et redimensionnement

Validé live le ·fr-par·scw 2.56.3

55 min de lecture

logo Scaleway

Un serveur a besoin d'un disque, et ce disque, c'est souvent un volume Block. Le Block Storage fournit des disques réseau que l'on attache à une Instance, que l'on snapshotte pour sauvegarder, que l'on agrandit sans rien casser et que l'on exporte pour changer de zone. Ce guide vous explique ce qu'il est, le différencie du stockage local et objet, vous apprend à choisir entre 5 000 et 15 000 IOPS sur un critère que la plupart ignorent (la bande passante disque de l'Instance), puis vous fait créer, snapshotter, redimensionner et nettoyer un volume avec scw. Il s'adresse à qui a déjà configuré la CLI.

Niveau : débutant à intermédiaire. Prérequis : la CLI scw configurée.

À la fin de cette page, vous saurez :

  • Distinguer un volume Block, un volume local et l'Object Storage, chiffres à l'appui
  • Choisir entre sbs_5k et sbs_15k selon l'Instance qui l'utilisera
  • Créer, attacher, snapshotter et agrandir un volume
  • Déplacer un volume vers une autre zone par export de snapshot
  • Nettoyer dans le bon ordre, sans laisser de coûts résiduels

Un volume Block est un disque réseau exposé à votre Instance comme s'il s'agissait d'un disque physique ; il vit sur un SAN indépendant de l'hyperviseur, répliqué trois fois, et survit à l'Instance. Conséquence directe : on peut l'attacher et le détacher d'une Instance comme un disque dur externe, le snapshotter, le redimensionner, et le rattacher à une autre Instance de la même zone. La génération actuelle repose sur des disques NVMe (page « differences between Block Storage volumes », validée le 2025-10-14) ; les volumes b_ssd de la génération précédente reposaient sur des SSD plus anciens, avec leurs 5 000 IOPS partagés entre lecture et écriture.

Voici comment s'articulent l'Instance, son volume Block et les snapshots.

Block Storage Scaleway : une Instance attache un volume Block réseau, snapshottable et restaurable

Trois stockages coexistent chez Scaleway, et les confondre mène à de mauvais choix. Le tableau se lit par la colonne Choix : trouvez la ligne qui décrit vos données, elle dit où les mettre. Les chiffres viennent de la FAQ Block Storage (validée le 2025-09-17).

BesoinChoixPourquoi
Disque système d'une Instance de développement, vitesse localevolume local (l_ssd)NVMe sur l'hyperviseur, jusqu'à 600 Go (GP1-XL), mais RAID 5 et semi-persistant : archivé à chaque power off
Données d'une base, disque à déplacer ou agrandirvolume Block (sbs_5k, sbs_15k)réseau, répliqué 3 fois, jusqu'à 15 To, détachable, snapshottable
Disque système d'une gamme PLAY2, POP2, BASIC3volume Block obligatoirementces gammes ne supportent que le Block (champ supported_storage: Block)
Sauvegardes, fichiers, données massives partagéesObject StorageAPI S3, pas de montage, taille quasi illimitée, accessible de partout
Partage en écriture entre plusieurs machinesni l'un ni l'autre : File Storagedisponibilité générale depuis le 16 juillet 2026, hors du périmètre de cette leçon

Le volume local n'est pas persistant au sens où on l'entend. La FAQ le qualifie de « semi-persistent » : à chaque power off, son contenu est archivé vers un snapshot puis restauré au démarrage, ce qui rend l'arrêt d'autant plus long qu'il y a de données. Le volume Block, lui, reste où il est.

La performance d'un volume Block se mesure en IOPS (opérations d'entrée-sortie par seconde), et Scaleway propose deux niveaux : sbs_5k à 5 000 IOPS et sbs_15k à 15 000 IOPS. Listez-les avec leur prix :

Fenêtre de terminal
scw block volume-type list zone=fr-par-1 -o json

La sortie doit afficher deux objets de classe sbs, chacun avec pricing et snapshot_pricing. Relevé le 2026-09-08 avec scw 2.56.3 : sbs_5k à 0,00013 € par Go et par heure (snapshot 0,000049 €), sbs_15k à 0,000177 € (snapshot 0,000044 €), identiques en nl-ams-1 et it-mil-1. Un volume de 100 Go en sbs_5k coûte donc environ 9,50 € par mois, et il facture tant qu'il existe, attaché ou non. Vous croiserez peut-être aussi d'anciens volumes b_ssd (gamme legacy), qui ne se gèrent plus par l'API Instances et se convertissent par export et import de snapshot.

Le 15K ne se choisit pas seul : il se choisit avec l'Instance. La page officielle des bandes passantes est explicite : un volume 15K n'exprime ses performances que sur une Instance disposant d'au moins 3 Gio/s de bande passante Block. Relevé dans cette page : GP1-XS plafonne à 300 Mio/s, PRO2-L à 2 Gio/s, GP1-XL à 2 Gio/s ; seuls POP2-16C-64G et au-delà (3,12 Gio/s, puis 5,5 Gio/s à partir de 32 cœurs), et leurs déclinaisons POP2-HC et POP2-HM, atteignent le seuil. Le tableau se lit ligne par ligne :

Instance prévueBande passante BlockChoixPourquoi
DEV1, PLAY2, BASIC3, GP1-XS à GP1-M40 Mio/s à 800 Mio/ssbs_5kle 15K serait bridé par l'Instance, surcoût de 36 % pour rien
PRO2-L, GP1-XL, COMPUTE3-X48C et plus2 Gio/ssbs_5k, ou 15K après mesureencore sous le seuil de 3 Gio/s
POP2-16C-64G et plus, POP2-HC, POP2-HM 16 cœurs et plus3,12 à 5,5 Gio/ssbs_15k si la base le justifieseules gammes au-dessus du seuil

On crée un volume vide en précisant sa taille et son niveau d'IOPS ; la taille attend une unité.

  1. Créer le volume de 10 Go à 5 000 IOPS :

    Fenêtre de terminal
    scw block volume create name=data-app perf-iops=5000 from-empty.size=10GB zone=fr-par-1
  2. Vérifier son état :

    Fenêtre de terminal
    scw block volume list zone=fr-par-1

    Le volume doit apparaître avec son type (sbs_5k), sa taille et le statut available.

Un volume Block ne sert que s'il est attaché à une Instance, qui le voit alors comme un disque à formater et monter. L'attachement se fait à la création de l'Instance avec additional-volumes.0=<id> (c'est ce que fait le lab fil rouge), ou après coup :

Fenêtre de terminal
scw instance server attach-volume server-id=VOTRE_SERVER_ID volume-id=VOTRE_VOLUME_ID zone=fr-par-1
scw instance server detach-volume server-id=VOTRE_SERVER_ID volume-id=VOTRE_VOLUME_ID zone=fr-par-1

Après attach-volume, lsblk sur l'Instance doit montrer un disque supplémentaire (sdb en général) ; après detach-volume, il disparaît sans redémarrage. Volume et Instance doivent être dans la même zone de disponibilité, et une Instance accepte au maximum 16 volumes dont celui de démarrage, soit 15 volumes Block (FAQ). Comme il est réseau, vous pouvez le détacher d'une Instance et le rattacher à une autre de la même zone pour déplacer des données, ce qu'un volume local ne permet pas.

Un snapshot est une image en lecture seule d'un volume à un instant donné ; c'est votre point de sauvegarde, à partir duquel vous recréez un volume identique.

Fenêtre de terminal
scw block snapshot create volume-id=VOTRE_VOLUME_ID name=data-app-avant-maj zone=fr-par-1
scw block snapshot list zone=fr-par-1

La liste doit afficher le snapshot d'abord en creating, puis en available. Un snapshot se facture au Go-heure comme un volume, à un tarif inférieur (0,000049 € pour un sbs_5k, relevé du 2026-09-08). Pour en tirer un volume neuf : scw block volume create from-snapshot.snapshot-id=<id> from-snapshot.size=10GB perf-iops=5000.

Besoin de plus d'espace ? On agrandit le volume sans le recréer ; la nouvelle taille doit être supérieure ou égale à l'actuelle, on ne réduit pas un volume Block.

Fenêtre de terminal
# Passer le volume de 10 Go à 20 Go
scw block volume update volume-id=VOTRE_VOLUME_ID size=20GB zone=fr-par-1
scw block volume get volume-id=VOTRE_VOLUME_ID zone=fr-par-1

La seconde commande doit afficher la nouvelle taille. Côté Instance, il reste ensuite à étendre la partition et le système de fichiers (growpart puis resize2fs sur ext4) pour profiter de l'espace supplémentaire. La même commande update accepte perf-iops=15000 pour passer un volume en 15K le jour où l'Instance le justifie, et l'inverse.

Un volume ne change pas de zone ; ce qui voyage, c'est son snapshot, exporté vers un bucket Object Storage au format QCOW2 puis importé dans la zone cible (page « Moving Instances between Availability Zones », validée le 2025-07-15).

Fenêtre de terminal
scw block snapshot export-to-object-storage zone=fr-par-1 snapshot-id=VOTRE_SNAPSHOT_ID \
bucket=VOTRE_BUCKET key=data-app.qcow2
scw block snapshot import-from-object-storage name=data-app-par2 bucket=VOTRE_BUCKET \
key=data-app.qcow2 size=10GB zone=fr-par-2

Après l'import, scw block snapshot list zone=fr-par-2 doit afficher le nouveau snapshot, prêt à donner un volume dans la zone cible. Le bucket doit être dans la même région que les deux zones ; c'est aussi le chemin officiel pour convertir un ancien volume b_ssd en sbs, et pour changer un volume de Project.

Comme toute ressource, un volume et ses snapshots facturent tant qu'ils existent ; on supprime d'abord le snapshot, puis le volume, en s'assurant qu'aucune opération n'est en cours.

  1. Supprimer le snapshot (une fois available) :

    Fenêtre de terminal
    scw block snapshot delete snapshot-id=VOTRE_SNAPSHOT_ID zone=fr-par-1
  2. Supprimer le volume (détaché et available) :

    Fenêtre de terminal
    scw block volume delete volume-id=VOTRE_VOLUME_ID zone=fr-par-1
  3. Vérifier qu'il ne reste rien :

    Fenêtre de terminal
    scw block volume list zone=fr-par-1
    scw block snapshot list zone=fr-par-1

    Les deux listes doivent être vides. Un volume encore attaché refuse la suppression : détachez-le, ou supprimez l'Instance avec with-volumes=all.

Ces valeurs viennent de la FAQ Block Storage (validée le 2025-09-17), de la page des bandes passantes et du relevé CLI du 2026-09-08 ; elles bornent le dimensionnement avant toute question de prix.

PlafondValeurSource
Taille maximale d'un volume Block15 ToFAQ Block Storage
Volumes par Instance16 dont le volume de démarrage, soit 15 BlockFAQ Block Storage
Niveaux d'IOPS5 000 ou 15 000scw block volume-type list
Bande passante Block requise pour le 15K3 Gio/s au moins (POP2-16C-64G et plus)doc bandwidth overview
Réplication3 répliques ; volume local en RAID 5FAQ Block Storage
Volume local maximal600 Go (GP1-XL)FAQ Block Storage
Granularité de taille1 Go ; unité GB obligatoireaide de scw block volume create
Redimensionnementagrandissement seul, jamais de réductionaide de scw block volume update
Prix relevés (fr-par-1, 2026-09-08)sbs_5k 0,00013 €/Go/h, sbs_15k 0,000177 €/Go/hscw block volume-type list -o json
Zones énumérées par le CLI9 (pas it-mil-1), alors que volume-type list zone=it-mil-1 répondrelevé du 2026-09-08
Suppression d'une Instance par l'APIemporte tous les volumes attachés, local et BlockFAQ Block Storage

La dernière ligne est celle qui surprend. D'après la FAQ, une suppression via l'API emporte les volumes attachés ; pour conserver un volume Block, il faut le détacher avant de supprimer l'Instance. En CLI, with-volumes=none sur scw instance server delete demande explicitement de tout garder, et with-volumes=all de tout emporter : ne laissez jamais la valeur au hasard.

Ces erreurs ont un point commun : elles se paient au gigaoctet-heure, en silence, ou le jour de l'incident.

AntipatternConséquenceDiscipline
sbs_15k sur une petite Instancesurcoût de 36 % sans gain, bande passante disque insuffisantesbs_5k par défaut, 15K seulement au-dessus de 3 Gio/s et après mesure
Créer le volume « large, pour être tranquille »facturé à la taille provisionnée, pas au contenupetit d'abord, volume update size= quand le besoin est mesuré
Snapshots créés à la main, jamais supprimésfacturés indéfiniment, personne ne sait lesquels serventnom daté, politique de rétention, snapshot list mensuel
Snapshot jamais restaurédécouverte d'un snapshot inutilisable le jour de la pertecréer un volume depuis le snapshot une fois par trimestre et le monter
Données métier sur le volume localarchivage à chaque power off, perte si l'hyperviseur meurtsystème sur local ou Block, données sur Block
Supprimer l'Instance sans avoir décidé du sort des volumesvolume perdu (all) ou volume orphelin facturé (none)with-volumes choisi explicitement, puis block volume list

Reliability : un snapshot n'est une sauvegarde qu'après restauration

Section intitulée « Reliability : un snapshot n'est une sauvegarde qu'après restauration »

Que se passe-t-il si le volume est corrompu ce soir ? Vous recréez un volume depuis le dernier snapshot, à condition d'avoir vérifié une fois que ce chemin fonctionne. La discipline est un snapshot avant chaque opération risquée, une rétention écrite (par exemple 7 quotidiens, 4 hebdomadaires), et un test de restauration trimestriel. Pour survivre à la perte d'une zone, l'export vers Object Storage est le seul chemin, et il se répète.

Performance : les IOPS ne dépassent jamais la bande passante de l'Instance

Section intitulée « Performance : les IOPS ne dépassent jamais la bande passante de l'Instance »

Le volume est-il le goulot, ou l'Instance ? iostat sur l'Instance le dit. La discipline est de choisir le niveau d'IOPS après avoir regardé la bande passante Block du type d'Instance, et de se rappeler que perf-iops se change à chaud : commencer en 5K ne ferme aucune porte.

Cost Optimization : le volume se paie à la taille, le snapshot aussi

Section intitulée « Cost Optimization : le volume se paie à la taille, le snapshot aussi »

Combien coûtent les volumes que personne n'utilise ? scw block volume list montre les volumes sans Instance ; scw block snapshot list les snapshots oubliés. La discipline est une revue mensuelle des deux listes et une taille qui suit le besoin, puisqu'on ne peut qu'agrandir.

Le tableau se lit par la colonne Symptôme : c'est ce que vous voyez à l'écran, message exact compris quand il y en a un ; la colonne Cause dit ce qui se passe réellement, et la colonne Solution la commande ou le geste qui débloque.

SymptômeCauseSolution
size must be defined using the G or GB unittaille en octets brutsutiliser une unité : from-empty.size=10GB
precondition failed ... operation in progresssuppression pendant un snapshot en coursattendre le statut available, puis supprimer
Le redimensionnement est refusénouvelle taille inférieure à l'actuelleon ne peut qu'agrandir un volume
Le volume ne s'attache pasInstance dans une autre zone, ou 16 volumes déjà attachésmême zone, ou export de snapshot ; compter les volumes
L'espace ajouté n'apparaît pas dans l'Instancepartition et système de fichiers non étendusgrowpart /dev/sdb 1 puis resize2fs
Le 15K n'est pas plus rapide que le 5Kbande passante Block de l'Instance sous 3 Gio/schanger de type d'Instance, ou revenir en perf-iops=5000
Facture qui continuevolume ou snapshot oublié, ou volume orphelin après with-volumes=nonelister régulièrement et supprimer l'inutile

Vérifiez que l'essentiel de ce guide est acquis. Les questions portent uniquement sur ce qui vient d'être expliqué ici.

Contrôle de connaissances

Validez vos connaissances avec ce quiz interactif

6 questions
6 min.
70% requis

Informations

  • Le chronomètre démarre au clic sur Démarrer
  • Questions à choix multiples, vrai/faux et réponses courtes
  • Vous pouvez naviguer entre les questions
  • Les résultats détaillés sont affichés à la fin

Lance le quiz et démarre le chronomètre

  • Un volume Block est un disque réseau NVMe, répliqué 3 fois, jusqu'à 15 To, attachable, snapshotable et agrandissable, indépendant de l'Instance.
  • À distinguer du volume local (NVMe sur l'hyperviseur, 600 Go max, archivé à chaque power off) et de l'Object Storage (API S3).
  • Deux types : sbs_5k (0,00013 €/Go/h) et sbs_15k (0,000177 €/Go/h, relevé du 2026-09-08), facturés tant que le volume existe ; le 15K exige 3 Gio/s de bande passante Block, donc POP2 16 cœurs et plus.
  • On crée avec scw block volume create … from-empty.size=10GB perf-iops=5000 (l'unité est obligatoire), on attache avec scw instance server attach-volume, 15 volumes Block par Instance au plus.
  • Un snapshot (scw block snapshot create volume-id=…) est une image en lecture seule ; on ne le supprime pas pendant sa création.
  • scw block volume update agrandit un volume et change ses IOPS ; il faut ensuite étendre la partition côté Instance.
  • Un volume change de zone par export-to-object-storage puis import-from-object-storage (QCOW2, bucket de la même région).
  • La suppression d'une Instance par l'API emporte les volumes attachés : with-volumes se choisit explicitement.

Les pages officielles sur lesquelles cette leçon s'appuie, avec ce qu'on y cherche ; leur champ de validation date chaque fait cité.

Ce site vous est utile ?

Sachez que moins de 1% des lecteurs soutiennent ce site.

Je maintiens +700 guides gratuits, sans pub ni tracking. Un soutien, même symbolique, m'aide à couvrir l'hébergement et à garder ces ressources gratuites. Merci pour votre appui.

Le formulaire ne s'affiche pas ? Ouvrir Ko-fi dans un onglet.

Abonnez-vous et suivez mon actualité DevSecOps sur LinkedIn