Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Mechanizm trwałości danych zapisuje krytyczne dane brokera MQTT na dysk, dzięki czemu dane te przetrwają ponowne uruchomienia klastra. Zdecyduj przed wdrożeniem, czy potrzebujesz trwałości danych dla brokera MQTT.
Trwałość uzupełnia system replikacji brokera. Replikacja zapewnia dostępność danych między węzłami, ale zamknięcie całego klastra może nadal powodować utratę danych — trwałość zapobiega temu. Trwałość różni się od buforu komunikatów opartego na dysku, który używa dysku jako rozszerzenia pamięci i nie zapewnia gwarancji trwałości.
Zapisywanie danych na dysku ma znaczny koszt wydajności. Dokładny koszt zależy od typu i szybkości magazynu bazowego.
Important
Trwałe przechowywanie danych jest włączane podczas wdrażania i nie można go wyłączyć po wdrożeniu. Niektóre powiązane opcje można zmienić później — zobacz Opcje trwałości środowiska uruchomieniowego.
Ustawienia woluminu trwałego
Broker MQTT używa woluminu trwałego (PV) do przechowywania danych na dysku. Dwa ustawienia określają sposób udostępniania tego woluminu:
maxSize(wymagane): ustawia maksymalny rozmiar woluminu trwałego do przechowywania danych brokera. To pole jest zawsze wymagane, nawet jeśli podasz niestandardowe żądanie woluminu. Wartość musi wynosić co najmniej 100 MB.Przykład:
10GipersistentVolumeClaimSpec(opcjonalnie): Definiuje niestandardowy szablon zasobu PersistentVolumeClaim (PVC), który określa sposób udostępniania woluminu trwałego. Jeśli ta opcja nie zostanie ustawiona, broker utworzy domyślny PVC, używając wartościmaxSizei domyślnej klasy pamięci masowej klastra.Aby uzyskać najlepszą wydajność, użyj klasy pamięci masowej opartej na provisionerze Local Path. Domyślna klasa pamięci masowej często taka nie jest, co może obniżyć wydajność.
Important
Po określeniu persistentVolumeClaimSpecparametru tryb dostępu musi być ustawiony na ReadWriteOncePod.
Konfigurowanie trwałości
Konfiguruj trwałość podczas wdrożenia, używając tego az iot ops create polecenia. Ustaw co najmniej trwały rozmiar woluminu:
az iot ops create ... --persist-max-size 10Gi
Aby dostosować klasę magazynu lub tryb utrwalania, dodaj flagi --persist-pvc-sc i --persist-mode :
az iot ops create ... --persist-max-size 10Gi --persist-pvc-sc <MYSTORAGECLASS> --persist-mode retain=All stateStore=None
Note
Możesz także skonfigurować te ustawienia trwałości podczas etapów wdrażania w portalu Azure.
Aby uzyskać pełny zestaw opcji, przekażmy plik konfiguracyjny za pomocą --broker-config-file. Aby uzyskać więcej informacji, zobacz obsługę zaawansowanej konfiguracji brokera MQTT w Azure CLI oraz dokumentację interfejsu API Persistence.
W poniższym przykładzie ustawiono maksymalny rozmiar 10 GiB i niestandardową klasę magazynu:
{
"persistence": {
"maxSize": "10G",
"persistentVolumeClaimSpec": {
"storageClassName": "example-storage-class",
"accessModes": [
"ReadWriteOncePod"
]
}
}
}
Encryption
Domyślnie broker MQTT szyfruje wszystkie dane trwałości na dysku przy użyciu szyfrowania AES-256-GCM. Szyfrowanie chroni dane stanu i sesji brokera, jeśli osoba atakująca uzyska dostęp do bazowego woluminu.
Szyfrowanie jest domyślnie włączone. Możesz je wyłączyć, ale szyfrowanie chroni tylko dane spoczynkowe – dane w pamięci nie są szyfrowane. Koszt wydajności jest minimalny, ale rotacja kluczy nie jest jeszcze obsługiwana.
Note
Szyfrowanie jest domyślnie włączone podczas wdrażania za pomocą portalu Azure. Możesz wyłączyć szyfrowanie w pliku konfiguracyjnym brokera, jeśli wdrażasz za pomocą Azure CLI.
Aby wyłączyć szyfrowanie, dodaj następujący kod do pliku konfiguracyjnego brokera, a następnie przekaż go do az iot ops create z flagą --broker-config-file :
{
"persistence": {
"encryption": {
"mode": "Disabled"
}
}
}
Opcje trwałości środowiska uruchomieniowego
Niektóre opcje trwałości — komunikaty zachowane, kolejki subskrybentów i magazyn stanów — można skonfigurować po wdrożeniu. Aby uzyskać szczegółowe informacje na temat tych opcji, zobacz Konfigurowanie trwałości brokera MQTT.