13 min de lecture

Objectifs d'apprentissage

À la fin de ce module, vous serez en mesure de:

  • Associer un niveau de stockage Block Storage (HDD, SSD Standard, SSD Premium) à un modèle d'accès, et expliquer pourquoi le plancher de ~100 Go SSD modifie les calculs pour les disques de démarrage et de données.
  • Identifier les attributs de stockage qui sont immuables après la mise en service (type de stockage et zone de disponibilité) et concevoir autour d'eux.
  • Utiliser les données utilisateur cloud-init pour configurer un serveur Linux au premier démarrage, et indiquer où cloud-init s'applique et où il ne s'applique pas.
  • Attacher et configurer le stockage sur le serveur de l'unité 4.1, associer une image, et fournir des données utilisateur cloud-init dans le Data Center Designer.

Unité 4.2 : Images, disques et Cloud-Init

Introduction

Un shell de serveur est inerte jusqu'à ce qu'il dispose d'un disque pour démarrer et d'un moyen de se configurer au premier démarrage. Deux des propriétés du disque (son type de stockage et sa zone de disponibilité) sont fixes lors de la mise en service et ne peuvent pas être modifiées par la suite, ce qui fait que la disposition du disque est une décision de conception plutôt qu'une décision à l'exécution. Cette unité étend le serveur Dedicated Core de l'Unité 4.1 : elle attache un stockage, associe une image de démarrage et fournit des données d'utilisateur cloud-init afin que le serveur soit configuré plutôt qu'à l'état brut. Elle ne répète pas la création du serveur.

1. Niveaux de stockage de blocs et plancher de performance

Le stockage de blocs IONOS CLOUD est un stockage de blocs iSCSI attaché au réseau, répliqué en mode actif-actif sur deux serveurs de stockage avec RAID à l'intérieur de chaque (quatre copies physiques au total) dans une région. Il est disponible en trois niveaux, et le niveau est l'une des deux propriétés de disque que vous ne pouvez pas modifier plus tard, il est donc choisi à l'avance pour chaque disque.

La performance documentée par volume est la base pour faire correspondre le niveau au modèle d'accès :

Performance de stockage SSD Premium SSD Standard
Vitesse de lecture/écriture, séquentielle 1 MiB/s par GB à une taille de bloc de 1 MiB 0,5 MiB/s par GB à une taille de bloc de 1 MiB
Vitesse de lecture, aléatoire complet 75 IOPS par GB à une taille de bloc de 4 KiB 40 IOPS par GB à une taille de bloc de 4 KiB
Vitesse d'écriture, aléatoire complet 50 IOPS par GB à une taille de bloc de 4 KiB 30 IOPS par GB à une taille de bloc de 4 KiB
Performance de stockage Stockage HDD
Vitesse de lecture/écriture, séquentielle 200 MiB/s à une taille de bloc de 1 MiB
Vitesse de lecture/écriture, aléatoire complet, régulier 1 100 IOPS à une taille de bloc de 4 KiB
Vitesse de lecture/écriture, aléatoire complet, en rafale 2 500 IOPS à une taille de bloc de 4 KiB

Deux faits déterminent la décision d'utilisation des niveaux. Premièrement, la performance du stockage HDD est statique et indépendante de la taille du volume, alors que la performance du stockage SSD évolue avec la taille du volume : les taux par gigaoctet ci-dessus signifient qu'un petit SSD est un SSD lent. Deuxièmement, IONOS CLOUD recommande la réservation de volumes SSD d'au moins 100 Go pour obtenir le plein bénéfice ; en dessous de ce plancher, la performance est sous-optimale, c'est pourquoi les volumes SSD inférieurs à environ 100 Go ne sont pas recommandés pour les charges de travail des bases de données. Pour un volume SSD, le système prédit la performance en fonction de la taille, et pour les volumes supérieurs à 600 Go, les taux par volume sont plafonnés aux maxima documentés (un volume SSD Premium atteint un maximum de 45 000 lectures IOPS et 600 Mo/s séquentielles par volume, étant donné suffisamment de cœurs et de RAM sur le Block Storage).

La règle pratique du layout découle directement. Utilisez le stockage HDD pour les données froides ou séquentielles (sauvegardes, archives, journaux préparés pour l'exportation) où son débit indépendant du volume convient et son coût est le moins cher (0,04 EUR par Go par mois). Utilisez le SSD Standard (0,07 EUR par Go par mois) pour les charges générales et le SSD Premium (0,15 EUR par Go par mois) pour les disques sensibles à la latence et les bases de données, tout en gardant chaque volume des bases données à ou au-dessus du plancher des 100 Go afin qu'il se situe dans la bande complète. Les volumes vont d'1 GiB à 4096 GiB (4 To) ; un serveur cloud peut attacher jusqu'à 24 volumes HDD ou SSD Standard mais seulement quatre volumes SSD Premium. Les niveaux peuvent être mélangés sur un serveur cloud ; il est donc courant d'avoir un disque boot/donnees modestes en SSD Premium ainsi que des volumes HDD pour le bulk.

<!-- TRANSLATION IMPERFECT [unit-4.2-images-disks-cloudinit-2-images-immutability-and-region-locking]: keep-terms translated away (VM). Translation kept; these product names need correcting by hand. -->

2. Images, immutabilité et verrouillage de région

Un disque devient amorçable en associant une image à celui-ci : une image publique fournie par IONOS CLOUD (des distributions Linux, y compris Alma, Debian, Rocky et Ubuntu, ainsi que des images Microsoft), ou votre propre image privée téléchargée via FTPS. Les images privées et les snapshots sont verrouillées en région : ils sont utilisables dans la région où ils ont été téléchargés ou créés, et IONOS CLOUD ne crée pas de redondance inter-régionale pour eux. Si une charge de travail doit exister dans deux régions, l'image est téléchargée ou copiée dans chaque région ; il n'y a pas de réplication gérée d'images inter-régionales sur laquelle s'appuyer.

Deux propriétés de stockage sont immuables après la mise en service et doivent être correctes dès le départ :

  • Type de stockage. Vous ne pouvez pas changer un Volume entre HDD, SSD Standard et SSD Premium après sa mise en service. Un retier signifie la création d'un nouveau Volume et la migration des données.
  • Zone de disponibilité. La zone du Volume est fixée lors de sa création ; la sélection de Auto permet au système d'attribuer la zone optimale. Notez l'asymétrie héritée de l'Unité 1.2 et reprise dans le Module 5 : Block Storage offre les zones 1, 2, 3 et Auto, tandis que le calcul ne propose que les zones 1, 2 et Auto. La zone 3 de Block Storage existe ; la zone 3 de calcul n'existe pas.

La taille du Volume, en revanche, peut être augmentée après la mise en service (même sur un serveur en cours d'exécution, si le système d'exploitation le prend en charge) mais jamais réduite. Ainsi, la posture de dimensionnement sécurisée consiste à commencer de manière conservatrice et à grandir, mais jamais à sur-provisionner un disque que vous ne pouvez pas réduire. Les snapshots, le mécanisme de restauration au niveau de la VM, sont également locaux à la région et non incrémentiels : un snapshot couvre la capacité allouée totale du Volume (un Volume de 100 Go contenant 10 Go de données produit toujours un snapshot de 100 Go) et constitue un outil de restauration, et non une sauvegarde de base de données. Leur rôle dans le plan de continuité des données est abordé dans le Module 5.

3. Cloud-Init pour la configuration du premier démarrage

Cloud-init est le mécanisme qui transforme un serveur Linux fraîchement démarré à partir d'une image bare en un nœud configuré sans connexion manuelle. Vous fournissez des données utilisateur au moment de la création, et cloud-init les applique lors du premier démarrage. La limite de capacité est précise et vaut la peine d'être mentionnée : cloud-init est entièrement pris en charge sur toutes les images Linux publiques d'IONOS CLOUD, et l'injection de clés SSH s'applique aux images Linux publiques d'IONOS CLOUD. Il n'est pas pris en charge sous Windows. Pour la configuration du premier démarrage sous Windows, vous utilisez un mécanisme différent, et non cloud-init.

Les données utilisateur sont écrites sous forme de script shell ou de YAML cloud-config, et cloud-init d'IONOS CLOUD accepte plusieurs formats, notamment un script de données utilisateur (commençant par #! ou Content-Type: text/x-shellscript), des données cloud-config (commençant par #cloud-config), un fichier d'inclusion, un travail upstart, un cloud boothook et des charges utiles codées en base64 (que cloud-init décode et traite ensuite comme l'un des types pris en charge). Sur la ressource de volume, les données utilisateur de cloud-init sont définies au moment de la création du volume et sont immuables par la suite, ce qui est cohérent avec le traitement de la configuration du premier démarrage comme faisant partie du provisionnement plutôt qu'une édition ultérieure. Lorsque vous devez déboguer ce que cloud-init a fait, les journaux se trouvent à /var/log/cloud-init-output.log et /var/log/cloud-init.log.

Un cloud-config minimal qui crée l'utilisateur de l'application FinCorp et installe un paquet au premier démarrage illustre la forme ; le point architectural est que cela s'exécute exactement une fois, au premier démarrage, et est fixé sur le volume à la création :

#cloud-config
packages:
  - nginx
runcmd:
  - systemctl enable --now nginx

Parcours de mise en œuvre de DCD

Ce parcours de mise en œuvre étend le serveur Dedicated Core provisionné dans l'Unité 4.1. Il attache un volume de démarrage sur le bon niveau de stockage, associe une image Linux et fournit des données d'utilisateur cloud-init afin que le serveur d'application FinCorp arrive configuré. Le prérequis est le shell de serveur de l'Unité 4.1 dans le centre de données virtuel FinCorp. Ne recréez pas le serveur.

Objectif de construction : Attacher et configurer le stockage ; fournir des données d'utilisateur cloud-init.

Étapes (dans Data Center Designer) :

  1. Dans l'Espace de travail, sélectionnez le serveur Dedicated Core de l'Unité 4.1. À partir de la Palette, faites glisser un élément de stockage (HDD ou SSD) sur le serveur pour le connecter ; le serveur s'étend pour afficher une section de stockage.
  2. Sélectionnez le nouvel élément de stockage pour ouvrir l'Inspecteur. Donnez-lui un nom unique dans le centre de données virtuel.
  3. Choisissez le type de stockage (pour le disque de démarrage/données de l'application FinCorp, SSD Premium). Cela est immuable après la mise en service, donc confirmez le niveau maintenant.
  4. Définissez la Zone de disponibilité (Auto permet au système d'attribuer la zone optimale). Cela est également immuable après la mise en service.
  5. Définissez la Taille, en gardant un volume SSD à ou au-dessus du plancher d'environ 100 Go pour une performance complète. La taille peut être augmentée plus tard, mais jamais réduite.
  6. Sous Image, associez une image : choisissez une image Linux publique IONOS CLOUD, ou sélectionnez des images personnelles pour une image privée téléchargée. Définissez le mot de passe root/administrateur (obligatoire pour l'accès à la Console à distance) et/ou une clé SSH.
  7. Marquez le volume comme périphérique de démarrage (cliquez sur BOOT / Faire du périphérique de démarrage) afin que le serveur démarre à partir de celui-ci.
  8. Étendez le champ cloud-init / user-data et collez le script cloud-config ou user-data. Confirmez que l'image prend en charge cloud-init. Cliquez sur Mettre en service les modifications pour appliquer.

Erreurs courantes :

  • Choisir le mauvais type de stockage ou la mauvaise zone, qui sont tous deux immuables. Un changement de niveau ou un déplacement de zone signifie reconstruire le volume, et non l'éditer.
  • Mettre une base de données sur un volume SSD inférieur à 100 Go. En dessous du plancher, le SSD fonctionne à des IOPS sous-optimaux ; gardez les volumes de bases de données à ou au-dessus de 100 Go.
  • S'attendre à ce que cloud-init soit disponible sur Windows. Cloud-init est destiné aux images Linux publiques ; l'injection de clés SSH est limitée aux images Linux publiques IONOS CLOUD.
  • Supposer qu'une image est disponible partout. Les images et les instantanés privés sont verrouillés par région ; téléchargez-les ou copiez-les dans chaque région dont vous avez besoin.
  • Surprovisionner un disque pour être en sécurité. Les volumes peuvent grandir mais jamais rétrécir, donc commencez avec prudence et augmentez plus tard.

Résumé

Un serveur devient utile lorsqu'il dispose d'un disque et d'une configuration de premier démarrage. Le Block Storage est disponible en trois niveaux dont les performances et les prix diffèrent, avec des performances SSD qui varient en fonction de la taille et un plancher d'environ 100 Go qui exclut les petits SSD (et donc les petits disques de base de données) de la bande de performances complète. Le type de stockage et la zone de disponibilité sont immuables après la mise en service, tandis que la taille peut augmenter mais jamais diminuer, donc la disposition du disque est une décision de conception. Les images sont verrouillées à une région sans réplication gérée entre régions, et cloud-init configure les images Linux publiques au premier démarrage (et non Windows), définies une fois sur le volume lors de sa création. La procédure pas à pas étend le serveur de l'Unité 4.1 en un nœud d'application FinCorp configuré.

Points clés :

  • Les performances des disques HDD sont indépendantes de la taille ; les performances des SSD varient en fonction de la taille, donc un petit SSD est un SSD lent et les volumes de base de données appartiennent à ou au-dessus d'environ 100 Go.
  • Le type de stockage et la zone de disponibilité sont immuables après la mise en service ; la taille augmente mais ne diminue jamais.
  • Le Block Storage a des zones 1, 2, 3 et Auto ; le calcul n'a que des zones 1, 2 et Auto.
  • Les images et les instantanés sont verrouillés à une région, sans réplication gérée entre régions.
  • Cloud-init configure les images Linux publiques au premier démarrage (injection de clés SSH sur les images Linux publiques IONOS CLOUD) ; il n'est pas pris en charge sous Windows, et les données utilisateur sont fixes sur le volume lors de sa création.

Terminologie importante :

  • Plancher de performances des SSD : le minimum d'environ 100 Go en dessous duquel un volume SSD fonctionne à des IOPS sous-optimales ; la raison pour laquelle les petits disques de base de données sont découragés.
  • Cloud-init : le mécanisme de configuration du premier démarrage pour les images Linux publiques, fourni sous forme de données utilisateur et appliqué une fois au démarrage.
  • Image verrouillée à une région : une image ou un instantané privé utilisable uniquement dans la région où il a été téléchargé ou créé.

Lecture supplémentaire

  • Unité 4.1 : Sélection de la classe de calcul (le serveur que cette unité étend).
  • Unité 5.7 : Protection et cycle de vie des données (instantanés, sauvegarde, et PITR composés en un plan de continuité).
  • Unité 7.3 : Ingénierie des performances (planchers de performances de stockage comme un levier de latence).