Azure 磁盘存储 #

什么是 Azure 托管磁盘? #

Azure 托管磁盘是 Azure 提供的块级存储卷,由 Azure 管理和扩展。

text
┌─────────────────────────────────────────────────────────────┐
│                    托管磁盘概览                              │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  特点                                                        │
│  ├── 完全托管:无需管理存储账户                             │
│  ├── 高可用:99.999% SLA                                    │
│  ├── 可扩展:动态扩展                                       │
│  ├── 安全:内置加密                                         │
│  └── 快照:支持备份                                         │
│                                                             │
│  适用场景                                                    │
│  ├── 虚拟机 OS 磁盘                                         │
│  ├── 数据库存储                                             │
│  ├── 应用数据存储                                           │
│  └── 大数据处理                                             │
│                                                             │
│  与非托管磁盘对比                                            │
│  ├── 无需管理存储账户                                       │
│  ├── 自动高可用                                             │
│  ├── 简化备份                                               │
│  └── 更好的性能                                             │
│                                                             │
└─────────────────────────────────────────────────────────────┘

磁盘类型 #

标准磁盘 #

text
┌─────────────────────────────────────────────────────────────┐
│                    标准磁盘                                  │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  标准 HDD                                                    │
│  ├── 成本最低                                               │
│  ├── IOPS: 最多 500                                         │
│  ├── 吞吐量: 最多 60 MB/s                                   │
│  └── 适合: 备份、日志                                       │
│                                                             │
│  标准 SSD                                                    │
│  ├── 性价比高                                               │
│  ├── IOPS: 最多 6000                                        │
│  ├── 吞吐量: 最多 750 MB/s                                  │
│  └── 适合: Web 服务器、开发测试                             │
│                                                             │
└─────────────────────────────────────────────────────────────┘

高级磁盘 #

text
┌─────────────────────────────────────────────────────────────┐
│                    高级 SSD                                  │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  高级 SSD P1-P80                                             │
│  ├── 高性能                                                 │
│  ├── IOPS: 最多 160000                                      │
│  ├── 吞吐量: 最多 2000 MB/s                                 │
│  └── 适合: 生产数据库、企业应用                             │
│                                                             │
│  高级 SSD v2                                                 │
│  ├── 最新一代                                               │
│  ├── 可独立配置 IOPS 和吞吐量                               │
│  ├── 更低成本                                               │
│  └── 适合: 高性能数据库                                     │
│                                                             │
│  超级磁盘 (Ultra Disk)                                       │
│  ├── 最高性能                                               │
│  ├── IOPS: 最多 160000                                      │
│  ├── 吞吐量: 最多 4000 MB/s                                 │
│  └── 适合: SAP HANA、大型数据库                             │
│                                                             │
└─────────────────────────────────────────────────────────────┘

磁盘大小和性能 #

类型 大小 IOPS 吞吐量 价格/月
标准 SSD E10 128 GB 500 60 MB/s ~$10
标准 SSD E15 256 GB 500 60 MB/s ~$20
高级 SSD P10 128 GB 500 100 MB/s ~$20
高级 SSD P20 512 GB 2300 150 MB/s ~$80
高级 SSD P30 1 TB 5000 200 MB/s ~$140

创建托管磁盘 #

使用 Azure CLI #

bash
# 创建托管磁盘
az disk create \
  --resource-group myResourceGroup \
  --name myDataDisk \
  --size-gb 128 \
  --sku Premium_LRS \
  --location eastus

# 查看磁盘
az disk show \
  --resource-group myResourceGroup \
  --name myDataDisk

使用 Azure 门户 #

text
┌─────────────────────────────────────────────────────────────┐
│                    创建磁盘步骤                              │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  步骤 1: 基本信息                                            │
│  ├── 订阅选择                                               │
│  ├── 资源组选择/创建                                        │
│  ├── 磁盘名称                                               │
│  └── 区域选择                                               │
│                                                             │
│  步骤 2: 磁盘配置                                            │
│  ├── 源类型:无/快照/存储账户                               │
│  ├── 大小:32 GB - 64 TB                                    │
│  ├── SKU:标准 HDD/SSD、高级 SSD                            │
│  └── 性能:Plus 选项                                        │
│                                                             │
│  步骤 3: 加密                                                │
│  ├── 加密类型                                               │
│  └── 密钥管理                                               │
│                                                             │
│  步骤 4: 网络                                                │
│  ├── 网络访问策略                                           │
│  └── 私有端点                                               │
│                                                             │
└─────────────────────────────────────────────────────────────┘

磁盘管理 #

附加到虚拟机 #

bash
# 附加磁盘到 VM
az vm disk attach \
  --resource-group myResourceGroup \
  --vm-name myVM \
  --name myDataDisk

# 附加为数据磁盘
az vm disk attach \
  --resource-group myResourceGroup \
  --vm-name myVM \
  --name myDataDisk \
  --lun 0

# 查看附加的磁盘
az vm show \
  --resource-group myResourceGroup \
  --name myVM \
  --query "storageProfile.dataDisks"

分离磁盘 #

bash
# 分离磁盘
az vm disk detach \
  --resource-group myResourceGroup \
  --vm-name myVM \
  --name myDataDisk

调整磁盘大小 #

bash
# 调整磁盘大小
az disk update \
  --resource-group myResourceGroup \
  --name myDataDisk \
  --size-gb 256

# 在 VM 内扩展分区
# Linux
sudo growpart /dev/sdc 1
sudo resize2fs /dev/sdc1

# Windows
# 使用磁盘管理工具扩展卷

快照 #

创建快照 #

bash
# 创建磁盘快照
az snapshot create \
  --resource-group myResourceGroup \
  --name mySnapshot \
  --source myDataDisk

# 创建增量快照
az snapshot create \
  --resource-group myResourceGroup \
  --name myIncrementalSnapshot \
  --source myDataDisk \
  --sku Standard_LRS \
  --incremental true

# 列出快照
az snapshot list \
  --resource-group myResourceGroup \
  --output table

从快照恢复 #

bash
# 从快照创建磁盘
az disk create \
  --resource-group myResourceGroup \
  --name myRestoredDisk \
  --source mySnapshot

# 从快照创建 VM
az vm create \
  --resource-group myResourceGroup \
  --name myRestoredVM \
  --attach-os-disk myRestoredDisk \
  --os-type linux

磁盘加密 #

加密类型 #

text
┌─────────────────────────────────────────────────────────────┐
│                    加密类型                                  │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  平台托管密钥                                                │
│  ├── 默认选项                                               │
│  ├── Azure 管理密钥                                         │
│  └── 无需配置                                               │
│                                                             │
│  客户托管密钥                                                │
│  ├── 使用 Key Vault 密钥                                    │
│  ├── 完全控制密钥                                           │
│  └── 密钥轮换                                               │
│                                                             │
│  平台托管密钥 + 客户密钥                                     │
│  ├── 双重加密                                               │
│  └── 最高安全级别                                           │
│                                                             │
└─────────────────────────────────────────────────────────────┘

配置客户托管密钥 #

bash
# 创建 Key Vault
az keyvault create \
  --name myKeyVault \
  --resource-group myResourceGroup \
  --location eastus \
  --enable-rbac-authorization true

# 创建密钥
az keyvault key create \
  --name myDiskKey \
  --vault-name myKeyVault

# 创建使用客户密钥的磁盘加密集
az disk-encryption-set create \
  --name myDiskEncryptionSet \
  --resource-group myResourceGroup \
  --source-vault myKeyVault \
  --key-url https://myKeyVault.vault.azure.net/keys/myDiskKey

# 创建加密磁盘
az disk create \
  --resource-group myResourceGroup \
  --name myEncryptedDisk \
  --size-gb 128 \
  --sku Premium_LRS \
  --disk-encryption-set myDiskEncryptionSet

磁盘访问 #

网络访问 #

text
┌─────────────────────────────────────────────────────────────┐
│                    网络访问选项                              │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  允许公共访问                                                │
│  ├── 从任何网络访问                                         │
│  └── 默认选项                                               │
│                                                             │
│  允许专用访问                                                │
│  ├── 仅通过私有端点访问                                     │
│  └── 最安全                                                 │
│                                                             │
│  拒绝所有访问                                                │
│  ├── 禁止导出磁盘                                           │
│  └── 最高安全性                                             │
│                                                             │
└─────────────────────────────────────────────────────────────┘

创建私有端点 #

bash
# 创建磁盘访问
az disk-access create \
  --name myDiskAccess \
  --resource-group myResourceGroup \
  --location eastus

# 创建私有端点
az network private-endpoint create \
  --name myDiskPrivateEndpoint \
  --resource-group myResourceGroup \
  --vnet-name myVNet \
  --subnet default \
  --private-connection-resource-id /subscriptions/.../diskAccesses/myDiskAccess \
  --group-id disks

磁盘性能优化 #

性能调优 #

text
┌─────────────────────────────────────────────────────────────┐
│                    性能优化建议                              │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  1. 选择正确的磁盘类型                                       │
│     ├── 高 IOPS: 高级 SSD                                   │
│     └── 成本敏感: 标准 SSD                                  │
│                                                             │
│  2. 使用磁盘条带                                             │
│     └── 多磁盘并行提高性能                                  │
│                                                             │
│  3. 启用加速网络                                             │
│     └── 降低网络延迟                                        │
│                                                             │
│  4. 启用写入加速器                                           │
│     └── M 系列 VM 写入性能                                  │
│                                                             │
│  5. 使用主机缓存                                             │
│     └── 提高读写性能                                        │
│                                                             │
└─────────────────────────────────────────────────────────────┘

磁盘缓存 #

bash
# 设置磁盘缓存
az vm update \
  --resource-group myResourceGroup \
  --name myVM \
  --set storageProfile.dataDisks[0].caching=ReadWrite

# 缓存选项
# None: 无缓存
# ReadOnly: 只读缓存
# ReadWrite: 读写缓存

最佳实践 #

成本优化 #

text
┌─────────────────────────────────────────────────────────────┐
│                    成本优化建议                              │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  1. 选择合适的磁盘类型                                       │
│     └── 根据性能需求选择                                    │
│                                                             │
│  2. 定期清理未使用的磁盘                                     │
│     └── 删除分离的磁盘                                      │
│                                                             │
│  3. 使用增量快照                                             │
│     └── 降低备份成本                                        │
│                                                             │
│  4. 考虑预留容量                                             │
│     └── 长期使用折扣                                        │
│                                                             │
│  5. 使用 Spot 实例                                           │
│     └── 开发测试环境                                        │
│                                                             │
└─────────────────────────────────────────────────────────────┘

安全建议 #

text
┌─────────────────────────────────────────────────────────────┐
│                    安全最佳实践                              │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  1. 启用加密                                                 │
│     └── 使用客户托管密钥                                    │
│                                                             │
│  2. 限制网络访问                                             │
│     └── 使用私有端点                                        │
│                                                             │
│  3. 定期备份                                                 │
│     └── 创建快照                                            │
│                                                             │
│  4. 监控磁盘使用                                             │
│     └── 设置警报                                            │
│                                                             │
│  5. 控制访问权限                                             │
│     └── 使用 RBAC                                           │
│                                                             │
└─────────────────────────────────────────────────────────────┘

下一步 #

现在你已经掌握了磁盘存储的使用,接下来学习 数据库服务 了解 Azure 数据库解决方案!

最后更新:2026-03-29