阿里云快照服务结合云助手,提供应用一致性快照功能。当您使用应用一致性快照进行回滚时,可避免数据库等应用启动时进行日志回滚,确保应用处于一致性的启动状态。
前提条件
- ECS实例的操作系统在以下范围中:
- Windows:Windows Server 2022/2019/2016/2012 R2。
- Linux:CentOS 7.6及以上版本、Ubuntu 18.04及以上版本和Alibaba Cloud Linux 2/3。
- ECS实例中云盘必须是ESSD类型云盘,且文件系统为EXT3、EXT4、XFS或NTFS。同时,不支持网络文件系统和共享文件系统。
- ECS实例已安装云助手Agent。具体操作,请参见安装云助手Agent。说明 2017年12月01日之后使用公共镜像创建的ECS实例,已默认预装云助手Agent。
背景信息
默认情况下,您创建的快照为崩溃一致性快照。如果您在创建快照时开启应用一致性快照功能,系统将根据实际情况为您创建应用一致性快照或者文件系统一致性快照。
类型 | 说明 | 实现方式 |
---|---|---|
应用一致性快照 | 应用一致性快照在快照创建时刻备份内存数据及正在进行中的数据库事务,保证应用系统数据和数据库事务的一致性。通过应用一致性快照,没有数据的损坏及丢失,避免数据库启动时日志回滚,确保应用处于一致性的启动状态。 应用一致性快照以标签 | 根据操作系统类型,实现方式如下:
|
文件系统一致性快照 | 如果开启应用一致性功能,但不满足相关条件,系统将会为您创建文件系统一致性快照。 文件系统一致性确保在快照创建时刻同步文件系统内存和磁盘信息,冻结文件系统写操作,使得文件系统处于一致性的状态。通过文件系统一致性快照,可以避免操作系统在重启后进行chkdsk或fsck等磁盘检查修复操作。 文件系统一致性快照以标签 | 根据操作系统类型,实现方式如下:
|
操作流程
- 步骤一:为ECS实例配置RAM角色
开启应用一致性快照前,必须先为ECS实例配置相关的RAM角色。
- 步骤二:根据ECS实例的操作系统,开启应用一致性快照功能。
- 步骤二:为Windows实例开启应用一致性快照
在Windows系统的实例中,通过Windows操作系统的卷影复制服务实现应用一致性。
- 步骤二:为Linux实例开启应用一致性快照
在Linux系统的实例中,您需要根据ECS实例上的应用程序定制Shell脚本(应用冻结脚本和应用解冻脚本)实现应用一致性。
- 步骤二:为Windows实例开启应用一致性快照
- 步骤三:检查快照创建结果
创建完成后,您可以在云助手页面查看是否创建成功;在快照页面查看快照具体信息。
步骤一:为ECS实例配置RAM角色
- 使用阿里云账号登录RAM控制台。
- 创建应用一致性快照相关的RAM角色。具体操作,请参见创建可信实体为阿里云服务的RAM角色。示例为创建一个AppSnapshotRoleName的RAM角色。
- 创建应用一致性快照相关权限策略。具体操作,请参见创建自定义权限策略。创建一个AppSnapshotPolicy权限策略,具有查询快照相关信息、创建快照、设置标签和查询云盘信息等相关权限。您可以直接使用以下策略内容。
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "ecs:DescribeSnapshot*", "ecs:CreateSnapshot*", "ecs:TagResources", "ecs:DescribeDisks" ], "Resource": [ "*" ], "Condition": {} } ] }
- 为RAM角色(AppSnapshotRoleName)设置自定义权限(AppSnapshotPolicy)。具体操作,请参见为RAM角色授权。
- 为目标实例设置RAM角色(AppSnapshotRoleName)。具体操作,请参见授予实例RAM角色。
步骤二:为Windows实例开启应用一致性快照
在Windows实例中,主要是通过Windows操作系统的卷影复制服务实现应用一致性。本节介绍如何为Windows实例开启应用一致性快照。
- 进入ECS实例列表页面。
- 登录ECS管理控制台。
- 在左侧导航栏,选择 。
- 在顶部菜单栏处,选择目标ECS实例所在地域。
- 找到目标实例,在操作列中选择 。
- 在创建快照一致性组对话框中,设置快照一致性组参数并启用快照极速可用功能。
- 在创建快照一致性组对话框中,设置应用一致性快照。
- 如果同时选中启用应用一致性快照和是否默认包含Writer,则创建应用一致性快照。
- 如果只选中启用应用一致性快照,则创建文件系统一致性快照。
说明 选中启用应用一致性快照后,ECS实例将自动安装云助手插件。 - 单击确定。创建后会返回云助手命令ID和命令执行ID,您可以根据命令执行ID查看创建结果。
步骤二:为Linux实例开启应用一致性快照
在Linux实例中,需要您根据ECS实例上的应用程序定制Shell脚本(应用冻结脚本和应用解冻脚本)实现应用一致性。本节介绍如何为Linux实例开启应用一致性快照。
- 根据ECS实例上的应用,准备对应的应用冻结脚本和应用解冻脚本,并上传到ECS实例。您可以通过FTP或云助手将应用冻结脚本和应用解冻脚本上传到ECS实例。
- 应用冻结脚本:权限设置为仅root用户具有读、写和执行权限,保存路径为/tmp/prescript.sh。
- 应用解冻脚本:权限设置为仅root用户具有读、写和执行权限,保存路径为/tmp/postscript.sh。
重要 如果脚本设置错误(例如权限、保存路径或文件名设置错误等),最终创建的快照为文件系统一致性快照。 - 进入ECS实例列表页面。
- 登录ECS管理控制台。
- 在左侧导航栏,选择 。
- 在顶部菜单栏处,选择目标ECS实例所在地域。
- 找到目标实例,在操作列中选择 。
- 在创建快照一致性组对话框中,设置快照一致性组参数并启用快照极速可用功能。
- 在创建快照一致性组对话框中,设置应用一致性快照。
- 如果选中启用应用一致性快照和启用文件系统IO冻结及解冻,并正确设置脚本,则创建应用一致性快照。
- 如果选中启用应用一致性快照和启用文件系统IO冻结及解冻,但未设置脚本或未正确设置脚本,则创建文件系统一致性快照。
说明 选中启用应用一致性快照后,ECS实例将自动安装云助手插件。 - 单击确定。创建后会返回云助手命令ID和命令执行ID,您可以根据命令执行ID查看创建结果。
步骤三:检查快照创建结果
创建应用一致性快照后,您可以在云助手页面查看是否创建成功,并在快照页面查看快照一致性组和云盘快照信息。
- 在云助手页面,查看应用一致性快照是否成功创建。
- 在快照页面查看快照一致性组和云盘快照信息。
错误码信息
应用一致性快照创建后,会返回错误码(ExitCode)。如果创建失败,您可以根据错误码信息排查问题。
错误码(ExitCode) | 说明 |
---|---|
0 | 表示创建成功。 |
1 | 条件检查错误。可能错误如下:
|
2 | --params 后设置的参数类型或个数错误。 |
3 | 可能错误如下:
|
4 | 创建快照一致性组失败。 |
5 | 快照一致性组状态错误。 |
6 | 创建快照一致性组超时。 |
7 | 快照一致性组内单个云盘快照的状态不符合预期。 |
8 | 为快照设置标签失败。 |
9 | 执行应用冻结脚本失败。 |
10 | 执行应用解冻脚本失败。 |
11 | 冻结IO失败。 |
12 | 解冻IO失败。 |
13 | ECS实例没有RAM角色授权。 |
14 | 快照个数超过限制。 |
15 | 快照状态错误。 |
16 | 在没有启动快照及时可用功能的情况下,前一个快照正在创建中。 |
255 | 未知失败。 |
相关文档
如果您需要使用SDK创建应用一致性快照,请参见通过Go SDK创建应用一致性快照。