发现在创建云服务器ecs实例的磁盘快照时_玩转ECS第7讲|ECS数据保护-数据备份新特性与最佳实践...

简介: 本文中,阿里云智能弹性计算专家余初武(悟元)将结合阿里云近期推出的数据备份新特性(快照极速备份、一致性快照组)来介绍云上环境如何做数据备份的最佳实践;适合需要构建云上架构的工程师,架构师和云上实施从业人员收看。

关键词:极速备份、崩溃一致性、异地备份

演讲嘉宾简介:余初武(悟元),阿里云技术专家,2011年加入阿里巴巴,一直从事服务端研发工作;2015年加入阿里云ECS团队,在ECS管控、云盘、快照等多个管控领域有丰富的研发经验。

以下内容根据演讲视频以及PPT整理而成。观看回放
更多课程请进入“玩转ECS详情页”了解

本次分享主要围绕以下三个方面:

一、快照极速可用特性
二、一致性快照组
三、总结与思考

数据是企业重要资产,作为存储数据的介质,IT设施发生问题是不可避免的,人为误操作或者程序bug导致数据丢失的情况也偶有发生。因此,每一个企业都应该做好数据备份,保证数据的安全与业务的可用。

为了提升备份与同步的性能,阿里云推出了快照极速可用特性和一致性快照组,为了客户提供更高性能的数据备份功能。

本文将重点介绍如何利用这两个新特性,以及阿里云提供的各种运维部署工具,便捷地完成云上自建数据库的数据备份的两个最佳实践。

第一个是自建数据库的磁盘扩容场景,适用于大多数的企业;第二个则是使用了多磁盘自建数据库的场景,则更多见于大型复杂的业务。

一、极速可用特性——秒级,非一致性数据备份

阿里云ECS的极速可用特性主要包括四个方面,分别是快照秒级可用、云盘回滚性能0损失、ESSD增值特性以及全地域支持等。阿里云ECS极速可用特性的典型使用场景包括快速搭建研发测试环境;业务关键配置的变更保护,实现秒级备份相关磁盘数据;云盘极速回滚,并实现回滚的磁盘性能无损耗。

b3caeb36cfb00235b104ef7b0c03f16c.png

基于极速可用的特性,用户仅需要几秒钟的时间就可以复制出一个新磁盘。

这一过程也非常简单,首先创建一个带极速可用特性的快照,关键参数的设置如下图所示,主要包括InstantAccess和InstantAccessRetentionDays,前者设置为True就可以设置成为极速可用的快照,后者则是极速可用特性的保留天数,可以让这特性到期之后就会自动被关闭。当快照创建完成(极速可用特性开启的情况下,不需要等快照进度完成)之后,就能够快速创建磁盘并立即挂载使用。

5b541f3fd6c6f1caa9fc37db309020d6.png

案例:自建数据库,磁盘空间不够,怎么办?

在这样的情况下,最直接能想到的解决方案是纯人工方式。

首先,对于需要扩容的磁盘打好一个普通快照,这个过程一般都比较慢,往往需要几分钟、几小时以及几天不等的时间。

其次,需要人工登录到控制台对磁盘进行在线扩容。

再次,要登录到实例内部找到相应的磁盘进行扩展分区以及文件系统等各种命令的操作,而这些命令往往是非常复杂的,也是非常容易出错的。

这一方案的缺点十分明显,那就是耗时很久,平均需要1到2小时,而且很容易出错。

bd235032a8813a93302cba558fed28d6.png

而目前阿里云推荐的最佳解决方案是将上述过程全部通过编码实现自动化,做成OOS(运维编排,Operation Orchestration Service)的模板,通过OOS模块实现一键扩容,完成上述方案的全部过程。

这种方案的使用方式就非常简单了,用户可以直接进入到OOS控制台,找到相应的模板并创建一个相应的执行即可,整个过程只需要几十秒就可以完成,而且可以进一步优化至十几秒。

cee34b828cbbe47a6c317b5eb6216161.png

接下来对于刚才提到的OOS一键扩容的关键技术内幕进行讲解。

其实在该方案背后主要包括三个关键技术:分别是快照的极速可用特性通过云助手执行扩展分区的命令以及磁盘的序列号

这里值得注意的是通过云助手执行扩展分区命令时,我们无法知道具体扩展的是哪一块磁盘,因此才需要磁盘的序列号。

磁盘序列号这一特性目前在公有云ECS上也已经上线了,用户通过DescribeDisks就可以返回磁盘序列号SerialNumber,之后通过云助手将磁盘序列号传递给GuestOS内部的脚本,而GuestOS内部的脚本则可以通过udevadm info这串命令获取任意一块磁盘已挂载设备的序列号,这个序列号与DescribeDisks返回的序列号是完全一致的,而且从磁盘诞生之后,序列号就不会再发生任何改变,因此可以作为磁盘在GuestOS内部的唯一标识,并且与OpenABI的接口实现唯一关联。

这样才能帮助我们准确无误地找到需要扩展的磁盘去执行相应的命令。同时,因为ECS具有快照极速可用特性,秒级地打出了一个数据备份,一旦发生任何意外,还可以通过快照实现秒级回滚,基本可以做到万无一失地实现自动扩容过程。

eec40f968c3ca92f0dcbe8ad0a741b87.png

二、一致性快照组——崩溃一致性数据备份

介绍完快照极速可用特性,我们继续跟大家分享下一致性快照组。

一致性快照组的主要特点主要包括四点:即多云盘IO写入一致性、ESSD云盘增值特性、实例级别保护以及功能免费。

适用的场景主要有三种:

第一种场景,企业上云的时候可以实现实例级别整机的保护和备份;
第二种场景,自建数据库特别是跨多云盘自建数据的模式下,一定要使用一致性快照来备份;
第三种场景是SAP HANA的整机一致性保护,也需要用到一致性快照。

9a55e5ee4c040a78c7d46643f7a3282c.png

案例:使用多数据盘自建数据库

这里要介绍的案例是自建数据库时使用了多数据盘,这样的做法主要是为了将数据库常见的日志和数据拆分到独立的云盘上去,使得整个数据库的性能和稳定性都能够得到较大的提升,同时实现日志和数据的读写隔离。

在这种情况下,一旦需要拆分就会遇到两块磁盘上数据存在强关联关系的问题。熟悉数据库的同学都知道,任何一次写操作都会先进行日志操作,日志写完之后再去修改真正的数据,当数据写入完成之后再回来修改日志,比如像MySQL的Redo日志等。

可见,日志和数据存在强依赖逻辑关系,此时如果打普通快照,那么存在任何一点点时差都会导致写入数据在两块磁盘上存在不一致的问题,此时就必须要用到一致性快照,实现崩溃一致性的数据备份。

b5a1e3e480c897406a823fe81e27da5d.png

对于这样的案例场景,阿里云也提供了最佳实践,也就是使用ROS(资源编排,Resource Orchestration Service)。

该方案的基本过程就是将上述理念通过ROS实现模板化,通过ROS创建完全一样的数据库系统。方案关键点在于创建两块独立的数据盘,一块放数据,另外一块放日志,同时对于两块数据盘赋予系统的数据库快照策略Auto Snapshot Policy,并定期地对于两块盘进行数据备份,并且使用一致性快照进行备份,避免出现废弃数据的问题。

c3c0971cb551c99314cf20c5504eab17.png

三、总结与思考

以上的案例都是基于自建数据库的,这两个案例的关键点在于多数据盘和自动扩容磁盘。

将上述两个案例进行串联才能够看到真实的使用场景,也就是先用ROS固化上述提到的最佳实践过程,也就是实现多数据盘,即日志盘和数据盘的隔离,并且使用自动快照的策略定期地打一致性快照。

与此同时,配上云监控就能够在磁盘空间不足的时候,及时报警,此时再通过OOS一键扩容实现磁盘的自动扩容。

当然,这个过程还可以更进一步优化,在OOS控制台配置相应的云监控项目,当收到监控项报警之后自动触发OOS运行和扩容的模板进行一键扩容,真正地实现自动扩容,也就是所谓“无人值守”。

d0891e4c5df379d723e931eeeeacd1c9.png

对于本次介绍的新特性进行总结,本次主要介绍了极速可用和一致性快照两个新特性,这两个新特性很快就会上线供大家使用。

对于极速可用特性而言,建议结合OOS、云助手来磁盘或者其他场景的自动运维实践。如果要对云盘进行操作或者自动化运维则需要使用磁盘序列号在GuestOS内部唯一地标识一块磁盘,这样才能做到准确无误。一致性快照则是在MySQL这种多盘场景下才会使用,主要用来实现奔溃一致性备份。

feac9ac669bc9023d7c975e62676d0ef.png

本次分享到此结束,感兴趣的同学可持续关注和学习云上环境数据保护最佳实践。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/261721.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

用Ant编译Flex项目的几点注意事项

1. 往mxmlc中用define添加编译参数的时候特别要注意一点&#xff0c;字符串一定要包含在单引号中。 下面的写法是无法通过的&#xff1a; <mxmlc ...><define name"NS::NAME" value"Flex in air"/> </mxmlc>下面的写法才是正确的&#x…

链表打印从尾到头打印链表

在本文中,我们主要介绍链表打印的内容,自我感觉有个不错的建议和大家分享下 每日一道理 生命不是一篇"文摘"&#xff0c;不接受平淡&#xff0c;只收藏精彩。她是一个完整的过程&#xff0c;是一个"连载"&#xff0c;无论成功还是失败&#xff0c;她都不会…

1、EJB基本概念及运行环境

1、EJB是什么&#xff1f; EJB是一个用于分布式业务应用的标准服务端组件模型。采用EJB构架编写的应用是可伸缩的、事务性的、多用户安全的。采用EJB编写的应用可以部署在任何支持EJB规范的服务器平台上&#xff0c;例如&#xff1a;jboss、weblogic。 2、EJB是用来干什么的&am…

二分法求方程的根_快速求解方程的根——二分法与牛顿迭代法

今天是周四高等数学专题的第7篇文章。之前的文章和大家聊了许多数学上的理论&#xff0c;今天和大家聊点有用的东西。我们都知道&#xff0c;工业上的很多问题经过抽象和建模之后&#xff0c;本质还是数学问题。而说到数学问题就离不开方程&#xff0c;在数学上我们可以用各种推…

关于android开发环境的创建

最近想暑假找个实习单位&#xff0c;想想java android方面的应该比c、C要好点&#xff0c;然后就想重操旧业学习android 大三的时候我学过一个学期的android知识。当时创建开发环境我很快就弄好了&#xff0c;但是环境创建险些让我崩溃。 环境搭建包括四步&#xff1a; 1、JDK安…

getchar()和EOF总结

大师级经典的著作&#xff0c;要字斟句酌的去读&#xff0c;去理解。以前在看K&R的The C Programming Language(SecondEdition) 第1.5节的字符输入/输出&#xff0c;被getchar()和EOF所迷惑了。可能主要还是由于没有搞清楚getchar()的工作原理和EOF的用法。因此,感觉很有必…

Android多种View动画:EasyAndroidAnimations

&#xfeff;&#xfeff;Android多种View动画&#xff1a;EasyAndroidAnimations EasyAndroidAnimations是Android的一个动画库&#xff0c;使用起来简单方便&#xff0c;EasyAndroidAnimations将一个Android View以各种形式的动画动起来。 其中如图&#xff1a; EasyAndroidA…

python中configparser详解_Python中的ConfigParser模块使用详解

1.基本的读取配置文件-read(filename) 直接读取ini文件内容-sections() 得到所有的section&#xff0c;并以列表的形式返回-options(section) 得到该section的所有option-items(section) 得到该section的所有键值对-get(section,option) 得到section中option的值&#xff0c;返…

关于ubuntu无法启动nginx的问题

在ubuntu13.04上使用apt方式安装nginx发现无法启动nginx&#xff0c;也不报错 查看nginx运行状态&#xff0c;显示未启动 搜索无果&#xff0c;想起了原来的遇到的一个问题&#xff0c;那时候是安装了nginx和lighthttpd服务器&#xff0c;导致nginx无法启动的情况&#xff0c;提…

MVC中validateRequest=false不起作用

MVC Request.QueryString 客户端 潜在危险 在MVC中如果传递xml等参数时&#xff0c;会报“从客户端中检测到有潜在危险的Request.QueryString值”的错误&#xff0c;无法提交参数&#xff0c;在web.Config的Pages节点或者aspx页面中添加validateRequest"false"貌似不…

C语言之基本算法32—鞍点

//数组/*题目&#xff1a;求随意矩阵的全部鞍点。并统计个数。&#xff08;在矩阵中&#xff0c;一个数在所在行中是最大值&#xff0c; 在所在列中是最小值。则被称为鞍点。&#xff09; 如&#xff1a; 1 2 34 5 6 7 8 9 当中&#xff0c;a[1][3]3是该矩阵唯一的…

django python3.6_Django+mysql+python3.6.5 Windows

1.下载py365https://www.python.org/downloads/windows/(原来有2.7.x版本 直接修改环境变量即可&#xff0c;需要多个python环境可以使用pyevn)2.安装mysql2.1下载https://dev.mysql.com/downloads/mysql/5.7.html#downloads解压&#xff1a;mysql-5.7.22-winx642.2配置环境变量…

STL - 底层实现

一、STL六大组件1&#xff09;容器&#xff08;Container&#xff09;2&#xff09;算法&#xff08;Algorithm&#xff09;3&#xff09;迭代器&#xff08;Iterator&#xff09;4&#xff09;仿函数&#xff08;Function object&#xff09;5&#xff09;适配器&#xff08;A…

Oracle以SQL方式导出导入(转移)数据

为什么80%的码农都做不了架构师&#xff1f;>>> 导出源数据 源数据库为Oracle 9g使用SQL Developer导出数据库的表结构和数据&#xff0c;导出成sql文件。这里的源Oracle和目标Oracle的编码是否相同&#xff0c;如果表字段里有时间类型的那么还要注意两库的日期格式…

产品经理应该干些啥?

产品经理的工作&#xff0c;总结起来就三件事&#xff1a; 1、知道做什么 2、知道怎么做 3、让别人去做 先来看“知道做什么”。 许多产品经理其实不知道该做什么&#xff0c;整日被动的应付上面安排下来的工作&#xff0c;一旦出现工作的断顿&#xff0c;就会感觉无所事…

oppo售后解锁恢复工具.zip_OPPO手机4个不为人知的小技巧,全知道的竟然不到1%,令人唏嘘...

随着科技的发展速度加快&#xff0c;智能手机产品也越做越高端。手机里面也包含着很多很实用的技巧&#xff0c;却没有多少人知道&#xff0c;简直就是白白的浪费呀&#xff01;应用分屏一个很好用的功能&#xff0c;利用它我们可同时进行两种操作&#xff0c;比如&#xff1a;…

matlab中方波信号的谐波表示

matlab中方波信号的谐波表示 一.数学运算 二.matlab代码 t-7:0.001:7; %x(t)中t取值范围为【-7,7】 T11; T4; w2*pi/T; a02*T1/T; Ninput(请输入谐波数); Xta0*ones(1,length(t)); for k1:NXtXt2*a0*sinc(k*a0)*cos(k*w*t); end plot(t,Xt);三.运行结果 四。结论 很明显…

C语言学习笔记三

// C 学习笔记//日期&#xff1a;2013-5- 主讲&#xff1a;//记录&#xff1a;ant //备注&#xff1a;课堂学习笔记//// switch ... case语句也可以用来实现分支的处理&#xff0c;使用方法如下 switch(表达式&#xff09; { …

美到极致是疯狂

这是今天和校招新同事交流时的总结&#xff0c;希望校招新同事能够回顾&#xff0c;也能够写出自己的总结。 一、什么是代码高手&#xff1f;你怎么证明自己是代码高手&#xff1f; 知道许多代码技巧、JS炫彩技巧的人大有人在。你知道多少个.net函数&#xff0c;这一点都没有意…

websocket onclose方法什么时候触发_WebSocket断开重连解决方案,心跳重连实践

WebSocket是前后端交互的长连接&#xff0c;服务器可以主动向客户端推送信息&#xff0c;客户端也可以主动向服务器发送信息&#xff0c;是真正的双向平等对话&#xff0c;属于服务器推送技术的一种。项目中&#xff0c;我们经常会使用WebSocket和服务器建立持久的连接。但是前…