基于嵌入式一体化虚拟磁带库的远程数据复制的方法和系统 【技术领域】
本发明涉及计算机存储领域,尤其涉及一种基于嵌入式一体化虚拟磁带库的远程数据复制方法和系统。
背景技术
远程复制技术是指通过远程复制软件,将本地数据复制到异地,远程复制技术使远程拷贝总能与本地机要求复制的内容相匹配。计算机存储业界采用磁带库实现远程数据复制已经有多年的历史了,现在最新的磁带技术已经能够达到极高的备份/恢复速度,比如LTO3(80MB/s)和IBM TS1120(100MB/s)磁带驱动器,它们单个磁带驱动器的速度已经超过或者接近许多磁盘阵列的实际吞吐量。当一个磁带库安装有多个驱动器时,其理论上的备份速度是相当惊人的,比如安装6个LTO3驱动器的磁带库,即使在非压缩的情况下也可以达到480MB/s,相当于每小时备份1.7TB的数据,这事实上已经完全可以满足大多数用户的实际需要。但是,在许多情况下,磁带的备份/恢复速度远远不能够达到理论值,除去磁盘阵列/存储网络/远程复制服务器/软件可能产生的瓶颈之外(这些瓶颈无法在远程复制设备端得到解决),远程复制数据流的特点也决定了远程复制的效率。
造成这种问题的主要原因就是,数据远程复制过程中,每当更换文件时,设备级别(磁盘/磁带)的连续读写的过程被中断了,需要设备重新“寻道”重起读写进程,当文件非常多的时候,“寻道”过程数量的增多将影响备份效率。然而,由于磁盘和磁带的工作原理非常不同,磁盘的“寻道”只需要磁头“飞行”到新的物理位置(相对而言是10ms级别);而磁带设备此时往往需要起停磁带甚至回卷磁带,该过程至少需要好几秒钟时间。所以,相对而言,磁盘设备所受到的影响远远小于磁带设备,当复制数据流不是很稳定的情况下,采用磁盘备份的速度会大大好于采用磁带。更重要的是目前市场上物理磁带库数据的复制技术,一般通过主机上的复制软件进行。这会消耗主机资源,降低远程复制的性能。
虚拟磁带库通过存储虚拟化技术把一个磁盘存储系统完全模拟成了一个磁带库,包括磁带库机械臂、磁带驱动器、各种类型的磁带以及容量。中国专利申请CN200810167582.7公开了一种嵌入式一体化的虚拟磁带库系统和方法。该发明可使虚拟磁带库成为了一种独立的专用外设,其使用方式也更接近物理磁带库。
【发明内容】
本发明提供一种基于嵌入式一体化虚拟磁带库系统实现远程数据复制的方法和系统,用于解决上述技术问题。其特征在于以嵌入式虚拟磁带库系统软件模块的形式,实现了在虚拟磁带库之间进行远程数据复制。该软件模块包含客户端程序和服务器端程序两个子模块,服务器端程序负责将虚拟磁带库抽象成为一个只提供数据的数据源,客户端程序负责向服务器请求用户指定的数据,并将请求到的数据写入到本地磁盘。嵌入式虚拟磁带库中同时包含有客户端程序与服务器端程序,可以既是客户端又是服务器端。
本发明基于嵌入式一体化虚拟磁带库远程数据复制系统包括:服务器和远程客户,服务器与远程客户通过广域网连接。
所述远程数据复制系统,包括下列步骤:
当客户端向服务器端发出建立连接请求,服务器端的监听进程收到请求后,为该连接创建一个新的服务进程;
客户端建立连接成功之后,向服务器端发出请求,指明要复制的磁带,服务器端对请求的合法性进行验证,如果验证成功,则打开磁带,并向客户端返回确认。
客户端在向服务器端请求数据块时,会判断本地磁带与源磁带是否是同一版本,若是同一版本,则接着上一次复制任务结束时的数据块编号,继续请求数据块,从而实现增量复制;
数据远程复制过程中,复制以数据块为单位。客户端将数据块编号作为请求发送给服务器,服务器端接收到编号之后,在该磁带的索引中查找到该数据块的描述信息,再根据该描述信息,从磁盘读取被请求的数据块,将数据块和其描述信息返回给客户端。服务器端读取数据时采用Direct I/O的方式,同时配合一个缓存,避免读取数据成为性能瓶颈。客户端收到请求的数据块和其描述信息后,先用描述信息更新本地磁盘的索引,再根据更新后的索引将数据块写入磁盘。写入数据采用同步写入的方式,将突然掉电等意外事件对数据完整性造成的影响限制在可控的范围之内。客户端等待数据块写入完成,将顺序请求下一个数据块,此过程将重复进行,直至复制任务完成。
复制任务正常结束或出现异常情况时,客户端向服务器端发送断开连接请求,服务器端接到请求,完成清理工作后退出。客户端收到服务器端的确认后也退出。
远程复制方式可选:一对一复制方式、一对多复制方式和多对一复制方式,
其中:
一对一复制方式是指服务器端的一个虚拟磁带可以复制到一个客户端的一虚拟磁带。
一对多复制方式是指服务器端的一虚拟磁带可以同时复制到多个客户端各自的一个虚拟磁带。
多对一复制方式是指一个客户端可以同时连接多个服务器,将多个服务器各自的一个虚拟磁带复制到客户端的多个虚拟磁带内;
本发明服务器端系统每传送若干个数据块,客户端系统会计算出传送这若干个数据块的平均速度,若该速度大于用户设定的上限,客户端系统会休眠相应地时间。这种操作进行若干次之后,将引导TCP协议认为网络带宽接近用户设定的上限,从而实现带宽限制的目的。
【附图说明】
下面结合附图和具体实施方案对本发明作进一步详细说明。
图1是本发明系统结构图
图2是本发明远程复制流程图
图3是本发明服务器端与客户端请求种类说明
图4是本发明服务器端与客户端处理流程图
图5是本发明远程复制数据包结构图
图6是本发明实施例一对一方式结构图
图7是本发明实施例一对多方式结构图
图8是本发明实施例多对一方式结构图
【具体实施方式】
为了使本技术领域的人员更好地理解本发明实施例的方案,下面结合附图和实施方式对本发明实施例作进一步的详细说明。
首先,参照图1,是本发明系统结构图,包括:
备份主机与虚拟磁带库连接101,接口支持SCSI,光纤,iSCSI,复制单元102使用POSIX(Portable Operating System Interface of Unix,可移植操作系统接口)接口读写虚拟磁带,通过TCP/IP网络103连接。
参照图2,是本发明数据复制流程步骤:
步骤201,按时间调度策略或手工创建客户端工作进程,启动复制任务;
步骤202,客户端向服务器端发起连接请求;
步骤203,服务器端收到连接请求后,创建一个工作进程;
步骤204,服务器向客户端发送连接成功确认;
步骤205,客户端向服务器端请求逻辑数据块,请求报文中包含数据块的编号;
步骤206,服务器端收到数据块请求并验证合法后,查找并读取数据块;
步骤207,对读取的数据块计算校验并打包,准备数据发送;
步骤208,通过TCP/IP网络传输数据块;
步骤209,客户端收到数据包,提取逻辑数据块,验证校验和,准备写入磁盘;
步骤210,磁盘写入完成,客户端开始请求下一个逻辑数据块。
参照图3,是本发明服务器端与客户端请求种类说明,其中:
客户端请求的种类
enum {
REQ_COUNT,//请求服务器端磁带的个数
REQ_STAT,//请求磁带的详细信息
REQ_OPEN,//请求打开磁带
REQ_BUF,//请求数据块
REQ_CLOSE,//请求断开连接
};
服务器端应答的种类
enum {
R_NONE,//告知客户端请求已收到
R_INT,//请求返回植为int型
R_STAT,//返回磁带详细信息
R_BUF,//返回数据块和其描述信息
};
参照图4,是服务器端与客户端处理流程图
步骤401:服务器监听远程客户端的连接请求;
步骤402:远程客户端发起连接请求;
步骤403:服务器收到请求后验证请求是否合法;
步骤404:远程客户端发起数据复制请求;
步骤405:服务器在本地缓存中查找数据块;
步骤406:远程客户端循环请求后续的数据;
步骤407:服务器循环处理客户端的请求。
参照图5,是本发明数据包结构图,其中:
对数据块描述符和数据块进行计算得到的校验501,描述数据块的类型,长度,在磁盘上的位置等信息502和数据块的内容503。
参照图6,是本发明实施例基于嵌入式一体化虚拟磁带库的远程数据复制一对一复制方式的结构图,两个虚拟磁带库通过TCP/IP网络互连,其中一个虚拟磁带库的一盘或多盘磁带可以复制到另一个磁带库的一盘或多盘磁带,当原虚拟带库出现数据损失时,可以将远程虚拟磁带库的数据复制回来,进行恢复,也可以直接在远程虚拟磁带库进行恢复。
参照图7,是本发明实施例基于嵌入式一体化虚拟磁带库的远程数据复制一对多复制方式的结构图,多台虚拟磁带库通过TCP/IP网络互连,其中一台的磁带可以复制到另外几台中,可以使一份数据在不同地区有多个副本。
参照图8,是本发明实施例基于嵌入式一体化虚拟磁带库的远程数据复制多对一复制方式的结构图,多台虚拟磁带库通过TCP/IP网络互连,其中一台作为客户端,其他都为服务器端,这样多台虚拟带库的磁带可以复制到一台带库的不同磁带中,适合分散在不同地区数据的集中备份。
以上对本发明实施例进行了详细介绍,本文中应用了具体实施方式对本发明进行了阐述,以上实施例的说明只是用于帮助理解本发明的系统及方法;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。