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

本文涉及的产品
资源编排,不限时长
无影云电脑企业版,4核8GB 120小时 1个月
无影云电脑个人版,黄金款:40核时/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
相关文章
|
3天前
|
运维 负载均衡 应用服务中间件
自动化运维:使用Ansible进行服务器配置管理
【9月更文挑战第34天】在现代IT运维工作中,自动化已成为提升效率、减少错误的关键。本文将介绍如何使用Ansible这一强大的自动化工具来简化和加速服务器的配置管理工作。我们将通过实际案例展示如何利用Ansible的Playbooks来自动化常见任务,并讨论其对提高运维团队工作效率的影响。
|
12天前
|
分布式计算 大数据 数据挖掘
阿里云服务器计算型c8i、通用型g8i、内存型r8i实例测评与价格参考
阿里云服务器计算型c8i、通用型g8i、内存型r8i实例是阿里云的第八代云服务器实例规格,是除了计算型c7和c8y、通用型g7与g8y、内存型r7与r8y之外同样深受用户喜欢的云服务器实例规格。本文将详细介绍阿里云第八代云服务器中的计算型c8i、通用型g8i、以及内存型r8i实例,包括它们的技术特性、适用场景以及最新的活动价格信息。
阿里云服务器计算型c8i、通用型g8i、内存型r8i实例测评与价格参考
|
28天前
|
Cloud Native Java 编译器
将基于x86架构平台的应用迁移到阿里云倚天实例云服务器参考
随着云计算技术的不断发展,云服务商们不断推出高性能、高可用的云服务器实例,以满足企业日益增长的计算需求。阿里云推出的倚天实例,凭借其基于ARM架构的倚天710处理器,提供了卓越的计算能力和能效比,特别适用于云原生、高性能计算等场景。然而,有的用户需要将传统基于x86平台的应用迁移到倚天实例上,本文将介绍如何将基于x86架构平台的应用迁移到阿里云倚天实例的服务器上,帮助开发者和企业用户顺利完成迁移工作,享受更高效、更经济的云服务。
将基于x86架构平台的应用迁移到阿里云倚天实例云服务器参考
|
26天前
|
编解码 前端开发 安全
通过阿里云的活动购买云服务器时如何选择实例、带宽、云盘
在我们选购阿里云服务器的过程中,不管是新用户还是老用户通常都是通过阿里云的活动去买了,一是价格更加实惠,二是活动中的云服务器配置比较丰富,足可以满足大部分用户的需求,但是面对琳琅满目的云服务器实例、带宽和云盘选项,如何选择更适合自己,成为许多用户比较关注的问题。本文将介绍如何在阿里云的活动中选择合适的云服务器实例、带宽和云盘,以供参考和选择。
通过阿里云的活动购买云服务器时如何选择实例、带宽、云盘
|
2天前
|
运维 应用服务中间件 网络安全
自动化运维:使用Ansible进行批量服务器配置
【9月更文挑战第35天】在现代IT基础设施管理中,高效、可扩展的自动化工具是提升工作效率的关键。本文将引导您了解如何使用Ansible这一强大的自动化工具来简化和加速服务器的配置过程,确保一致性和可靠性的同时减少人为错误。通过实际案例,我们将展示如何编写Ansible Playbook以实现批量服务器配置,从而让您能够更加轻松地管理和维护您的服务器群。
|
24天前
|
弹性计算 运维 安全
阿里云轻量应用服务器和经济型e实例区别及选择参考
目前在阿里云的活动中,轻量应用服务器2核2G3M带宽价格为82元1年,2核2G3M带宽的经济型e实例云服务器价格99元1年,对于云服务器配置和性能要求不是很高的阿里云用户来说,这两款服务器配置和价格都差不多,阿里云轻量应用服务器和ECS云服务器让用户二选一,很多用户不清楚如何选择,本文来说说轻量应用服务器和经济型e实例的区别及选择参考。
阿里云轻量应用服务器和经济型e实例区别及选择参考
|
25天前
|
机器学习/深度学习 存储 人工智能
阿里云GPU云服务器实例规格gn6v、gn7i、gn6i实例性能及区别和选择参考
阿里云的GPU云服务器产品线在深度学习、科学计算、图形渲染等多个领域展现出强大的计算能力和广泛的应用价值。本文将详细介绍阿里云GPU云服务器中的gn6v、gn7i、gn6i三个实例规格族的性能特点、区别及选择参考,帮助用户根据自身需求选择合适的GPU云服务器实例。
阿里云GPU云服务器实例规格gn6v、gn7i、gn6i实例性能及区别和选择参考
|
8天前
|
存储 运维 Ubuntu
自动化运维:使用Ansible管理服务器
【8月更文挑战第61天】本文将介绍如何使用Ansible工具进行服务器的自动化管理。我们将从基础概念开始,逐步深入到实际的应用案例,最后通过代码示例展示如何实现自动化部署和配置管理。无论你是初学者还是有经验的运维工程师,这篇文章都会为你提供有价值的参考。
|
17天前
|
运维 Ubuntu 应用服务中间件
自动化运维:使用Ansible进行服务器配置管理
【9月更文挑战第20天】在当今快速发展的信息技术时代,自动化运维已成为提升工作效率、减少人为错误的关键技术手段。本文将引导读者了解如何使用Ansible这一强大的自动化工具来简化和加速服务器的配置管理工作。通过实际代码示例,我们将一起探索Ansible的核心概念、基本操作以及如何构建可重复使用的Playbooks,旨在为读者提供一种清晰、高效的服务器管理方法。无论你是运维新手还是希望提高现有工作流程的效率,这篇文章都将为你提供宝贵的指导和启发。
|
11天前
|
运维 监控 应用服务中间件
自动化运维:使用Ansible管理服务器
【9月更文挑战第26天】在这篇文章中,我们将探索如何使用Ansible来自动化运维任务。Ansible是一种简单而强大的自动化工具,可以简化服务器管理和配置过程。通过学习Ansible的基础知识和实践应用,您将能够更高效地管理您的服务器,并减少人为错误。无论您是初学者还是有经验的系统管理员,这篇文章都将为您提供宝贵的见解和实用的技巧。让我们一起开始学习如何利用Ansible来提升您的运维效率吧!
26 4

相关产品

  • 云服务器 ECS
  • 下一篇
    无影云桌面