管理应用程序执行挂钩
执行挂钩是一种自定义操作、您可以将其配置为与受管应用程序的数据保护操作结合运行。例如,如果您有一个数据库应用程序,则可以使用执行挂钩在快照之前暂停所有数据库事务,并在快照完成后恢复事务。这样可以确保应用程序一致的快照。
执行挂钩的类型
Astra Control支持以下类型的执行挂钩、具体取决于何时可以运行:
-
预快照
-
快照后
-
预备份
-
备份后
-
还原后
有关自定义执行挂钩的重要注意事项
在为应用程序规划执行挂钩时,请考虑以下几点。
-
执行挂钩必须使用脚本执行操作。许多执行挂钩可以引用同一个脚本。
-
Astra Control要求执行挂钩使用的脚本以可执行Shell脚本的格式写入。
-
脚本大小限制为96 KB。
-
Astra Control使用执行挂钩设置和任何匹配条件来确定哪些挂钩适用于快照、备份或还原操作。
-
所有执行挂钩故障均为软故障;即使某个挂钩发生故障、仍会尝试执行其他挂钩和数据保护操作。但是,如果挂机发生故障,则会在 * 活动 * 页面事件日志中记录一个警告事件。
-
要创建,编辑或删除执行挂钩,您必须是具有所有者,管理员或成员权限的用户。
-
如果执行挂机运行时间超过 25 分钟,则此挂机将失败,从而创建返回代码为不适用的事件日志条目。任何受影响的快照都将超时并标记为失败,并会生成一个事件日志条目,用于记录超时情况。
-
对于临时数据保护操作、所有挂机事件都会生成并保存在*活动*页面事件日志中。但是、对于计划的数据保护操作、事件日志中仅会记录挂钩故障事件(计划的数据保护操作本身生成的事件仍会记录下来)。
|
执行顺序
运行数据保护操作时、执行钩事件按以下顺序发生:
-
任何适用的自定义操作前执行挂钩都会在相应的容器上运行。您可以根据需要创建和运行任意数量的自定义操作前挂钩、但操作前这些挂钩的执行顺序既不能保证也不可配置。
-
执行数据保护操作。
-
任何适用的自定义操作后执行挂钩都会在相应的容器上运行。您可以根据需要创建和运行任意数量的自定义操作后挂机、但这些挂机在操作后的执行顺序既不能保证也不可配置。
如果创建多个相同类型的执行挂钩(例如、预快照)、则无法保证这些挂钩的执行顺序。但是、可以保证不同类型的挂钩的执行顺序。例如、具有所有五种不同类型的挂钩的配置的执行顺序如下所示:
-
已执行备份前的挂钩
-
已执行预快照挂钩
-
已执行后快照挂钩
-
已执行备份后挂钩
-
已执行还原后挂机
您可以从中的表中的第2种情形中查看此配置的示例 确定挂钩是否会运行。
在生产环境中启用执行钩脚本之前,应始终对其进行测试。您可以使用 "kubectl exec" 命令方便地测试脚本。在生产环境中启用执行挂钩后、请测试生成的快照和备份、以确保它们一致。为此、您可以将应用程序克隆到临时命名空间、还原快照或备份、然后测试应用程序。 |
确定挂钩是否会运行
使用下表帮助确定是否会为您的应用程序运行自定义执行挂钩。
请注意、所有高级应用程序操作都包括运行快照、备份或还原的基本操作之一。根据具体情况、克隆操作可能由这些操作的各种组合组成、因此克隆操作运行时的执行挂钩将会有所不同。
原位还原操作需要现有快照或备份、因此这些操作不会运行快照或备份挂钩。
如果启动并取消包含快照的备份、并且存在关联的执行挂钩、则某些挂钩可能会运行、而其他挂钩则可能不会运行。这意味着、备份后执行挂钩不能假定备份已完成。对于已取消的备份以及关联的执行挂钩、请记住以下几点:
|
场景 | 操作 | 现有快照 | 现有备份 | 命名空间 | 集群 | 快照挂钩运行 | 备份挂钩运行 | Restore Hooks run |
---|---|---|---|---|---|---|---|---|
1. |
克隆 |
不包括 |
不包括 |
新增 |
相同 |
Y |
不包括 |
Y |
2. |
克隆 |
不包括 |
不包括 |
新增 |
不同 |
Y |
Y |
Y |
3. |
克隆或还原 |
Y |
不包括 |
新增 |
相同 |
不包括 |
不包括 |
Y |
4. |
克隆或还原 |
不包括 |
Y |
新增 |
相同 |
不包括 |
不包括 |
Y |
5. |
克隆或还原 |
Y |
不包括 |
新增 |
不同 |
不包括 |
Y |
Y |
6. |
克隆或还原 |
不包括 |
Y |
新增 |
不同 |
不包括 |
不包括 |
Y |
7. |
还原 |
Y |
不包括 |
现有 |
相同 |
不包括 |
不包括 |
Y |
8. |
还原 |
不包括 |
Y |
现有 |
相同 |
不包括 |
不包括 |
Y |
9 |
Snapshot |
不适用 |
不适用 |
不适用 |
不适用 |
Y |
不适用 |
不适用 |
10 |
备份 |
不包括 |
不适用 |
不适用 |
不适用 |
Y |
Y |
不适用 |
11. |
备份 |
Y |
不适用 |
不适用 |
不适用 |
不包括 |
Y |
不适用 |
执行钩示例
请访问 "NetApp Verda GitHub项目" 查看示例并了解如何构建执行挂钩。您可以将这些示例用作模板或测试脚本。
查看现有执行挂钩
您可以查看应用程序的现有自定义执行挂钩。
-
转到 * 应用程序 * ,然后选择受管应用程序的名称。
-
选择 * 执行挂钩 * 选项卡。
您可以在显示的列表中查看所有已启用或已禁用的执行挂钩。您可以查看挂机的状态、源以及运行时间(操作前或操作后)。要查看与执行挂钩相关的事件日志,请转到左侧导航区域中的 * 活动 * 页面。
查看现有脚本
您可以查看已上传的现有脚本。您还可以在此页面上查看正在使用哪些脚本以及正在使用哪些挂钩。
-
转到*帐户*。
-
选择*脚本*选项卡。
您可以在此页面上查看已上传的现有脚本列表。*使用者*列显示了使用每个脚本的执行挂钩。
添加脚本
您可以添加一个或多个可供执行挂钩引用的脚本。许多执行挂钩可以引用同一个脚本;这样、您就可以通过仅更改一个脚本来更新多个执行挂钩。
-
转到*帐户*。
-
选择*脚本*选项卡。
-
选择 * 添加 * 。
-
执行以下操作之一:
-
上传自定义脚本。
-
选择 * 上传文件 * 选项。
-
浏览到文件并上传。
-
为脚本指定一个唯一名称。
-
(可选)输入其他管理员应了解的有关该脚本的任何注释。
-
选择*保存脚本*。
-
-
从剪贴板粘贴到自定义脚本中。
-
选择*粘贴或类型*选项。
-
选择文本字段并将脚本文本粘贴到字段中。
-
为脚本指定一个唯一名称。
-
(可选)输入其他管理员应了解的有关该脚本的任何注释。
-
-
-
选择*保存脚本*。
新脚本将显示在*脚本*选项卡的列表中。
删除脚本
如果不再需要某个脚本、并且任何执行挂钩都不使用该脚本、则可以将其从系统中删除。
-
转到*帐户*。
-
选择*脚本*选项卡。
-
选择要删除的脚本、然后在*操作*列中选择菜单。
-
选择 * 删除 * 。
如果该脚本与一个或多个执行挂钩关联、则*删除*操作将不可用。要删除此脚本、请先编辑关联的执行挂钩、然后将其与其他脚本关联。 |
创建自定义执行挂钩
您可以为应用程序创建自定义执行挂钩。请参见 执行钩示例 有关挂机示例。要创建执行挂钩,您需要拥有所有者,管理员或成员权限。
创建用作执行挂钩的自定义Shell脚本时、请务必在文件开头指定适当的Shell、除非您正在运行特定命令或提供可执行文件的完整路径。 |
-
选择 * 应用程序 * ,然后选择受管应用程序的名称。
-
选择 * 执行挂钩 * 选项卡。
-
选择 * 添加 * 。
-
在*挂机详细信息*区域中、通过从*操作*下拉菜单中选择操作类型来确定挂机应在何时运行。
-
输入此挂钩的唯一名称。
-
(可选)输入执行期间传递到挂机的任何参数,在输入的每个参数之后按 Enter 键以记录每个参数。
-
在 * 容器映像 * 区域中,如果此挂钩应针对应用程序中包含的所有容器映像运行,请启用 * 应用于所有容器映像 * 复选框。如果该挂钩只能作用于一个或多个指定的容器映像,请在 * 要匹配的容器映像名称 * 字段中输入容器映像名称。
-
在 * 脚本 * 区域中,执行以下操作之一:
-
添加新脚本。
-
选择 * 添加 * 。
-
执行以下操作之一:
-
上传自定义脚本。
-
选择 * 上传文件 * 选项。
-
浏览到文件并上传。
-
为脚本指定一个唯一名称。
-
(可选)输入其他管理员应了解的有关该脚本的任何注释。
-
选择*保存脚本*。
-
-
从剪贴板粘贴到自定义脚本中。
-
选择*粘贴或类型*选项。
-
选择文本字段并将脚本文本粘贴到字段中。
-
为脚本指定一个唯一名称。
-
(可选)输入其他管理员应了解的有关该脚本的任何注释。
-
-
-
-
从列表中选择一个现有脚本。
这将指示执行挂钩使用此脚本。
-
-
选择 * 添加挂钩 * 。
检查执行挂钩的状态
在快照、备份或还原操作运行完毕后、您可以检查在该操作中运行的执行挂钩的状态。您可以使用此状态信息来确定是要保持执行状态、修改执行状态还是删除执行状态。
-
选择 * 应用程序 * ,然后选择受管应用程序的名称。
-
选择*数据保护*选项卡。
-
选择*快照*可查看正在运行的快照、选择*备份*可查看正在运行的备份。
*挂机状态*显示操作完成后执行挂机运行的状态。有关详细信息、可以将鼠标悬停在状态上。例如、如果在快照期间发生执行挂机故障、则将鼠标悬停在该快照的挂机状态上可显示失败的执行挂机列表。要查看每次失败的原因、您可以查看左侧导航区域中的*活动*页面。
查看脚本使用情况
您可以在Astra Control Web UI中查看哪些执行挂钩使用特定脚本。
-
选择 * 帐户 * 。
-
选择*脚本*选项卡。
脚本列表中的*使用者*列包含有关列表中每个脚本使用哪些挂钩的详细信息。
-
在*使用者*列中选择您感兴趣的脚本的信息。
此时将显示一个更详细的列表、其中包含正在使用此脚本的挂钩的名称以及这些挂钩配置为运行的操作类型。
禁用执行挂钩
如果要暂时阻止执行挂钩在应用程序快照之前或之后运行,可以禁用执行挂钩。要禁用执行挂钩,您需要拥有所有者,管理员或成员权限。
-
选择 * 应用程序 * ,然后选择受管应用程序的名称。
-
选择 * 执行挂钩 * 选项卡。
-
在 * 操作 * 列中选择要禁用的挂机的选项菜单。
-
选择 * 禁用 * 。
删除执行挂钩
如果您不再需要执行挂钩,则可以将其完全移除。要删除执行挂钩,您需要拥有所有者,管理员或成员权限。
-
选择 * 应用程序 * ,然后选择受管应用程序的名称。
-
选择 * 执行挂钩 * 选项卡。
-
在 * 操作 * 列中选择要删除的挂机的选项菜单。
-
选择 * 删除 * 。