EBS块存储 #
一、EBS概述 #
1.1 什么是EBS #
Amazon EBS(Elastic Block Store)是AWS提供的块存储服务,专为EC2实例设计。EBS卷是独立的存储资源,可以附加到EC2实例使用。
1.2 EBS特点 #
text
EBS核心特点:
├── 块级存储
│ └── 像物理硬盘一样使用
│
├── 持久化
│ └── 数据独立于实例生命周期
│
├── 高可用
│ └── 在单个可用区内复制
│
├── 灵活配置
│ └── 可动态调整大小和类型
│
├── 快照备份
│ └── 支持增量快照
│
└── 加密支持
└── 透明加密
1.3 EBS与实例存储对比 #
| 特性 | EBS | 实例存储 |
|---|---|---|
| 持久性 | 持久 | 临时 |
| 独立性 | 独立于实例 | 随实例 |
| 快照 | 支持 | 不支持 |
| 性能 | 高 | 更高 |
| 成本 | 额外收费 | 包含在实例 |
二、EBS卷类型 #
2.1 卷类型概览 #
text
EBS卷类型:
├── SSD类型
│ ├── gp3(通用型SSD,推荐)
│ ├── gp2(通用型SSD,旧版)
│ └── io2/io1(预配置IOPS SSD)
│
└── HDD类型
├── st1(吞吐优化HDD)
└── sc1(冷HDD)
2.2 gp3卷 #
text
gp3特点:
├── 最新一代通用型SSD
├── 基准性能
│ ├── 3,000 IOPS
│ └── 125 MB/s吞吐量
│
├── 可配置性能
│ ├── 最高16,000 IOPS
│ └── 最高1,000 MB/s吞吐量
│
├── 价格比gp2低20%
├── 大小:1GB - 16TB
└── 适用:大多数工作负载
2.3 io2 Block Express #
text
io2 Block Express特点:
├── 最高性能SSD
├── 最高256,000 IOPS
├── 最高4,000 MB/s吞吐量
├── 99.999%耐久性
├── 大小:4GB - 64TB
└── 适用:关键业务数据库
2.4 卷类型对比 #
| 卷类型 | 最大IOPS | 最大吞吐量 | 最大大小 | 耐久性 | 适用场景 |
|---|---|---|---|---|---|
| gp3 | 16,000 | 1,000 MB/s | 16 TB | 99.8-99.9% | 通用 |
| gp2 | 16,000 | 250 MB/s | 16 TB | 99.8-99.9% | 通用(旧版) |
| io2 | 64,000 | 1,000 MB/s | 16 TB | 99.999% | 数据库 |
| io1 | 64,000 | 1,000 MB/s | 16 TB | 99.8-99.9% | 数据库(旧版) |
| st1 | 500 | 500 MB/s | 16 TB | 99.8-99.9% | 大数据 |
| sc1 | 250 | 250 MB/s | 16 TB | 99.8-99.9% | 冷数据 |
三、创建和管理EBS卷 #
3.1 创建EBS卷 #
bash
aws ec2 create-volume \
--volume-type gp3 \
--size 100 \
--availability-zone us-east-1a \
--iops 5000 \
--throughput 500
3.2 附加EBS卷 #
bash
aws ec2 attach-volume \
--volume-id vol-1234567890abcdef0 \
--instance-id i-1234567890abcdef0 \
--device /dev/sdf
3.3 分离EBS卷 #
bash
aws ec2 detach-volume --volume-id vol-1234567890abcdef0
3.4 修改EBS卷 #
bash
aws ec2 modify-volume \
--volume-id vol-1234567890abcdef0 \
--size 200 \
--iops 10000 \
--throughput 750
3.5 删除EBS卷 #
bash
aws ec2 delete-volume --volume-id vol-1234567890abcdef0
四、EBS快照 #
4.1 快照概述 #
text
快照特点:
├── EBS卷的时间点备份
├── 增量备份
├── 存储在S3
├── 可跨区域复制
├── 可用于创建新卷
└── 支持加密
4.2 创建快照 #
bash
aws ec2 create-snapshot \
--volume-id vol-1234567890abcdef0 \
--description "Daily backup"
4.3 从快照创建卷 #
bash
aws ec2 create-volume \
--snapshot-id snap-1234567890abcdef0 \
--availability-zone us-east-1a
4.4 快照策略 #
text
快照管理策略:
├── 定期备份
│ └── 使用AWS Backup或Data Lifecycle Manager
│
├── 保留策略
│ └── 设置保留期限
│
├── 跨区域复制
│ └── 灾难恢复
│
└── 成本优化
└── 删除不需要的快照
4.5 Data Lifecycle Manager #
bash
aws dlm create-lifecycle-policy \
--execution-role-arn arn:aws:iam::123456789012:role/dlm-role \
--description "Daily backup policy" \
--state ENABLED \
--policy-details file://policy.json
json
{
"PolicyType": "EBS_SNAPSHOT_MANAGEMENT",
"ResourceTypes": ["INSTANCE"],
"TargetTags": [{"Key": "Backup", "Value": "daily"}],
"Schedules": [{
"Name": "DailySnapshots",
"TagsToAdd": [{"Key": "Name", "Value": "DailyBackup"}],
"CreateRule": {"Interval": 24, "IntervalUnit": "HOURS"},
"RetainRule": {"Count": 7}}
]
}
五、EBS加密 #
5.1 加密特点 #
text
EBS加密特点:
├── 使用AWS KMS
├── 加密卷内数据
├── 加密快照
├── 加密传输中数据
├── 透明加密
└── 性能影响小
5.2 启用加密 #
text
启用加密方式:
├── 账户默认加密
│ └── EC2设置 → EBS加密
│
├── 创建卷时启用
│ └── 选择加密选项
│
└── 从加密快照创建
└── 自动继承加密
5.3 加密最佳实践 #
text
加密建议:
├── 启用账户默认加密
├── 使用客户托管密钥
├── 定期轮换密钥
├── 控制密钥访问权限
└── 审计密钥使用
六、EBS性能优化 #
6.1 性能因素 #
text
影响性能的因素:
├── 卷类型
├── 卷大小
├── IOPS配置
├── 吞吐量配置
├── I/O大小
└── 实例类型
6.2 IOPS优化 #
text
IOPS优化建议:
├── 选择合适的卷类型
│ └── 高IOPS需求选择io2
│
├── 预配置IOPS
│ └── gp3可单独配置IOPS
│
├── 使用RAID 0
│ └── 多卷并行提升IOPS
│
└── 优化I/O大小
└── 大I/O提升吞吐量
6.3 吞吐量优化 #
text
吞吐量优化建议:
├── 选择合适的卷类型
│ └── 高吞吐需求选择st1
│
├── 配置吞吐量
│ └── gp3可单独配置吞吐量
│
└── 优化I/O模式
└── 顺序读写提升吞吐量
6.4 RAID配置 #
text
RAID配置建议:
├── RAID 0(条带)
│ └── 提升性能
│ └── 不提供冗余
│ └── 适用:性能优先场景
│
├── RAID 1(镜像)
│ └── 提供冗余
│ └── 降低写性能
│ └── 适用:数据安全优先
│
└── 不推荐RAID 5/6
└── 性能开销大
6.5 预热新卷 #
bash
dd if=/dev/zero of=/dev/xvdf bs=1M
七、EBS监控 #
7.1 CloudWatch指标 #
| 指标 | 说明 |
|---|---|
| VolumeReadOps | 读取IOPS |
| VolumeWriteOps | 写入IOPS |
| VolumeReadBytes | 读取吞吐量 |
| VolumeWriteBytes | 写入吞吐量 |
| VolumeQueueLength | I/O队列长度 |
| VolumeThroughputPercentage | 吞吐量百分比 |
| VolumeConsumedReadWriteOps | 消耗的IOPS |
7.2 设置告警 #
bash
aws cloudwatch put-metric-alarm \
--alarm-name "HighQueueLength" \
--alarm-description "I/O队列长度过高" \
--metric-name VolumeQueueLength \
--namespace AWS/EBS \
--statistic Average \
--period 300 \
--threshold 10 \
--comparison-operator GreaterThanThreshold \
--dimensions Name=VolumeId,Value=vol-1234567890abcdef0
八、EBS多附加 #
8.1 多附加概述 #
text
多附加特点:
├── 一个卷可附加到多个实例
├── 仅支持io1/io2卷
├── 最多16个实例
├── 必须在同一个可用区
└── 适用场景:
├── 集群文件系统
└── 共享数据访问
8.2 启用多附加 #
bash
aws ec2 create-volume \
--volume-type io2 \
--size 100 \
--iops 10000 \
--multi-attach-enabled \
--availability-zone us-east-1a
九、EBS最佳实践 #
9.1 选择卷类型 #
text
卷类型选择指南:
├── 通用工作负载
│ └── gp3
│
├── 高性能数据库
│ └── io2 Block Express
│
├── 大数据分析
│ └── st1
│
├── 冷数据存储
│ └── sc1
│
└── 共享存储
└── io2多附加
9.2 安全最佳实践 #
text
安全建议:
├── 启用加密
├── 定期创建快照
├── 跨区域复制快照
├── 控制卷访问权限
└── 监控卷使用情况
9.3 成本优化 #
text
成本优化建议:
├── 选择合适的卷类型
├── 定期审查卷使用情况
├── 删除未使用的卷
├── 使用生命周期管理快照
├── 考虑快照归档
└── 合理配置卷大小
十、小结 #
本章介绍了EBS块存储:
| 内容 | 要点 |
|---|---|
| EBS概念 | 块存储、持久化、高可用 |
| 卷类型 | gp3、io2、st1、sc1 |
| 快照 | 增量备份、跨区域复制 |
| 加密 | KMS加密、透明加密 |
| 性能优化 | IOPS、吞吐量、RAID |
下一步学习 #
了解EBS后,接下来可以:
最后更新:2026-03-28