Aller au contenu

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é