Présentation de Swift
Introduction à Swift
- Swift est un système de stockage d'objets distribué et hautement disponible
- Fait partie intégrante du projet OpenStack
- Conçu pour stocker et récupérer de grandes quantités de données non structurées
- Scaling horizontal pour supporter des petaoctets de données
- Réplication automatique des données pour assurer la durabilité et la disponibilité
Utilisation et cas d'usage
- Stockage d'objets volumineux comme des images, vidéos, sauvegardes, archives, etc.
- Idéal pour les applications nécessitant une grande capacité de stockage et une disponibilité élevée
- Utilisé en conjonction avec d'autres services OpenStack comme Glance pour stocker les images de machines virtuelles
- Gestion des conteneurs et objets dans le panneau Project > Object Store > Containers
Utilisation et cas d'usage
- Intégration avec la CLI OpenStack pour la gestion des conteneurs et des objets
- Création et suppression des conteneurs :
openstack container create <container_name>
openstack container delete <container_name>
- Listing des conteneurs et des objets avec
openstack container list
openstack object list <container_name>
- Téléchargement et téléversement des objets avec
openstack object save <container_name> <object_name>
openstack object create <container_name> <object_name>
- Visualisation et gestion des conteneurs et objets via l'interface Web Horizon
Architecture et composants
- Composants principaux : serveurs Proxy, serveurs de stockage et anneau (Ring)
- Serveurs Proxy : gèrent les requêtes des clients et interagissent avec les serveurs de stockage
- Serveurs de stockage : responsables du stockage et de la récupération des objets
- Anneau (Ring) : structure de données logique qui répartit les objets sur les serveurs de stockage
- Réplication et rééquilibrage automatiques pour assurer la cohérence des données
Fonctionnement du Ring Builder dans Swift
- Création des rings
- Trois types de rings : account, container, object
- Chaque ring gère une partie spécifique du stockage
- Partitionnement
- Division de l'espace de stockage en partitions égales
- Les partitions sont des unités de base pour la distribution des données
- Répartition des partitions
- Attribution des partitions aux nœuds de stockage selon capacité et poids
- Équilibrage des réplicas sur différents nœuds et zones de stockage
Fonctionnement du Ring Builder dans Swift (2)
- Génération du fichier de configuration du ring
- Fichier de configuration pour chaque type de ring (ring.gz)
- Distribution des fichiers aux nœuds du cluster Swift
- Utilisation pour déterminer l'emplacement des objets et réplicas
- Mise à jour des rings
- Utilisation du ring builder pour mettre à jour les rings en cas de changements
- Redistribution et rééquilibrage des modifications sur le cluster
- Commandes swift-ring-builder
- Utilisées pour créer, gérer et mettre à jour les rings
- Planification et configuration importantes pour optimiser performance et disponibilité