Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
A persistência de dados grava dados críticos do agente MQTT no disco para que ele sobreviva às reinicializações do cluster. Decida antes da implantação se você precisa de persistência de dados para o agente MQTT.
A persistência complementa o sistema de replicação do broker. A replicação mantém os dados disponíveis em todos os nós, mas um desligamento de todo o cluster ainda pode causar perda de dados — a persistência evita isso. A persistência é diferente do buffer de mensagens com suporte em disco, que usa o disco como uma extensão de memória e não fornece garantias de durabilidade.
Gravar dados em disco tem um custo de desempenho significativo. O custo exato depende do tipo e da velocidade do armazenamento subjacente.
Importante
A persistência está habilitada na implantação e não pode ser desativada posteriormente. Algumas opções relacionadas podem ser alteradas posteriormente — confira as opções de persistência do Runtime.
Configurações de volume persistente
O broker MQTT usa um volume persistente para armazenar dados em disco. Duas configurações controlam como esse volume é provisionado:
maxSize(obrigatório): define o tamanho máximo do volume persistente para armazenar dados do broker. Esse campo é sempre necessário, mesmo que você forneça uma declaração de volume personalizada. O valor deve ter pelo menos 100 MB.Exemplo:
10GipersistentVolumeClaimSpec(opcional): define um modelo de PVC (PersistentVolumeClaim) personalizado que controla como o volume persistente é provisionado. Se você não definir essa opção, o broker criará um PVC padrão usando o valormaxSizee a classe de armazenamento padrão do cluster.Para obter melhor desempenho, use uma classe de armazenamento apoiada por um provisionador de caminho local. A classe de armazenamento padrão geralmente não é, o que pode prejudicar o desempenho.
Importante
Quando você especificar persistentVolumeClaimSpec, o modo de acesso deve ser definido como ReadWriteOncePod.
Configurar persistência
Configure a persistência na implantação usando o az iot ops create comando. No mínimo, defina o tamanho do volume persistente:
az iot ops create ... --persist-max-size 10Gi
Para personalizar a classe de armazenamento ou o modo de persistência, adicione os sinalizadores --persist-pvc-sc e --persist-mode:
az iot ops create ... --persist-max-size 10Gi --persist-pvc-sc <MYSTORAGECLASS> --persist-mode retain=All stateStore=None
Note
Você também pode configurar essas configurações de persistência durante as etapas de implantação no portal do Azure.
Para o conjunto completo de opções, passe um arquivo de configuração usando --broker-config-file. Para obter mais informações, consulte o suporte da CLI do Azure para a configuração avançada do broker MQTT e a referência da API de Persistência.
O exemplo a seguir define um tamanho máximo de 10 GiB e uma classe de armazenamento personalizada:
{
"persistence": {
"maxSize": "10G",
"persistentVolumeClaimSpec": {
"storageClassName": "example-storage-class",
"accessModes": [
"ReadWriteOncePod"
]
}
}
}
Criptografia
Por padrão, o agente MQTT criptografa todos os dados de persistência no disco usando a criptografia AES-256-GCM. A criptografia protege o estado do broker e os dados da sessão caso um invasor obtenha acesso ao volume subjacente.
A criptografia está ativada por padrão. Você pode desativá-lo, mas a criptografia só protege dados em repouso – dados na memória não são criptografados. O custo de desempenho é mínimo, mas ainda não há suporte para a rotação de chaves.
Note
A criptografia é ativada por padrão ao implantar usando o portal Azure. Você pode desabilitar a criptografia no arquivo de configuração do corretor se implantar usando o CLI do Azure.
Para desabilitar a criptografia, adicione o seguinte código ao arquivo de configuração do broker e, em seguida, passe-o para az iot ops create com a flag --broker-config-file:
{
"persistence": {
"encryption": {
"mode": "Disabled"
}
}
}
Opções de persistência de runtime
Algumas opções de persistência — mensagens retidas, filas de assinantes e repositório de estado — podem ser configuradas após a implantação. Para obter detalhes sobre essas opções, consulte Configurar a persistência do agente MQTT.