阿里云ECS实例运维属性-如何控制实例的宕机表现

本文涉及的产品
无影云电脑企业版,4核8GB 120小时 1个月
无影云电脑企业版,4核8GB 120小时 1个月
资源编排,不限时长
简介: 介绍如何通过运维属性指定阿里云ECS的宕机运维表现等

1. 功能描述

1.1. 简介

实例运维属性本质上指定了ECS实例遇到各种非预期和计划内运维事件后的默认行为,您可以修改实例运维属性定义该默认行为,例如遇到非预期运维事件后默认自动重启还是保持停机状态。

1.2. 基本概念

实例运维属性分为运维动作和运维时间窗口两个维度。

运维动作:指定的非预期宕机处理策略,包括Stop、AutoRecover和AutoRedeploy。

运维时间窗口:自定义的一段时间范围,运维动作只会在该时间段内进行。

1.3. 运维动作

运维动作

相关的系统事件

适用实例类型

说明

自动重启恢复(默认)

AutoRecover

  • SystemMaintenance.Reboot
  • SystemFailure.Reboot

所有支持系统事件的实例。

实例恢复至执行运维任务之前的状态:

  • 如果操作前状态为运行中,实例自动重启,继续提供服务。
  • 如果操作前状态为已停止,实例继续处于已停止状态。

禁止重启恢复
Stop

  • SystemMaintenance.Stop
  • SystemFailure.Stop

所有支持系统事件的实例。

实例进入已停止状态。适用于您已经在应用层实现故障转移、节点切换等灾备机制的情况,避免多个节点同时提供服务而产生冲突。

自动重新部署

  • SystemMaintenance.Redeploy
  • SystemFailure.Redeploy

仅依赖宿主机硬件的实例,例如挂载本地盘或支持SGX加密计算的实例。

实例自动重新部署至其他宿主机,然后继续提供服务。

2. 实例运维属性使用

2.1. ECS控制台

说明:ECS控制台仅支持对运维动作的查询和修改,如果想修改运维时间窗口,请使用SDK或者阿里云CLI。

  1. 登录ECS管理控制台
  2. 在左侧导航栏,选择实例与镜像 > 实例。
  3. 在页面左侧顶部,选择目标资源所在的地域。
  4. 找到目标实例,任选一种方式进入设置项。
  • 方式一:在实例操作列中,选择图标 > 运维和诊断 > 修改实例维护属性

image.png

  • 方式二:单击实例ID,进入实例详情页,在页面右上角,选择全部操作 > 运维和诊断 > 修改实例维护属性。

image.png

  1. 在弹出的修改实例维护属性对话框中,根据您的需求修改,然后单击确定。
  • 如果实例只挂载了云盘,您可以选择以下选项:
  • 自动重启恢复
  • 禁止重启恢复
  • 如果实例挂载了本地盘,您可以选择以下选项:
  • 自动重启恢复
  • 禁止重启恢复
  • 自动重新部署
  1. 在实例详情页的其它信息区域,确认变更后的维护属性。

image.png

2.2. OpenApi与SDK使用说明

  1. OpenApi与SDK 相关配置(以Java调用为例)
  • pom文件
<dependencies>
  <dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.2.83</version>
  </dependency>
  <dependency>
    <groupId>com.aliyun</groupId>
    <artifactId>aliyun-java-sdk-core</artifactId>
    <version>4.6.1</version>
  </dependency>
  <dependency>
    <groupId>com.aliyun</groupId>
    <artifactId>aliyun-java-sdk-ecs</artifactId>
    <version>5.11.7</version>
  </dependency>
</dependencies>
  • OpenClient实现
public class OpenClient {
    private IAcsClient client;
    public void initClient() {
        DefaultProfile profile = DefaultProfile.getProfile(
                "your region",          // The region ID
                "your ak",      // The AccessKey ID of the RAM account
                "your sk"); // The AccessKey Secret of the RAM account
        client = new DefaultAcsClient(profile);
    }
    public <R extends AcsResponse> R getResponse(RpcAcsRequest<R> request) {
        try {
            return this.client.getAcsResponse(request);
        } catch (ServerException e) {
            e.printStackTrace();
            return null;
        } catch (ClientException e) {
            e.printStackTrace();
            return null;
        }
    }
}
  1. DescribeInstanceMaintenanceAttributes(查询实例的维护属性)
  • 描述:查询一台或多台ECS实例的运维属性
  • 主要请求参数

名称

类型

必填

描述

示例值

regionId

string

实例所属的地域ID

cn-hangzhou

InstanceIds

list<string>

查询的实例列表

["i-bp67acfmxazb4p****", "i-bp67acfmxazb4p****", … "i-bp67acfmxazb4p****"]

  • 主要返回参数

名称

类型

描述

示例值

TotalCount

integer

查询到的维护属性总数。

100

MaintenanceAttributes

  • InstanceId
  • ActionOnMaintenance
    • DefaultValue
    • Value
  • MaintenanceWindows
    • EndTime
    • StartTime

array<object>

  • string
  • object
    • string
    • string
  • array<object>
    • string
    • string

运维属性的集合

  • 实例ID
  • 运维动作对象
    • 运维动作默认的值
    • 运维动作当前生效的值
  • 运维时间窗口数组
    • 运维时间窗口结束时间
    • 运维时间窗口开始时间
  • i-bp67acfmxazb4p****
    • AutoRecover
    • Stop
    • 09:00:00
    • 08:00:00
  • api调用示例
// 查询实例运维属性
    public void describeEcsMaintenanceAttributes() {
        DescribeInstanceMaintenanceAttributesRequest request = new DescribeInstanceMaintenanceAttributesRequest();
        List<String> instanceIds = new ArrayList<String>();
        // 向实例ID列表中添加一个示例实例ID
        instanceIds.add("i-bp1d1055fpao3jx***");
        request.setInstanceIds(instanceIds);
        DescribeInstanceMaintenanceAttributesResponse resp = getResponse(request);
        for (DescribeInstanceMaintenanceAttributesResponse.MaintenanceAttribute maintenanceAttribute : resp.getMaintenanceAttributes()) {
            System.out.printf("instanceId: %s,  maintenanceAction: %s,  startTime: %s, endTime: %s%n", maintenanceAttribute.getInstanceId(), maintenanceAttribute.getActionOnMaintenance().getValue(), maintenanceAttribute.getMaintenanceWindows().get(0).getStartTime(), maintenanceAttribute.getMaintenanceWindows().get(0).getEndTime());
        }
    }

image.png

  1. ModifyInstanceMaintenanceAttributes
  • 描述:修改实例的运维属性,包括运维动作和运维时间窗口
  • 请求参数

名称

类型

必填

描述

示例值

RegionId

string

实例所属的地域 ID。您可以调用 DescribeRegions 查看最新的阿里云地域列表。

cn-hangzhou

InstanceIds

list

实例 ID。N 的取值范围为:1~100。

["i-bp67acfmxazb4p****", "i-bp67acfmxazb4p****", … "i-bp67acfmxazb4p****"]

ActionOnMaintenance

string

维护动作。取值范围:

  • Stop:停止状态(即宕机)。
  • AutoRecover:自动恢复。
  • AutoRedeploy:宕机迁移,数据盘有损。

AutoRecover

MaintenanceWindows

array<object>

运维时间窗口数组,只支持设置1个时间窗口

MaintenanceWindow

名称

类型

必填

描述

示例值

EndTime

string

维护时间窗口结束时间。必须为整小时,不允许设置分、秒。开始时间和结束时间必须同时设置,并且结束时间与开始时间需要间隔 1~23 个整小时。采用 UTC +8 时区,格式为HH:00:00

18:00:00

StartTime

string

维护时间窗口开始时间。必须为整小时,不允许设置分、秒。开始时间和结束时间必须同时设置,并且结束时间与开始时间需要间隔 1~23 个整小时。采用 UTC +8 时区,格式为HH:00:00

02:00:00

  • 返回参数

名称

类型

描述

示例值

RequestId

string

请求 ID。

473469C7-AA6F-4DC5-B3DB-A3DC0DE*****

  • api调用示例
// 修改实例运维属性
    public void modifyInstanceMaintenanceAttribute() {
        ModifyInstanceMaintenanceAttributesRequest request = new ModifyInstanceMaintenanceAttributesRequest();
        // 向实例ID列表中添加一个示例实例ID
        List<String> instanceIds = new ArrayList<String>();
        instanceIds.add("i-bp1d1055fpao3jx4***");
        request.setInstanceIds(instanceIds);
        request.setActionOnMaintenance("AutoRecover");
        // 设置运维时间窗口
        List<ModifyInstanceMaintenanceAttributesRequest.MaintenanceWindow> maintenanceWindows = new ArrayList<>();
        ModifyInstanceMaintenanceAttributesRequest.MaintenanceWindow maintenanceWindow = new ModifyInstanceMaintenanceAttributesRequest.MaintenanceWindow();
        maintenanceWindow.setStartTime("00:00:00");
        maintenanceWindow.setEndTime("08:00:00");
        maintenanceWindows.add(maintenanceWindow);
        request.setMaintenanceWindows(maintenanceWindows);
        ModifyInstanceMaintenanceAttributesResponse response = getResponse(request);
        System.out.printf("requestId %s", response.getRequestId());
    }

image.png

2.3. 阿里云CLI

  1. 官网介绍
  2. 命令参数介绍:参数参考对应的OpenApi,cols展示的列名,需要与 JSON 数据中的字段相对应。rows指定过滤字段所在的JMESPath路径。
  3. 使用示例
  • 查询实例运维属性
aliyun ecs DescribeInstanceMaintenanceAttributes --RegionId 'The RegionId' --InstanceId.1 'i-bp1d1055fpao3jx4****' --output cols=InstanceId,ActionOnMaintenance.Value,MaintenanceWindows.MaintenanceWindow[0].StartTime,MaintenanceWindows.MaintenanceWindow[0].EndTime rows=MaintenanceAttributes.MaintenanceAttribute[]
+----------------------------------------------------------------------------------------------------------------------------------------------------------+
| InstanceId             | ActionOnMaintenance.Value | MaintenanceWindows.MaintenanceWindow[0].StartTime | MaintenanceWindows.MaintenanceWindow[0].EndTime |
| ----------             | ------------------------- | ------------------------------------------------- | ----------------------------------------------- |
| i-bp1d1055fpao3jx4qfqa | AutoRecover               | 01:00:00                                          | 09:00:00                                        |
+----------------------------------------------------------------------------------------------------------------------------------------------------------+
  • 修改实例运维属性
aliyun ecs ModifyInstanceMaintenanceAttributes --region cn-hangzhou --RegionId 'cn-hangzhou' --MaintenanceWindow.1.EndTime '09:00:00' --MaintenanceWindow.1.StartTime '01:00:00' --InstanceId.1 'i-bp1d1055fpao3jx4****'
相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情:&nbsp;https://www.aliyun.com/product/ecs
相关文章
|
7天前
|
存储 编解码 缓存
阿里云服务器实例规格选择参考:根据业务场景选择云服务器实例规格
在阿里云服务器的购买过程中,云服务器实例规格是很多用户最难选择的一个选项,因为阿里云有着多达几十种不同的实例规格,为此,阿里云官方在云服务器购买页面新推出了一个场景化选型推荐,用户可通过自己的上云场景结合场景化选型里面的业务场景和细分场景来选择适合自己的阿里云服务器实例规格,在很大程度上解决了新手用户在选择阿里云服务器实例规格上的困局。
阿里云服务器实例规格选择参考:根据业务场景选择云服务器实例规格
|
6天前
|
Cloud Native Java 编译器
将基于x86架构平台的应用迁移到阿里云倚天实例云服务器参考
随着云计算技术的不断发展,云服务商们不断推出高性能、高可用的云服务器实例,以满足企业日益增长的计算需求。阿里云推出的倚天实例,凭借其基于ARM架构的倚天710处理器,提供了卓越的计算能力和能效比,特别适用于云原生、高性能计算等场景。然而,有的用户需要将传统基于x86平台的应用迁移到倚天实例上,本文将介绍如何将基于x86架构平台的应用迁移到阿里云倚天实例的服务器上,帮助开发者和企业用户顺利完成迁移工作,享受更高效、更经济的云服务。
将基于x86架构平台的应用迁移到阿里云倚天实例云服务器参考
|
4天前
|
编解码 前端开发 安全
通过阿里云的活动购买云服务器时如何选择实例、带宽、云盘
在我们选购阿里云服务器的过程中,不管是新用户还是老用户通常都是通过阿里云的活动去买了,一是价格更加实惠,二是活动中的云服务器配置比较丰富,足可以满足大部分用户的需求,但是面对琳琅满目的云服务器实例、带宽和云盘选项,如何选择更适合自己,成为许多用户比较关注的问题。本文将介绍如何在阿里云的活动中选择合适的云服务器实例、带宽和云盘,以供参考和选择。
通过阿里云的活动购买云服务器时如何选择实例、带宽、云盘
|
2天前
|
弹性计算 运维 安全
阿里云轻量应用服务器和经济型e实例区别及选择参考
目前在阿里云的活动中,轻量应用服务器2核2G3M带宽价格为82元1年,2核2G3M带宽的经济型e实例云服务器价格99元1年,对于云服务器配置和性能要求不是很高的阿里云用户来说,这两款服务器配置和价格都差不多,阿里云轻量应用服务器和ECS云服务器让用户二选一,很多用户不清楚如何选择,本文来说说轻量应用服务器和经济型e实例的区别及选择参考。
阿里云轻量应用服务器和经济型e实例区别及选择参考
|
3天前
|
机器学习/深度学习 存储 人工智能
阿里云GPU云服务器实例规格gn6v、gn7i、gn6i实例性能及区别和选择参考
阿里云的GPU云服务器产品线在深度学习、科学计算、图形渲染等多个领域展现出强大的计算能力和广泛的应用价值。本文将详细介绍阿里云GPU云服务器中的gn6v、gn7i、gn6i三个实例规格族的性能特点、区别及选择参考,帮助用户根据自身需求选择合适的GPU云服务器实例。
阿里云GPU云服务器实例规格gn6v、gn7i、gn6i实例性能及区别和选择参考
|
7天前
|
存储 弹性计算 运维
自动化监控和响应ECS系统事件
阿里云提供的ECS系统事件用于记录云资源信息,如实例启停、到期通知等。为实现自动化运维,如故障处理与动态调度,可使用云助手插件`ecs-tool-event`。该插件定时获取并转化ECS事件为日志存储,便于监控与响应,无需额外开发,适用于大规模集群管理。详情及示例可见链接文档。
|
2天前
|
运维 应用服务中间件 网络安全
自动化运维:使用Ansible进行服务器配置管理
【9月更文挑战第13天】在IT运维领域,自动化工具的应用日益成为提升效率、降低错误率的关键。本文将介绍如何使用Ansible这一流行的自动化工具来简化和加速服务器的配置管理工作,通过实际案例展示其应用,并分享一些最佳实践。文章旨在帮助读者理解Ansible的核心概念,掌握基本使用方法,并鼓励大家探索更多可能的应用场景。
|
2天前
|
运维 应用服务中间件 网络安全
自动化运维的魔法:使用Ansible进行服务器配置管理
【9月更文挑战第13天】在这篇文章中,我们深入探讨如何利用Ansible这一强大的自动化工具来简化和加速你的服务器配置管理工作。我们将从基础概念出发,逐步引导你了解如何使用Ansible编写Playbooks,实现对服务器群的快速部署、配置更新与维护任务。通过实际案例,你将看到Ansible如何节省时间、减少人为错误并提高运维效率。无论你是初学者还是有经验的运维工程师,这篇文章都将带给你新的视角和启发。
|
4天前
|
存储 运维 网络协议
运维的基本概念:服务器和网络基础知识
运维的基本概念:服务器和网络基础知识
11 0
运维的基本概念:服务器和网络基础知识
|
10天前
|
运维 Ubuntu Devops
自动化运维工具的魅力:Ansible入门
【9月更文挑战第5天】在快速变化的IT世界里,自动化运维不再是可选项,而是必需品。Ansible,一款简单却强大的自动化工具,正成为众多DevOps工程师的首选。本文将带你了解Ansible的基本概念、安装步骤以及如何编写简单的Playbook,从而开启你的自动化之旅。
58 35

相关产品

  • 云服务器 ECS