云存储服务
对象存储、块存储、文件存储、归档存储、存储分层策略、数据生命周期管理、跨区域复制与一致性。
1. 云存储服务分类
1.1 存储类型对比
| 类型 | 访问方式 | 延迟 | 吞吐 | 适用场景 |
|---|---|---|---|---|
| 对象存储 | REST API | 10-100ms | 高 | 图片/视频/备份/数据湖 |
| 块存储 | 块设备接口 | <1ms | 中高 | 数据库/虚拟机磁盘 |
| 文件存储 | NFS/SMB | 1-10ms | 中 | 共享文件/内容管理 |
| 归档存储 | 异步恢复 | 分钟-小时 | 低 | 合规归档/冷数据 |
1.2 存储层级
┌──────────────────────────────────────────────────┐
│ 云存储层级(从热到冷) │
├──────────────────────────────────────────────────┤
│ 标准/热存储 ← 频繁访问,低延迟 │
│ 低频/温存储 ← 月访问1-2次,检索费 │
│ 归档/冷存储 ← 年访问1-2次,恢复需小时 │
│ 深度归档 ← 极少访问,合规保留 │
└──────────────────────────────────────────────────┘
成本递减 ──────────────────────────► 存取成本递增
2. 对象存储
2.1 核心概念
┌──────────────────────────────────────────┐
│ 对象存储模型 │
│ │
│ Bucket (桶) │
│ ├── Object (对象) │
│ │ ├── Data (数据) │
│ │ ├── Key (键名) │
│ │ ├── Metadata (元数据) │
│ │ └── Version ID (版本ID) │
│ └── Object ... │
└──────────────────────────────────────────┘
各云厂商对象存储对照:
| AWS | 阿里云 | GCP | Azure |
|---|---|---|---|
| S3 | OSS | Cloud Storage | Blob Storage |
2.2 S3 存储类
| 存储类 | 最小存储期 | 检索费 | 可用性 | 典型用途 |
|---|---|---|---|---|
| S3 Standard | 无 | 无 | 99.99% | 热数据 |
| S3 Intelligent | 无 | 无 | 99.9% | 访问模式不明 |
| S3 Standard-IA | 30天 | 有 | 99.9% | 低频访问 |
| S3 One Zone-IA | 30天 | 有 | 99.5% | 可重建的低频数据 |
| S3 Glacier Instant | 90天 | 有 | 99.9% | 需即时检索的归档 |
| S3 Glacier Flexible | 90天 | 有 | 99.99% | 归档(分钟-小时恢复) |
| S3 Glacier Deep Archive | 180天 | 有 | 99.99% | 长期归档(12小时恢复) |
2.3 S3 数据一致性
S3 提供强一致性读写:
- 写后读一致性:新对象写入后立即可读
- 覆盖写后读一致性:覆盖已有对象后立即可读
- 删除一致性:删除后立即不可读
2.4 S3 性能优化
多部分上传:
大文件(>100MB)应使用多部分上传:
┌──────────────────────────────────────┐
│ Part 1 (5MB) ──► S3 │
│ Part 2 (5MB) ──► S3 │
│ Part 3 (5MB) ──► S3 │
│ ... │
│ Part N (5MB) ──► S3 │
│ │
│ Complete Multipart Upload ──► S3 │
└──────────────────────────────────────┘
- 最小分片大小:5MB(最后一个分片除外)
- 最大分片数量:10,000
- 最大对象大小:5TB
S3 Transfer Acceleration:利用 CloudFront 边缘节点加速跨区域上传。
S3 请求速率:
通过前缀分散可线性提升吞吐:
2.5 S3 安全
- 服务端加密:SSE-S3(AES-256)、SSE-KMS(客户管理密钥)、SSE-C(客户提供密钥)
- 客户端加密:上传前在客户端加密
- 预签名 URL:临时授权访问
- Bucket Policy:细粒度访问控制
- VPC Endpoint:私有网络访问,不经公网
- Object Lock:WORM(一次写多次读)合规保留
3. 块存储
3.1 EBS(Elastic Block Store)
EBS 是 AWS 的块存储服务,作为 EC2 实例的持久化磁盘:
| 卷类型 | 最大 IOPS | 最大吞吐 | 最大容量 | 适用场景 |
|---|---|---|---|---|
| gp3 | 16,000 | 1,000 MB/s | 16 TB | 通用 SSD |
| io2 Block Express | 256,000 | 4,000 MB/s | 64 TB | 高性能数据库 |
| st1 | 500 | 500 MB/s | 16 TB | 吞吐优化 HDD |
| sc1 | 250 | 250 MB/s | 16 TB | 冷 HDD |
gp3 独立配置 IOPS 和吞吐:
3.2 EBS 快照
EBS 快照是增量备份,存储在 S3 中:
全量快照1: [A][B][C][D] ← 包含所有数据块
增量快照2: [B'][E] ← 仅包含变更块
增量快照3: [C'][F] ← 仅包含变更块
恢复快照3: [A][B'][C'][D][E][F] ← 合并所有快照的块
快照成本:
3.3 多挂载卷
io2 卷支持多实例同时挂载(Multi-Attach):
- 最多 16 个实例同时读写
- 需要集群文件系统(如 OCFS2、GFS2)
- 适用于 Oracle RAC、SAP HANA 等共享存储场景
4. 文件存储
4.1 EFS(Elastic File System)
AWS EFS 是托管 NFS 文件系统:
┌──────────────────────────────────────────┐
│ EFS │
│ ┌─────────────────────────────────────┐ │
│ │ 文件系统 (自动伸缩) │ │
│ │ /data/ │ │
│ │ ├── app1/ │ │
│ │ ├── app2/ │ │
│ │ └── shared/ │ │
│ └─────────────────────────────────────┘ │
│ ▲ ▲ ▲ │
│ │ │ │ │
│ ┌────┴───┐ ┌──┴────┐ ┌┴──────┐ │
│ │ EC2-1 │ │ EC2-2 │ │ ECS │ │
│ │ mount │ │ mount │ │ mount │ │
│ └────────┘ └───────┘ └───────┘ │
└──────────────────────────────────────────┘
EFS 存储类:
| 存储类 | 价格 | 访问模式 |
|---|---|---|
| Standard | 标准 | 频繁访问 |
| Infrequent Access (IA) | 低 | 月访问 < 1 次 |
| Archive | 极低 | 年访问 < 1-2 次 |
EFS 性能模式:
- 通用用途:默认,低延迟,适合 Web 服务、CMS
- 最大 I/O:高并发,延迟略高,适合大数据分析、媒体处理
EFS 吞吐模式:
- 突发吞吐:基于文件系统大小分配基准和突发额度
- 预置吞吐:独立于存储量指定吞吐量
4.2 FSx
AWS FSx 提供专用文件系统:
| 类型 | 协议 | 适用场景 |
|---|---|---|
| FSx for Windows | SMB | Windows 应用 |
| FSx for Lustre | POSIX | HPC/机器学习 |
| FSx for NetApp ONTAP | NFS/SMB/iSCSI | 企业级多协议 |
| FSx for OpenZFS | NFS | 高性能 Linux |
4.3 阿里云 NAS
阿里云文件存储 NAS:
- 通用型 NAS:NFS/SMB 协议,容量型/性能型/高级型
- 极速型 NAS:基于 NVMe,亚毫秒延迟
- CPFS:并行文件系统,HPC 场景
5. 数据生命周期管理
5.1 生命周期策略
S3 生命周期规则自动转换对象存储类:
{
"Rules": [
{
"ID": "TransitionToIA",
"Status": "Enabled",
"Transitions": [
{ "Days": 30, "StorageClass": "STANDARD_IA" },
{ "Days": 90, "StorageClass": "GLACIER" },
{ "Days": 365, "StorageClass": "DEEP_ARCHIVE" }
],
"Expiration": { "Days": 2555 }
}
]
}
生命周期转换路径:
Standard → Standard-IA (30天) → Glacier (90天) → Deep Archive (365天) → 过期删除 (2555天)
5.2 成本优化分析
不同存储类的月度成本(以 1TB 数据为例):
5.3 智能分层
S3 Intelligent-Tiering 自动监控访问模式并移动数据:
┌──────────────────────────────────────────────┐
│ S3 Intelligent-Tiering │
│ │
│ 频繁访问层 ← 30天未访问 → 低频访问层 │
│ ▲ │ │
│ │ ▼ │
│ └── 访问时自动回热 ← 归档即时访问层 │
│ │ │
│ ▼ │
│ 归档灵活访问层 │
│ │ │
│ ▼ │
│ 深度归档访问层 │
└──────────────────────────────────────────────┘
每月监控和自动化费用:每 1,000 个对象 $0.0025。
6. 跨区域复制与一致性
6.1 S3 跨区域复制(CRR)
┌──────────────┐ ┌──────────────┐
│ 源区域 │ 复制 │ 目标区域 │
│ Bucket A │ ──────► │ Bucket B │
│ (us-east-1) │ 异步 │ (eu-west-1) │
└──────────────┘ └──────────────┘
CRR 配置要求:
- 源和目标 Bucket 均需开启版本控制
- IAM 角色需授予复制权限
- 可指定存储类转换规则
- 复制时间控制(RTC):15 分钟内完成 99.99% 的对象
6.2 双向复制与冲突解决
双向复制场景下,同一对象可能同时被修改:
6.3 数据一致性验证
跨区域复制后的数据一致性验证方法:
| 方法 | 精度 | 开销 | 适用场景 |
|---|---|---|---|
| S3 Replication Metrics | 统计级 | 低 | 日常监控 |
| S3 Batch Operations | 对象级 | 中 | 定期校验 |
| 自定义校验脚本 | 字节级 | 高 | 合规审计 |
S3 Replication Metrics 关键指标:
- ReplicationLatency:源对象复制到目标的时间
- BytesPendingReplication:待复制的字节数
- OperationsPendingReplication:待复制的操作数