Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
La persistance des données écrit les données du répartiteur MQTT critiques sur le disque afin qu’elles survivent aux redémarrages du cluster. Décidez avant le déploiement si vous avez besoin de persistance des données pour le répartiteur MQTT.
La persistance complète le système de réplication du répartiteur. La réplication conserve les données disponibles sur les nœuds, mais un arrêt à l’échelle du cluster peut toujours entraîner une perte de données , la persistance empêche cela. La persistance est différente de la mémoire tampon de message sauvegardée sur disque, qui utilise le disque comme extension de mémoire et ne fournit pas de garanties de durabilité.
L’écriture de données sur disque a un coût de performances significatif. Le coût exact dépend du type et de la vitesse du stockage sous-jacent.
Important
La persistance est activée lors du déploiement et ne peut pas être désactivée par la suite. Certaines options associées peuvent être modifiées ultérieurement : consultez les options de persistance du runtime.
Paramètres de volume persistant
Le répartiteur MQTT utilise un volume persistant (PV) pour stocker des données sur le disque. Deux paramètres contrôlent la façon dont ce volume est approvisionné :
maxSize(obligatoire) : définit la taille maximale du volume persistant pour le stockage des données du répartiteur. Ce champ est toujours requis, même si vous fournissez une revendication de volume personnalisée. La valeur doit être d’au moins 100 Mo.Exemple :
10GipersistentVolumeClaimSpec(facultatif) : définit un modèle PersistentVolumeClaim (PVC) personnalisé qui contrôle la façon dont le volume persistant est provisionné. Si vous ne définissez pas cette option, le répartiteur crée un PVC par défaut à l’aide de lamaxSizevaleur et de la classe de stockage par défaut du cluster.Pour optimiser les performances, utilisez une classe de stockage sauvegardée par un provisionneur de chemin d’accès local. La classe de stockage par défaut n’est souvent pas, ce qui peut dégrader les performances.
Important
Lorsque vous spécifiez persistentVolumeClaimSpec, le mode d’accès doit être défini sur ReadWriteOncePod.
Configurer la persistance
Configurez la persistance au déploiement en utilisant la az iot ops create commande. Au minimum, définissez la taille du volume persistant :
az iot ops create ... --persist-max-size 10Gi
Pour personnaliser la classe de stockage ou le mode de persistance, ajoutez les options --persist-pvc-sc et --persist-mode :
az iot ops create ... --persist-max-size 10Gi --persist-pvc-sc <MYSTORAGECLASS> --persist-mode retain=All stateStore=None
Note
Vous pouvez également configurer ces paramètres de persistance lors des étapes de déploiement dans le portail Azure.
Pour l’ensemble complet des options, passez un fichier de configuration en utilisant --broker-config-file. Pour plus d’informations, consultez la prise en charge par Azure CLI de la configuration avancée du broker MQTT et la référence de l’API de persistance.
L’exemple suivant définit une taille maximale de 10 Gio et une classe de stockage personnalisée :
{
"persistence": {
"maxSize": "10G",
"persistentVolumeClaimSpec": {
"storageClassName": "example-storage-class",
"accessModes": [
"ReadWriteOncePod"
]
}
}
}
Encryption
Par défaut, le répartiteur MQTT chiffre toutes les données de persistance sur le disque à l’aide du chiffrement AES-256-GCM. Le chiffrement protège l’état du répartiteur et les données de session si un attaquant accède au volume sous-jacent.
Le chiffrement est activé par défaut. Vous pouvez le désactiver, mais le chiffrement ne protège que les données au repos – les données en mémoire ne sont pas chiffrées. L’impact sur les performances est minimal, mais la rotation des clés n’est pas encore prise en charge.
Note
Le chiffrement est activé par défaut lors du déploiement via le portail Azure. Vous pouvez désactiver le chiffrement dans le fichier de configuration du courtier si vous déployez en utilisant Azure CLI.
Pour désactiver le chiffrement, ajoutez le code suivant à votre fichier de configuration du broker, puis transmettez-le à az iot ops create avec l’indicateur --broker-config-file :
{
"persistence": {
"encryption": {
"mode": "Disabled"
}
}
}
Options de persistance du runtime
Certaines options de persistance ( messages conservés, files d’attente d’abonnés et magasin d’état) peuvent être configurées après le déploiement. Pour plus d’informations sur ces options, consultez Configurer la persistance du répartiteur MQTT.