Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die Datenpersistenz schreibt kritische MQTT-Brokerdaten auf den Datenträger, sodass sie Clusterneustarts überlebt. Entscheiden Sie vor der Bereitstellung, ob Sie datenpersistenz für den MQTT-Broker benötigen.
Persistenz ergänzt das Replikationssystem des Brokers. Die Replikation hält Daten über Knoten hinweg zur Verfügung, aber ein clusterweites Herunterfahren kann trotzdem zu Datenverlust führen – Persistenz verhindert dies. Die Persistenz unterscheidet sich vom Datenträger-gesicherten Nachrichtenpuffer, der Datenträger als Erweiterung des Arbeitsspeichers verwendet und keine Dauerhaftigkeitsgarantien bietet.
Das Schreiben von Daten auf den Datenträger hat erhebliche Leistungskosten. Die genauen Kosten hängen vom Typ und der Geschwindigkeit des zugrunde liegenden Speichers ab.
Wichtig
Persistenz ist bei der Bereitstellung aktiviert und kann danach nicht deaktiviert werden. Einige verwandte Optionen können später geändert werden – siehe Laufzeitpersistenzoptionen.
Einstellungen für beständiges Volume
Der MQTT-Broker verwendet ein persistentes Volume (PV), um Daten auf dem Datenträger zu speichern. Mit zwei Einstellungen wird gesteuert, wie dieses Volume bereitgestellt wird:
maxSize(erforderlich): Legt die maximale Größe des persistenten Volumes zum Speichern von Brokerdaten fest. Dieses Feld ist immer erforderlich, auch wenn Sie einen benutzerdefinierten Volumeanspruch angeben. Der Wert muss mindestens 100 MB betragen.Beispiel:
10GipersistentVolumeClaimSpec(optional): Definiert eine benutzerdefinierte PersistentVolumeClaim (PVC)-Vorlage, die steuert, wie das persistente Volume bereitgestellt wird. Wenn Sie diese Option nicht festlegen, erstellt der Broker ein Standard-PVC mithilfe desmaxSizeWerts und der Standardspeicherklasse des Clusters.Um eine optimale Leistung zu erzielen, verwenden Sie eine Speicherklasse, die von einem lokalen Pfadbereitstellungsmodul unterstützt wird. Die Standardspeicherklasse ist häufig nicht optimal, was die Leistung beeinträchtigen kann.
Wichtig
Wenn Sie persistentVolumeClaimSpec angeben, muss der Zugriffsmodus auf ReadWriteOncePod festgelegt sein.
Konfigurieren der Persistenz
Konfigurieren Sie die Persistenz bei der Bereitstellung mit dem Befehl.az iot ops create Legen Sie mindestens die persistente Volumegröße fest:
az iot ops create ... --persist-max-size 10Gi
Um die Speicherklasse oder den Persistenzmodus anzupassen, fügen Sie die Flags --persist-pvc-sc und --persist-mode hinzu:
az iot ops create ... --persist-max-size 10Gi --persist-pvc-sc <MYSTORAGECLASS> --persist-mode retain=All stateStore=None
Note
Sie können diese Persistenzeinstellungen auch während der Bereitstellungsschritte im Azure-Portal konfigurieren.
Für den vollständigen Optionssatz übergeben Sie eine Konfigurationsdatei mit --broker-config-file. Weitere Informationen finden Sie unter Azure CLI Unterstützung für die erweiterte MQTT-Brokerkonfiguration und die Persistence-API-Referenz.
Im folgenden Beispiel wird eine maximale Größe von 10 GiB und eine benutzerdefinierte Speicherklasse festgelegt:
{
"persistence": {
"maxSize": "10G",
"persistentVolumeClaimSpec": {
"storageClassName": "example-storage-class",
"accessModes": [
"ReadWriteOncePod"
]
}
}
}
Encryption
Standardmäßig verschlüsselt der MQTT-Broker alle Persistenzdaten auf dem Datenträger mithilfe der AES-256-GCM-Verschlüsselung. Verschlüsselung schützt Brokerstatus- und Sitzungsdaten, wenn ein Angreifer Zugriff auf das zugrunde liegende Volume erhält.
Die Verschlüsselung ist standardmäßig aktiviert. Du kannst es deaktivieren, aber Verschlüsselung schützt nur die Daten im Ruhezustand – die Daten im Speicher sind nicht verschlüsselt. Die Leistungseinbußen sind minimal, aber die Schlüsselrotation wird noch nicht unterstützt.
Note
Die Verschlüsselung ist standardmäßig aktiviert, wenn man über das Azure-Portal bereitstellt. Sie können die Verschlüsselung in der Broker-Konfigurationsdatei deaktivieren, wenn Sie mit der Azure CLI deployen.
Um die Verschlüsselung zu deaktivieren, fügen Sie den folgenden Code Ihrer Broker-Konfigurationsdatei hinzu und übergeben Sie ihn dann mit der -Flag an --broker-config-file:
{
"persistence": {
"encryption": {
"mode": "Disabled"
}
}
}
Laufzeitpersistenzoptionen
Einige Persistenzoptionen – beibehaltene Nachrichten, Abonnentenwarteschlangen und Zustandsspeicher – können nach der Bereitstellung konfiguriert werden. Ausführliche Informationen zu diesen Optionen finden Sie unter Konfigurieren der MQTT-Brokerpersistenz.