Pular para o conteúdo principal

Azure Disks e Files

Azure Disks para bancos de dados e workloads stateful com pod único. Azure Files para armazenamento compartilhado entre pods. Escolha errado e você terá ou desempenho ruim ou complexidade desnecessária.

Azure Disks

Armazenamento de bloco que se conecta a um único node. Pense nisso como um disco rígido virtual conectado a uma VM.

Melhor para: Bancos de dados (PostgreSQL, MySQL, MongoDB), filas de mensagens, qualquer coisa sensível a IOPS com acesso de escrita única.

TierIOPSThroughputCaso de Uso
Premium SSD v2Até 80.000Até 1.200 MB/sBancos de dados em produção (melhor custo/benefício)
Premium SSDAté 20.000Até 900 MB/sWorkloads em produção com padrões previsíveis
Standard SSDAté 6.000Até 750 MB/sApenas ambientes dev/test
Ultra DiskAté 160.000Até 4.000 MB/sIOPS extremo (SAP HANA, instâncias SQL grandes)
Standard HDDAté 2.000Até 500 MB/sNunca use no AKS
Opinião

Premium SSD v2 para bancos de dados em produção -- oferece IOPS/throughput configuráveis independentes do tamanho do disco, então você não paga a mais por capacidade que não precisa só para ter mais IOPS. Standard SSD para dev/test. Nunca HDD para nada no AKS.

Exemplo de PVC: Azure Disk

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: postgres-data
spec:
accessModes:
- ReadWriteOnce
storageClassName: managed-csi
resources:
requests:
storage: 256Gi
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: postgres
spec:
template:
spec:
containers:
- name: postgres
volumeMounts:
- mountPath: /var/lib/postgresql/data
name: data
volumes:
- name: data
persistentVolumeClaim:
claimName: postgres-data

Azure Files

Compartilhamentos de arquivos em rede (SMB ou NFS) acessíveis por múltiplos pods simultaneamente.

Melhor para: Configurações compartilhadas, diretórios de conteúdo CMS, aplicações legadas que precisam de um sistema de arquivos compartilhado entre instâncias.

ProtocoloSuporte a SODesempenhoCaso de Uso
NFS 4.1Apenas LinuxMelhor para arquivos pequenos, menor latênciaWorkloads Linux que precisam de armazenamento compartilhado
SMB 3.0Linux + WindowsBom para I/O sequencial grandeContainers Windows, cross-platform
Erro Comum

Não use Azure Files para bancos de dados. A latência de rede de um compartilhamento de arquivos comparada a um disco conectado localmente vai destruir o desempenho do seu banco de dados. Use Azure Disks para qualquer coisa que faça I/O aleatório frequente.

Exemplo de PVC: Azure Files (NFS)

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: shared-content
spec:
accessModes:
- ReadWriteMany
storageClassName: azurefile-csi-premium
resources:
requests:
storage: 100Gi

Matriz de decisão

RequisitoUsePor que
Armazenamento de banco de dadosAzure Disks (Premium SSD v2)Menor latência, maior IOPS
Conteúdo compartilhado entre podsAzure Files (NFS)Acesso ReadWriteMany
Armazenamento para containers WindowsAzure Files (SMB)Única opção RWX para Windows
Dados de treinamento de ML (arquivos grandes)Azure Blob NFSMais barato para grandes conjuntos de dados
Dados temporários/cacheemptyDir ou discos efêmerosNão precisa de persistência

Ajuste de desempenho

# StorageClass personalizada para Premium SSD v2 com IOPS especificos
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: premiumv2-custom
provisioner: disk.csi.azure.com
parameters:
skuName: PremiumV2_LRS
DiskIOPSReadWrite: "5000"
DiskMBpsReadWrite: "200"
reclaimPolicy: Retain
volumeBindingMode: WaitForFirstConsumer
allowVolumeExpansion: true
informação

O Premium SSD v2 permite que você defina IOPS e throughput independentemente do tamanho do disco. Um disco de 100Gi pode ter 5000 IOPS em vez de ficar preso ao tier baseado no tamanho. Por isso é a melhor escolha para produção.

Recursos