在阿里云ECS中将数据库服务器的系统盘或数据盘更换为ESSD(增强型SSD)云盘,是一个常见且推荐的操作,以提升I/O性能、降低延迟。以下是详细的操作步骤和注意事项:
一、前提条件
-
确认ECS实例支持ESSD云盘:
- 大部分较新的实例规格族(如g6、c6、r6等)都支持ESSD。
- 老旧实例(如ecs.t1、ecs.s2等)可能不支持。
-
确认目标区域支持ESSD云盘:
- 登录 阿里云控制台 查看当前地域是否提供ESSD。
-
备份数据:
- 更换磁盘前务必备份数据库和重要数据,避免操作失误导致数据丢失。
-
停机窗口:
- 更换系统盘需要重启实例,建议安排在业务低峰期操作。
二、更换方式选择
根据你是要更换系统盘还是数据盘,方法不同:
✅ 方式一:更换系统盘为ESSD(适用于原系统盘不是ESSD)
适用于想将操作系统所在的磁盘升级为高性能ESSD。
步骤:
-
停止ECS实例
- 在控制台找到目标实例 → 点击“停止”。
-
更换系统盘
- 实例停止后 → 点击“更多” → “磁盘和镜像” → “更换系统盘”。
- 在弹出窗口中:
- 选择原操作系统(保持一致)。
- 存储类型选择:ESSD云盘(如 ESSD PL1、PL2、PL3,按需选择性能等级)。
- 设置新系统盘大小(不能小于原系统盘)。
- 提交更换。
-
启动实例并验证
- 更换完成后,启动实例。
- 登录系统,检查系统正常运行,数据库服务是否正常。
⚠️ 注意:更换系统盘会释放原系统盘,数据将丢失!仅保留数据盘中的数据。
✅ 方式二:挂载新的ESSD数据盘(适用于数据库存储在数据盘)
推荐做法:数据库文件放在独立的数据盘上,便于扩展和迁移。
步骤:
-
创建ESSD云盘
- 进入“云盘”页面 → 创建云盘:
- 类型:ESSD云盘
- 性能等级:PL1(通用)、PL2/PL3(高IO场景)
- 容量:根据数据库大小选择
- 地域/可用区:与ECS实例一致
- 进入“云盘”页面 → 创建云盘:
-
挂载到ECS实例
- 创建完成后,在云盘列表中选择该盘 → “挂载” → 选择目标ECS实例。
-
登录ECS初始化磁盘
# 查看新磁盘(如 /dev/vdb) fdisk -l # 分区(可选,也可直接格式化整盘) parted /dev/vdb mklabel gpt parted /dev/vdb mkpart primary ext4 0% 100% # 格式化 mkfs.ext4 /dev/vdb1 # 挂载 mkdir /data mount /dev/vdb1 /data # 写入 fstab 自动挂载 echo '/dev/vdb1 /data ext4 defaults 0 0' >> /etc/fstab -
迁移数据库数据
- 停止数据库服务(如 MySQL、PostgreSQL):
systemctl stop mysqld - 将原数据目录复制到新盘:
cp -a /var/lib/mysql/* /data/mysql/ chown -R mysql:mysql /data/mysql - 修改数据库配置文件(如
/etc/my.cnf)更新datadir路径:datadir = /data/mysql - 启动数据库服务并验证。
- 停止数据库服务(如 MySQL、PostgreSQL):
-
卸载并释放旧磁盘(可选)
- 确认一切正常后,可卸载旧数据盘并在控制台释放以节省成本。
三、ESSD性能等级选择建议
| 性能等级 | IOPS(万) | 吞吐(MB/s) | 适用场景 |
|---|---|---|---|
| ESSD PL1 | 最高5万 | 最高350 | 一般数据库、中负载应用 |
| ESSD PL2 | 最高10万 | 最高750 | 高并发数据库 |
| ESSD PL3 | 最高100万 | 最高4000 | 核心OLTP、大型数据库 |
可根据数据库负载选择,MySQL/PostgreSQL 中等负载用 PL1 即可。
四、注意事项
- 更换系统盘会导致原系统盘被释放,务必提前快照备份。
- 数据盘可随时扩容或更换,但需注意文件系统调整。
- 使用快照功能可在更换前对磁盘做完整备份。
- 若使用 RDS,请考虑迁移到阿里云RDS而非自建数据库。
五、参考文档
- 阿里云官方文档:ESSD云盘介绍
- 更换系统盘:更换系统盘操作指南
如有具体场景(如MySQL、MongoDB、是否使用RAID等),可进一步提供信息,我可以给出更详细的迁移方案。
CDNK博客