Azure 存储账户基础 #
什么是 Azure 存储? #
Azure 存储是微软提供的云存储解决方案,提供高度可扩展、安全、持久的存储服务。
text
┌─────────────────────────────────────────────────────────────┐
│ Azure 存储概览 │
├─────────────────────────────────────────────────────────────┤
│ │
│ 存储服务 │
│ ├── Blob Storage: 对象存储 │
│ ├── Queue Storage: 消息队列 │
│ ├── Table Storage: NoSQL 键值存储 │
│ ├── File Storage: 文件共享 │
│ └── Disk Storage: 托管磁盘 │
│ │
│ 核心特点 │
│ ├── 高可用性:99.9% SLA │
│ ├── 安全性:加密、访问控制 │
│ ├── 可扩展性:PB 级存储 │
│ └── 持久性:多副本冗余 │
│ │
└─────────────────────────────────────────────────────────────┘
存储账户类型 #
账户类型对比 #
text
┌─────────────────────────────────────────────────────────────┐
│ 存储账户类型 │
├─────────────────────────────────────────────────────────────┤
│ │
│ 通用 v2 (General Purpose v2) │
│ ├── 最新标准账户类型 │
│ ├── 支持 Blob、File、Queue、Table │
│ ├── 支持所有访问层 │
│ └── 推荐 │
│ │
│ 通用 v1 (General Purpose v1) │
│ ├── 旧版账户类型 │
│ ├── 不支持访问层 │
│ └── 适合某些特定场景 │
│ │
│ BlobStorage │
│ ├── 仅支持 Blob 存储 │
│ ├── 支持访问层 │
│ └── 旧版,不推荐 │
│ │
│ BlockBlobStorage │
│ ├── 高性能 Blob 存储 │
│ ├── 支持 ZRS │
│ └── 适合高性能场景 │
│ │
│ FileStorage │
│ ├── 高性能文件存储 │
│ ├── 支持 SMB │
│ └── 适合企业文件共享 │
│ │
└─────────────────────────────────────────────────────────────┘
类型选择建议 #
| 场景 | 推荐类型 |
|---|---|
| 通用存储需求 | 通用 v2 |
| 仅 Blob 存储 | 通用 v2 |
| 高性能 Blob | BlockBlobStorage |
| 企业文件共享 | FileStorage |
冗余选项 #
冗余级别 #
text
┌─────────────────────────────────────────────────────────────┐
│ 冗余选项 │
├─────────────────────────────────────────────────────────────┤
│ │
│ LRS (本地冗余存储) │
│ ├── 同一数据中心 3 份副本 │
│ ├── 成本最低 │
│ ├── 持久性: 11 个 9 │
│ └── 适合: 可重建数据 │
│ │
│ ZRS (区域冗余存储) │
│ ├── 同一区域 3 个可用区 │
│ ├── 中等成本 │
│ ├── 持久性: 12 个 9 │
│ └── 适合: 高可用要求 │
│ │
│ GRS (异地冗余存储) │
│ ├── 主区域 LRS + 配对区域 LRS │
│ ├── 高成本 │
│ ├── 持久性: 16 个 9 │
│ └── 适合: 灾难恢复 │
│ │
│ GZRS (异地区域冗余存储) │
│ ├── 主区域 ZRS + 配对区域 LRS │
│ ├── 最高成本 │
│ ├── 持久性: 16 个 9 │
│ └── 适合: 最高可用性要求 │
│ │
└─────────────────────────────────────────────────────────────┘
冗余对比 #
| 冗余类型 | 副本数 | 跨区域 | 跨可用区 | 成本 |
|---|---|---|---|---|
| LRS | 3 | ❌ | ❌ | 低 |
| ZRS | 3 | ❌ | ✅ | 中 |
| GRS | 6 | ✅ | ❌ | 高 |
| GZRS | 6 | ✅ | ✅ | 最高 |
访问层 #
Blob 访问层 #
text
┌─────────────────────────────────────────────────────────────┐
│ Blob 访问层 │
├─────────────────────────────────────────────────────────────┤
│ │
│ 热层 (Hot) │
│ ├── 存储成本高,访问成本低 │
│ ├── 适合频繁访问的数据 │
│ └── 示例: 活跃网站内容 │
│ │
│ 冷层 (Cool) │
│ ├── 存储成本低,访问成本高 │
│ ├── 最少存储 30 天 │
│ └── 示例: 短期备份 │
│ │
│ 冷层 (Cold) │
│ ├── 存储成本更低 │
│ ├── 最少存储 90 天 │
│ └── 示例: 长期备份 │
│ │
│ 归档层 (Archive) │
│ ├── 存储成本最低 │
│ ├── 最少存储 180 天 │
│ ├── 解冻需要时间 │
│ └── 示例: 合规归档 │
│ │
└─────────────────────────────────────────────────────────────┘
访问层定价对比 #
| 访问层 | 存储成本/GB | 操作成本 | 检索成本 |
|---|---|---|---|
| 热 | $0.0184 | 低 | 无 |
| 冷 | $0.01 | 中 | 有 |
| 冷层 | $0.0045 | 高 | 有 |
| 归档 | $0.00099 | 最高 | 最高 |
创建存储账户 #
使用 Azure CLI #
bash
# 创建资源组
az group create --name myResourceGroup --location eastus
# 创建存储账户
az storage account create \
--name mystorageaccount \
--resource-group myResourceGroup \
--location eastus \
--sku Standard_LRS \
--kind StorageV2 \
--access-tier Hot
# 查看存储账户
az storage account show \
--name mystorageaccount \
--resource-group myResourceGroup
使用 Azure 门户 #
text
┌─────────────────────────────────────────────────────────────┐
│ 创建存储账户步骤 │
├─────────────────────────────────────────────────────────────┤
│ │
│ 步骤 1: 基本信息 │
│ ├── 订阅选择 │
│ ├── 资源组选择/创建 │
│ ├── 存储账户名称(全局唯一) │
│ ├── 区域选择 │
│ ├── 性能:标准/高级 │
│ └── 账户类型:StorageV2 等 │
│ │
│ 步骤 2: 冗余 │
│ ├── LRS/ZRS/GRS/GZRS │
│ └── 可选:故障转移 │
│ │
│ 步骤 3: 高级 │
│ ├── 访问层:热/冷 │
│ ├── 安全设置 │
│ └── 虚拟网络 │
│ │
│ 步骤 4: 网络 │
│ ├── 公网访问 │
│ ├── 虚拟网络规则 │
│ └── 防火墙规则 │
│ │
│ 步骤 5: 数据保护 │
│ ├── 软删除 │
│ ├── 版本控制 │
│ └── 备份 │
│ │
└─────────────────────────────────────────────────────────────┘
存储账户密钥 #
获取访问密钥 #
bash
# 获取存储账户密钥
az storage account keys list \
--resource-group myResourceGroup \
--account-name mystorageaccount \
--output table
# 获取连接字符串
az storage account show-connection-string \
--resource-group myResourceGroup \
--name mystorageaccount \
--output tsv
使用连接字符串 #
bash
# 设置环境变量
export AZURE_STORAGE_CONNECTION_STRING="DefaultEndpointsProtocol=https;AccountName=mystorageaccount;AccountKey=xxx;EndpointSuffix=core.windows.net"
# 使用连接字符串操作
az storage container list
安全配置 #
访问控制 #
text
┌─────────────────────────────────────────────────────────────┐
│ 访问控制选项 │
├─────────────────────────────────────────────────────────────┤
│ │
│ 存储账户密钥 │
│ ├── 完全访问权限 │
│ ├── 适合内部应用 │
│ └── 定期轮换 │
│ │
│ 共享访问签名 (SAS) │
│ ├── 细粒度权限 │
│ ├── 时间限制 │
│ └── 适合临时共享 │
│ │
│ Azure AD 集成 │
│ ├── 基于角色的访问 │
│ ├── 细粒度控制 │
│ └── 推荐 │
│ │
│ 公共访问 │
│ ├── 匿名读取 │
│ ├── 仅 Blob │
│ └── 谨慎使用 │
│ │
└─────────────────────────────────────────────────────────────┘
启用安全功能 #
bash
# 启用安全传输
az storage account update \
--name mystorageaccount \
--resource-group myResourceGroup \
--https-only true
# 禁用公共访问
az storage account update \
--name mystorageaccount \
--resource-group myResourceGroup \
--allow-blob-public-access false
# 启用软删除
az storage account blob-service-properties update \
--account-name mystorageaccount \
--enable-delete-retention true \
--delete-retention-days 7
性能层级 #
标准与高级对比 #
text
┌─────────────────────────────────────────────────────────────┐
│ 性能层级 │
├─────────────────────────────────────────────────────────────┤
│ │
│ 标准性能 │
│ ├── 使用 HDD/SSD 混合 │
│ ├── 成本较低 │
│ ├── IOPS: 最多 20000 │
│ └── 适合: 大多数工作负载 │
│ │
│ 高级性能 │
│ ├── 使用 SSD │
│ ├── 更高 IOPS 和吞吐量 │
│ ├── IOPS: 最多 100000 │
│ └── 适合: 高性能应用 │
│ │
└─────────────────────────────────────────────────────────────┘
最佳实践 #
命名规则 #
text
┌─────────────────────────────────────────────────────────────┐
│ 命名规则 │
├─────────────────────────────────────────────────────────────┤
│ │
│ 存储账户名称 │
│ ├── 3-24 个字符 │
│ ├── 仅小写字母和数字 │
│ ├── 全局唯一 │
│ └── 示例: mystorageaccount123 │
│ │
│ 容器名称 │
│ ├── 3-63 个字符 │
│ ├── 小写字母、数字、连字符 │
│ └── 示例: my-container-2024 │
│ │
│ Blob 名称 │
│ ├── 1-1024 个字符 │
│ ├── 大小写敏感 │
│ └── 示例: images/2024/photo.jpg │
│ │
└─────────────────────────────────────────────────────────────┘
成本优化 #
text
┌─────────────────────────────────────────────────────────────┐
│ 成本优化建议 │
├─────────────────────────────────────────────────────────────┤
│ │
│ 1. 选择正确的访问层 │
│ └── 根据访问频率选择 │
│ │
│ 2. 使用生命周期策略 │
│ └── 自动迁移到低成本层 │
│ │
│ 3. 选择合适的冗余 │
│ └── 平衡成本和可用性 │
│ │
│ 4. 监控存储使用 │
│ └── 清理未使用数据 │
│ │
│ 5. 使用预留容量 │
│ └── 长期存储折扣 │
│ │
└─────────────────────────────────────────────────────────────┘
下一步 #
现在你已经了解了存储账户的基础,接下来学习 Blob 存储 掌握对象存储的使用!
最后更新:2026-03-29