Provisionnement
Le provisionnement dans Trident comporte deux phases principales. La première phase associe une classe de stockage à l'ensemble des pools de stockage back-end appropriés et effectue la préparation nécessaire avant le provisionnement. La deuxième phase inclut la création du volume et nécessite le choix d'un pool de stockage parmi ceux associés à la classe de stockage du volume en attente.
Association de classe de stockage
L'association de pools de stockage back-end à une classe de stockage dépend à la fois des attributs demandés de la classe de stockage et des storagePools
listes , additionalStoragePools
et excludeStoragePools
. Lorsque vous créez une classe de stockage, Trident compare les attributs et les pools proposés par chacun de ses systèmes back-end à ceux requis par la classe de stockage. Si les attributs et le nom d'un pool de stockage correspondent à tous les attributs et noms de pool demandés, Trident ajoute ce pool de stockage à l'ensemble des pools de stockage appropriés pour cette classe de stockage. De plus, Trident ajoute à cet ensemble tous les pools de stockage répertoriés dans additionalStoragePools
la liste, même si leurs attributs ne remplissent pas la totalité ou l'un des attributs demandés de la classe de stockage. Vous devez utiliser cette excludeStoragePools
liste pour remplacer et supprimer les pools de stockage qui ne sont pas utilisés pour une classe de stockage. Trident effectue un processus similaire chaque fois que vous ajoutez un nouveau système back-end, en vérifiant si ses pools de stockage satisfont à ceux des classes de stockage existantes et en supprimant les éléments marqués comme exclus.
Création du volume
Trident utilise ensuite les associations entre les classes de stockage et les pools de stockage pour déterminer où provisionner les volumes. Lorsque vous créez un volume, Trident obtient d'abord l'ensemble des pools de stockage pour la classe de stockage de ce volume. Si vous spécifiez un protocole pour le volume, Trident supprime les pools de stockage qui ne peuvent pas fournir le protocole demandé (par exemple, un système back-end NetApp HCI/SolidFire ne peut pas fournir de volume basé sur des fichiers alors qu'un système back-end ONTAP ne peut pas fournir de volume basé sur des blocs). Trident répartit de manière aléatoire l'ordre de ce jeu de résultats, pour faciliter une distribution homogène des volumes, puis effectue des itérations via celui-ci, en essayant de provisionner le volume sur chaque pool de stockage à son tour. S'il réussit sur un, il retourne avec succès, en enregistrant les échecs rencontrés dans le processus. Trident renvoie une défaillance uniquement si il ne parvient pas à provisionner sur tous les pools de stockage disponibles pour la classe et le protocole de stockage demandés.