《数据镜像复制技术》由会员分享,可在线阅读,更多相关《数据镜像复制技术(8页珍藏版)》请在金锄头文库上搜索。
1、数据镜像复制技术 大型的业务系统中,数据库中的各类数据,如市场数据,客户数据,交易历史数据,财务管理数据、社会综合数据、生产研发数据等,都是公司至关重要的资产,它不仅关系着整个业务系统的稳定和正常运行,还可能关系着巨大的经济利益。数据系统中,存储设备的安全和高可用性与数据库软件系统一样,都至关重要的一旦数据丢失,就有可能面临着百万、千万元的经济损失。 正因为如此,一个大型数据库系统要具有高安全、高可用性,就必须具有以下几个方面的特点: 高可用性高可用性 HA(High Availability) l 有遭受失败的能力 l 有单独的服务和资源管理的能力 l 通过一种类型的 Cluster 进行操
2、作 l 关键概念是失败转移(takeover) l 与容错不同(容错失败是不可见的) 持续可用性持续可用性 CA( Continuous Availability) l 一对或 Cluster 系统,支持 100%联机运行 l 高度分布式系统 l 设计有多层冗余 l 设计有客户端自动失败转移 l 为非单点失败而设计 l 为非计划停机事件而设计 在数据库系统设计中,常用到的系统结构图如: (图 2) 如图所示中,数据库软件、主机、HBA 卡和网络交换机一般都采用双机方式,通过多台设备间的 Active- Active 工作方式来保障系统中的高可用性。不过从上图我们也可以看到,整个系统中,只有存储
3、是单台设备。虽然存储设备内部可通过双控制器、双电源和 RAID 组来实现内部的冗余,但从存储设备整体而言,仍然存在许多单点故障,比如控制器的背板,磁盘扩展柜等; 这与主机和网络层的高可用工作方式是不匹配的。 一旦存储设备发生整体故障,将会直接引起整个系统瘫痪,甚至造成数据丢失,给使用者带来具大的损失。 1.1 卷镜像复制和卷镜像复制和 RAID 镜像卷镜像卷 为了提供存储设备的高可用性, 保障数据的安全性, 常用的一种解决方案是再增加一台备用存储设备, 由两台存储设备负责数据库系统的数据存储服务, 保障数据库的安全和数据存储服务器稳定。根据两个存储设备之间工作方式的不同,数据同步和复制机制的不
4、同,可分为两种方式,第一种是卷镜像复制方式,第二种是 RAID 镜像卷方式。 卷镜像复制工作方式的系统结构图如下: (图 3) 左侧存储为主存储设备设备,右侧为备用存储设备,再通过卷镜像复制软件、数据备份软件、网络层的存储虚拟化设备、存储设备自带的卷镜像复制功能等多种方式来实现主、备两个存储之间的卷镜像复制, 以此来保障数据的安全性, 同时备份存储设备也可以作为数据库系统中的数据存储服务功能的一种后备方式, 一旦主存储设备发生故障, 就需要自动或手动的切换到备份存储设备上, 这种切换实际上是主存储设备生产卷到备份存储设备的镜像卷的切换,经常会导致数据库不一致,数据库重起,切换时间过长等问题。
5、。 RAID 镜像卷工作方式的系统结构图下: (图 4) 两台存储设备之间可建议一个跨存储设备的 RAID 镜像卷, 数据库服务器主机对该镜像卷进行数据读写操作。 由于 RAID 镜像卷跨两个存储设备, 因此一台存储设备发生整体故障,RAID 镜像卷都不会发生故障,也不会影响数据库服务器端业务的正常进行。 与图 3 的系统相比,图 4 中的存储设备对外提供的是一个镜像卷,而不是两个卷。当一个存储设备发生故障时,不需要在两个卷进行切换,主机端不需要加载新卷,数据库服务器也不需要重新启动。 与图 3 相比,图 4 系统中的两台存储设备通过控制器内含集群功能,创建了一个 RAID镜像卷,实现双机工作
6、的方式,从来使得整个数据库存储系统达到了主机、软件、网络和存储等所有层面的双机冗余高可用。 1.2 卷镜像复制功能实现分析卷镜像复制功能实现分析 根据数据库系统的网络结构图可以将数据库系统分成三层, 即主机层、 网络层和存储设 备层,如图 5。卷镜像复制在不同层有不同的实现方式。 基于主机层的实现基于主机层的实现HBASwitchSAN ApplianceControllerServer OSRouterHBASwitchSAN ApplianceControllerServer OSRouter基于基于SAN网络层的实现网络层的实现基于存储子系统的实现基于存储子系统的实现(图 5) 1.2.
7、1 主机层实现卷镜像复制主机层实现卷镜像复制 主机层实现卷镜像复制是指在主机上的卷镜像管理和卷复制软件,如 Veritas Volume Replication 软件,依靠软件来实现数据在两个卷之间的同步或复制。数据先写入一个卷,然后由软件再定时复制到备份卷内,或直接由软件同步写入到两个卷。 如图: (图 6) 这种方式的缺点是数据同步操作由软件实现, 占用主机资源和网络资源非常大。 当一个存储发生在实际应用中经常会出现问题, 一个存储设备发生故障时, 主机端并不能正常地启用另一个存储。 1.2.2 智能存储层实现卷镜像复制智能存储层实现卷镜像复制 许多中高端的智能型存储设备如 EMC Sym
8、metrix 系列、IBM ESS 系列、HP XP512 系列、HDS 9900系列和UIT BM6800系列产品都可以通过ShadowImage、 SRDF、 Timefinder、 Flashcopy或 TrueCopy、Remote Volume Mirror 等功能实现卷镜像复制功能。分别位于不同存储设备上的两个卷之间建立卷复制镜像功能, 存储设备控制器自动将写入主卷的数据复制到备份卷中。当主存储设备发生故障时,业务将会切换到备用存储设备上,并启用备份卷,保证数据库业务不会中断,数据不会丢失。 (图 7) 这种方式的优点是数据复制和镜像功能在存储设备内部由控制器来完成, 不需要主机或
9、第三方软件的参与,数据复制进程安全稳定,安装调试及维护简单。缺点是卷镜像复制进程占用存储设备的资源非常大。主备存储切换时,必须先断开两个卷之间的镜像复制关系,才能启动备份卷。主机在切换主、备份卷的过程中必须停止数据库服务,引起业务中断。整个切换时间较长,一般需要 10-30 分钟,根据无法满足数据库系统所要求的 99.99%的高可用性。 1.2.3 网络层实现卷镜像复制网络层实现卷镜像复制 网络层的数据复制或镜像功能一般是由网络层的存储虚拟化设备来实现, 这种方式的特点是依靠外加的网络层设备来实现两个存储设备之间的数据复制, 数据复制过程不占用主机资源,两个存储之间的数据同步在网络层完成。根据
10、存储虚拟化设备工作机制的不同,一般可分为带内(In-Band)和带外(Out-of-Band)两种。 (图 8) 图 8 所示为常见带内存储虚拟化设备的系统结构图。存储虚拟化设备分别连接主机端Fabric 和存储端 Fabric,主要功能是管理对存储设备上的逻辑卷,对已有逻辑卷进行虚拟化或创建虚拟的条带卷, 消除存储设备异构对主机系统的影响, 提高存储设备的可用性和总体性能。 另外一个功能就是卷复制和镜像, 通过存储虚拟化设备实现两个虚拟卷之间的数据安全保护。 (图 9) 图 9 所示为常见带外存储虚拟化设备的系统结构图。 存储虚拟化设备所提供的功能也类型。 通过存储虚拟化设备实现卷镜像复制功
11、能的优势在于操作由存储虚拟化设备来完成、 压力集中的存储虚拟化设备上,不需要主机参与,数据复制进程安全稳定。 缺点是需要增加专用存储虚拟化设备, 带外方式有的需要在主机端需要安装存储虚拟化设备的客户端软件,比如 UIT SVM,有的需要依赖高端智能交换机,比如 EMC VSM。而袋内方式虚拟化设备则极易成为整个系统的性能瓶颈和故障点。 网络层的数据复制主要依靠快照来实现, 由于两次快照之间有时间间隔, 因此两个存储设备之间的数据并不是完全同步的,一旦主存储设备发生故障,即使能启用备用存储,也有可能丢失一个快照周期的数据。 1.3 RAID 镜像卷功能实现分析镜像卷功能实现分析 RAID 镜像卷
12、一般有两种实现方式,一是在主机层由卷管理软件来实现,二是在存储层 通过存储设备集群来实现。 1.3.1 主机层实现镜像卷主机层实现镜像卷 主机层的镜像卷功能一般由是由安装在主机上的卷管理软件,如 Veritas Volume Manager 实现。在下图中,两个存储设备分别创建两个容量和参数相同的卷,映射给数据库主机,卷管理软件用这个两个卷创建一个软 RAID1 的镜像卷。这样当数据库写入数据时,数据按照 RAID1 的机制会同步写入两个存储系统,并保证两个存储间数据的同步和一致性。 (图 10) 这种实现方式的缺点镜像卷由卷管理软件来实现,卷的长期安全性和稳定性无法保障。卷管理软件占用主机资
13、源非常大, 且会随着存储设备、 网络层或 HBA 卡发生故障而大幅度增加, 极易引起数据库死机。 很多实际应用证明了这个实现方式在大型的数据库系统中是非常不稳定的。 1.3.2 存储层实现镜像卷存储层实现镜像卷 存储设备层的镜像功能一般是指通过存储设备自身强大的集群功能, 跨存储设备创建镜像卷。镜像卷由两个存储共同管理,数据同步写入两个存储。 (图 11) 这种方式的特点是两个存储设备的控制器以集群方式工作, 共同管理镜像卷, 主机端识别到的只是一个镜像卷, 而不是前三种方式中识别到的两个卷。 因此即使是任何一个存储设备发生整体瘫痪,镜像卷都不会出现故障或报错,主机端也不会发生逻辑卷“丢失” 、报错、或需要进行切换,当然更不需要重新启动数据库服务。 镜像功能由存储设备层实现, 数据同步写入两个存储, 不需要主机或任何客户端软件的参与,因此不会占用网络层或主机资源。