免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: sofsys
打印 上一主题 下一主题

[备份软件] CDP是什么东东?与正常的备份有什么区别? [复制链接]

论坛徽章:
0
31 [报告]
发表于 2009-10-31 10:57 |只看该作者
原帖由 冬瓜头 于 2009-10-31 10:33 发表
“所以基于磁盘阵列等硬件设备的CDP,包括飞康的、EMC的,都是扯淡!”
底层只能是先保持在线存储的同步镜像,至于是否一致,这个又绕回来了,两个一致性层次:文件系统及其下层,应用自身的buffer一致性和逻辑 ...


CDP的目的是保护业务和应用,你也说了要保证应用的逻辑一致性才是目标,底层IO不可能保证这一点,必须与逻辑应用通信耦

合,通过上层逻辑应用来保证底层IO的一致性,think 内存、调整应用到备份状态等等手段,耽误很多时间,而且这些操作对业务

应用的运行和性能都有不少影响,不可能做的非常频繁!

这也导致不可能做到真正意义上的CDP对RPO的要求(接近于0),所以说那是扯淡!

而Data Guard你提到的只是物理方式的异步模式,目前Data Guard在9i之后(10gr2之后就已经用的很多了)的逻辑同步模式,

就能保证事务和SQL的同步,或者现在Oracle在10g/11g用的非常多的Streams,11g之后Streams支持实时的数据捕获,以及

业界专门针对Oracle应用开发的一些技术Quest的share plex(eBay采用的方式,Streams与其原理相近)等等,都根本不需要

你所说的Reply,这些才是有可能真正实现CDP(业务应用的RPO接近于0)的方式!

[ 本帖最后由 wyddg 于 2009-10-31 11:04 编辑 ]

论坛徽章:
0
32 [报告]
发表于 2009-10-31 11:15 |只看该作者

论坛徽章:
2
2015年迎新春徽章
日期:2015-03-04 09:49:45IT运维版块每日发帖之星
日期:2016-07-29 06:20:00
33 [报告]
发表于 2009-10-31 11:58 |只看该作者
挖掘redo log的方法基于redo log,即便不需要显式的replay,其本质上依然依然相同。这一点是不容置疑的,就是只有从应用层入手方可实现rpo近0。但是基于底层镜像的cdp方案具有统一集中管理的优势,而且几乎不耗费主机资源,相比应用层直接实现的方法,还是有意义的。而且除了cdp还有其他意义比如本地存储容灾、磁盘备份、异地容灾等,总之数据被镜像了一份,安全系数只会更大。

论坛徽章:
0
34 [报告]
发表于 2009-10-31 12:33 |只看该作者
原帖由 冬瓜头 于 2009-10-31 11:58 发表
挖掘redo log的方法基于redo log,即便不需要显式的replay,其本质上依然依然相同。这一点是不容置疑的,就是只有从应用层入手方可实现rpo近0。但是基于底层镜像的cdp方案具有统一集中管理的优势,而且几乎不耗 ...


挖掘Redo log,提取的是逻辑操作(SQL语句和事务操作),所以对备份端的数据库只需要执行这些逻辑操作即可,并没有你所说的显示或者隐式reply的过程,这个过程同步的数据量比底层设备同步的IO数据量小多了,而且实际上在后续的操作中挖掘log这些操作对主机的影响 相对于你说的基于底层的CDP在保护一致性时对应用的刷内存和改变运行状态来说 简直可以说太小了,而且这种方式还能实现读写分离,甚至就多提供一个可供读写的应用,完全是一种对应用能力的加强,而不是像你说的那样单纯消耗主机资源。

我并不是说底层IO同步的方式不好,它也有它的好处和应用场景,我说的扯淡是这种东西一定要称之为CDP是比较扯淡的,我想表达的意思是脱离应用本身的CDP基本上算不上什么CDP,只能称之为一种数据保护方式罢了

论坛徽章:
0
35 [报告]
发表于 2009-10-31 13:00 |只看该作者
CDP并不一定就是底层IO的同步方式,在开始的回复中我就说了,这是和clone,snapshot,mirror这类存储级别的同步最本质的区别之一。
它同步的是写IO,而不是同步的存储块。

论坛徽章:
0
36 [报告]
发表于 2009-10-31 13:45 |只看该作者
原帖由 xiaophedap 于 2009-10-31 13:00 发表
CDP并不一定就是底层IO的同步方式,在开始的回复中我就说了,这是和clone,snapshot,mirror这类存储级别的同步最本质的区别之一。
它同步的是写IO,而不是同步的存储块。


这类写IO并没有太大价值,因为是和应用无关的磁盘阵列的写IO,

应用不感知(所以不能有双Active的情况),

应用一致性只能通过应用客户端保障(刷内存、改变应用运行状态),所以对应用影响很大,而且一致性点根本的时间间隔根本

达不到的要求,可以说是一种数据保护方式,所谓的CDP不过这些设备厂商的宣传噱头罢了

而且据我确认飞康CDP同步就是数据块,而且只能是异步模式,EMC的RecoverPoint能否同步写IO我持怀疑态度,

我了解的真正同步写IO的是Symantec SF中的VVR复制机制

论坛徽章:
2
2015年迎新春徽章
日期:2015-03-04 09:49:45IT运维版块每日发帖之星
日期:2016-07-29 06:20:00
37 [报告]
发表于 2009-10-31 13:51 |只看该作者
redo log中就是事物操作,这个没什么可强调的了吧。这些相比block操作来讲,数据量确实小很多,但是这一点并不能说明一致性问题。事物操作也是要一致性的,也需要commit的吧,commit完成后才是一致的,挖掘redo log然后将操作同步到远端的过程,难道不也需要一致性保证么?难道它只同步已经checkpoint过的操作么?如果挖掘动作比生成动作延后多个checkpoint,发生灾难之后岂不是要丢掉很多操作么?如果没有延后,不是每个语句都同步,而是在checkpoint时候同步操作,那么在传输checkpoint之前操作的过程中发生灾难,岂不是要丢失本次checkpoint的所有操作么?不用replay的话,如何解决上述这些问题,请赐教一二。

论坛徽章:
2
2015年迎新春徽章
日期:2015-03-04 09:49:45IT运维版块每日发帖之星
日期:2016-07-29 06:20:00
38 [报告]
发表于 2009-10-31 13:56 |只看该作者
“写IO”和“block IO”之间的区别要看哪个层次,如果有某种agent作用在应用层,那么“写IO”与block io就是有区别的,如果纯作用于存储层,那么所谓“写IO”就是指“block IO”,存储不能感知,如36楼所说。所以话又说回来了,应用层的cdp是直接解决rpo问题的,底层的最后还是需要上层来replay一下,同样也能达到同样效果。

不知道vvr的这个写IO是怎么个模式?能否解释一下呢?

论坛徽章:
0
39 [报告]
发表于 2009-10-31 14:24 |只看该作者
原帖由 冬瓜头 于 2009-10-31 13:51 发表
redo log中就是事物操作,这个没什么可强调的了吧。这些相比block操作来讲,数据量确实小很多,但是这一点并不能说明一致性问题。事物操作也是要一致性的,也需要commit的吧,commit完成后才是一致的,挖掘redo ...


我把2种方式的详细步骤列举出来:

第一种方式:基于应用本身,比如Oracle Data Guard的逻辑同步方式和Oracle Streams技术,首先这种技术我可以保证2边数据库都是Active的,即都在运行中,有些情况备用数据库是只读,有些情况备用数据库读写都可以

1、分析挖掘Redo log,将生产数据库的事务以SQL或者其他逻辑方式提炼
2、传输逻辑操作到备份数据库
3、在备份数据库进行传输过来的逻辑操作,即执行SQL语句,我不懂在一个正常运行的数据库里面正常执行一条SQL语句需要什么多余的保证一致性的操作,这完全由Oracle本身就能很好的保证。
另外针对不同应用可以采用同步或者异步的传输方式,本地备份的情况下,生产库完全可以等到备库的操作完成后,再提交操作成功,保证不丢失任何操作。如果带宽有限,或者生产库性能要求很高,可以采用异步的方式

第二种方式:基于设备级写IO的获取或者数据块的同步,例如阵列的远程复制技术,首先这种技术由于传输的数据应用无法感知,备份数据库肯定是冷的,无法启动的

1、抓取生产中心磁盘阵列的写IO或者数据块
2、传输写IO或者数据块到备份磁盘阵列,这个数据量就已经大于第一种方式逻辑传输的数据量
3、将传输过来的写IO或者数据库写入备份端的磁盘阵列中,相当于第一种方式执行一次SQL语句
4、前3步第一种方式已经基本完成了正常的备份操作,在正常的库里面执行一些SQL,一致性自然由数据保证。而这种方式写入备份磁盘阵列的数据根本是不一致的,生产端内存中的数据没有传输过来,这边写入磁盘IO的东西不是数据库事务性的执行,无法保证数据库可以正常启动起来,这个时候就需要在备份磁盘阵列通过快照等技术插入一些一致性点。过程如下:备份阵列或者生产阵列执行快照操作,通知这些设备厂商针对操作系统和应用自己开发的快照Agent,刷内存中的脏数据,将Oracle调整到备份状态,然后再将这个时间点的一致性的磁盘阵列数据通过快照照下来,作为一个可恢复点,这个恢复点的数据才能保证将数据库正常的启动起来。如果不是这个恢复点,仅仅用同步过来的数据启动数据库,数据库内部是不一致的,有可能可以通过数据库自身回滚到上一次CheckPoint点启动(但是数据有所丢失),也有可能无法启动,这是无法保证的,就算是能启动也需要大量的时间去将数据库回滚。

我强调过了,我不是说基于底层IO的那些CDP技术不好,没有用处,但是要做到真正意义上的RPO接近与0的CDP技术,是和应用强相关的,换句话说基于Oracle本身提供的CDP技术才有可能做到真正意义上的CDP,基于底层设备的CDP就是一种基于卷的数据保护方式,当然都是个人观点,各位不必太在意!

[ 本帖最后由 wyddg 于 2009-10-31 14:38 编辑 ]

论坛徽章:
0
40 [报告]
发表于 2009-10-31 14:31 |只看该作者
原帖由 冬瓜头 于 2009-10-31 13:56 发表
“写IO”和“block IO”之间的区别要看哪个层次,如果有某种agent作用在应用层,那么“写IO”与block io就是有区别的,如果纯作用于存储层,那么所谓“写IO”就是指“block IO”,存储不能感知,如36楼所说。所 ...


前面提到的2种CDP实现方式,一种是飞康的CDP,一种是EMC RecoverPoint,

我就以飞康CDP而言,飞康CDP是通过一种叫DiskSafe的复制软件,将生产卷复制到备份阵列中,这种复制是基于数据块的,即每次同步的是数据块,复制过程可以开启一个飞康CDP的journal功能记录,恢复的粒度也是这些数据块,并不是每一个针对生产阵列的写IO

VVR进行复制,针对生产卷和复制卷都需要配置专门的日志卷,而且必须结合VxVM实现,VVR的复制是基于每一个对于VxVM的写IO来实现的,而不是数据块
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP