Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
La persistenza dei dati scrive i dati critici del broker MQTT su disco in modo da sopravvivere ai riavvii del cluster. Decidere prima della distribuzione se è necessaria la persistenza dei dati per il broker MQTT.
La persistenza integra il sistema di replica del broker. La replicazione mantiene i dati disponibili fra i nodi, ma un arresto dell’intero cluster può comunque causare la perdita di dati — la persistenza lo impedisce. La persistenza è diversa dal buffer dei messaggi supportato dal disco, che usa il disco come estensione della memoria e non offre garanzie di durabilità.
La scrittura di dati su disco comporta un costo significativo per le prestazioni. Il costo esatto dipende dal tipo e dalla velocità dell'archiviazione sottostante.
Importante
La persistenza è abilitata durante la distribuzione e non può essere disattivata in seguito. Alcune opzioni correlate possono essere modificate in un secondo momento. Vedere Opzioni di persistenza del runtime.
Impostazioni del volume permanente
Il broker MQTT usa un volume permanente (PV) per archiviare i dati su disco. Due impostazioni controllano la modalità di provisioning di questo volume:
maxSize(obbligatorio): imposta le dimensioni massime del volume permanente per l'archiviazione dei dati del broker. Questo campo è sempre obbligatorio, anche se si specifica un'attestazione di volume personalizzata. Il valore deve essere almeno 100 MB.Esempio:
10GipersistentVolumeClaimSpec(facoltativo): definisce un modello personalizzato persistentVolumeClaim (PVC) che controlla la modalità di provisioning del volume permanente. Se non si imposta questa opzione, il broker crea un PVC predefinito usando ilmaxSizevalore e la classe di archiviazione predefinita del cluster.Per ottenere prestazioni ottimali, usare una classe di archiviazione supportata da un provisioner del percorso locale. La classe di archiviazione predefinita spesso non è ottimale, il che può peggiorare le prestazioni.
Importante
Quando si specifica persistentVolumeClaimSpec, la modalità di accesso deve essere impostata su ReadWriteOncePod.
Configurare la persistenza
Configurare la persistenza in fase di distribuzione con il az iot ops create comando . Impostare almeno le dimensioni del volume persistente:
az iot ops create ... --persist-max-size 10Gi
Per personalizzare la classe di archiviazione o la modalità persistente, aggiungere i --persist-pvc-sc flag e --persist-mode :
az iot ops create ... --persist-max-size 10Gi --persist-pvc-sc <MYSTORAGECLASS> --persist-mode retain=All stateStore=None
Per il set completo di opzioni, passare un file di configurazione con --broker-config-file. Per altre informazioni, vedi il supporto di interfaccia della riga di comando di Azure per la configurazione avanzata del broker MQTT e il riferimento dell'API Persistence.
L'esempio seguente imposta una dimensione massima di 10 GiB e una classe di archiviazione personalizzata:
{
"persistence": {
"maxSize": "10G",
"persistentVolumeClaimSpec": {
"storageClassName": "example-storage-class",
"accessModes": [
"ReadWriteOncePod"
]
}
}
}
Encryption
Per impostazione predefinita, il broker MQTT crittografa tutti i dati di persistenza su disco usando la crittografia AES-256-GCM. La crittografia protegge lo stato del broker e i dati della sessione se un utente malintenzionato ottiene l'accesso al volume sottostante.
La crittografia è attivata per impostazione predefinita. È possibile disabilitarla, ma la crittografia protegge solo i dati inattivi. I dati in memoria non vengono crittografati. Il costo delle prestazioni è minimo, ma la rotazione delle chiavi non è ancora supportata.
Per disabilitare la crittografia, aggiungere quanto segue al file di configurazione del broker, quindi passarlo ad az iot ops create con il --broker-config-file flag :
{
"persistence": {
"encryption": {
"mode": "Disabled"
}
}
}
Opzioni di persistenza del runtime
Alcune opzioni di persistenza, ovvero messaggi conservati, code del sottoscrittore e archivio stati, possono essere configurate dopo la distribuzione. Per informazioni dettagliate su queste opzioni, vedere Configurare la persistenza del broker MQTT.