云服务器内容精选

  • 备份数据恢复 前提条件 已准备好备份数据。 完成config.py脚本中的配置项赋值。 config.py示例如下: # IAM 鉴权参数 iamDomain = "" iamUser = "" iamPassword = "" # 项目参数 projectName = "" projectId = "" # 服务器参数 # CentOS 7.9 64bit imageRef = "" volumeType = "SSD" flavorRef = "s7n.small.1" vpcId = "" subnetId = "" enterpriseProjectId = 0 securityGroups = [ "" ] keyName = "" # 备份数据参数 backupIds = ["", "", "", "" ] # 备份数据回退参数 serverIds = ["", ""] deletePublicip = False deleteVolume = True # 监控任务参数 delayInSeconds = 10
  • 回滚参数 参数说明 表5 回滚参数说明 参数 是否必选 参数类型 描述 serverIds 是 List 云服务器ID列表。 备份数据恢复完成后获取。 deletePublicip 否 Boolean 配置删除云服务器是否删除云服务器绑定的弹性公网IP。 默认:False deleteVolume 否 Boolean 配置删除云服务器是否删除云服务器对应的数据盘。 默认:True 参数获取 执行备份数据恢复脚本后,待数据恢复完成,通过返回的日志中的serverId获取云服务器ID列表。
  • 方案使用到的接口 URL 所属服务 用途 API文档 POST /v3/auth/tokens IAM 认证鉴权 认证鉴权 GET /v3/{project_id}/backups/{backup_id} CBR 查询备份详情 查询指定备份 POST /v1/{project_id}/cloudservers E CS 创建ECS 创建云服务器 GET /v1/{project_id}/jobs/{job_id} ECS 查询ECS是否创建完成 查询任务的执行状态 GET /v1/{project_id}/cloudservers/{server_id} ECS 查询ECS详情,获取创建好的虚拟机的挂载的磁盘信息 查询服务器详情 POST /v3/{project_id}/backups/{backup_id}/restore CBR 使用备份恢复数据 备份恢复
  • 周期性演练(可选) 根据数据安全法,需要对数据容灾备份定期开展数据恢复测试。恢复是指利用备份软件把所备份的数据内容恢复到数据源。由于业务系统日常运行过程中,经常无法直接在所备份的服务器进行真实环境恢复操作。但为了验证备份数据的可用性以及备份方案完整性、可靠性以及应对未来系统突发事件发生,可以通过备份新建资源的方式来对备份介质以及备份方案进行检验,来确保备份的可恢复验证。 通过数据备份可开展定期恢复演练,具体步骤可参见云服务器备份演练。
  • 应用场景 勒索病毒,也称为勒索软件,是一种特殊的恶意软件,与其他病毒最大的不同在于攻击手段伴随着有组织的网络威胁攻击和加密数据后勒索赎金。 勒索病毒已成为全球主要网络威胁,严重影响着数字经济的发展,而面对勒索病毒的侵害,大多数企业并没有全面和有效的方法予以应对。不得不通过支付高额的赎金来请求黑客对加密的数据进行解锁。而在企业遭受到攻击的同时,会造成企业的重要数据丢失、企业停工停产、合同违约、商誉减值、企业管理者离职以及众多不可预计的后果。 华为云备份防勒索解决方案与主机安全服务HSS结合,为客户提供有效云上防勒索解决方案,满足客户对数据安全保护的需求。
  • 方案架构 云备份所提供的防勒索解决方案服务,从业务实际出发,以客户数据安全要求为导向,帮助客户搭建一个安全可靠的备份防勒索系统,满足客户对于勒索病毒防护的需求,保护数据资产,尽可能减小损失。通过存储库天然具备的访问隔离属性、WORM等特性,实现当云服务器发生勒索攻击时,能提供至少一份干净可用、不被篡改的数据用于安全恢复,提升数据安全的韧性能力,满足客户对于勒索病毒防护的需求。 图1 基于HSS+CBR的云上备份防勒索解决方案
  • 灾备策略 按照用户云上部署的业务系统的不同分级,建议配置不同的数据备份策略,针对常见的云内资源采用如下数据备份策略,该策略可根据实际业务情况自行调整。参照策略管理章节创建备份策略。 系统分类 备份对象 RPO 保留 时间 全量 备份 增量 备份 异地 备份 演练 频率 核心系统 云服务器 4h 1年以上 每周 6次/日 是 月 云数据库 4h 1年以上 每周 6次/日 是 月 云文件系统 4h 1年以上 每周 6次/日 是 月 重要系统 云服务器 12h 1年 双周 2次/日 是 季度 云数据库 12h 1年 双周 2次/日 是 季度 云文件系统 12h 1年 双周 2次/日 是 季度 一般系统 云服务器 24h 6个月 每月 1次/日 否 半年 云数据库 24h 6个月 每月 1次/日 否 半年 云文件系统 24h 6个月 每月 1次/日 否 半年
  • 资源与成本 表1 资源和成本规划 资源 资源说明 数量 每月费用 云服务器备份存储库 存储库容量大于等于所需要备份云服务器资源的容量总和 1 具体的计费方式及标准请参考计费说明。 SFS Turbo备份存储库 存储库容量大于等于所需要备份SFS Turbo资源的容量 1 弹性云服务器 与待演练服务器的配置相同 1 SFS Turbo文件系统 与待演练的SFS Turbo文件系统大小相同 1 RDS数据库实例 与待演练的RDS数据库配置相同 1
  • 演练原则 参考灾备策略里的演练频率,有计划、周期性地对备份数据进行恢复演练。 以备份资源为单位在该资源的所有备份内抽样随机进行,不必每个备份都进行,但要保证在一定期限内每种资源的每类备份至少有一次备份被恢复验证过。 为防止干扰实际业务,恢复演练以使用备份创建新资源实例进行,禁止直接恢复源实例。 下发备份恢复任务后,恢复任务成功,备份能够正常恢复资源,且恢复的数据与原来一致,正确性与预期匹配,则视为恢复成功。 下发备份恢复任务后,如果恢复任务失败,或者恢复任务成功,但数据存在丢失、无法读取的情况,则视为恢复失败,请及时联系华为云工程师进行定位处理。 操作员应详细记录演练的周期、过程及结果。
  • 保护Failover Cluster模式下的SQL Server 当前云服务器备份只支持单个虚拟机的一致性备份,对于集群数据库暂不支持,完整支持将在后续版本中推出。 在Failover Cluster模式下,SQL Server服务只在主节点上是启动的,故在创建云服务器备份时,只需要将主节点加入策略进行备份。在主备发生切换后,及时调整策略,确保始终对主节点进行备份。在恢复时,请先停止所有备节点,然后还原主节点。
  • 保护Always on Availability Groups模式下的SQL Server 当前云服务器备份只支持单个虚拟机的一致性备份,对于集群数据库暂不支持,完整支持将在后续版本中推出。 在Always On模式下,SQL Server服务在主备节点上都是启动的,数据由主复制到备,主上拥有全部的数据。故在创建云服务器备份时,只需要将主节点加入策略进行备份。在主备发生切换后,及时调整策略,确保始终对主节点进行备份。 由于SQL Server自身的机制,在恢复主时,可能会触发同步,使备节点上的数据也被覆盖,导致备份时刻之后新产生的数据丢失,所以建议只有在主备节点均不可用时才进行整机恢复,防止非预期的数据丢失。
  • 验证数据库备份结果 (Windows) 下面以SQL_SERVER数据库为例进行验证。 登录SQL_SERVER数据库,创建新的数据库。 创建数据库成功后,创建存储过程,可以参考图2。 图2 创建存储过程 进入云备份控制台,对目标弹性云服务器创建数据库备份,并勾选数据库备份。 待备份完成后,进入Cloud Server Backup Agent-WIN64\log\ rdagent.txt文件,查看冻结、解冻日志,确定冻结解冻时间。如图中所示的17:28:51。 图3 查看日志 使用新创建的数据库备份恢复目标弹性云服务器。恢复成功后,登录云服务器和数据库,查看表中最后一条插入数据对应的时间(17:28:49)的记录。 对比步骤5日志显示的VSS冻结成功时间和步骤4的时间。冻结成功之前会停止插入数据,所以步骤5的时间比步骤4早。若步骤5的时间比步骤4早,则表示应用一致性备份成功。
  • 验证数据库备份结果 (Linux) 下面以MY SQL数据库为例进行验证。 登录MY SQL数据库,创建新的数据库。 创建数据库成功后,创建存储过程,可以参考图1。 图1 创建存储过程 进入云服务器备份控制台,对目标弹性云服务器创建数据库备份,并勾选数据库备份。 待备份完成后,进入/home/rdadmin/Agent/log/thirdparty.log,查看冻结、解冻日志,确定冻结解冻时间。 使用新创建的数据库备份恢复目标弹性云服务器。恢复成功后,登录云服务器和数据库,查看表中最后一条插入数据对应的时间。 对比步骤5日志显示的VSS冻结成功时间和步骤4的时间。冻结成功之前会停止插入数据,所以步骤5的时间比步骤4早。若步骤5的时间比步骤4早,则表示应用一致性备份成功。
  • 自定义脚本问题定位方法 如果自定义脚本存在缺陷,可能导致数据库备份失败,此时可以打开/home/rdadmin/Agent/log/thirdparty.log,查看日志进行定位。 图1为一个冻结MySQL数据库失败时的日志样例 图1 日志示例 第一列 18-09-13--22:30:10 为日志记录时间 第二列 [30243] 为脚本的PID编号 第三列 [root] 为脚本的执行用户 第四列 [INFO] 或 [ERROR] 为日志级别 一般脚本调用失败时,打开日志文件,找到相应时间点的ERROR即可初步确定问题原因。例如图1中的错误就是因为MySQL已经处于冻结状态,再次冻结,就会出错。 父主题: 通过自定义脚本实现数据库备份
  • 场景介绍 在Linux下,如果有其它应用需要一致性备份,可以编写自己的冻结、解冻脚本,来实现应用的保护。自定义脚本需放置在/home/rdadmin/Agent/bin/thirdparty/ebk_user目录中,供Agent在备份过程中调用。 下面以一个虚构的应用appexample为例,来进行说明。 appexample是一款新的数据库,它对外提供了appexample -freeze与appexample -unfreeze两个命令来实现冻结与解冻。 用户需要开发自己的appexample_freeze.sh与appexample_unfreeze.sh脚本,供备份Agent调用以实现一致性备份。在备份过程中,会先调用appexample_freeze.sh脚本来冻结IO,冻结成功后,会进行磁盘的一致性快照激活,保证备份的数据是一致性的,最后再调用appexample_unfreeze.sh脚本解冻IO。 整体流程如图1所示: 图1 数据库备份流程图