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后,接下来可以:

  1. EFS文件系统 - 学习网络文件系统
  2. RDS关系数据库 - 学习数据库服务
  3. EC2实例管理 - 实践EC2存储
最后更新:2026-03-28