CN107577733B - 一种数据复制的加速方法及系统 - Google Patents
一种数据复制的加速方法及系统 Download PDFInfo
- Publication number
- CN107577733B CN107577733B CN201710735787.XA CN201710735787A CN107577733B CN 107577733 B CN107577733 B CN 107577733B CN 201710735787 A CN201710735787 A CN 201710735787A CN 107577733 B CN107577733 B CN 107577733B
- Authority
- CN
- China
- Prior art keywords
- scsi
- file
- data
- target
- command
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 230000010076 replication Effects 0.000 title claims abstract description 36
- 238000000034 method Methods 0.000 title claims abstract description 23
- 230000001133 acceleration Effects 0.000 title claims description 16
- 230000003287 optical effect Effects 0.000 claims description 10
- 238000010276 construction Methods 0.000 claims description 4
- 230000006870 function Effects 0.000 description 15
- 238000010586 diagram Methods 0.000 description 6
- 238000012545 processing Methods 0.000 description 5
- 238000003491 array Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 239000003999 initiator Substances 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 101100226364 Arabidopsis thaliana EXT1 gene Proteins 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008570 general process Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种数据复制的加速方法及系统,该方法包括下述步骤:获取SCSI目标端中待复制的源文件大小信息,以及源文件在SCSI目标端中的第一数据分布信息;在SCSI设备中分配与源文件大小相同的目的文件,并获取目的文件在所述SCSI设备中的第二数据分布信息;根据第一数据分布信息和第二数据分布信息,构造对应的SCSI复制命令;将SCSI复制命令发送至SCSI目标端,控制SCSI目标端将源文件的数据写入到目的文件中,或者将SCSI复制命令发送至SCSI设备,控制SCSI设备读取源文件的数据后,再将源文件的数据写入到目标文件中,可以在不支持SCSI EXTENDED_COPY命令集的文件系统中,也能实现数据的加速复制。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种数据复制的加速方法及系统。
背景技术
服务器虚拟化成为数据中心的主流技术,大量运行的虚拟机可以大大提高了服务器的利用率,对虚拟机进行批量的创建、复制、迁移极大的简化了IT运维,同时也带来了大量的数据拷贝操作,进而消耗了服务器的大量CPU、内存和网络带宽资源。这一传输的大致过程如图1所示。其具体过程为:首先通过源服务器从存储读取,分配内存进行缓存,并跨网络传输到目标服务器,最后通过目标服务器写回到存储。从图1可以看出,由于数据的修改、处理都需要应用服务器来参与,因此需要在应用服务器和存储之间直接频繁地进行数据传输,特别是当服务器进行视频文件、虚拟机磁盘镜像等大文件的复制操作时,会导致存储网络带宽资源消耗严重、CPU和内存资源被大量占用的情况。
针对于这种应用场景,VMware提出了VAAI(vStorage API for ArrayIntegration,VMWARE的存储加速技术)接口,结合VMFS(VMware Virtual Machine FileSystem,虚拟机文件系统)集群文件系统把需要服务器处理的某些数据处理工作委托给存储阵列去实现,进而减少数据复制对物理服务器的资源消耗,从而提升VMware虚拟化平台的性能。
VMware VAAI的主要功能包括如下几个功能:
Full COPY(全盘复制),针对虚拟机文件复制场景,把数据复制工作下沉(卸载)到共享存储阵列中;BLOCK ZERO(限制清零),针对创建虚拟磁盘格式化清零场景,避免了大量的写零操作;Hardware-Assisted Locking(硬件辅助锁定),VMFS作为多主机共享的集群文件系统,需要通过加锁来避免冲突。VMware通过ATS锁细化了锁的粒度,提高了VMFS的IO并发能力;Thin Provisioning UNMAP(自动精简配置卸载),针对存储精简配置场景进行空间回收以减少存储空间使用。
其中Full COPY的主要原理是当VMware需要做虚拟机文件的复制的时候,把指令给存储,让存储在底层完成复制的功能。其原理如图2所示,图2中OS指的是操作系统,APP指的是上层应用。
Full COPY复制操作会在下发的SCSI XCOPY命令中直接携带了待复制数据的源地址和目的地址,底层存储系统直接基于SCSI XCOPY中的信息进行数据复制,这样避免了在ESXI主机侧进行无效的数据拷贝,减少了IO路径,大大提高了数据复制的效率。
为了优化大文件复制的服务器开销,Microsoft在Windows 8和Windows Server2012中也新增了类似VAAI XCOPY的功能,卸载数据传输(Offloaded Data Transfer ODX),期望把数据拷贝功能卸载到存储硬件中,降低虚拟化服务器的开销。
SCSI EXTENDED_COPY命令集是SPC-4标准协议中定义的支持第三方进行数据拷贝的命令集合。通过EXTENDED_COPY命令,允许上层应用在发送数据复制的命令时,不需要在命令中携带源数据,而只是指定源数据在磁盘中的地址,以及拷贝目的的地址。VMwareVAAI XCOPY和Windows ODX都是基于EXTENDED_COPY命令集开发的数据复制加速特性。
VMware VAAI中的Full Copy功能结合VMWare VMFS集群文件系统实现了对虚拟机文件复制的卸载(offload),利用SCSI指令把文件复制功能卸载到存储阵列,让存储阵列在底层完成复制功能。
如图3所示,Full Copy的处理流程(详细流程请参考申请号为200980000189.1的专利):
1.当用户执行虚拟机镜像拷贝时,VMware的VMFS为目的文件分配存储空间,并计算出源文件和目的文件的逻辑扩展区范围(文件在磁盘上的LBA地址范围),并行形成数据拷贝的块列表。
2.VMware下发SCSI XCOPY指令给存储阵列,该指令携带待复制数据的源、目的地址,待复制数据总长度。存储阵列直接基于SCSI XCOPY信息进行数据复制操作,这样避免VMware主机无效数据拷贝,减少IO路径和网络负载,提高数据复制效率。
VMWare VAAI XCOPY能够有效的降低大容量文件的复制开销,但是VAAI XCOPY需要和VMFS结合,要求结合VMFS文件系统才能计算出待拷贝的源、目的文件的LBA地址范围,并在此基础上形成SCSI XCOPY置零,因此不适合与非VMFS文件系统的应用场景。
Microsoft也在Windows 8和Windows Server 2012中新增了卸载数据传输(Offloaded Data Transfer ODX)这一功能,期望把数据拷贝功能卸载到存储硬件中,降低虚拟化服务器的开销。
ODX使用基于令牌的机制在智能存储阵列内部或之间复制数据。待复制的源文件和目标文件可以在同一个卷上、同一服务器管理的两个不同卷、或者多个服务器共享的群集共享卷上。令牌是一个512字节的随机数,令牌代表了一个或多个extent(范围,最多128MB的实际数据),一般是一个文件或文件的一部分。令牌由存储控制器通过哈希算法产生,同时令牌具有一定的生命周期。
由于传给主机的是代表数据的令牌,而不是数据本身,因此大大提高了数据复制的性能。同时由于ODX的命令交互比较多,因此ODX文件复制要求文件至少为256KB,太小的文件所产生的开销会使得XCOPY操作变得没有任何意义。
如图4所示,利用ODX实现数据复制的主要操作流程如下所示:
1.用户通过Windows Explorer或命令行执行文件复制/移动。
2.Windows 8或Windows Server 2012发送一个读请求给存储控制器要求执行数据拷贝(POPULATE_TOKEN命令,包含了源LBA/Block length pair list)。
3.存储控制器创建代表数据的令牌并发送回主机(SP创建PIT token)。
4.主机使用令牌发起写请求给存储控制器(WRITE_USING_TOKEN命令,包含一个目标LBA/Block length pair list)。
5.存储控制器根据令牌信息,验证令牌的有效性和源数据位置,并把数据传输数据到目标位置。
6.最后存储控制器把ODX复制的结果发送给主机(主机使用RECEIVE_ROD_TOKEN_INFORMATION命令查询结果)。
为了实现ODX功能,ODX在SCSI EXTENDED_COPY命令集中增加了如下几个SCSI命令:
1.POPULATE_TOKEN命令,发送卸载读请求给存储控制器,请求针对虚拟磁盘LUN A的某段数据产生一个数据令牌。
2.WRITE_USING_TOKEN命令,携带数据令牌发送卸载写请求给存储控制器,请求把该令牌所代表的数据复制到指定位置。
3.RECEIVE_ROD_TOKEN_INFORMATION命令,发送卸载查询请求给存储控制器,查询卸载读/写的结果。
Windows ODX功能需要和Windows的文件系统结合,现在流行的KVM虚拟化通常基于linux xfs/ext4文件系统,并不能使用ODX特性功能,因此并不支持SCSI EXTENDED_COPY相关侧数据复制加速功能。
发明内容
为解决上述技术问题,本发明提供一种数据复制的加速方法及系统,可以在不支持SCSI EXTENDED_COPY命令集的文件系统中,也能实现数据的加速复制。
本发明提供的一种数据复制的加速方法,包括下述步骤:
获取SCSI目标端中待复制的源文件大小信息,以及所述源文件在所述SCSI目标端中的第一数据分布信息;
在SCSI设备中分配与所述源文件大小相同的目的文件,并获取所述目的文件在所述SCSI设备中的第二数据分布信息;
根据所述第一数据分布信息和所述第二数据分布信息,构造对应的SCSI复制命令;
将所述SCSI复制命令发送至所述SCSI目标端,控制所述SCSI目标端将所述源文件的数据写入到所述目的文件中,或者将所述SCSI复制命令发送至所述SCSI设备,控制所述SCSI设备读取所述源文件的数据后,再将所述源文件的数据写入到所述目标文件中。
优选地,将所述SCSI复制命令发送至所述SCSI目标端或者所述SCSI设备,具体为:
通过SCSI驱动直接将所述SCSI复制命令发送至所述SCSI目标端或者所述SCSI设备;
获取SCSI目标端中待复制的源文件大小信息,以及所述源文件在所述SCSI目标端中的第一数据分布信息,具体为:
通过文件系统向所述SCSI目标端发送查询命令,以控制所述SCSI目标端根据所述查询命令返回所述源文件的大小信息以及所述第一数据分布信息;其中,所述文件系统为Linux文件系统或者Unix文件系统。
优选地,所述第一数据分布信息包括所述源文件在所述SCSI目标端的LBA起始地址和LBA结束地址;
所述第二数据分布信息包括所述目的文件在所述SCSI设备中的LBA起始地址和LBA结束地址。
优选地,在SCSI设备中分配与所述源文件大小相同的目的文件,具体为:
通过所述文件系统发送预分配命令至所述SCSI设备,控制所述SCSI设备分配对应的LBA地址作为所述目的文件的LBA地址。
优选地,在SCSI设备中分配与所述源文件大小相同的目的文件,具体为:
通过所述文件系统发送写零命令至所述SCSI设备,控制所述SCSI设备将预设LBA地址的数据清零,并将预设LBA地址作为所述目的文件的LBA地址。
优选地,所述SCSI目标端和所述SCSI设备为磁盘、光盘、磁带设备或者存储阵列中的任意一种。
本发明还提供一种数据复制的加速系统,包括:
源文件信息获取模块,用于获取SCSI目标端中待复制的源文件大小信息,以及所述源文件在所述SCSI目标端中的第一数据分布信息;
目的文件分配模块,用于在SCSI设备中分配与所述源文件大小相同的目的文件,并获取所述目的文件在所述SCSI设备中的第二数据分布信息;
复制命令构建模块,用于根据所述第一数据分布信息和所述第二数据分布信息,构造对应的SCSI复制命令;
复制命令发送模块,用于将所述SCSI复制命令发送至所述SCSI目标端,控制所述SCSI目标端将所述源文件的数据写入到所述目的文件中,或者将所述SCSI复制命令发送至所述SCSI设备,控制所述SCSI设备读取所述源文件的数据后,再将所述源文件的数据写入到所述目标文件中。
优选地,所述复制命令发送模块,用于通过SCSI驱动直接将所述SCSI复制命令发送至所述SCSI目标端或者所述SCSI设备:
所述源文件信息获取模块,用于通过文件系统向所述SCSI目标端发送查询命令,以控制所述SCSI目标端根据所述查询命令返回所述源文件的大小信息以及所述第一数据分布信息;其中,所述文件系统为Linux文件系统或者Unix文件系统。
优选地,所述第一数据分布信息包括所述源文件在所述SCSI目标端的LBA起始地址和LBA结束地址;
所述第二数据分布信息包括所述目的文件在所述SCSI设备中的LBA起始地址和LBA结束地址;
所述目的文件分配模块,用于通过所述文件系统发送预分配命令至所述SCSI设备,控制所述SCSI设备分配对应的LBA地址作为所述目的文件的LBA地址;
或者,用于通过所述文件系统发送写零命令至所述SCSI设备,控制所述SCSI设备将预设LBA地址的数据清零,并将预设LBA地址作为所述目的文件的LBA地址。
优选地,所述SCSI目标端和所述SCSI设备为磁盘、光盘、磁带设备或者存储阵列中的任意一种。
实施本发明,具有如下有益效果:本发明提供的数据复制的加速方法及系统,首先获取SCSI目标端中待复制的源文件大小信息和源文件对应的第一数据分布信息,再根据源文件大小信息在SCSI中预分配同样大小的目的文件,结合第一数据分布信息和目的文件对应的第二数据分布信息,构造SCSI复制命令,将SCSI复制命令发送至SCSI设备或者SCSI目标端,完成源文件的复制工作。本发明在进行数据复制时,发送的复制命令中不需要携带源数据,只是指定源数据在SCSI目标端中的地址,以及目的文件在SCSI设备中的地址,因此在不支持SCSI EXTENDED_COPY命令集的文件系统中,也可以实现数据的加速复制工作,可以适用一些较老的文件系统以及Linux/KVM环境常用的XFS、EXT4文件系统。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的背景技术中数据复制流程示意图。
图2是本发明提供的背景技术中VAAI XCOPY的原理示意图。
图3是本发明提供的背景技术中VAAI XCOPY的流程示意图。
图4是本发明提供的背景技术中ODX数据处理流程示意图。
图5是本发明提供的数据复制的加速方法的流程图。
图6是本发明提供的Linux文件系统的结构示意图。
图7是本发明提供的SCSI的分层结构示意图。
图8是本发明提供的Linux系统中SCSI设备的通讯方式示意图。
具体实施方式
本发明提供一种数据复制的加速方法,如图5所示,该数据复制的加速方法包括下述步骤:
获取SCSI(Small Computer Systems Interface,标准的磁盘系统接口)目标端中待复制的源文件大小信息,以及源文件在SCSI目标端中的第一数据分布信息;
在SCSI设备中分配与源文件大小相同的目的文件,并获取目的文件在SCSI设备中的第二数据分布信息;
根据第一数据分布信息和第二数据分布信息,构造对应的SCSI复制命令;例如,构造相关的SCSI EXTENDED_COPY命令;
将SCSI复制命令发送至SCSI目标端,控制SCSI目标端将源文件的数据写入到目的文件中,或者将SCSI复制命令发送至SCSI设备,控制SCSI设备读取源文件的数据后,再将源文件的数据写入到目标文件中。
进一步地,将SCSI复制命令发送至SCSI目标端或者SCSI设备,具体为:
通过SCSI驱动绕过文件系统直接将SCSI复制命令发送至SCSI目标端或者SCSI设备;
获取SCSI目标端中待复制的源文件大小信息,以及源文件在SCSI目标端中的第一数据分布信息,具体为:
通过文件系统向SCSI目标端发送查询命令,以控制SCSI目标端根据查询命令返回源文件的大小信息以及第一数据分布信息;其中,文件系统为Linux文件系统或者Unix文件系统。
进一步地,第一数据分布信息包括源文件在SCSI目标端的LBA起始地址和LBA结束地址;
第二数据分布信息包括目的文件在SCSI设备中的LBA(Logical Block Address,逻辑区块地址)起始地址和LBA结束地址。
通过文件系统的查询命令,例如xfs_bmap命令可以获取源文件在SCSI目标端的LBA起始地址和LBA结束地址。
进一步地,在SCSI设备中分配与源文件大小相同的目的文件,具体为:
通过文件系统发送预分配命令至SCSI设备,控制SCSI设备分配对应的LBA地址作为目的文件的LBA地址。或者,在SCSI设备中分配与源文件大小相同的目的文件,具体为:
通过文件系统发送写零命令至SCSI设备,控制SCSI设备将预设LBA地址的数据清零,并将预设LBA地址作为目的文件的LBA地址。其中,写零命令可以是dd命令。
其中,目的文件的LBA地址包括有LBA起始地址和LBA终止地址。
进一步地,数据复制的加速方法还包括下述步骤:
创建文件系统以及SCSI驱动。
进一步地,SCSI目标端和SCSI设备为磁盘、光盘、磁带设备或者存储阵列中的任意一种。SCSI目标端和SCSI设备可以为同一磁盘、光盘、磁带设备或者存储阵列,也可以为两个不同的磁盘、光盘、磁带设备或者存储阵列。
本发明还提供一种数据复制的加速系统,该系统包括:源文件信息获取模块、目的文件分配模块、复制命令构建模块、复制命令发送模块。数据复制的加速系统设置在装有Linux系统或者Unix系统的计算机中,该计算机分别与SCSI设备和SCSI目标端通讯连接,SCSI设备和SCSI目标端之间通讯连接。
源文件信息获取模块用于获取SCSI目标端中待复制的源文件大小信息,以及源文件在SCSI目标端中的第一数据分布信息。
目的文件分配模块,用于在SCSI设备中分配与源文件大小相同的目的文件,并获取目的文件在SCSI设备中的第二数据分布信息。
复制命令构建模块用于根据第一数据分布信息和第二数据分布信息,构造对应的SCSI复制命令。
复制命令发送模块用于将SCSI复制命令发送至SCSI目标端,控制SCSI目标端将源文件的数据写入到目的文件中,或者将SCSI复制命令发送至SCSI设备,控制SCSI设备读取源文件的数据后,再将源文件的数据写入到目标文件中。进一步地,复制命令发送模块用于通过SCSI驱动直接将SCSI复制命令发送至SCSI目标端或者SCSI设备。
源文件信息获取模块用于通过文件系统向SCSI目标端发送查询命令,以控制SCSI目标端根据查询命令返回源文件的大小信息以及第一数据分布信息;其中,文件系统为Linux文件系统或者Unix文件系统。
进一步地,第一数据分布信息包括源文件在SCSI目标端的LBA起始地址和LBA结束地址。
第二数据分布信息包括目的文件在SCSI设备中的LBA起始地址和LBA结束地址。
目的文件分配模块用于通过文件系统发送预分配命令至SCSI设备,控制SCSI设备分配对应的LBA地址作为目的文件的LBA地址。
或者,目的文件分配模块用于通过文件系统发送写零命令至SCSI设备,控制SCSI设备将预设LBA地址的数据清零,并将预设LBA地址作为目的文件的LBA地址。
进一步地,SCSI目标端和SCSI设备为磁盘、光盘、磁带设备或者存储阵列中的任意一种。
由于Linux上常用的文件系统xfs、ext4都不支持SCSI EXTENDED_COPY命令集,因此不能实现类似VAAI XCOPY的大文件复制的存储卸载(offload)。但是xfs、ext4文件系统都支持文件的预分配,同时linux系统也提供驱动对SCSI设备(例如磁盘)直接发送SCSI命令。
SCSI实现了一种客户机/服务器风格的通信架构。发起者向目标设备发送命令请求。该目标设备处理此请求并向发起者返回响应。发起者可以是托管计算机中的一个SCSI设备,而SCSI目标设备则可以是一个磁盘、光盘和磁带设备或特殊设备(例如,存储阵列)。
图6显示了SCSI子系统在Linux内核中的位置。Linux内核的顶部是系统调用接口,处理用户空间调用到Linux内核中合适的目的地的路由(例如open、read或write)。而虚拟文件系统(VFS)是Linux内核中支持的大多数文件系统的抽象层。它负责将请求路由到合适的文件系统。大多数文件系统都通过缓冲区缓存来相互通信,这种缓存通过缓存最近使用的数据来优化对物理设备的访问。接下来是块设备驱动器层,它包括针对底层设备的各种块驱动器。SCSI子系统是这种块设备驱动器之一。
与Linux内核中的其他主流子系统不同,如图7所示,SCSI子系统是一种分层的架构,共分为三层。顶部的那层叫做较高层,代表的是Linux内核针对SCSI和主要设备类型的驱动器的最高接口。接下来的是中间层,也称为公共层或统一层。在这一层包含SCSI堆栈的较高层和较低层的一些公共服务。最后是较低层,代表的是适用于SCSI的物理接口的实际驱动器。
如图8所示,通常情况下我们在SCSI设备上创建一个文件系统,通过文件系统来和SCSI设备进行交互。同时Linux系统也提供SCSI驱动,通过Linux通用驱动器接口直接向SCSI设备发送SCSI命令。当然,Unix系统也提供SCSI驱动。
综上所述,本发明提供的数据复制的加速方法及系统,首先获取SCSI目标端中待复制的源文件大小信息和源文件对应的第一数据分布信息,再根据源文件大小信息在SCSI中预分配同样大小的目的文件,结合第一数据分布信息和目的文件对应的第二数据分布信息,构造SCSI复制命令,将SCSI复制命令发送至SCSI设备或者SCSI目标端,完成源文件的复制工作。本发明在进行数据复制时,发送的复制命令中不需要携带源数据,只是指定源数据在SCSI目标端中的地址,以及目的文件在SCSI设备中的地址,因此在不支持SCSIEXTENDED_COPY命令集的文件系统中,也可以实现数据的加速复制工作,可以适用一些较老的文件系统以及Linux/KVM环境常用的XFS、EXT4文件系统。
本发明通过利用文件系统的预分配和获取文件在磁盘、光盘等设备中的数据分布命令,以及结合Linux/Unix系统的SCSI驱动,实现了在不支持EXTENDED_COPY命令集的文件系统上,也能利用EXTENDED_COPY命令实现对大文件数据拷贝的存储卸载。
本发明通过利用文件系统的文件预分配以及清零等其他常用功能,在不修改现有文件系统的基础上实现了对数据复制的存储加速。以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
Claims (6)
1.一种数据复制的加速方法,其特征在于,包括下述步骤:
获取SCSI目标端中待复制的源文件大小信息,以及所述源文件在所述SCSI目标端中的第一数据分布信息,所述第一数据分布信息包括所述源文件在所述SCSI目标端的LBA起始地址和LBA结束地址;
在SCSI设备中分配与所述源文件大小相同的目的文件,并获取所述目的文件在所述SCSI设备中的第二数据分布信息,所述第二数据分布信息包括所述目的文件在所述SCSI设备中的LBA起始地址和LBA结束地址;
根据所述第一数据分布信息和所述第二数据分布信息,构造对应的SCSI复制命令,所述SCSI复制命令不携带源数据;
通过SCSI驱动绕过文件系统直接将所述SCSI复制命令发送至所述SCSI目标端,控制所述SCSI目标端将所述源文件的数据写入到所述目的文件中,或者通过SCSI驱动绕过文件系统直接将所述SCSI复制命令发送至所述SCSI设备,控制所述SCSI设备读取所述源文件的数据后,再将所述源文件的数据写入到所述目标文件中;
其中,在SCSI设备中分配与所述源文件大小相同的目的文件,具体为:
通过所述文件系统发送预分配命令至所述SCSI设备,控制所述SCSI设备分配对应的LBA地址作为所述目的文件的LBA地址;或者
通过所述文件系统发送写零命令至所述SCSI设备,控制所述SCSI设备将预设LBA地址的数据清零,并将预设LBA地址作为所述目的文件的LBA地址。
2.根据权利要求1所述的数据复制的加速方法,其特征在于,将所述SCSI复制命令发送至所述SCSI目标端或者所述SCSI设备,具体为:
通过SCSI驱动直接将所述SCSI复制命令发送至所述SCSI目标端或者所述SCSI设备;
获取SCSI目标端中待复制的源文件大小信息,以及所述源文件在所述SCSI目标端中的第一数据分布信息,具体为:
通过文件系统向所述SCSI目标端发送查询命令,以控制所述SCSI目标端根据所述查询命令返回所述源文件的大小信息以及所述第一数据分布信息;其中,所述文件系统为Linux文件系统或者Unix文件系统。
3.根据权利要求1-2任一项所述的数据复制的加速方法,其特征在于,所述SCSI目标端和所述SCSI设备为磁盘、光盘、磁带设备或者存储阵列中的任意一种。
4.一种数据复制的加速系统,其特征在于,包括:
源文件信息获取模块,用于获取SCSI目标端中待复制的源文件大小信息,以及所述源文件在所述SCSI目标端中的第一数据分布信息,所述第一数据分布信息包括所述源文件在所述SCSI目标端的LBA起始地址和LBA结束地址;
目的文件分配模块,用于在SCSI设备中分配与所述源文件大小相同的目的文件,并获取所述目的文件在所述SCSI设备中的第二数据分布信息,所述第二数据分布信息包括所述目的文件在所述SCSI设备中的LBA起始地址和LBA结束地址;
复制命令构建模块,用于根据所述第一数据分布信息和所述第二数据分布信息,构造对应的SCSI复制命令,所述SCSI复制命令不携带源数据;
复制命令发送模块,用于通过SCSI驱动绕过文件系统直接将所述SCSI复制命令发送至所述SCSI目标端,控制所述SCSI目标端将所述源文件的数据写入到所述目的文件中,或者通过SCSI驱动绕过文件系统直接将所述SCSI复制命令发送至所述SCSI设备,控制所述SCSI设备读取所述源文件的数据后,再将所述源文件的数据写入到所述目标文件中;
其中,所述目的文件分配模块进一步用于通过所述文件系统发送预分配命令至所述SCSI设备,控制所述SCSI设备分配对应的LBA地址作为所述目的文件的LBA地址;或者
用于通过所述文件系统发送写零命令至所述SCSI设备,控制所述SCSI设备将预设LBA地址的数据清零,并将预设LBA地址作为所述目的文件的LBA地址。
5.根据权利要求4所述的数据复制的加速系统,其特征在于,所述复制命令发送模块,用于通过SCSI驱动直接将所述SCSI复制命令发送至所述SCSI目标端或者所述SCSI设备:
所述源文件信息获取模块,用于通过文件系统向所述SCSI目标端发送查询命令,以控制所述SCSI目标端根据所述查询命令返回所述源文件的大小信息以及所述第一数据分布信息;其中,所述文件系统为Linux文件系统或者Unix文件系统。
6.根据权利要求4-5任一项所述的数据复制的加速系统,其特征在于,所述SCSI目标端和所述SCSI设备为磁盘、光盘、磁带设备或者存储阵列中的任意一种。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710735787.XA CN107577733B (zh) | 2017-08-24 | 2017-08-24 | 一种数据复制的加速方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710735787.XA CN107577733B (zh) | 2017-08-24 | 2017-08-24 | 一种数据复制的加速方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107577733A CN107577733A (zh) | 2018-01-12 |
CN107577733B true CN107577733B (zh) | 2021-07-06 |
Family
ID=61035209
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710735787.XA Active CN107577733B (zh) | 2017-08-24 | 2017-08-24 | 一种数据复制的加速方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107577733B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110162376A (zh) * | 2018-02-12 | 2019-08-23 | 杭州宏杉科技股份有限公司 | 一种数据读写方法及装置 |
CN109040221A (zh) * | 2018-07-26 | 2018-12-18 | 郑州云海信息技术有限公司 | 一种数据传输方法、系统、设备及存储阵列和存储介质 |
CN111897679A (zh) * | 2020-07-29 | 2020-11-06 | 北京天融信网络安全技术有限公司 | 一种数据复制方法及装置 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090254902A1 (en) * | 2008-04-02 | 2009-10-08 | Inventec Corporation | Method for improving access efficiency of small computer system interface storage device |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103399823B (zh) * | 2011-12-31 | 2016-03-30 | 华为数字技术(成都)有限公司 | 业务数据的存储方法、设备和系统 |
CN104809124B (zh) * | 2014-01-24 | 2018-06-26 | 中国移动通信集团河北有限公司 | 云虚拟文件系统及其输入/输出请求处理方法 |
CN105589733B (zh) * | 2015-11-27 | 2018-12-25 | 新华三技术有限公司 | 一种数据处理方法和装置 |
-
2017
- 2017-08-24 CN CN201710735787.XA patent/CN107577733B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090254902A1 (en) * | 2008-04-02 | 2009-10-08 | Inventec Corporation | Method for improving access efficiency of small computer system interface storage device |
Also Published As
Publication number | Publication date |
---|---|
CN107577733A (zh) | 2018-01-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210247973A1 (en) | Virtualized file server user views | |
KR102444832B1 (ko) | 분산된 가상 명칭 공간 관리를 사용한 온-디맨드 스토리지 프로비져닝 | |
CN110059037B (zh) | 用于管理输入/输出的方法、设备和计算机程序产品 | |
US10082972B2 (en) | Method and system for pooling, partitioning, and sharing network storage resources | |
US10747673B2 (en) | System and method for facilitating cluster-level cache and memory space | |
US9652265B1 (en) | Architecture for managing I/O and storage for a virtualization environment with multiple hypervisor types | |
JP4769484B2 (ja) | 仮想計算機をマイグレーションするための方法およびシステム | |
JP4884198B2 (ja) | ストレージネットワークの性能管理方法、並びに、その方法を用いた計算機システム及び管理計算機 | |
US20090240880A1 (en) | High availability and low capacity thin provisioning | |
CN111712802B (zh) | 数据存储系统中的虚拟存储驱动器管理 | |
JP2014175009A (ja) | 仮想マシンをサポートするフラッシュ・ベースのキャッシング・ソリューションでの動的キャッシュ共有のためのシステム、方法、およびコンピュータ可読媒体 | |
JP2013531283A (ja) | ストレージの仮想化機能と容量の仮想化機能との両方を有する複数のストレージ装置を含んだストレージシステム | |
KR20120050891A (ko) | 스토리지 시스템에서 요청에 대한 응답과 연관된 지연의 감소 | |
US11922537B2 (en) | Resiliency schemes for distributed storage systems | |
US10244069B1 (en) | Accelerated data storage synchronization for node fault protection in distributed storage system | |
US11409454B1 (en) | Container ownership protocol for independent node flushing | |
US20220083281A1 (en) | Reading and writing of distributed block storage system | |
CN107577733B (zh) | 一种数据复制的加速方法及系统 | |
US11513849B2 (en) | Weighted resource cost matrix scheduler | |
US11609716B2 (en) | Implementing coherency and page cache support for a storage system spread across multiple data centers | |
CN111367472A (zh) | 虚拟化方法和装置 | |
CN110447019B (zh) | 存储器分配管理器及由其执行的用于管理存储器分配的方法 | |
US11327895B1 (en) | Protocol for processing requests that assigns each request received by a node a sequence identifier, stores data written by the request in a cache page block, stores a descriptor for the request in a cache page descriptor, and returns a completion acknowledgement of the request | |
US20220318042A1 (en) | Distributed memory block device storage | |
WO2017113329A1 (zh) | 一种主机集群中缓存管理方法及主机 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |