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