Réinvention continue : brève histoire du stockage en mode bloc chez AWS
(allthingsdistributed.com)Réinvention continue : brève histoire du stockage en mode bloc chez AWS
-
Introduction
- Marc Olson travaille depuis plus de 10 ans dans l’équipe Elastic Block Store (EBS).
- EBS est passé d’un simple service de stockage en mode bloc à un système de stockage réseau à grande échelle traitant plus de 140 billions d’opérations par jour.
- Cet article partage l’évolution d’EBS et les enseignements importants qui en ont été tirés.
-
Les débuts d’EBS
- EBS a été lancé le 20 août 2008, à partir d’une idée simple : fournir un stockage en mode bloc connecté au réseau pour les instances EC2.
- À ses débuts, il utilisait des disques durs partagés (HDD) ; aujourd’hui, il peut fournir plusieurs centaines de milliers d’IOPS à une seule instance EC2.
- EBS traite désormais plus de 140 billions d’opérations par jour via une flotte distribuée de SSD.
-
Théorie des files d’attente
- La manière dont les systèmes informatiques interagissent avec le stockage n’a pas fondamentalement changé.
- Le CPU place les requêtes dans une file, puis le périphérique de stockage récupère les données depuis la mémoire du CPU pour les enregistrer sur un support durable, ou transfère les données en sens inverse vers la mémoire du CPU.
- La théorie des files d’attente joue un rôle clé pour comprendre ce processus.
-
Passage du HDD au SSD
- Au départ, EBS utilisait des HDD, dont les performances étaient limitées par des contraintes physiques.
- Avec l’arrivée des SSD, même les requêtes aléatoires ont pu être traitées presque aussi vite que les requêtes séquentielles.
- En 2012, AWS a lancé un nouveau type de serveur de stockage basé sur des SSD ainsi qu’un nouveau type de volume EBS appelé Provisioned IOPS.
-
Mesure et gestion
- En 2012, EBS ne disposait que d’une télémétrie de base.
- Pour améliorer les performances du système, il fallait d’abord identifier les problèmes, puis les traiter par ordre de priorité.
- Des méthodes de mesure des IO ont été mises en place dans plusieurs sous-systèmes, avec une surveillance continue pour détecter les changements.
-
Diviser pour mieux régner dans l’organisation
- L’équipe des serveurs de stockage EBS a été réorganisée en petites équipes focalisées sur des domaines précis comme la réplication des données, la durabilité ou l’hydratation des snapshots.
- Chaque équipe pouvait itérer et valider ses changements de manière indépendante.
-
Remettre en cause les hypothèses
- Il a été découvert que les réglages par défaut de l’hyperviseur Xen limitaient les performances.
- Les cartes d’offload Nitro ont permis de déporter vers le matériel le traitement réseau et stockage.
-
Expériences de tuning réseau
- Lors de la migration d’EBS vers Nitro, la surcharge propre au réseau a augmenté.
- Pour améliorer les performances réseau, AWS a développé le protocole SRD (Scalable Relatable Diagram) à la place de TCP.
-
Les contraintes favorisent l’innovation
- Pour faire bénéficier tous les clients des avantages du SSD, des SSD ont été ajoutés sans remplacer le matériel existant.
- Les SSD ont été ajoutés manuellement aux serveurs ; les nouvelles écritures y étaient stockées avant d’être vidées de façon asynchrone vers les HDD.
-
Réflexion sur la montée en performance
- Un récit de croissance personnelle : le passage d’une culture de petite entreprise à une organisation de grande taille.
- Des sessions de debugging entre collègues ont permis de résoudre les problèmes et d’améliorer l’efficacité de l’équipe.
-
Conclusion
- EBS a évolué non pas grâce à un unique grand changement, mais via une série d’améliorations progressives.
- Les besoins des clients continueront d’augmenter, ce qui restera un moteur pour poursuivre l’innovation et l’itération.
# Résumé de GN⁺
- Cet article offre le point de vue d’un insider sur la façon dont l’EBS d’AWS a évolué.
- Il couvre divers défis techniques et leurs solutions, notamment la théorie des files d’attente, l’adoption des SSD et le tuning réseau.
- Il souligne l’importance d’une mesure et d’une gestion continues pour améliorer les performances.
- Parmi les produits aux fonctionnalités similaires figurent Google Cloud Persistent Disk et Microsoft Azure Disk Storage.
1 commentaires
Commentaires Hacker News
Si les grands systèmes vous intéressent, cet article vaut la lecture
Pour résoudre un problème, il faut savoir ce qui ne va pas
Le projet consistant à installer des SSD sur les serveurs EBS en 2013 est l’une des histoires intéressantes d’AWS
La panne d’environ 4 jours d’AWS a été causée par EBS, ce qui a ébranlé la confiance envers AWS
Reddit a été l’un des premiers utilisateurs d’EBS en 2008
Ajouter une latence aléatoire a pour effet de réduire la latence moyenne et les valeurs aberrantes
Travailler dans une grande entreprise de l’Internet a permis d’en tirer beaucoup d’enseignements
La partie sur l’installation manuelle de SSD dans toutes les unités EBS en 2013 était intéressante
En 2009, une présentation a été donnée sur l’interne d’Amazon S3
Au début du cloud, on utilisait du matériel générique, mais désormais on utilise du matériel spécialisé pour chaque service
Le premier schéma est incorrect ou obsolète
Je cherche la meilleure façon de fournir à de nouvelles instances EC2 un répertoire de dataset rapide de 256 GB