云服务器用久了,最常见的问题是磁盘写满、读写变慢,或者数据没有备份。这些问题很多都和阿里云硬盘的选型与配置有关。阿里云硬盘就是ECS云盘,挂在云服务器实例上作为块存储,用起来和本地磁盘差不多。类型选对、快照配好,大部分返工都能省掉。

先分清系统盘和数据盘
每台ECS实例至少有一块系统盘,用来安装操作系统。数据盘是另外挂载的盘,专门放业务数据。分开以后,重装系统时数据盘通常可以保留,扩容也只需要处理数据盘。
常见的情况是,网站程序、日志和数据库全堆在系统盘上。磁盘写满后服务开始报错,重启时日志也写不进去。之后把数据库迁到独立的数据盘,系统盘只留操作系统和程序,同类故障就没有再出现。
选云盘类型,主要看三点
ESSD云盘按性能级别区分。选型时先看下面三点:
- 业务类型。网站、开发测试和读写不频繁的服务,选较低的性能级别一般够用。数据库和高并发交易系统对IOPS和延迟敏感,级别要往上提。
- 容量和性能的关系。ESSD的性能上限和容量挂钩,容量小的盘拿不到最高指标。上线前用压测工具测出实际数值,别只抄规格表。
- 是否需要多台实例共享。共享块存储适合集群类应用。上线前先确认程序能处理多节点同时写入,否则多个节点同时写同一块盘可能出问题。
IOPS、吞吐量和容量上限会随产品版本调整,下单前以阿里云官方文档和控制台显示为准。
案例:大促前扩容数据盘
电商业务在大促前,数据盘使用率往往涨得很快。通常的做法是先在控制台对数据盘做在线扩容。云盘容量加上去以后,再到操作系统里扩展文件系统,新增空间才能真正用上。整个过程一般不需要停机。
这里有两个容易踩的点。第一,云盘只能扩容不能缩容,所以先估算增长量,别一次扩得太大。第二,控制台扩容只增加了块设备的容量,文件系统要单独扩展。这一步最容易漏。漏掉之后系统里看到的空间没有变化,运维人员常以为扩容失败,其实只差最后一步。
快照和备份不是一回事
云盘本身的数据可靠性不错,但它替代不了备份。误删文件、勒索病毒、程序写坏数据,云盘都会如实保存下来。快照记录的是某个时间点的数据副本,主要用来回滚。
一种可以参考的策略:每天凌晨自动创建数据盘快照,保留7天;每周保留一份,留一个月。比如发布脚本误删了配置目录,运维可以用前一天的快照创建新盘,挂到实例上把文件拷回原目录,服务很快能恢复。快照是增量保存的,但保留的份数和时长越多,费用越高。保留策略应该按数据的重要程度来定,不必一刀切。
挂载和扩容的几个坑
下面四件事出错的频率较高,操作前逐条核对:
- 新盘挂载前先分区、格式化,挂到指定目录,并把挂载信息写入 /etc/fstab。漏掉这一步,重启后挂载可能失效。
- fstab里用UUID指定磁盘,不要用设备名。设备名可能随实例重启或增删盘而变化,可能导致系统无法正常启动。
- 扩容或卸载前先做一次快照,出错时有回退点。
- 卸载磁盘前,确认没有进程还在读写这个目录。可以用 lsof 或 fuser 检查。
计费和成本
阿里云硬盘按容量和类型收费,可选按量付费或包年包月。快照等附加功能单独计费,算成本时要一并算进去。省钱一般有三个方向:把访问少的冷数据迁到性能较低的盘,清理长期不用的快照,及时释放不再使用的云盘。释放之前,必须确认盘内数据已有备份,释放后数据无法找回。
选型先看业务,配置先做快照,扩容和挂载的细节最好写成一份操作清单,每次照着做。