华为云用户手册

  • (可选)单独验证独享WAF是否正常工作 创建一台与独享WAF实例在同一VPC下的E CS 用于发送请求。 通过1中创建的ECS向独享WAF发送请求。 转发测试 curl -kv -H "Host: {添加到WAF的防护对象}" {服务器配置中的对外协议}://{独享WAF的IP}:{防护对象端口} 例如: curl -kv -H "Host: a.example.com" http://192.168.0.1 返回码为 200 则说明转发成功。如果转发未成功,请参见如何排查404/502/504错误?进行排查。 攻击拦截测试。 确保网站对应策略已开启基础防护的拦截模式。 执行以下命令: curl -kv -H "Host: {添加到WAF的防护对象}" {服务器配置中的对外协议}://{独享WAF的IP}:{防护对象端口} --data “id=1 and 1=’1” 例如: curl -kv -H “Host: a.example.com” http:// 192.168.X.X --data “id=1 and 1=’1” 返回码为 418 则说明拦截成功,独享WAF工作正常。
  • 系统影响 防护网站“部署模式”为“云模式”时,如果要删除的防护网站已经接入 Web应用防火墙 ,在删除防护网站前,请您先到DNS服务商处将域名重新解析,指向源站服务器IP地址,否则该域名的流量将无法切回服务器,影响正常访问。 勾选“强制删除WAF的接入CNAME”后,WAF不再检测业务域名解析配置,立即删除WAF的CNAME,如果业务域名解析未做修改,可能会导致业务异常。 删除网站后,1分钟内生效,且不可恢复,请谨慎删除防护网站。
  • 示例四:不同访问模式的协议配置规则 根据您的业务场景的不同,WAF提供灵活的协议类型配置。假设您的网站为www.example.com,WAF可配置如下四种访问模式: HTTP访问模式,如图7所示。 图7 HTTP协议访问模式 此种配置表示用户只能通过http://www.example.com访问网站,如果用户通过https://www.example.com访问网站,会收到302跳转响应,浏览器跳转到http://www.example.com。 HTTPS访问模式,客户端协议全部配置为HTTPS时,当使用HTTP协议访问服务器时,会强制跳转为HTTPS协议,如图8所示。 图8 HTTPS协议访问强制跳转模式 用户直接通过https://www.example.com访问网站,网站返回正常内容。 用户通过http://www.example.com访问网站,用户会收到302跳转响应,浏览器跳转到https://www.example.com。 HTTP/HTTPS分别转发模式,如图9所示。 图9 HTTP/HTTPS分别转发模式 用户通过http://www.example.com访问网站,网站返回正常内容,没有跳转,网站内容不加密传输。 用户通过https://www.example.com访问网站,网站返回正常内容,没有跳转,网站内容加密传输。 使用WAF做HTTPS卸载模式,如图10所示。 图10 使用WAF做HTTPS卸载模式 用户通过https://www.example.com访问网站,但是WAF到源站依然使用HTTP协议。
  • 示例二:防护同一端口的不同源站IP的非标准端口业务 在“防护域名端口”下拉框中,选择需要防护的非标准端口。 “对外协议”全部选择“HTTP”或者“HTTPS”。HTTP协议的非标准端口的配置如图3,HTTPS协议的非标准端口的配置如图4。 图3 除80端口的其他HTTP协议端口的业务 图4 除443端口的其他HTTPS协议端口的业务 “对外协议”选择“HTTPS”时,需要配置证书。 访问网站时,域名后必须加上配置的非标准端口,否则会报404错误。假如配置的非标准端口为8080,则在浏览器中直接输入的地址为“http://www.example.com:8080”。
  • 示例一:防护同一端口的不同源站IP的标准端口业务 在“防护域名端口”下拉框中,选择“标准端口”。 “对外协议”统一选择“HTTP”或者“HTTPS”。HTTP标准端口防护配置如图1所示,HTTPS标准端口防护配置如图2所示。 图1 80端口业务 图2 443端口业务 “对外协议”选择“HTTPS”时,需要配置证书。 访问网站时,域名后可以不加端口号进行访问。例如,在浏览器中直接输入“http://www.example.com”访问网站。
  • 独享引擎版本迭代 引擎版本 特性 2023年4月 HTTP2全局开启,不需要手动开启。 默认支持流量可通过四次WAF,如果回源还是失败,会返回523错误码。 支持multipart严格格式校验。 支持独享型-网络型规格ELB实例(历史版本仅支持共享性ELB、独享性-应用型ELB实例)。 2022年11月 命中内置规则后攻击日志(hit_data)增加内置标签信息。 CC规则支持目的限速和响应码条件。 2022年9月 支持TLS v1.3。 支持IDC检测功能。 新增多种类型的攻击数据统计至心跳日志。 增加 300 个 HTTPS 端口:60700-60999。 2022年7月 支持泛域名标准匹配逻辑。 支持全局白名单功能。 2022年5月 新增基于实例配置TLS最低版本的功能。 2022年3月 支持从管理面下发更新规则。 误报屏蔽支持全流量域名及全流量自定义域名。 误报屏蔽支持配置所有条件。 2022年2月 优化请求日志机制。 2022年1月 优化部分正则匹配机制。 2021年11月 敏感信息泄露规则增加仅记录模式。 新增非法请求类的攻击日志。 精准防护IP条件支持全匹配XFF请求头内所有IP(仅限 IPv4)。 新增按域名设置超时时间功能。 优化部分功能。 2021年10月 提升部分功能的性能。 2021年9月 支持对“request body”的精准防护。 精准防护支持正则匹配功能、全部子字段选择。 部分日志支持对接到 LTS 服务。 2021年6月 HTTPS 端口支持 HTTP/2 协议。 在请求日志(access log)中增加“region ID”。 在攻击日志中增加“region ID”和引擎 IP。
  • 操作步骤 下载image-syncer,解压并运行工具。 以v1.3.1版本为例,您也可以选择其他版本。 wget https://github.com/AliyunContainerService/image-syncer/releases/download/v1.3.1/image-syncer-v1.3.1-linux-amd64.tar.gz tar -zvxf image-syncer-v1.3.1-linux-amd64.tar.gz 创建镜像仓库的认证信息文件auth.json。 image-syncer支持基于Docker Registry V2搭建的docker镜像仓库,按格式填写即可。将源仓库及目标仓库认证信息写入,示例如下。 { "swr.××××.myhuaweicloud.com": { "username": "××××@F1I3Q……", "password": "2fd4c869ea0……" }, "swr.××××.myhuaweicloud.com": { "username": "××××@4N3FA……", "password": "f1c82b57855f9d35……" } } 其中swr.××××.myhuaweicloud.com为镜像仓库地址,username、password可以在登录命令中获取,获取方法如下: 登录SWR控制台,在右上角单击“登录指令”,在弹出的窗口中获取登录指令,如下图所示。 图1 登录指令 在图2 登录指令中,××××@4N3FA……为username; f1c82b57855f9d3564ee……为password; swr.××××.myhuaweicloud.com为镜像仓库地址。 因安全性要求,以上示例中所有username和password均有部分内容进行省略,请以控制台获取到的实际用户名和密码为准。 创建同步镜像描述文件images.json。 如下示例,左边是源仓库的地址,右边是目的仓库地址。image-syncer还支持其他描述方式,具体请参见README-zh_CN.md。 { "swr.cn-north-4.myhuaweicloud.com/org-ss/canary-consumer": "swr.cn-east-3.myhuaweicloud.com/dev-container/canary-consumer" } 执行如下命令将镜像迁移至SWR。 ./image-syncer --auth=./auth.json --images=./images.json --namespace=dev-container --registry=swr.cn-east-3.myhuaweicloud.com --retries=3 --log=./log 表1 命令行参数说明 参数 说明 --config 设置用户提供的配置文件路径,使用之前需要创建此文件,默认为当前工作目录下的config.json文件。这个参数与 --auth和--images 的作用相同,分解成两个参数可以更好地区分认证信息与镜像仓库同步规则。建议使用 --auth 和 --images。 --images 设置用户提供的镜像同步规则文件所在路径,使用之前需要创建此文件,默认为当前工作目录下的images.json文件。 --auth 设置用户提供的认证文件所在路径,使用之前需要创建此认证文件,默认为当前工作目录下的auth.json文件。 --log 打印出来的log文件路径,默认打印到标准错误输出,如果将日志打印到文件将不会有命令行输出,此时需要通过cat对应的日志文件查看。 --namespace 设置默认的目标namespace,当配置文件内一条images规则的目标仓库为空,并且默认registry也不为空时有效,可以通过环境变量DEFAULT_NAMESPACE设置,同时传入命令行参数会优先使用命令行参数值。 --proc 并发数,进行镜像同步的并发goroutine数量,默认为5。 --retries 失败同步任务的重试次数,默认为2,重试会在所有任务都被执行一遍之后开始,并且也会重新尝试对应次数生成失败任务的生成。一些偶尔出现的网络错误比如io timeout、TLS handshake timeout,都可以通过设置重试次数来减少失败的任务数量。 --registry 设置默认的目标registry,当配置文件内一条images规则的目标仓库为空,并且默认namespace也不为空时有效,可以通过环境变量DEFAULT_REGISTRY设置,同时传入命令行参数会优先使用命令行参数值。 迁移命令执行后,可登录目标镜像仓库,查看已迁移的镜像。
  • 步骤三:对接第三方监控平台 登录CCE控制台,选择一个已安装云原生监控插件的集群,单击集群名称。 在左侧导航栏中选择“配置中心”,并切换至“监控运维配置”页签。 开启“对接第三方监控平台”,将云原生监控插件采集到的数据上报至第三方监控平台。 数据上报地址:即步骤一中获取的Remote Write URL,例如:https://127.0.0.1:9090/api/v1/write。 认证方式:选择步骤二中第三方监控平台支持的认证方式。 Basic Auth:填写账号及密码。 Bearer Token:填写身份凭据(Token)。 修改完成后,单击“确认配置”。
  • 步骤一:获取数据上报地址 Prometheus提供了Remote Write标准接口,您可以在CCE云原生监控插件中填写数据上报地址(Remote Write URL),将本地采集到的监控数据远程存储到Prometheus中。 如果您用于接受数据的目的端为第三方厂商提供的Prometheus,您可以前往对应厂商的控制台中查看Remote Write URL。 如果您用于接受数据的目的端为自建的Prometheus,则Remote Write URL为https://{prometheus_addr}/api/v1/write,其中{prometheus_addr}为Prometheus提供对外访问的地址及端口号。
  • 步骤二:获取认证方式 如果您用于接受数据的目的端为第三方厂商提供的Prometheus,您可以前往对应厂商的控制台中查看用于授权访问的Token或账号密码。 如果您用于接受数据的目的端为自建的Prometheus,则 获取Token 的方式如下: 若您自建的Prometheus同样部署在K8s集群中,可进入Prometheus容器中查看。若您自建的Prometheus部署在虚拟机上,则可跳过本步骤。 kubectl exec -ti -n monitoring prometheus-server-0 sh 命令中变量可根据实际情况进行替换: monitoring:Prometheus所在的命名空间。 prometheus-server-0:Prometheus Pod实例的名称。 查看配置文件位置。 ps -aux | grep prometheus 回显如下: 查看并记录prometheus.env.yaml配置文件中的Token信息。 cat /etc/prometheus/config_out/prometheus.env.yaml
  • 操作步骤 您需要将已创建的IP地址组关联至对应的资源投入使用,操作指导如表1所示。 表1 IP地址组关联资源指导 资源 说明 操作指导 安全组 添加安全组规则的时候,源地址和目的地址可以选择IP地址组。 添加安全组规则: 添加入方向规则:“源地址”选择IP地址组。 添加出方向规则:“目的地址”选择IP地址组。 网络ACL 添加网络ACL规则的时候,源地址和目的地址可以选择IP地址组。 添加网络ACL规则: 添加入方向规则:“源地址”或者“目的地址”选择IP地址组,源地址和目的地址只能有一方使用IP地址组。 添加出方向规则:“源地址”或者“目的地址”选择IP地址组,源地址和目的地址只能有一方使用IP地址组。
  • 高危端口 访问公有云特定端口时,在部分地区部分运营商无法访问,而其它端口访问正常。可能原因是部分运营商判断表2中的端口为高危端口,默认被屏蔽。 此时,建议您修改敏感端口为其它非高危端口来承载业务。 表2 高危端口 协议 端口 TCP 42 135 137 138 139 444 445 593 1025 1068 1433 1434 3127 3128 3129 3130 4444 4789 5554 5800 5900 8998 9995 9996 UDP 135~139 1026 1027 1028 1068 1433 1434 4789 5554 9995 9996
  • URI POST /v2/{project_id}/instances/{instance_id}/topics 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 项目ID,获取方式请参见获取项目ID。 instance_id 是 String 实例ID。 表2 Query参数 参数 是否必选 参数类型 描述 action 否 String 批量删除topic时使用,不配置则为创建接口。
  • 请求参数 表3 请求Body参数 参数 是否必选 参数类型 描述 name 否 String 主题名称,只能由英文字母、数字、百分号、竖线、中划线、下划线组成,长度3~64个字符。 brokers 否 Array of strings 关联的代理。 queue_num 否 Number 队列数,范围1~50。 缺省值:8 permission 否 String 权限。 缺省值:all message_type 否 String 消息类型(RocketMQ实例5.x版本才包含此参数)。 缺省值:all topics 否 Array of strings 主题列表,当批量删除主题时使用。
  • 请求示例 创建一个主题,关联的代理为broker-0,队列数为3。 POST https://{endpoint}/v2/{project_id}/instances/{instance_id}/topics { "name" : "topic-test", "brokers" : [ "broker-0" ], "queue_num" : 3, "permission" : "all" }
  • 响应参数 状态码: 200 表2 响应Body参数 参数 参数类型 描述 name String topic名称。 total_read_queue_num Number 总读队列个数。 total_write_queue_num Number 总写队列个数。 permission String 权限。 brokers Array of brokers objects 关联的代理。 message_type String 消息类型(RocketMQ实例5.x版本才包含此参数)。 缺省值:all 表3 brokers 参数 参数类型 描述 broker_name String 代理名称。 read_queue_num Number 读队列个数。 write_queue_num Number 写队列个数。
  • 响应示例 状态码: 200 查询单个主题成功。 { "total_read_queue_num" : 3, "total_write_queue_num" : 3, "permission" : "all", "brokers" : [ { "broker_name" : "broker-0", "read_queue_num" : 3, "write_queue_num" : 3 } ], "message_type" : "NORMAL" }
  • 请求示例 创建元数据迁移任务。 POST https://{endpoint}/v2/{project_id}/instances/{instance_id}/metadata { "rabbit_version" : "3.8.35", "rabbitmq_version" : "3.8.35", "product_name" : "RabbitMQ", "product_version" : "3.8.35", "users" : [ { "name" : "root", "password_hash" : "password_hash", "hashing_algorithm" : "rabbit_password_hashing_sha256", "tags" : "administrator", "limits" : { } } ], "vhosts" : [ { "name" : "DeleteVhost123" } ], "permissions" : [ { "name" : "root", "vhost" : "DeleteVhost123", "configure" : ".*", "write" : ".*", "read" : ".*" } ], "topic_permissions" : [ ], "parameters" : [ ], "global_parameters" : [ { "name" : "internal_cluster_id", "value" : "rabbitmq-cluster-id-123" } ], "policies" : [ ], "queues" : [ { "name" : "test-001", "vhost" : "/", "durable" : false, "auto_delete" : false, "arguments" : { } } ], "exchanges" : [ { "name" : "direct", "vhost" : "/", "durable" : false, "auto_delete" : false, "internal" : false, "arguments" : { } } ], "bindings" : [ { "source" : "direct", "vhost" : "/", "destination" : "test-001", "destination_type" : "queue", "routing_key" : "test-001", "arguments" : { } } ] }
  • URI POST /v2/{project_id}/instances/{instance_id}/metadata 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 项目ID,获取方式请参见获取项目ID。 instance_id 是 String 实例ID。 表2 Query参数 参数 是否必选 参数类型 描述 overwrite 是 String true开启同名覆盖,会对已有的同名元数据的配置进行修改,false时当topic或group已存在则会报错。 name 是 String 迁移任务名称,名称规则参考创建实例 type 是 String 迁移任务类型,分为自建RocketMQ上云(rocketmq)、自建RabbitMQ上云(rabbitToRocket)
  • 响应参数 状态码: 200 表3 响应Body参数 参数 参数类型 描述 total Integer topic总数。 max Integer 最大可创建topic数量。 remaining Integer 剩余可创建topic数量。 next_offset Integer 下个分页的offset。 previous_offset Integer 上个分页的offset。 topics Array of Topic objects topic列表。 表4 Topic 参数 参数类型 描述 name String topic名称。 total_read_queue_num Number 总读队列个数。 total_write_queue_num Number 总写队列个数。 permission String 权限。 brokers Array of brokers objects 关联的代理。 message_type String 消息类型(RocketMQ实例5.x版本才包含此参数)。 缺省值:all 表5 brokers 参数 参数类型 描述 broker_name String 代理名称。 read_queue_num Number 读队列个数。 write_queue_num Number 写队列个数。
  • 响应示例 状态码: 200 查询成功。 { "total" : "3,", "max" : "2000,", "remaining" : "1997,", "next_offset" : "-1,", "previous_offset" : "-1,", "topics" : [ { "name" : "topic-1", "total_read_queue_num" : 3, "total_write_queue_num" : 3, "permission" : "all", "brokers" : [ { "broker_name" : "broker-0", "read_queue_num" : 3, "write_queue_num" : 3 } ], "message_type" : "NORMAL" }, { "name" : "topic-2", "total_read_queue_num" : 3, "total_write_queue_num" : 3, "permission" : "all", "brokers" : [ { "broker_name" : "broker-0", "read_queue_num" : 3, "write_queue_num" : 3 } ], "message_type" : "NORMAL" }, { "name" : "topic-3", "total_read_queue_num" : 3, "total_write_queue_num" : 3, "permission" : "all", "brokers" : [ { "broker_name" : "broker-0", "read_queue_num" : 3, "write_queue_num" : 3 } ], "message_type" : "NORMAL" } ] }
  • URI GET /v2/{project_id}/instances/{instance_id}/topics 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 项目ID,获取方式请参见获取项目ID。 instance_id 是 String 实例ID。 表2 Query参数 参数 是否必选 参数类型 描述 limit 否 Integer 查询数量,取值范围为1~50。 offset 否 Integer 偏移量,表示从此偏移量开始查询, offset大于等于0。
  • 请求示例 批量删除RocketMQ实例。 POST https://{endpoint}/v2/{project_id}/instances/action { "action" : "delete", "instances" : [ "54602a9d-5e22-4239-9123-77e350df4a34", "7166cdea-dbad-4d79-9610-7163e6f8b640" ] } 删除所有创建失败的RocketMQ实例。 POST https://{endpoint}/v2/{project_id}/instances/action { "action" : "delete", "all_failure" : "reliability" }
  • 响应示例 状态码: 200 查询产品规格列表成功。 { "engine" : "rabbitmq", "versions" : [ "3.8.35" ], "products" : [ { "type" : "single", "product_id" : "c6.2u4g.single", "ecs_flavor_id" : "c6.large.2", "billing_code" : "dms.platinum.c6", "arch_types" : [ "X86" ], "charging_mode" : [ "monthly", "hourly" ], "ios" : [ { "io_spec" : "dms.physical.storage.ultra.v2", "type" : "evs", "available_zones" : [ "xxx" ], "unavailable_zones" : [ "xxx" ] }, { "io_spec" : "dms.physical.storage.high.v2", "type" : "evs", "available_zones" : [ "xxx" ], "unavailable_zones" : [ "xxx" ] } ], "support_features" : [ ], "properties" : { "max_connection_per_broker" : "2000", "max_broker" : "1", "max_queue_per_broker" : "100", "max_storage_per_node" : "30000", "min_broker" : "1", "step_length" : "0", "min_storage_per_node" : "200", "product_alias" : "rabbitmq.2u4g.single" } }, { "type" : "cluster", "product_id" : "c6.4u8g.cluster", "ecs_flavor_id" : "c6.xlarge.2", "billing_code" : "dms.platinum.c6", "arch_types" : [ "X86" ], "charging_mode" : [ "monthly", "hourly" ], "ios" : [ { "io_spec" : "dms.physical.storage.high.v2", "type" : "evs", "available_zones" : [ "xxx" ], "unavailable_zones" : [ "xxx" ] }, { "io_spec" : "dms.physical.storage.ultra.v2", "type" : "evs", "available_zones" : [ "xxx" ], "unavailable_zones" : [ "xxx" ] } ], "support_features" : [ ], "properties" : { "max_connection_per_broker" : "4500", "max_broker" : "7", "max_queue_per_broker" : "400", "max_storage_per_node" : "30000", "min_broker" : "3", "step_length" : "2", "min_storage_per_node" : "100", "product_alias" : "rabbitmq.4u8g.cluster" } } ] }
  • 响应参数 状态码: 200 表3 响应Body参数 参数 参数类型 描述 engine String 分布式消息服务的产品类型。 versions Array of strings 支持的产品版本类型。 products Array of ListEngineProductsEntity objects 产品规格的详细信息。 表4 ListEngineProductsEntity 参数 参数类型 描述 type String 产品类型。当前产品类型有单机和集群。 product_id String 产品ID。 ecs_flavor_id String 底层资源类型。 billing_code String 账单计费类型。 arch_types Array of strings CPU架构。 charging_mode Array of strings 计费模式。 monthly:包年/包月类型。 hourly:按需类型。 ios Array of ListEngineIosEntity objects 支持的磁盘IO类型列表。 support_features Array of objects 当前规格实例支持的功能特性列表。 properties ListEnginePropertiesEntity object 当前规格实例的属性。 表5 ListEngineIosEntity 参数 参数类型 描述 io_spec String 磁盘IO编码。 type String 磁盘类型。 available_zones Array of strings 可用区。 unavailable_zones Array of strings 不可用区。 表6 ListEnginePropertiesEntity 参数 参数类型 描述 step_length String 节点增长步长。 max_queue_per_broker String 每个Broker的最大对列。 max_connection_per_broker String 每个Broker的最大连接数。 max_partition_per_broker String 每个Broker的最大分区数。 max_broker String Broker的最大个数。 max_storage_per_node String 每个节点的最大存储。单位为GB。 max_consumer_per_broker String 每个Broker的最大消费者数。 min_broker String Broker的最小个数。 max_bandwidth_per_broker String 每个Broker的最大带宽。 min_storage_per_node String 每个节点的最小存储。单位为GB。 max_tps_per_broker String 每个Broker的最大TPS。 product_alias String product_id的别名。
  • 请求示例 批量重启实例。 POST https://{endpoint}/v2/{project_id}/instances/action { "action" : "restart", "instances" : [ "54602a9d-5e22-4239-9123-77e350df4a34", "7166cdea-dbad-4d79-9610-7163e6f8b640" ] } 批量删除实例。 POST https://{endpoint}/v2/{project_id}/instances/action { "action" : "delete", "instances" : [ "54602a9d-5e22-4239-9123-77e350df4a34", "7166cdea-dbad-4d79-9610-7163e6f8b640" ] } 删除所有创建失败的实例。 POST https://{endpoint}/v2/{project_id}/instances/action { "action" : "delete", "all_failure" : "rabbitmq" }
  • 返回结果 类型 说明 GetResult 参数解释: SDK公共结果对象。 GetResult.body类型 说明 RestoreFailedWorkflowExecutionResponse 参数解释: 响应结果,详见RestoreFailedWorkflowExecutionResponse。 表1 RestoreFailedWorkflowExecutionResponse 参数名称 参数类型 描述 executionUrn str 参数解释: 运行实例的URN 默认取值: 无 restoredAt str 参数解释: 运行实例的恢复启动时间 默认取值: 无 executionName str 参数解释: 运行实例的名字 默认取值: 无
  • 约束与限制 通过快照创建云硬盘时,云硬盘类型、模式、加密属性和快照源云硬盘保持一致。 从快照创建云硬盘时,不支持批量创建,数量只能为“1”。 从快照创建的云硬盘与源云硬盘可用区相同,不支持可用区更改。 开头为“autobk_snapshot_vbs_”、“manualbk_snapshot_vbs_”、“autobk_snapshot_csbs_”、“manualbk_snapshot_csbs_”的快照,是创建备份时系统自动生成的快照。该快照仅支持查看详细信息,无法用于创建云硬盘。 如果先使用快照回滚数据至原云硬盘后,立即再使用该快照创建新的云硬盘,此种情况是不支持的。
  • 使用场景 快照功能可以帮助您实现以下需求: 日常备份数据 通过对云硬盘定期创建快照,实现数据的日常备份,可以应对由于误操作、病毒以及黑客攻击等导致数据丢失或不一致的情况。 快速恢复数据 应用软件升级或业务数据迁移等重大操作前,您可以创建一份或多份快照,一旦升级或迁移过程中出现问题,可以通过快照及时将业务恢复到快照创建点的数据状态。 例如,当由于弹性云服务器A的系统盘A发生故障而无法正常开机时,由于系统盘A已经故障,因此也无法将快照数据回滚至系统盘A。此时您可以使用系统盘A已有的快照新创建一块云硬盘B并挂载至正常运行的弹性云服务器B上,从而弹性云服务器B能够通过云硬盘B读取原系统盘A的数据。 当前通过快照回滚数据,只支持回滚快照数据至源云硬盘,不支持快照回滚到其它云硬盘。 快速部署多个业务 通过同一个快照可以快速创建出多个具有相同数据的云硬盘,从而可以同时为多种业务提供数据资源。例如数据挖掘、报表查询和开发测试等业务。这种方式既保护了原始数据,又能通过快照创建的新云硬盘快速部署其他业务,满足企业对业务数据的多元化需求。
  • 约束与限制 包年/包月的系统盘不支持单独退订,需要跟随弹性云服务器一起退订。 随包年/包月弹性云服务器一同购买或追加购买的包年/包月非共享的数据盘,到期时间与弹性云服务器一致,该数据盘处于“正在使用”、“可用”或“错误”状态时,支持退订弹性云服务器时同时退订数据盘,也可以单独退订包年/包月数据盘。 单独购买的包年/包月共享/非共享数据盘,到期时间与挂载的包年/包月弹性云服务器不一致,支持单独退订包年/包月数据盘。 表1 数据盘退订场景 退订场景 子场景 退订入口 随包年/包月弹性云服务器一同购买的/追加购买的包年/包月非共享数据盘的退订 退订弹性云服务器时,一起退订包年/包月数据盘 退订云服务器 单独退订包年/包月数据盘 在云硬盘页面退订 在弹性云服务器页面退订 随包年/包月弹性云服务器一同购买的/追加购买的包年/包月共享数据盘的退订 单独退订包年/包月数据盘 在云硬盘页面退订 单独购买的包年/包月数据盘的退订 单独退订包年/包月数据盘 在云硬盘页面退订
共100000条