Quatre entrepôts sur le même quai

Sur un terminal portuaire, la marchandise ne dort pas au même endroit selon ce qu'elle est. Le hangar sec reçoit les palettes qui repartent dans la semaine. Le frigorifique prend ce qui ne supporte pas l'attente. L'entrepôt sous douane garde ce dont personne ne peut disposer sans autorisation. Et au fond du site, un bâtiment d'archives conserve ce que plus personne ne consulte mais que la réglementation oblige à garder dix ans.

Le locataire du quai n'a construit aucun de ces bâtiments. Il choisit lequel il loue, pour quelle marchandise, et à quelles conditions on peut y entrer.

Le compte de stockage Azure joue ces quatre rôles à la fois. C'est la ressource la plus banale du catalogue, celle qu'on crée en trente secondes au démarrage d'un projet, et celle dont deux options cochées à ce moment-là décident du reste.

La redondance dit contre quelle panne on est couvert. Le niveau d'accès dit combien on paie pour une donnée qu'on ne relira jamais. Les deux se tranchent au début, au moment précis où personne n'a encore d'avis.

Vue d'ensemble : une ressource, quatre services

Un compte de stockage n'est pas un service, c'est un contenant qui en expose quatre, avec chacun son point de terminaison et son modèle de données.

Service Ce qu'il stocke Usage typique Niveau d'accès applicable
Blob des objets non structurés : blobs de blocs, d'ajout, de pages sauvegardes, médias, journaux, socle de lac de données oui, sur les blobs de blocs
Fichiers un partage réseau monté par un système, en SMB ou NFS reprise d'un serveur de fichiers, contenu partagé entre machines non
Files d'attente des messages courts, lus et acquittés découplage simple entre deux composants non
Tables des entités clé et attributs, sans schéma imposé catalogue, données de référence peu coûteuses non

Les disques managés d'une machine virtuelle ne vivent pas là. Ce sont des ressources autonomes, avec leur propre gestion, et les confondre avec le stockage de comptes fait rater la moitié du raisonnement sur les coûts.

Trois décisions se prennent au niveau du compte et s'appliquent à tout ce qu'il contient : la redondance, la façon dont on s'y authentifie, et l'exposition réseau. Le niveau d'accès, lui, se règle par blob, avec une valeur par défaut au compte.

flowchart LR CO["Compte de stockage"] B["Blob
objets non structurés"] F["Fichiers
partage SMB ou NFS"] Q["Files d'attente
messages courts"] T["Tables
clé et attributs"] R["Redondance
décidée pour tout le compte"] A["Accès et réseau
décidés pour tout le compte"] N["Niveau d'accès
par blob de blocs"] R --> CO A --> CO CO --> B CO --> F CO --> Q CO --> T B --> N classDef racine fill:#b5651d,stroke:#8a4d16,color:#f5f2ec; classDef service fill:#d89253,stroke:#8a4d16,color:#2c3338; classDef transverse fill:#ede9e1,stroke:#8a4d16,color:#2c3338; class CO racine; class B,F,Q,T service; class R,A,N transverse;
Un compte de stockage est une frontière de configuration avant d'être un espace disque. Tout ce qu'on y range hérite de ses réglages, ce qui rend le mélange de charges hétérogènes dans un seul compte plus coûteux qu'il n'en a l'air.

Le type de compte et le niveau de performance

Le terminal propose des hangars ordinaires et des postes spécialisés, plus chers à la journée et réservés à des flux qui ne tolèrent pas l'attente. On ne loue pas le second par confort.

Azure distingue le niveau standard, qui couvre l'immense majorité des besoins, et le niveau premium, adossé à du stockage à état solide et facturé selon la capacité provisionnée plutôt que selon le volume réellement occupé.

Type de compte Services exposés Profil Redondance disponible
Usage général v2, standard blob, fichiers, files, tables polyvalent, facturé à la consommation locale, de zone, géographique, et les variantes
Blob de blocs premium blob de blocs et d'ajout forte cadence de transactions, latence basse locale ou de zone
Partages de fichiers premium fichiers partage exigeant en entrées et sorties locale ou de zone
Blob de pages premium blob de pages accès aléatoire intensif locale

Deux conséquences se lisent directement dans cette table. Le premium n'offre pas de redondance géographique, ce qui déplace la couverture régionale vers un autre mécanisme. Et les comptes premium de blobs de blocs ne proposent pas la gradation chaud vers archive : leur donnée reste au même niveau tant qu'elle est là.

Certains choix se rattrapent, d'autres non. La redondance se change après coup, parfois via une conversion qui prend du temps. La région du compte et son niveau de performance se décident une fois pour toutes : en changer veut dire créer un autre compte et recopier. L'espace de noms hiérarchique se pose à la création, ou plus tard par une mise à niveau sans retour arrière.

La question à poser avant de créer le compte n'est pas « quel type prendre », c'est « qu'est-ce que je ne pourrai plus changer ». La liste est courte, et c'est justement pour ça qu'on l'oublie.

La redondance

Le port stocke la même palette en plusieurs exemplaires selon ce qu'il craint. Trois copies dans le même hangar protègent d'un chariot élévateur maladroit. Elles ne protègent de rien si le hangar brûle.

Azure décline exactement cette gradation, sur deux axes : combien d'emplacements physiques dans la région primaire, et existe-t-il une copie dans une seconde région.

Option Où sont les copies Contre quoi elle couvre Ce qu'elle laisse passer
Locale (LRS) trois copies dans un seul emplacement physique de la région défaillance de disque, de serveur, de baie la perte du bâtiment ou de la zone
De zone (ZRS) trois copies réparties sur trois zones de disponibilité la perte d'une zone entière, alimentation et refroidissement compris la perte de la région
Géographique (GRS) copie locale dans la région primaire, copie locale asynchrone dans la région secondaire la perte de la région primaire une panne de zone sans basculement, et la lecture de la copie distante
Géographique de zone (GZRS) copie de zone en primaire, copie locale asynchrone en secondaire la perte d'une zone et la perte de la région la lecture de la copie distante
Variantes à lecture secondaire idem, plus un point de terminaison de lecture sur la copie distante la lecture pendant l'indisponibilité de la primaire l'écriture, qui reste sur la région primaire

La durabilité annoncée grimpe avec la portée, de onze neuf pour la redondance locale à seize neuf pour les options géographiques sur une année donnée. Ces chiffres décrivent une probabilité de perte matérielle, pas une garantie de disponibilité, et surtout pas une protection contre une opération humaine.

La réplication géographique est asynchrone. Microsoft ne s'engage pas contractuellement sur le délai de propagation vers la région secondaire, ce qui signifie qu'un basculement non planifié peut laisser derrière lui les dernières écritures.

Le basculement lui-même se déclenche par le client. Une fois effectué, le compte se retrouve en redondance locale dans sa nouvelle région primaire, et il faut reconfigurer la redondance pour retrouver le niveau de couverture d'avant.

flowchart TD Q1{"Contre quelle perte
faut-il être couvert ?"} A["Un disque ou un serveur"] B["Un bâtiment ou une zone"] C["La région entière"] D["La région, avec lecture
pendant la panne"] E["Une suppression
ou une corruption"] LRS["Redondance locale"] ZRS["Redondance de zone"] GRS["Redondance géographique,
de zone si possible"] RA["Variante à lecture
sur la copie secondaire"] PROT["Suppression réversible,
versionnage, immuabilité,
sauvegarde"] Q1 --> A Q1 --> B Q1 --> C Q1 --> D Q1 --> E A --> LRS B --> ZRS C --> GRS D --> RA E --> PROT classDef question fill:#b5651d,stroke:#8a4d16,color:#f5f2ec; classDef cas fill:#ede9e1,stroke:#8a4d16,color:#2c3338; classDef reponse fill:#d89253,stroke:#8a4d16,color:#2c3338; classDef alerte fill:#a0413e,stroke:#8a4d16,color:#f5f2ec; class Q1 question; class A,B,C,D,E cas; class LRS,ZRS,GRS,RA reponse; class PROT alerte;

La branche de droite est celle qui coûte le plus cher aux équipes. Une réplication recopie fidèlement toutes les opérations, y compris la suppression et l'écrasement. Un fichier effacé par erreur disparaît de la copie locale, des trois zones et de la région secondaire, dans le même mouvement.

Une réplication protège contre la disparition du matériel. Elle n'a jamais protégé contre celui qui possède les droits d'écriture. Ce sont deux problèmes distincts, et le second se traite dans la section suivante.

Les niveaux d'accès

Le frigorifique coûte plus cher à la journée que le hangar sec, et l'entrepôt d'archives à l'autre bout du site coûte trois fois rien, à condition d'accepter d'attendre une demi-journée quand on veut ressortir un carton.

Les niveaux d'accès blob reproduisent cet arbitrage à l'octet près : plus le stockage est bon marché, plus la lecture est chère et lente.

Niveau Coût de stockage Coût des opérations et des lectures Durée minimale facturée Disponibilité de la donnée
Chaud (hot) le plus élevé le plus bas aucune immédiate
Froid (cool) inférieur supérieur 30 jours immédiate
Froid étendu (cold) encore inférieur encore supérieur 90 jours immédiate
Archive le plus bas le plus élevé 180 jours hors ligne, réhydratation obligatoire

Trois pièges reviennent systématiquement.

Le premier est la durée minimale. Descendre un blob au niveau froid puis le supprimer une semaine plus tard déclenche des frais de suppression anticipée calculés sur le reliquat de la période. Une politique de rangement trop zélée finit par coûter plus cher que l'absence de politique.

Le deuxième est le coût de lecture. Un jeu de données froid relu tous les jours par un tableau de bord revient plus cher qu'en niveau chaud, sans que la ligne de facture le dise clairement.

Le troisième est l'archive. La donnée y est hors ligne : aucune lecture n'est possible avant réhydratation, avec une priorité standard qui se compte en heures et une priorité haute plus rapide et plus chère. Un plan de reprise qui s'appuie sur des sauvegardes archivées doit intégrer ce délai dans son objectif de temps de reprise, pas le découvrir le jour J.

Le rangement se déclenche par une stratégie de cycle de vie, décrite en JSON et appliquée par la plateforme sans intervention.

{
  "rules": [
    {
      "enabled": true,
      "name": "journaux-applicatifs",
      "type": "Lifecycle",
      "definition": {
        "filters": {
          "blobTypes": [ "blockBlob" ],
          "prefixMatch": [ "logs/" ]
        },
        "actions": {
          "baseBlob": {
            "tierToCool": { "daysAfterModificationGreaterThan": 30 },
            "tierToArchive": { "daysAfterModificationGreaterThan": 180 },
            "delete": { "daysAfterModificationGreaterThan": 2555 }
          },
          "version": {
            "delete": { "daysAfterCreationGreaterThan": 90 }
          }
        }
      }
    }
  ]
}

Trente jours en chaud, six mois avant l'archive, sept ans avant la suppression, et les anciennes versions purgées au bout de trois mois. La règle s'applique aux blobs préfixés logs/, ce qui suppose une convention de nommage décidée avant que le premier fichier n'arrive.

La plateforme évalue les stratégies une fois par jour : leur effet n'est pas immédiat, et une règle écrite hier ne se juge pas ce matin. Le déclenchement sur la date de dernier accès plutôt que de dernière modification est possible, à condition d'activer au préalable le suivi des accès.

La règle de cycle de vie qui fait gagner le plus d'argent n'est pas celle qui archive, c'est celle qui supprime. Encore faut-il que quelqu'un ait osé écrire une durée de conservation.

Protéger la donnée

L'entrepôt sous douane du port a une caractéristique que les autres n'ont pas : le locataire y dépose sa marchandise, et il ne peut plus la retirer avant l'échéance, même en présentant ses papiers. Ce n'est pas une contrainte subie, c'est le service rendu.

Quatre mécanismes se superposent, du plus souple au plus rigide.

La suppression réversible conserve les blobs et les conteneurs effacés pendant une fenêtre de rétention configurable, où ils restent restaurables. C'est l'assurance contre le doigt qui glisse, et elle s'active en une case.

Le versionnage crée automatiquement une version à chaque écriture, ce qui protège de l'écrasement autant que de la suppression. Sa contrepartie est directe : chaque version est facturée, d'où la règle d'expiration des anciennes versions dans la stratégie de cycle de vie ci-dessus.

La restauration dans le temps ramène un ensemble de blobs de blocs à un état antérieur, en s'appuyant sur le versionnage, le flux de modifications et la suppression réversible. Elle se prépare, elle ne s'improvise pas au moment de l'incident.

L'immuabilité applique le modèle écrire une fois, lire plusieurs fois, via une stratégie de conservation limitée dans le temps ou une conservation légale sans échéance, au niveau du conteneur ou de la version. Une stratégie verrouillée ne peut plus être raccourcie, seulement prolongée. Microsoft indique que la fonction a été évaluée par un cabinet tiers au regard d'exigences réglementaires du secteur financier américain, notamment la règle 17a-4(f) de la SEC et les règles équivalentes de la FINRA et de la CFTC.

Reste le verrou de ressource, qui empêche la suppression du compte depuis le plan de gestion. Utile, mais à ne pas confondre avec une protection des données : un verrou n'a jamais empêché quiconque d'effacer le contenu d'un conteneur avec les bons droits.

La différence entre ces mécanismes et la redondance tient en une phrase : la redondance protège la donnée du matériel, ceux-ci la protègent des opérations légitimes menées par erreur ou par malveillance.

Accéder au compte

Sur le quai, il y a la clé passe-partout du chef de terminal, le badge nominatif d'un opérateur et le bon d'enlèvement valable pour un conteneur et une journée. Les trois ouvrent une porte, aucun ne se révoque de la même façon.

Moyen d'accès Ce qu'il autorise Comment on le retire
Clé de compte tout, sur tous les services du compte rotation des deux clés, ce qui casse tout ce qui les utilise
Signature d'accès partagé signée par une clé une portée et une durée fixées à la signature rotation de la clé signataire, ou stratégie d'accès stockée qu'on révoque
Signature de délégation d'utilisateur, signée par l'annuaire au plus ce que l'identité signataire a le droit de faire révocation de la clé de délégation ou retrait du rôle
Rôle sur les données, attribué par RBAC des opérations précises, sur une portée pouvant descendre au conteneur retrait de l'attribution, effectif sans redéploiement

La progression du tableau est aussi l'ordre dans lequel on devrait migrer. Une clé de compte est un secret partagé, non traçable à un humain, et sa rotation devient d'autant plus douloureuse que le nombre d'applications qui l'utilisent grandit.

Un détail change tout dans la conception des droits : les rôles du plan de gestion et ceux du plan de données sont distincts, mais un rôle capable de lire les clés du compte donne, de fait, un accès complet à la donnée. D'où l'intérêt de désactiver l'autorisation par clé partagée une fois les applications passées aux identités managées.

Côté réseau, la position saine se pose en trois gestes : refuser l'accès public anonyme aux conteneurs au niveau du compte, basculer les règles réseau en refus par défaut, puis exposer le compte par un point de terminaison privé, un par sous-ressource utilisée. Ce dernier point ne fonctionne que si la zone DNS privée correspondante est en place et liée au bon réseau, sujet traité avec le réseau virtuel.

Le stockage exposé publiquement n'est presque jamais une décision, c'est un défaut de configuration hérité d'un compte créé rapidement. La stratégie qui refuse cette configuration coûte moins cher que l'audit qui la découvre.

Les cas voisins

Trois services partagent une frontière avec le compte de stockage et se choisissent pour des raisons différentes.

Les partages de fichiers managés exposent un système de fichiers en SMB ou en NFS, avec une authentification adossée à un annuaire, et un mécanisme de synchronisation qui permet de garder un cache local sur un serveur sur site. C'est le remplacement direct d'un serveur de fichiers, pas un stockage applicatif.

Azure NetApp Files est un service à part, provisionné en pools de capacité avec des niveaux de service, taillé pour des charges exigeantes en latence et en débit que les partages standard ne tiennent pas. Le prix suit l'exigence.

Data Lake Storage est une option du compte plutôt qu'un produit distinct : l'espace de noms hiérarchique transforme les préfixes en répertoires réels, avec renommage atomique et listes de contrôle d'accès de type POSIX. C'est ce que réclament les moteurs analytiques. L'option se décide à la création ; l'ajouter ensuite passe par une mise à niveau qui ne se défait pas.

Ces trois voisins se choisissent sur le protocole d'accès attendu par la charge, pas sur le volume. Un applicatif qui exige un chemin de fichier ne se satisfera jamais d'une API objet, quelle que soit la souplesse du stockage blob.

Scénario B : l'incendie de SBG2, mars 2021

Dans la nuit du 9 au 10 mars 2021, un incendie se déclare sur le site strasbourgeois d'OVHcloud. Le bâtiment SBG2 est entièrement détruit, SBG1 est partiellement endommagé, et l'ensemble du site est mis hors tension, y compris les bâtiments épargnés par les flammes.

L'entreprise communique publiquement pendant l'incident. Son fondateur, Octave Klaba, publie des points de situation réguliers et recommande explicitement aux clients concernés d'activer leur plan de reprise d'activité.

Une analyse publiée par Netcraft après l'incendie recense environ 3,6 millions de sites web hébergés sur les adresses touchées, répartis sur plusieurs centaines de milliers de domaines. Beaucoup redémarrent en quelques jours. D'autres jamais.

Le point qui intéresse ce billet arrive dans les heures suivantes, chez des clients qui se croyaient couverts. Certains avaient souscrit une option de sauvegarde sans voir que la copie vivait sur le site même des serveurs sauvegardés. D'autres découvrent qu'ils n'en avaient aucune.

Le parallèle avec les options de redondance est presque scolaire. Une copie dans le même bâtiment couvre la défaillance d'un disque, pas l'incendie du bâtiment. Une copie dans un autre bâtiment du même site couvre l'incendie, mais pas la coupure d'alimentation qui met tout le campus à l'arrêt. Seule une copie dans une autre région, à distance suffisante, couvre l'événement qui emporte le site entier.

C'est très exactement l'échelle que dessinent la redondance locale, la redondance de zone (dont les zones disposent d'alimentation, de refroidissement et de réseau indépendants) et la redondance géographique. Le choix ne se fait pas sur un niveau de confort, il se fait en nommant la catastrophe contre laquelle on veut tenir.

Le fournisseur avait fait son travail de fournisseur : il proposait des options situées à des échelles différentes. La question restée sans réponse chez certains clients était plus simple, et relevait d'eux seuls : où sont physiquement mes copies, et que reste-t-il si ce lieu disparaît.

Points clés

  • Un compte de stockage porte quatre services, mais la redondance, l'authentification et l'exposition réseau s'appliquent à tout le compte. Mélanger des charges aux exigences différentes dans un seul compte revient à leur imposer le réglage le plus contraignant, ou le plus laxiste.
  • La redondance se choisit en nommant la panne : locale contre une défaillance matérielle, de zone contre la perte d'un bâtiment, géographique contre la perte d'une région. La réplication vers la seconde région est asynchrone et le basculement ramène le compte en redondance locale.
  • Aucune réplication ne protège d'une suppression. Ce rôle revient à la suppression réversible, au versionnage, à la restauration dans le temps et à l'immuabilité, qui se conçoivent séparément.
  • Les niveaux d'accès s'arbitrent sur la fréquence de lecture, pas sur l'ancienneté seule : durée minimale facturée, frais de lecture et délai de réhydratation de l'archive doivent entrer dans le calcul avant d'écrire la stratégie de cycle de vie.
  • L'incendie de SBG2 en mars 2021 a montré ce que vaut une sauvegarde hébergée sur le site qu'elle protège. Savoir où se trouvent physiquement ses copies fait partie de la conception, pas de l'exploitation.

Dans la série

Palier 2 : Construire les terminaux. Domaine : Stockage & données.


Pour aller plus loin