Étiquettes de stockage
Présentation
La fonctionnalité d’étiquettes de stockage permet d’utiliser uniquement certains nœuds ou disques pour stocker les données des volumes Longhorn. Par exemple, les données sensibles à la performance peuvent utiliser uniquement les disques haute performance qui peuvent être étiquetés comme fast, ssd ou nvme, ou uniquement le nœud haute performance étiqueté comme baremetal.
Cette fonctionnalité prend en charge à la fois les disques et les nœuds.
Installation
Les étiquettes peuvent être configurées à l’aide de l’interface utilisateur Longhorn :
-
Nœud -> Sélectionner un nœud -> Modifier le nœud et les disques
-
Cliquez sur
+Nouvelle étiquette de nœudou+Nouvelle étiquette de disquepour ajouter de nouvelles étiquettes.
Toutes les répliques programmées existantes sur le nœud ou le disque ne seront pas affectées par les nouvelles étiquettes.
Syntaxe
Lorsque plusieurs étiquettes sont spécifiées pour un volume, le disque et le nœud (auquel le disque appartient) doivent avoir toutes les étiquettes spécifiées pour devenir utilisables.
UI
Lors de la création d’un volume, spécifiez l’étiquette de disque et l’étiquette de nœud dans l’interface utilisateur.
Kubernetes
Utilisez les paramètres StorageClass de Kubernetes pour spécifier les étiquettes.
Vous pouvez spécifier des étiquettes dans la StorageClass Longhorn par défaut en ajoutant le paramètre nodeSelector: "storage,fast" dans le ConfigMap nommé longhorn-storageclass.
Par exemple :
apiVersion: v1
kind: ConfigMap
data:
storageclass.yaml: |
kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
name: longhorn
annotations:
storageclass.kubernetes.io/is-default-class: "true"
provisioner: driver.longhorn.io
allowVolumeExpansion: true
reclaimPolicy: "Delete"
volumeBindingMode: Immediate
parameters:
numberOfReplicas: "3"
staleReplicaTimeout: "480"
diskSelector: "ssd"
nodeSelector: "storage,fast"
Si Longhorn est installé via Helm, vous pouvez y parvenir en modifiant persistence.defaultNodeSelector dans values.yaml.
Alternativement, un paramètre storageClass personnalisé peut être utilisé, par exemple :
kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
name: longhorn-fast
provisioner: driver.longhorn.io
parameters:
numberOfReplicas: "3"
staleReplicaTimeout: "480" # 8 hours in minutes
diskSelector: "ssd"
nodeSelector: "storage,fast"