CN109040135A - 数据同步方法及其装置 - Google Patents
数据同步方法及其装置 Download PDFInfo
- Publication number
- CN109040135A CN109040135A CN201811142512.6A CN201811142512A CN109040135A CN 109040135 A CN109040135 A CN 109040135A CN 201811142512 A CN201811142512 A CN 201811142512A CN 109040135 A CN109040135 A CN 109040135A
- Authority
- CN
- China
- Prior art keywords
- data
- transmitted
- transmission
- transmission channel
- encapsulation
- 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.)
- Withdrawn
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/04—Protocols for data compression, e.g. ROHC
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Communication Control (AREA)
Abstract
本申请公开了一种数据同步方法及其装置。所述方法包括:通过私有协议将待传输对象封装为能够同时被至少两种传输协议承载的数据,其中,所述至少两种传输协议为标准协议,每种传输协议对应一种传输通道;通过传输通道传输所述数据,其中,所述传输通道可以为所述至少两种传输协议对应的传输通道中的至少一种。上述方案,能够提高数据传输的灵活性和可靠性、提高传输效率。
Description
技术领域
本申请涉及通信领域,特别是一种数据同步方法及其装置。
背景技术
通常的存储系统在进行远程复制时,将需要进行远程复制的数据根据复制业务类型分成与复制业务类型对应的复制组,每个复制组的复制数据承载在传输协议上通过现有的光纤传输通道或网线传输通道等进行复制数据传输,从而实现远程复制。
其中,同一个复制组中的复制数据属于同一种复制业务类型,复制业务类型包括控制类命令(删除、暂停数据复制等)、文件数据(文件复制、文件拷贝等)、块数据(块数据读取、复制或拷贝等)。传输协议与传输通道相对应,例如,光纤传输通道采用光纤传输协议(Fiber Channel,FC),网线传输通道采用互联网协议(英文:Internet Protocol,缩写:IP)或者基于IP之上的互联网小型计算机系统接口(Internet Small Computer SystemInterface,iSCSI)。
由于每种传输协议存在差异并且互不兼容,不同的传输通道的传输带宽、延迟等性能各不相同,因此,在进行远程复制时,对于同一复制业务类型只允许采用其中一种传输通道进行复制数据传输。例如,当复制业务类型为块数据时,采用基于FC协议的光纤传输通道进行块复制数据传输;当复制业务类型为文件数据时,采用基于IP协议的网线传输通道进行文件复制数据传输。
然而,当采用单一的传输通道传输同一种复制业务类型的复制数据时,如果传输通道出现故障,将会导致传输复制数据失败,从而导致复制业务无法正常进行。
发明内容
本申请提供一种数据同步方法及其装置,能够提高数据传输的灵活性和可靠性、提高传输效率。
本申请第一方面提供一种数据同步方法,包括通过私有协议将待传输对象封装为能够同时被至少两种传输协议承载的数据,其中,所述至少两种传输协议为标准协议,每种传输协议对应一种传输通道;通过传输通道传输所述数据,其中,所述传输通道可以为所述至少两种传输协议对应的传输通道中的至少一种。
结合第一方面,本申请第一方面的第一种可能的实施方式中,所述通过传输通道传输所述数据的步骤为通过至少两种传输通道传输所述数据,具体包括:记录每个所述待传输对象的延迟阈值;选择至少两种传输通道传输所述数据,其中,所述至少两种传输通道的传输延时不超过所述延迟阈值。
结合第一方面的第一中可能的实施方式,本申请第一方面的第二种可能的实施方式中,在所述选择至少两种传输通道传输所述数据的步骤之后还包括:统计所述至少两种传输通道传输每个所述数据的传输时延;如果所述传输时延不超过所述延迟阈值,增加所述数据的数据量;如果所述传输时延超过所述延迟阈值,按照当前的数据量传输所述数据。
结合第一方面的第一中可能的实施方式,本申请第一方面的第三种可能的实施方式中,如果所述至少两种传输通道中的其中一种传输通道传输数据失败,则重新选择传输通道传输所述数据。
结合第一方面,本申请第一方面的第四种可能的实施方式中,所述待传输对象的类型包括控制类命令、文件数据、块数据;所述能够同时被至少两种传输协议承载的数据包括传输头、传输对象描述和所述待传输对象。
本申请第二方面提供一种数据同步方法,包括确认进行数据同步的至少两个传输通道;采用所述至少两个传输通道传输所述数据,其中,如果所述数据封装的协议与所述至少两个传输通道中的任一传输通道的协议不兼容,则通过私有协议将所述数据封装为能够被所述不兼容的传输通道传输的数据进行传输。
本申请第三方面提供一种数据同步方法,包括接收已封装的数据;解析所述数据,其中,解析所述数据采用的协议与封装所述数据采用的协议相同,如果封装所述数据采用的协议为私有协议,则采用私有协议解析所述数据。
本申请第四方面提供一种数据同步装置,所述装置包括封装模块以及同步模块;所述封装模块用于通过私有协议将待传输对象封装为能够同时被至少两种传输协议承载的数据,其中所述至少两种传输协议为标准协议,每种传输协议对应一种传输通道;所述同步模块用于通过传输通道传输所述数据,其中,所述传输通道可以为所述至少两种传输协议对应的传输通道中的至少一种。
结合第四方面,本申请第四方面的第一种可能的实施方式中,所述同步模块具体用于记录每个所述待传输对象的延迟阈值,选择至少两种传输通道传输所述数据,其中,所述至少两种传输通道的传输延时不超过所述延迟阈值。
结合第四方面的第一种可能的实施方式,本申请第四方面的第二种可能的实施方式中,所述装置还包括统计模块,所述统计模块用于统计所述至少两种传输通道传输每个所述数据的传输时延,其中,当所述传输时延不超过所述延迟阈值时,通知所述同步模块增加所述数据的数据量;当所述传输时延超过所述延迟阈值时,通知所述同步模块按照当前的数据量传输所述数据。
结合第四方面的第一种可能的实施方式,本申请第四方面的第三种可能的实施方式中,当所述同步模块判断所述至少两种传输通道中的其中一种传输通道传输数据失败时,重新选择传输通道传输所述数据。
结合第四方面的第一种可能的实施方式,本申请第四方面的第四种可能的实施方式中,所述待传输对象的类型包括控制类命令、文件数据、块数据,所述能够同时被至少两种传输协议承载的数据包括传输头、传输对象描述和所述待传输对象。
本申请第五方面提供一种数据同步装置,所述装置包括处理器、发送器;所述处理器用于通过私有协议将待传输对象封装为能够同时被至少两种传输协议承载的数据,其中,所述至少两种传输协议为标准协议,每种传输协议对应一种传输通道;所述发送器还用于控制所述发送器通过传输通道传输所述数据,其中,所述传输通道可以为所述至少两种传输协议对应的传输通道中的至少一种。
结合第五方面,本申请第五方面的第一种可能的实施方式中,所述处理器具体用于记录每个所述待传输对象的延迟阈值,选择至少两种传输通道传输所述数据,其中,所述至少两种传输通道的传输延时不超过所述延迟阈值。
结合第五方面的第一种可能的实施方式,本申请第五方面的第二种可能的实施方式中,所述处理器还用于统计所述至少两种传输通道传输每个所述数据的传输时延,其中,当所述传输时延不超过所述延迟阈值时,通知所述同步模块增加所述数据的数据量;当所述传输时延超过所述延迟阈值时,通知所述同步模块按照当前的数据量传输所述数据。
结合第五方面的第一种可能的实施方式,本申请第五方面的第三种可能的实施方式中,当所述处理器判断所述至少两种传输通道中的其中一种传输通道传输数据失败时,重新选择传输通道传输所述数据。
结合第五方面的第一种可能的实施方式,本申请第五方面的第四种可能的实施方式中,所述待传输对象的类型包括控制类命令、文件数据、块数据,所述能够同时被至少两种传输协议承载的数据包括传输头、传输对象描述和所述待传输对象。
本申请第六方面提供一种数据同步装置,所述装置包括分配模块、封装模块以及同步模块;所述分配模块用于确认进行数据同步的至少两个传输通道;所述同步模块用于采用所述至少两个传输通道传输所述数据,其中,当所述数据封装的协议与所述至少两个传输通道中的任一传输通道的协议不兼容时,所述封装模块通过私有协议将所述数据封装为能够被所述不兼容的传输通道传输的数据进行传输。
本申请第七方面提供一种数据同步装置,所述装置包括处理器、发送器;所述处理器用于确认进行数据同步的至少两个传输通道;所述处理器用于采用所述至少两个传输通道传输所述数据,其中,当所述数据封装的协议与所述至少两个传输通道中的任一传输通道的协议不兼容时,所述处理器通过私有协议将所述数据封装为能够被所述不兼容的传输通道传输的数据进行传输;所述发送器用于发送数据。
本申请第八方面提供一种数据同步装置,所述装置包括接收模块以及解析模块;所述接收模块用于接收已封装的数据;所述解析模块用于解析所述数据,其中,解析所述数据采用的协议与封装所述数据采用的协议相同,当封装所述数据采用的协议为私有协议时,采用私有协议解析所述数据。
本申请第九方面提供一种数据同步装置,所述装置包括接收器以及处理器;所述接收模块用于接收已封装的数据;所述处理器用于解析所述数据,其中,解析所述数据采用的协议与封装所述数据采用的协议相同,当封装所述数据采用的协议为私有协议时,采用私有协议解析所述数据。
上述方案中,通过至少两个通道接收同步数据,通过私有协议解析接收到的数据从而得到原始数据,并根据原始数据所属的业务类型执行相应的操作,能够实现同种业务类型的数据可以同时通过多个可用的传输通道进行传输,不同业务类型的数据可以任意选择可用的传输通道进行传输,提高数据传输的灵活性和可靠性、提高传输效率。
附图说明
图1是本申请数据同步系统一实施例的示意图;
图2是本申请数据同步方法第一实施例的流程图;
图3是本申请数据同步方法第二实施例的流程图;
图4是本申请数据同步方法第三实施例的流程图;
图5是本申请数据同步方法第四实施例的流程图;
图6是本申请数据同步装置第一实施例的结构示意图;
图7是本申请数据同步装置第二实施例的结构示意图;
图8是本申请数据同步装置第三实施例的结构示意图;
图9是本申请数据同步装置第四实施例的结构示意图;
图10是本申请数据同步装置第五实施例的结构示意图;
图11是本申请数据同步装置第六实施例的结构示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、接口、技术之类的具体细节,以便透彻理解本申请。
参阅图1,图1是本申请数据同步系统一实施例的示意图。本实施例中的数据同步系统包括第一存储阵列110以及第二存储阵列120。
第一存储阵列110连接第二存储阵列120,或者,第一存储阵列110和第二存储阵列120可以连接到同一个服务器(图未示),也可以分别连接到两个不同的服务器。其中,存储阵列之间或存储阵列与服务器之间能够通过光纤或网线等多种传输通道传输数据。
在一个场景中,当第一存储阵列110连接第二存储阵列120时,第一存储阵列110接收用户发送的命令,直接将存储在第一存储阵列110中的待传输的数据同步到第二存储阵列120。例如,租户迁移、数据备份、数据迁移等。
第一存储阵列110通过私有协议将待传输对象封装为能够同时被至少两种传输协议承载的数据,其中,私有协议为未经国际或国家标准化组织采纳或批准的非标准协议,至少两种传输协议为标准协议,每种传输协议对应一种传输通道。待传输对象的类型包括控制类命令、文件数据、块数据,能够同时被至少两种传输协议承载的数据包括传输头、传输对象描述和待传输对象。
例如,第一存储阵列110与第二存储阵列120可通过光纤或网线等多种传输通道通信。其中,光线传输通道采用光纤传输协议(Fiber Channel,FC),网线传输通道采用互联网协议(英文:Internet Protocol,缩写:IP),FC协议和IP协议均为标准协议。
第一存储阵列110将待传输对象按业务类型进行分类,通过私有协议将待传输对象封装为能够同时被至少两种传输协议承载的数据。其中,待传输对象的类型包括控制类命令、文件数据、块数据,控制类命令包括打开、删除、关闭文件等,文件数据包括文件复制、文件拷贝、文件操作,块数据包括块数据读取、块数据复制和拷贝。文件数据的操作对象为文件或文件夹等文件系统,块数据的操作对象是磁盘区域。存储文件数据时需要按照文件数据的存储路径(子目录)存储,以防止不同的文件夹下有相同名称的文件被覆盖的情况,存储块数据时只要保证块数据的顺序一致即可。待传输对象中的文件数据和块数据均存储在第一存储阵列110,待传输对象中的控制类命令是第一存储阵列110接收到用户发送的控制命令。
能够同时被至少两种传输协议承载的数据包括传输头、传输对象描述和待传输对象。传输头用于标识该数据为采用私有协议封装的数据,传输头至少包括私有协议版本号以及操作码。传输对象描述至少包括待传输对象的唯一标识、类型以及传输时延。唯一标识至少包括待传输对象的名称,当待传输对象的类型为文件数据或块数据时,唯一标识还包括待传输对象的存储路径,待传输对象的存储路径包括源存储地址以及目的存储地址,源存储地址与目的存储地址可以相同也可以不同。当待传输对象的类型为文件数据时,待传输对象的名称包括文件数据的子目录,当待传输对象的类型为块数据时,待传输对象的名称为块数据的编号。比如,文件数据的传输对象的唯一标识描述为:存储地址/文件夹/子文件/文件名,块数据的传输对象的唯一标识描述为:存储地址/块数据的编号。
第一存储阵列110通过传输通道传输数据。其中,传输通道可以为至少两种传输协议对应的传输通道中的至少一种或至少两种。
例如,在第一存储阵列110通过私有协议将待传输对象封装为能够同时被至少两种传输协议承载的数据之后,第一存储阵列110从可用的传输通道中任意选择传输通道传输通过私有协议封装的数据。传输通道可以为至少两种传输协议对应的传输通道中的至少一种或至少两种。
其中,第一存储阵列110选择传输通道的依据可以为:根据传输对象描述中包含的待传输对象的传输时延选择满足传输时延要求的传输通道进行传输。比如,记录每个数据的传输对象描述中包含的待传输对象的延迟阈值,选择至少一种或至少两种传输通道传输通过私有协议封装的数据,其中,选择的传输通道的传输延时不超过延迟阈值。
具体为:第一存储阵列110根据每个已封装的数据的传输对象描述中包含的待传输对象的传输时延和预设延迟阈值,并记录该延迟阈值,将预设的延迟阈值与多种传输通道的传输延时比较。当第一存储阵列110判断传输通道的传输延时不超过预设的延迟阈值时,从满足要求的多种传输通道中任意选择传输通道传输待传输对象。其中,优先选择传输时延小的传输通道传输数据,传输通道可以为至少两种传输协议对应的传输通道中的至少一种或至少两种。
在其他实施例中,第一存储阵列110也可以通过其他方法选择传输通道,此处不做限制。
第一存储阵列110在通过传输通道传输数据时,还可以统计传输通道传输每个数据的传输时延,如果传输时延不超过延迟阈值,增加数据的数据量;如果传输时延超过延迟阈值,按照当前的数据量传输数据。
例如,第一存储阵列110根据每种传输通道最小能承载的数据量传输数据。第一存储阵列110在通过传输通道传输数据时,统计传输通道中每种传输通道各自传输每个数据的传输时延,如果第一存储阵列110判断传输通道当前的传输时延不超过待传输对象的预设延迟阈值,则增加该传输通道的传输数据的数据量,以同时传输更多的数据。如果传输通道当前的传输时延超过待传输对象的预设延迟阈值,则该传输通道的按照当前的数据量传输数据。
当然,传输通道当前的传输时延可以是实时的传输时延,也可以是预设时间内的平均传输时延。
如果当前的传输通道的传输时延超过待传输对象的预设延迟阈值,还可以从当前可用的传输通道重新选择符合待传输对象的预设延迟阈值的传输通道进行传输。
当采用至少两种传输通道传输封装的数据时,如果至少两种传输通道中的其中一种传输通道传输数据失败,则重新选择传输通道传输待传输对象。例如,当正在传输数据的至少两种传输通道中的其中一种传输通道或至少两种传输通道传输数据失败时,第一存储阵列110从当前可用的传输通道重新选择符合待传输对象的预设延迟阈值要求的传输通道进行传输。其中,优先选择传输时延小的传输通道传输待传输对象。
在另一种实施例中,第一存储阵列110还可以先确认进行数据同步的至少两个传输通道,并采用至少两个传输通道传输待传输对象,其中,如果待传输对象封装的协议与至少两个传输通道中的任一传输通道的协议不兼容,则通过私有协议将待传输对象封装为能够被不兼容的传输通道传输的数据进行传输。
例如,第一存储阵列110从多种可用的传输通道中任意选择至少两种传输通道(光线通道和网线通道)传输待传输对象。其中,待传输对象可以为同种业务类型也可以为不同业务类型。由于不同的传输通道采用的传输协议不同,不同的传输协议互不兼容,因此同种业务类型的待传输对象只能承载在一种传输协议上并通过与该传输协议对应的传输通道进行传输,即,采用IP协议封装同种业务类型的待传输对象不能通过光纤通道进行传输,采用FC协议封装的同种业务类型的待传输对象不能通过网线通道进行传输。
当待传输对象通过至少两种传输通道进行传输时,第一存储阵列110通过FC协议将其中一种业务类型的待传输对象封装为能够被FC协议承载的数据,从而通过光纤通道进行传输。第一存储阵列110通过私有协议将其他种类业务类型的待传输对象封装为能够被与FC协议不兼容的传输协议承载的数据或者能够被任意传输协议承载的数据,并通过任意一个与FC协议不兼容的传输协议对应的传输通道(即,除光纤通道之外的其他任意传输通道)进行传输。
当然,通过私有协议封装的待传输对象也可以通过光纤通道进行传输。其中,通过私有协议封装的待传输对象跟通过标准协议封装的数据,可以为同种业务类型也可以为不同业务类型。通过私有协议封装待传输对象的方法与上一实施例所述的方法相同,此处不赘述。
如果至少两种传输通道中的其中一种传输通道传输数据失败,则重新选择传输通道传输通过私有协议封装的待传输对象。例如,当正在传输数据的至少两种传输通道中的其中一种传输通道或至少两种传输通道传输数据失败时,第一存储阵列110从当前可用的传输通道重新选择符合待传输对象的预设延迟阈值要求的传输通道进行传输。其中,优先选择传输时延小的传输通道传输待传输对象。
第二存储阵列120接收已封装的数据,并解析数据。其中,解析数据采用的协议与封装该数据采用的协议相同,如果封装数据采用的协议为私有协议,则采用私有协议解析所述数据。
例如,第二存储阵列120接收第一存储阵列110通过任意可用的通道传输的数据。其中,接收的数据可以为能够同时被至少两种传输协议承载的数据,也可以为只能被一种传输协议承载的数据。传输通道可以为至少两种传输协议对应的传输通道中的至少一种或至少两种。
当接收到的数据为能够同时被至少两种传输协议承载的数据时,表示该数据是第一存储阵列110采用私有协议封装的,该数据包括传输头、传输对象描述和待传输对象。第二存储阵列120从接收到的数据的传输头中获取封装该数据采用的私有协议的版本号以及操作码,并使用与获取到的版本号以及操作码相对应的私有协议解析接收到的数据从而还原该数据得到原始数据(即待传输对象),并将从原始数据按传输对象描述中包含的原始数据所属的业务数据类型、唯一标识执行相应的操作。
其中,原始数据所属的业务类型包括控制类命令、文件数据、块数据,控制类命令包括打开、删除、关闭文件等,文件数据包括文件复制、文件拷贝、文件操作,块数据包括块数据读取、块数据复制和拷贝。唯一标识至少包括原始数据的名称,当原始数据的业务类型为文件数据或块数据时,唯一标识还包括原始数据的存储路径,原始数据的存储路径包括源存储地址以及目的存储地址,源存储地址与目的存储地址可以相同也可以不同。当原始数据的业务类型为文件数据时,原始数据的名称包括文件数据的子目录,当原始数据的业务类型为块数据时,待传输对象的名称为块数据的编号。
例如,当第二存储阵列120解析出原始数据所属的业务类型为控制类命令时,按照控制类命令的名称执行与控制命令名称相对应的操作。当第二存储阵列120解析出原始数据所属的业务类型为文件数据时,将原始数据按唯一标识中包含的子目录以及名称存储到目的地址中。当第二存储阵列120解析出原始数据所属的业务类型为块数据时,将原始数据按唯一标识中包含的块数据编号以及名称存储到目的地址中,从而使得块数据按预设的顺序存储。
当接收到的数据为只能被一种传输协议承载的数据时,表示该数据是第一存储阵列110采用标准协议封装的。第二存储阵列120通过标准协议解析接收到的数据从而还原得到原始数据,并根据原始数据所属的业务类型执行相应的操作。标准协议解析数据的方法此处不赘述。
可替换的,在另一种场景中,第一存储阵列110和第二存储阵列120连接到同一个服务器,服务器将待传输对象封装为能够同时被至少两种传输协议承载的数据,并分别通过至少两种传输通道将已封装的待传输对象传输到第一存储阵列110和第二存储阵列120。例如,硬盘读写、服务器对磁盘阵列的读写等。
或者,在又一种场景中,第一存储阵列110和第二存储阵列120分别连接到两个不同的服务器。两个服务器分别将已封装的待传输对象封装为能够同时被至少两种传输协议承载的数据,并分别通过至少两种传输通道将待传输对象传输到第一存储阵列110和第二存储阵列120。例如,硬盘读写、服务器对磁盘阵列的读写等。
其中,存储阵列与服务器之间能够通过光纤或网线等多种传输通道传输数据。服务器封装待传输对象以及传输待传输对象的方法与第一场景中第一存储阵列110所采用的方法一致,第一存储阵列110和第二存储阵列120解析接收到的数据的方法与第一场景中第二存储阵列120所采用的方法一致,请参阅上一实施例的相关描述,此处不赘述。服务器实现两个存储阵列同步数据的方法可以为同步复制也可以为异步复制。
上述几个实施例中所公开的数据同步方法不仅适用于存储区域网络(storagearea network,SAN)等块级存储系统,还适用于网络附属存储(network attachedstorage,NAS)等文件系统应用的存储系统。
上述方案中,通过私有协议将待传输对象封装为能够同时被至少两种传输协议承载的数据,从而通过任意可用的传输通道传输数据,能够实现同种业务类型的数据可以同时通过多个可用的传输通道进行传输,不同业务类型的数据可以任意选择可用的传输通道进行传输,提高数据传输的灵活性和可靠性、提高传输速度。
通过统计传输数据的至少两种传输通道的传输延时,从而动态调整传输通道传输数据的数据量,从而减小不同传输通道之间的传输延时的差异,还能够根据待传输对象的传输延时要求选择传输通道传输数据,以合理分配传输通道,提高传输效率。
请参阅图2,图2是本申请数据同步方法第一实施例的流程图。本实施例中的执行主体可以为存储阵列也可以为服务器。本实施例中的数据同步方法包括以下步骤:
S201:通过私有协议将待传输对象封装为能够同时被至少两种传输协议承载的数据,其中,所述私有协议为未经国际或国家标准化组织采纳或批准的非标准协议,所述至少两种传输协议为标准协议,每种传输协议对应一种传输通道。
在一个场景中,当第一存储阵列连接第二存储阵列时,第一存储阵列与第二存储阵列可通过光纤或网线等多种传输通道通信。其中,光线传输通道采用光纤传输协议(Fiber Channel,FC),网线传输通道采用互联网协议(英文:Internet Protocol,缩写:IP),FC协议和IP协议均为标准协议。
第一存储阵列接收用户发送的命令,直接将存储在第一存储阵列中的待传输的数据同步到第二存储阵列。例如,租户迁移、数据备份、数据迁移等。
第一存储阵列通过私有协议将待传输对象封装为能够同时被至少两种传输协议承载的数据,其中,私有协议为未经国际或国家标准化组织采纳或批准的非标准协议,至少两种传输协议为标准协议,每种传输协议对应一种传输通道。待传输对象的类型包括控制类命令、文件数据、块数据,能够同时被至少两种传输协议承载的数据包括传输头、传输对象描述和待传输对象。
例如,第一存储阵列将待传输的数据按业务类型进行分类,通过私有协议将待传输对象封装为能够同时被至少两种传输协议承载的数据。其中,待传输对象的类型包括控制类命令、文件数据、块数据,控制类命令包括打开、删除、关闭文件等,文件数据包括文件复制、文件拷贝、文件操作,块数据包括块数据读取、块数据复制和拷贝。文件数据的操作对象为文件或文件夹等文件系统,块数据的操作对象是磁盘区域。存储文件数据时需要按照文件数据的存储路径(子目录)存储,以防止不同的文件夹下有相同名称的文件被覆盖的情况,存储块数据时只要保证块数据的顺序一致即可。待传输对象中的文件数据和块数据均存储在第一存储阵列,待传输对象中的控制类命令是第一存储阵列接收到用户发送的控制命令。
能够同时被至少两种传输协议承载的数据包括传输头、传输对象描述和待传输对象。传输头用于标识该数据为采用私有协议封装的数据,传输头至少包括私有协议版本号以及操作码。传输对象描述至少包括待传输对象的唯一标识、类型以及传输时延。唯一标识至少包括待传输对象的名称,当待传输对象的类型为文件数据或块数据时,唯一标识还包括待传输对象的存储路径,待传输对象的存储路径包括源存储地址以及目的存储地址,源存储地址与目的存储地址可以相同也可以不同。当待传输对象的类型为文件数据时,待传输对象的名称包括文件数据的子目录,当待传输对象的类型为块数据时,待传输对象的名称为块数据的编号。比如,文件数据的传输对象的唯一标识描述为:存储地址/文件夹/子文件/文件名,块数据的传输对象的唯一标识描述为:存储地址/块数据的编号。
可替换的,在另一种场景中,第一存储阵列和第二存储阵列连接到同一个服务器,服务器将待传输对象封装为能够同时被至少两种传输协议承载的数据,并分别通过至少两种传输通道将已封装的待传输对象传输到第一存储阵列和第二存储阵列。例如,硬盘读写、服务器对磁盘阵列的读写等。
或者,在又一种场景中,第一存储阵列和第二存储阵列分别连接到两个不同的服务器。两个服务器分别将已封装的待传输对象封装为能够同时被至少两种传输协议承载的数据,并分别通过至少两种传输通道将待传输对象传输到第一存储阵列和第二存储阵列。例如,硬盘读写、服务器对磁盘阵列的读写等。
其中,存储阵列与服务器之间能够通过光纤或网线等多种传输通道传输数据。服务器封装待传输对象以及传输待传输对象的方法与第一场景中第一存储阵列所采用的方法一致,请参阅相关描述,此处不赘述。服务器实现两个存储阵列同步数据的方法可以为同步复制也可以为异步复制。
S202:通过传输通道传输所述数据,其中,所述传输通道可以为所述至少两种传输协议对应的传输通道中的至少一种。
例如,在第一存储阵列(或服务器)通过私有协议将待传输对象封装为能够同时被至少两种传输协议承载的数据之后,第一存储阵列(或服务器)从可用传输通道中任意选择传输通道传输通过私有协议封装的数据。传输通道可以为至少两种传输协议对应的传输通道中的至少一种或至少两种。
当采用至少两种传输通道传输封装的数据时,如果至少两种传输通道中的其中一种传输通道传输数据失败或故障,则重新选择传输通道传输待传输对象。例如,当正在传输待传输对象的至少两种传输通道中的其中一种传输通道或至少两种传输通道传输数据失败时,第一存储阵列(或服务器)从当前可用的传输通道重新选择符合待传输对象的传输延迟要求的传输通道进行传输。
其中,第一存储阵列(或服务器)选择传输通道的依据可以为:根据传输对象描述中包含的待传输对象的传输时延选择满足传输时延要求的传输通道进行传输。在本实施例中,优先选择传输时延小的传输通道传输数据。在其他实施例中,也可以通过其他方法选择传输通道,此处不做限制。
上述方案,通过私有协议将待传输对象封装为能够同时被至少两种传输协议承载的数据,从而通过任意可用的传输通道传输数据,能够实现同种业务类型的数据可以同时通过多个可用的传输通道进行传输,不同业务类型的数据可以任意选择可用的传输通道进行传输,提高数据传输的灵活性和可靠性、提高传输效率。
请参阅图3,图3是本申请数据同步方法第二实施例的流程图。本实施例中的执行主体可以为存储阵列也可以为服务器。本实施例与第一实施例的不同之处在于S302~S305,本实施例中的数据同步方法包括以下步骤:
S301与第一实施例中的步骤S201相同,请参阅第一实施例中步骤S201的相关描述,此处不赘述。
S302:记录每个所述待传输对象的延迟阈值。
第一存储阵列(或服务器)根据每个已封装的数据的传输对象描述中包含的待传输对象的传输时延和预设延迟阈值,并记录该延迟阈值。
S303:选择至少两种传输通道传输所述数据,其中,所述至少两种传输通道的传输延时不超过所述延迟阈值。
第一存储阵列(或服务器)将预设的延迟阈值与多种传输通道的传输延时比较。当第一存储阵列(或服务器)判断传输通道的传输延时不超过预设的延迟阈值时,从满足要求的多种传输通道中任意选择至少两种传输通道传输待传输对象。其中,优先选择传输时延小的传输通道传输数据。在其他实施例中,也可以通过其他方法选择传输通道,此处不做限制。
S304:统计所述至少两种传输通道传输每个所述数据的传输时延。
第一存储阵列(或服务器)在通过至少两个传输通道传输数据时,统计至少两种传输通道传输每个数据的传输时延。
例如,第一存储阵列(或服务器)根据每种传输通道最小能承载的数据量传输数据。第一存储阵列(或服务器)在通过至少两个传输通道传输数据时,统计至少两种传输通道中每种传输通道各自传输每个数据的传输时延。当然,传输通道当前的传输时延可以是实时的传输时延,也可以是预设时间内的平均传输时延。
S305:如果所述传输时延不超过所述延迟阈值,增加所述数据的数据量;如果所述传输时延超过所述延迟阈值,按照当前的数据量传输所述数据。
如果第一存储阵列(或服务器)判断传输通道当前的传输时延不超过待传输对象的预设延迟阈值,则增加该传输通道的传输数据的数据量,以同时传输更多的数据。如果传输通道当前的传输时延超过待传输对象的预设延迟阈值,则该传输通道的按照当前的数据量传输数据。
可选地,如果当前的传输通道的传输时延超过待传输对象的预设延迟阈值,还可以从当前可用的传输通道重新选择符合待传输对象的预设延迟阈值要求的传输通道进行传输。
如果至少两种传输通道中的其中一种传输通道传输数据失败或故障,则重新选择传输通道传输待传输对象。例如,当正在传输数据的至少两种传输通道中的其中一种传输通道或至少两种传输通道传输数据失败时,第一存储阵列(或服务器)从当前可用的传输通道重新选择符合待传输对象的预设延迟阈值要求的传输通道进行传输。其中,优先选择传输时延小的传输通道传输待传输对象。
上述方案,通过私有协议将待传输对象封装为能够同时被至少两种传输协议承载的数据,从而通过任意至少两个传输通道传输数据,能够实现同种业务类型的数据可以同时通过多个可用的传输通道进行传输,不同业务类型的数据可以任意选择可用的传输通道进行传输,提高数据传输的灵活性和可靠性、提高传输速度。
通过统计传输数据的至少两种传输通道的传输延时,从而动态调整传输通道传输数据的数据量,从而减小不同传输通道之间的传输延时的差异,还能够根据待传输对象的传输延时要求选择传输通道传输数据,以合理分配传输通道,提高传输效率。
请参阅图4,图4是本申请数据同步方法第三实施例的流程图。本实施例中的执行主体可以为存储阵列也可以为服务器。本实施例中的数据同步方法包括:
S401:确认进行数据同步的至少两个传输通道。
第一存储阵列(或服务器)从多种可用的传输通道中任意选择至少两种传输通道(光线通道和网线通道)传输待传输对象,以实现数据同步。其中,待传输对象可以为同种业务类型的数据,也可以为不同业务类型的数据。待传输对象所属的业务数据类型包括控制类命令、文件数据、块数据,控制类命令包括打开、删除、关闭文件等,文件数据包括文件复制、文件拷贝、文件操作,块数据包括块数据读取、块数据复制和拷贝。
由于不同的传输通道采用的传输协议不同,不同的传输协议互不兼容,因此,同种业务类型的待传输对象只能承载在一种传输协议上并通过与该传输协议对应的传输通道进行传输。即,采用IP协议封装同种业务类型的待传输对象不能通过光纤通道进行传输,采用FC协议封装的同种业务类型的待传输对象不能通过网线通道进行传输。
S402:采用所述至少两个传输通道传输所述数据,其中,如果所述数据封装的协议与所述至少两个传输通道中的任一传输通道的协议不兼容,则通过私有协议将所述数据封装为能够被所述不兼容的传输通道传输的数据进行传输。
当待传输对象通过至少两种传输通道进行传输时,第一存储阵列(或服务器)通过FC协议将其中一种业务类型的待传输对象封装为能够被FC协议承载的数据,从而通过光纤通道进行传输。第一存储阵列(或服务器)通过私有协议将其他种类业务类型的待传输对象封装为能够被与FC协议不兼容的传输协议承载的数据或者能够被任意传输协议承载的数据,并通过任意一个与FC协议不兼容的传输协议对应的传输通道(即,除光纤通道之外的其他任意传输通道)进行传输。
当然,通过私有协议封装的待传输对象也可以通过光纤通道进行传输。其中,通过私有协议封装的待传输对象跟通过标准协议封装的数据可以为同种业务类型也可以为不同业务类型。其中,通过私有协议封装待传输对象的方法与第一实施例的步骤S201相同,请参阅相关描述,此处不赘述。
如果至少两种传输通道中的其中一种传输通道传输数据失败,则重新选择传输通道传输通过私有协议封装的待传输对象。例如,当正在传输数据的至少两种传输通道中的其中一种传输通道或至少两种传输通道传输数据失败时,第一存储阵列(或服务器)从当前可用的传输通道重新选择符合待传输对象的预设延迟阈值要求的传输通道进行传输。其中,优先选择传输时延小的传输通道传输待传输对象。
上述方案,通过确定进行数据同步的至少两个传输通道,通过任一传输通道对应的传输协议封装其中一种业务类型的待传输对象,并通过私有协议将其他种类业务类型的待传输对象封装为能够通过任意一个与FC协议不兼容的传输协议对应的传输通道进行传输,能够实现同种业务类型的数据可以同时通过多个可用的传输通道进行传输,不同业务类型的数据可以任意选择可用的传输通道进行传输,提高数据传输的灵活性和可靠性、提高传输效率。
请参阅图5,图5是本申请数据同步方法第四实施例的流程图。本实施例中的执行主体为存储阵列。本实施例中的数据同步方法包括:
S501:接收已封装的数据。
存储阵列接收通过任意可用的传输通道传输的数据。其中,接收的数据可以为能够同时被至少两种传输协议承载的数据,也可以为只能被一种传输协议承载的数据。传输通道可以为至少两种传输协议对应的传输通道中的至少一种或至少两种。
当接收到的数据为能够同时被至少两种传输协议承载的数据时,表示该数据是第一存储阵列110采用私有协议封装的,该数据包括传输头、传输对象描述和待传输对象。
当接收到的数据为只能被一种传输协议承载的数据时,表示该数据是第一存储阵列110采用标准协议封装的。
S502:解析所述数据,其中,解析所述数据采用的协议与封装所述数据采用的协议相同,如果封装所述数据采用的协议为私有协议,则采用私有协议解析所述数据。
存储阵列解析接收到的数据,其中,解析接收到的数据采用的协议与封装数据采用的协议相同,如果封装数据采用的协议为私有协议,则采用私有协议解析该数据,如果封装数据采用的协议为标准协议,则采用标准协议解析该数据。
当存储阵列识别出接收到的数据是采用私有协议进行封装时,存储阵列从接收到的数据的传输头中获取封装该数据采用的私有协议的版本号以及操作码,并使用与获取到的版本号以及操作码相对应的私有协议解析接收到的数据从而还原该数据得到原始数据(即待传输对象),并将从原始数据按传输对象描述中包含的原始数据所属的业务数据类型、唯一标识执行相应的操作。
其中,原始数据所属的业务类型包括控制类命令、文件数据、块数据,控制类命令包括打开、删除、关闭文件等,文件数据包括文件复制、文件拷贝、文件操作,块数据包括块数据读取、块数据复制和拷贝。唯一标识至少包括原始数据的名称,当原始数据的业务类型为文件数据或块数据时,唯一标识还包括原始数据的存储路径,原始数据的存储路径包括源存储地址以及目的存储地址,源存储地址与目的存储地址可以相同也可以不同。当原始数据的业务类型为文件数据时,原始数据的名称包括文件数据的子目录,当原始数据的业务类型为块数据时,待传输对象的名称为块数据的编号。
例如,当存储阵列解析出原始数据所属的业务类型为控制类命令时,按照控制类命令的名称执行与控制命令名称相对应的操作。当存储阵列解析出原始数据所属的业务类型为文件数据时,将原始数据按唯一标识中包含的子目录以及名称存储到目的地址中。当存储阵列解析出原始数据所属的业务类型为块数据时,将原始数据按唯一标识中包含的块数据编号以及名称存储到目的地址中,从而使得块数据按预设的顺序存储。
当存储阵列识别出接收到的数据是采用标准协议进行封装时,存储阵列通过标准协议解析接收到的数据从而还原得到原始数据,并根据原始数据所属的业务类型执行相应的操作。标准协议解析数据的方法此处不赘述。
上述方案,通过任意可用的通道接收同步数据,通过私有协议解析接收到的数据从而得到原始数据,并根据原始数据所属的业务类型执行相应的操作,能够实现同种业务类型的数据可以同时通过多个可用的传输通道进行传输,不同业务类型的数据可以任意选择可用的传输通道进行传输,提高数据传输的灵活性和可靠性、提高传输效率。
请参阅图6,图6是本申请数据同步装置第一实施例的结构示意图。本实施例中的数据同步装置可以为存储阵列,也可以为服务器。本实施例中的数据同步装置包括封装模块610以及同步模块620。
封装模块610用于通过私有协议将待传输对象封装为能够同时被至少两种传输协议承载的数据,其中,私有协议为未经国际或国家标准化组织采纳或批准的非标准协议,至少两种传输协议为标准协议,每种传输协议对应一种传输通道。
比如,在一个场景中,当第一存储阵列连接第二存储阵列时,第一存储阵列与第二存储阵列可通过光纤或网线等多种传输通道通信。其中,光线传输通道采用光纤传输协议(Fiber Channel,FC),网线传输通道采用互联网协议(英文:Internet Protocol,缩写:IP),FC协议和IP协议均为标准协议。第一存储阵列接收用户发送的命令,直接将存储在第一存储阵列中的待传输的数据同步到第二存储阵列。例如,租户迁移、数据备份、数据迁移等。此时的执行主体为第一存储阵列。
可替换的,在另一种场景中,第一存储阵列和第二存储阵列连接到同一个服务器,服务器将待传输对象封装为能够同时被至少两种传输协议承载的数据,并通过任意传输通道将已封装的待传输对象传输到第一存储阵列和第二存储阵列。例如,硬盘读写、服务器对磁盘阵列的读写等。其中,存储阵列与服务器之间能够通过光纤或网线等多种传输通道传输数据。此时的执行主体为服务器。
可替换的,在又一种场景中,第一存储阵列和第二存储阵列分别连接到两个不同的服务器。两个服务器分别将已封装的待传输对象封装为能够同时被至少两种传输协议承载的数据,并分别通过至少两种传输通道将待传输对象传输到第一存储阵列和第二存储阵列。例如,硬盘读写、服务器对磁盘阵列的读写等。其中,存储阵列与服务器之间能够通过光纤或网线等多种传输通道传输数据。此时的执行主体为服务器。
封装模块610通过私有协议将待传输对象封装为能够同时被至少两种传输协议承载的数据,其中,私有协议为未经国际或国家标准化组织采纳或批准的非标准协议,至少两种传输协议为标准协议,每种传输协议对应一种传输通道。待传输对象的类型包括控制类命令、文件数据、块数据,能够同时被至少两种传输协议承载的数据包括传输头、传输对象描述和待传输对象。
例如,封装模块610将待传输对象按业务类型进行分类,通过私有协议将待传输对象封装为能够同时被至少两种传输协议承载的数据。其中,待传输对象的类型包括控制类命令、文件数据、块数据,控制类命令包括打开、删除、关闭文件等,文件数据包括文件复制、文件拷贝、文件操作,块数据包括块数据读取、块数据复制和拷贝。文件数据的操作对象为文件或文件夹等文件系统,块数据的操作对象是磁盘区域。存储文件数据时需要按照文件数据的存储路径(子目录)存储,以防止不同的文件夹下有相同名称的文件被覆盖的情况,存储块数据时只要保证块数据的顺序一致即可。待传输对象中的文件数据和块数据均存储在第一存储阵列,待传输对象中的控制类命令是封装模块610接收到用户发送的控制命令。
能够同时被至少两种传输协议承载的数据包括传输头、传输对象描述和待传输对象。传输头用于标识该数据为采用私有协议封装的数据,传输头至少包括私有协议版本号以及操作码。传输对象描述至少包括待传输对象的唯一标识、类型以及传输时延。唯一标识至少包括待传输对象的名称,当待传输对象的类型为文件数据或块数据时,唯一标识还包括待传输对象的存储路径,待传输对象的存储路径包括源存储地址以及目的存储地址,源存储地址与目的存储地址可以相同也可以不同。当待传输对象的类型为文件数据时,待传输对象的名称包括文件数据的子目录,当待传输对象的类型为块数据时,待传输对象的名称为块数据的编号。比如,文件数据的传输对象的唯一标识描述为:存储地址/文件夹/子文件/文件名,块数据的传输对象的唯一标识描述为:存储地址/块数据的编号。
封装模块610将能够同时被至少两种传输协议承载的数据发送给同步模块620。
同步模块620用于接收数据,通过传输通道传输数据,其中,传输通道可以为至少两种传输协议对应的传输通道中的至少一种。
比如,在同步模块620接收到能够同时被至少两种传输协议承载的数据之后,同步模块620从可用的传输通道中任意选择传输通道传输通过私有协议封装的数据。传输通道可以为至少两种传输协议对应的传输通道中的至少一种或至少两种。
当采用至少两种传输通道传输封装的数据时,如果同步模块620判断出至少两种传输通道中的其中一种传输通道传输数据失败或故障,则重新选择传输通道传输待传输对象。例如,当同步模块620判断出正在传输待传输对象的至少两种传输通道中的其中一种传输通道或至少两种传输通道传输数据失败时,同步模块620从当前可用的传输通道重新选择符合待传输对象的传输延迟要求的传输通道进行传输。
其中,同步模块620选择传输通道的依据可以为:根据传输对象描述中包含的待传输对象的传输时延选择满足传输时延要求的传输通道进行传输。在本实施例中,优先选择传输时延小的传输通道传输数据。在其他实施例中,也可以通过其他方法选择传输通道,此处不做限制。
上述方案,通过私有协议将待传输对象封装为能够同时被至少两种传输协议承载的数据,从而通过任意可用的传输通道传输数据,能够实现同种业务类型的数据可以同时通过多个可用的传输通道进行传输,不同业务类型的数据可以任意选择可用的传输通道进行传输,提高数据传输的灵活性和可靠性、提高传输效率。
请参阅图7,图7是本申请数据同步装置第二实施例的结构示意图。本实施例中的数据同步装置可以为存储阵列,也可以为服务器。本实施例中的数据同步装置包括封装模块710、同步模块720以及统计模块730。
与上一实施例的不同之处在于:
同步模块720具体用于记录每个待传输对象的延迟阈值,选择至少两种传输通道传输所述数据,其中,至少两种传输通道的传输延时不超过延迟阈值。
比如,同步模块720根据每个已封装的数据的传输对象描述中包含的待传输对象的传输时延和预设延迟阈值,并记录该延迟阈值。同步模块720将预设的延迟阈值与多种传输通道的传输延时比较。当同步模块720判断传输通道的传输延时不超过预设的延迟阈值时,从满足要求的多种传输通道中任意选择至少两种传输通道传输待传输对象。其中,优先选择传输时延小的传输通道传输数据。在其他实施例中,也可以通过其他方法选择传输通道,此处不做限制。
例如,同步模块720在开始传输数据时,根据每种传输通道最小能承载的数据量传输数据。
如果同步模块720判断至少两种传输通道中的其中一种传输通道传输数据失败或故障,则重新选择传输通道传输待传输对象。例如,当正在传输数据的至少两种传输通道中的其中一种传输通道或至少两种传输通道传输数据失败时,第一存储阵列(或服务器)从当前可用的传输通道重新选择符合待传输对象的预设延迟阈值要求的传输通道进行传输。其中,优先选择传输时延小的传输通道传输待传输对象。
统计模块730用于统计至少两种传输通道传输每个数据的传输时延,其中,当传输时延不超过延迟阈值时,通知同步模块增加数据的数据量;当传输时延超过延迟阈值时,通知同步模块按照当前的数据量传输数据。
比如,在同步模块720通过至少两个传输通道传输数据时,统计模块730统计至少两种传输通道传输每个数据的传输时延。
例如,在同步模块720通过至少两个传输通道传输数据时,统计模块730统计至少两种传输通道中每种传输通道各自传输每个数据的传输时延。当然,传输通道当前的传输时延可以是实时的传输时延,也可以是预设时间内的平均传输时延。
如果统计模块730判断传输通道当前的传输时延不超过待传输对象的预设延迟阈值,则通知同步模块720增加该传输通道的传输数据的数据量,以同时传输更多的数据。如果统计模块730判断传输通道当前的传输时延超过待传输对象的预设延迟阈值,则通知同步模块720该传输通道的按照当前的数据量传输数据。
可选地,如果统计模块730判断当前的传输通道的传输时延超过待传输对象的预设延迟阈值,还可以通知同步模块720从当前可用的传输通道重新选择符合待传输对象的预设延迟阈值要求的传输通道进行传输。
上述方案,通过私有协议将待传输对象封装为能够同时被至少两种传输协议承载的数据,从而通过任意可用的传输通道传输数据,能够实现同种业务类型的数据可以同时通过多个可用的传输通道进行传输,不同业务类型的数据可以任意选择可用的传输通道进行传输,提高数据传输的灵活性和可靠性、提高传输速度。
通过统计传输数据的至少两种传输通道的传输延时,从而动态调整传输通道传输数据的数据量,从而减小不同传输通道之间的传输延时的差异,还能够根据待传输对象的传输延时要求选择传输通道传输数据,以合理分配传输通道,提高传输效率。
请参阅图8,图8是本申请数据同步装置第三实施例的结构示意图。本实施例中的数据同步装置可以为存储阵列,也可以为服务器。本实施例中的数据同步装置包括分配模块810、封装模块820以及同步模块830。
分配模块810用于确认进行数据同步的至少两个传输通道。比如,分配模块810从多种可用的传输通道中任意选择至少两种传输通道(光线通道和网线通道)传输待传输对象。其中,待传输对象可以为同种业务类型的数据,也可以为不同业务类型的数据。待传输对象所属的业务数据类型包括控制类命令、文件数据、块数据,控制类命令包括打开、删除、关闭文件等,文件数据包括文件复制、文件拷贝、文件操作,块数据包括块数据读取、块数据复制和拷贝。
由于不同的传输通道采用的传输协议不同,不同的传输协议互不兼容,因此,同种业务类型的待传输对象只能承载在一种传输协议上并通过与该传输协议对应的传输通道进行传输。即,采用IP协议封装同种业务类型的待传输对象不能通过光纤通道进行传输,采用FC协议封装的同种业务类型的待传输对象不能通过网线通道进行传输。
分配模块810将进行数据同步的至少两个传输通道的信息发送给同步模块830。
同步模块830用于接收进行数据同步的至少两个传输通道的信息,采用至少两个传输通道传输数据,其中,当数据封装的协议与至少两个传输通道中的任一传输通道的协议不兼容时,封装模块820通过私有协议将数据封装为能够被所述不兼容的传输通道传输的数据进行传输。
比如,当同步模块830通过至少两种传输通道传输待传输对象时,封装模块820通过FC协议将其中一种业务类型的待传输对象封装为能够被FC协议承载的数据,从而使得同步模块830通过光纤通道进行传输。封装模块820通过私有协议将其他种类业务类型的待传输对象封装为能够被与FC协议不兼容的传输协议承载的数据或者能够被任意传输协议承载的数据,从而使得同步模块830通过任意一个与FC协议不兼容的传输协议对应的传输通道(即,除光纤通道之外的其他任意传输通道)进行传输,以实现数据同步。
当然,通过私有协议封装的待传输对象也可以通过光纤通道进行传输。其中,通过私有协议封装的待传输对象跟通过标准协议封装的数据可以为同种业务类型也可以为不同业务类型。其中,通过私有协议封装待传输对象的方法与第一实施例中封装待传输对象的方法相同,请参阅第一实施例中封装模块610的相关描述,此处不赘述。
如果同步模块830判断至少两种传输通道中的其中一种传输通道传输数据失败,则同步模块830重新选择传输通道传输通过私有协议封装的待传输对象。例如,当同步模块830正在传输数据的至少两种传输通道中的其中一种传输通道或至少两种传输通道传输数据失败时,同步模块830从当前可用的传输通道重新选择符合待传输对象的预设延迟阈值要求的传输通道进行传输。其中,优先选择传输时延小的传输通道传输待传输对象。
上述方案,通过确定进行数据同步的至少两个传输通道,通过与任一传输通道对应的传输协议封装其中一种业务类型的待传输对象,并通过私有协议将其他种类业务类型的待传输对象封装为能够通过任意一个与FC协议不兼容的传输协议对应的传输通道进行传输,能够实现同种业务类型的数据可以同时通过多个可用的传输通道进行传输,不同业务类型的数据可以任意选择可用的传输通道进行传输,提高数据传输的灵活性和可靠性、提高传输效率。
请参阅图9,图9是本申请数据同步装置第三实施例的结构示意图。本实施例中的数据同步装置为存储阵列。本实施例中的数据同步装置包括接收模块910以及解析模块920。
接收模块910用于接收已封装的数据。比如,接收模块910接收通过传输通道传输的数据。其中,接收的数据可以为能够同时被至少两种传输协议承载的数据,也可以为只能被一种传输协议承载的数据。传输通道可以为至少两种传输协议对应的传输通道中的至少一种或至少两种。
当接收到的数据为能够同时被至少两种传输协议承载的数据时,表示该数据是采用私有协议封装的,该数据包括传输头、传输对象描述和待传输对象。当接收到的数据为只能被一种传输协议承载的数据时,表示该数据是采用标准协议封装的。
接收模块910将接收到的数据发送给解析模块920。
解析模块920用于接收数据,并解析数据,其中,解析数据采用的协议与封装数据采用的协议相同,当封装数据采用的协议为私有协议时,采用私有协议解析数据。
比如,解析模块920解析接收到的数据,其中,解析接收到的数据采用的协议与封装数据采用的协议相同,如果封装数据采用的协议为私有协议,则采用私有协议解析该数据,如果封装数据采用的协议为标准协议,则采用标准协议解析该数据。
当解析模块920识别出接收到的数据是采用私有协议进行封装时,解析模块920从接收到的数据的传输头中获取封装该数据采用的私有协议的版本号以及操作码,并使用与获取到的版本号以及操作码相对应的私有协议解析接收到的数据从而还原该数据得到原始数据(即待传输对象),并将从原始数据按传输对象描述中包含的原始数据所属的业务数据类型、唯一标识执行相应的操作。
其中,原始数据所属的业务类型包括控制类命令、文件数据、块数据,控制类命令包括打开、删除、关闭文件等,文件数据包括文件复制、文件拷贝、文件操作,块数据包括块数据读取、块数据复制和拷贝。唯一标识至少包括原始数据的名称,当原始数据的业务类型为文件数据或块数据时,唯一标识还包括原始数据的存储路径,原始数据的存储路径包括源存储地址以及目的存储地址,源存储地址与目的存储地址可以相同也可以不同。当原始数据的业务类型为文件数据时,原始数据的名称包括文件数据的子目录,当原始数据的业务类型为块数据时,待传输对象的名称为块数据的编号。
例如,当解析模块920解析出原始数据所属的业务类型为控制类命令时,按照控制类命令的名称执行与控制命令名称相对应的操作。当解析模块920解析出原始数据所属的业务类型为文件数据时,将原始数据按唯一标识中包含的子目录以及名称存储到目的地址中。当解析模块920解析出原始数据所属的业务类型为块数据时,将原始数据按唯一标识中包含的块数据编号以及名称存储到目的地址中,从而使得块数据按预设的顺序存储。
当解析模块920识别出接收到的数据是采用标准协议进行封装时,存储阵列通过标准协议解析接收到的数据从而还原得到原始数据,并根据原始数据所属的业务类型执行相应的操作。标准协议解析数据的方法此处不赘述。
上述方案,通过任意可用的通道接收同步数据,通过私有协议解析接收到的数据从而得到原始数据,并根据原始数据所属的业务类型执行相应的操作,能够实现同种业务类型的数据可以同时通过多个可用的传输通道进行传输,不同业务类型的数据可以任意选择可用的传输通道进行传输,提高数据传输的灵活性和可靠性、提高传输效率。
参阅图10,图10是本申请数据同步装置第五实施例的结构示意图。数据同步装置可以是存储阵列也可以为服务器。本实施方式的数据同步装置包括:存储器1010、处理器1020、收发器1030以及总线1040。处理器1020通过总线1040和存储器1010相连。处理器1020通过总线1040和收发器1030相连。
存储器1010存储程序指令。
处理器1020为中央处理器(英文:central processing unit,缩写:CPU)或者是CPU和硬件芯片的组合。处理器1020根据存储器1010存储的程序指令执行以下操作:
处理器1020通过收发器1030获取用户发送的指令。
处理器1020用于通过私有协议将待传输对象封装为能够同时被至少两种传输协议承载的数据,其中,私有协议为未经国际或国家标准化组织采纳或批准的非标准协议,至少两种传输协议为标准协议,每种传输协议对应一种传输通道。
处理器1020用于控制收发器1030通过传输通道传输数据,其中,传输通道可以为至少两种传输协议对应的传输通道中的至少任意两种。
可选地,处理器1020具体用于记录每个待传输对象的延迟阈值,选择至少两种传输通道传输数据,其中,至少两种传输通道的传输延时不超过所述延迟阈值。
可选地,处理器1020还用于统计至少两种传输通道传输每个数据的传输时延,其中,当传输时延不超过延迟阈值时,通知同步模块增加数据的数据量;当传输时延超过延迟阈值时,通知同步模块按照当前的数据量传输数据。
可选地,处理器1020还用于判断至少两种传输通道中的其中一种传输通道传输数据失败时,重新选择传输通道传输数据。
在另一种实施例中,处理器1020用于确认进行数据同步的至少两个传输通道,以及控制收发器1030采用至少两个传输通道传输数据,其中,当数据封装的协议与至少两个传输通道中的任一传输通道的协议不兼容时,处理器1020通过私有协议将所述数据封装为能够被不兼容的传输通道传输的数据进行传输。
上述方案,通过私有协议将待传输对象封装为能够同时被至少两种传输协议承载的数据,从而通过任意可用的传输通道传输数据,能够实现同种业务类型的数据可以同时通过多个可用的传输通道进行传输,不同业务类型的数据可以任意选择可用的传输通道进行传输,提高数据传输的灵活性和可靠性、提高传输效率。
参阅图11,图11是本申请数据同步装置第五实施例的结构示意图。数据同步装置是存储阵列。本实施方式的数据同步装置包括:存储器1110、处理器1120、收发器1130以及总线1140。处理器1120通过总线1140和存储器1110相连。处理器1120通过总线1140和收发器1130相连。
存储器1110存储程序指令。
处理器1120为中央处理器(英文:central processing unit,缩写:CPU)或者是CPU和硬件芯片的组合。处理器1120根据存储器1110存储的程序指令执行以下操作:
处理器1120通过收发器1130接收已封装的数据。
处理器1120用于解析数据,其中,解析数据采用的协议与封装数据采用的协议相同,当封装数据采用的协议为私有协议时,采用私有协议解析数据。
上述方案,通过至少两个通道接收同步数据,通过私有协议解析接收到的数据从而得到原始数据,并根据原始数据所属的业务类型执行相应的操作,能够实现同种业务类型的数据可以同时通过多个可用的传输通道进行传输,不同业务类型的数据可以任意选择可用的传输通道进行传输,提高数据传输的灵活性和可靠性、提高传输效率。
以上描述中,为了说明而不是为了限定,提出了诸如特定系统结构、接口、技术之类的具体细节,以便透彻理解本申请。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施方式中也可以实现本申请。在其它情况中,省略对众所周知的装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
Claims (10)
1.一种数据同步方法,其特征在于,所述方法包括:
通过设定的协议格式封装待传输对象,所述封装后的待传输对象能够被第一传输协议传输,并且,所述封装后的待传输对象也能够被第二传输协议传输,其中,所述第一传输协议对应第一传输通道,所述第二传输协议对应第二传输通道;
通过所述第一传输通道或者所述第二传输通道传输所述封装后的待传输对象。
2.根据权利要求1所述的方法,其特征在于,还包括:
记录所述待传输对象的延迟阈值;
从所述第一传输通道或者所述第二传输通道中选择用于传输所述封装后的待传输对象的通道,其中,所述选择出的传输通道的传输延时不超过所述延迟阈值。
3.根据权利要求2所述的方法,其特征在于,还包括:
统计所述选择出的传输通道传输所述封装后的待传输对象的传输时延;
如果所述传输时延不超过所述延迟阈值,增加所述封装后的待传输对象的数据量;
如果所述传输时延超过所述延迟阈值,按照当前的数据量传输所述封装后的待传输对象。
4.根据权利要求2所述的方法,其特征在于,如果所述选择出的传输通道传输所述封装后的待传输对象失败,则重新选择传输通道传输所述封装后的待传输对象。
5.根据权利要求1所述的方法,其特征在于,所述待传输对象的类型包括控制类命令、文件数据、块数据;
所述封装后的待传输对象包括传输头、传输对象描述和所述待传输对象。
6.一种数据同步装置,其特征在于,所述装置包括封装模块以及同步模块;
所述封装模块用于通过设定的协议格式封装待传输对象,所述封装后的待传输对象能够被第一传输协议传输,并且,所述封装后的待传输对象也能够被第二传输协议传输,其中,所述第一传输协议对应第一传输通道,所述第二传输协议对应第二传输通道;
所述同步模块用于通过所述第一传输通道或者所述第二传输通道传输所述封装后的待传输对象。
7.根据权利要求6所述的装置,其特征在于,所述同步模块还用于:
记录所述待传输对象的延迟阈值;
从所述第一传输通道或者所述第二传输通道中选择用于传输所述封装后的待传输对象的通道,其中,所述选择出的传输通道的传输延时不超过所述延迟阈值。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括统计模块,所述统计模块用于统计所述选择出的传输通道传输所述封装后的待传输对象的传输时延,其中,当所述传输时延不超过所述延迟阈值时,通知所述同步模块增加所述封装后的待传输对象的数据量;当所述传输时延超过所述延迟阈值时,通知所述同步模块按照当前的数据量传输所述封装后的待传输对象。
9.根据权利要求7所述的装置,其特征在于,当如果所述选择出的传输通道传输所述封装后的待传输对象失败,所述同步模块还用于重新选择传输通道传输所述封装后的待传输对象。
10.根据权利要求6所述的装置,其特征在于,所述待传输对象的类型包括控制类命令、文件数据、块数据,所述封装后的待传输对象包括传输头、传输对象描述和所述待传输对象。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811142512.6A CN109040135A (zh) | 2014-11-21 | 2014-11-21 | 数据同步方法及其装置 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811142512.6A CN109040135A (zh) | 2014-11-21 | 2014-11-21 | 数据同步方法及其装置 |
CN201410677473.5A CN104378438B (zh) | 2014-11-21 | 2014-11-21 | 数据同步方法及其装置 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410677473.5A Division CN104378438B (zh) | 2014-11-21 | 2014-11-21 | 数据同步方法及其装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109040135A true CN109040135A (zh) | 2018-12-18 |
Family
ID=52557084
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811142512.6A Withdrawn CN109040135A (zh) | 2014-11-21 | 2014-11-21 | 数据同步方法及其装置 |
CN201410677473.5A Active CN104378438B (zh) | 2014-11-21 | 2014-11-21 | 数据同步方法及其装置 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410677473.5A Active CN104378438B (zh) | 2014-11-21 | 2014-11-21 | 数据同步方法及其装置 |
Country Status (1)
Country | Link |
---|---|
CN (2) | CN109040135A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112350979A (zh) * | 2019-08-09 | 2021-02-09 | 华为技术有限公司 | 数据传输方法、装置以及系统 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108462679B (zh) * | 2017-02-21 | 2021-06-04 | 杭州海康威视数字技术股份有限公司 | 数据传输方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020133746A1 (en) * | 2001-02-23 | 2002-09-19 | Sheng-Wei Chen | System and method for fibrechannel fail-over through port spoofing |
CN1690973A (zh) * | 2004-04-19 | 2005-11-02 | 株式会社日立制作所 | 远程复制方法及远程复制系统 |
CN101471863A (zh) * | 2007-12-25 | 2009-07-01 | 中国移动通信集团公司 | 网络间数据处理方法、装置及其转换网关 |
CN102223409A (zh) * | 2011-06-13 | 2011-10-19 | 浪潮(北京)电子信息产业有限公司 | 一种网络存储资源应用系统及方法 |
CN103905466A (zh) * | 2014-04-22 | 2014-07-02 | 郭伟 | 一种存储系统数据访问控制系统及其方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101938523A (zh) * | 2010-09-16 | 2011-01-05 | 华中科技大学 | 一种iSCSI与FCP协议融合方法及其在容灾中的应用 |
CN102364917A (zh) * | 2011-09-19 | 2012-02-29 | 浪潮电子信息产业股份有限公司 | 一种混合fc和iscsi协议的存储异地远程数据传输方法 |
CN103002035A (zh) * | 2012-12-06 | 2013-03-27 | 浪潮(北京)电子信息产业有限公司 | 支持多协议链路的数据同步方法及服务器 |
-
2014
- 2014-11-21 CN CN201811142512.6A patent/CN109040135A/zh not_active Withdrawn
- 2014-11-21 CN CN201410677473.5A patent/CN104378438B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020133746A1 (en) * | 2001-02-23 | 2002-09-19 | Sheng-Wei Chen | System and method for fibrechannel fail-over through port spoofing |
CN1690973A (zh) * | 2004-04-19 | 2005-11-02 | 株式会社日立制作所 | 远程复制方法及远程复制系统 |
CN101471863A (zh) * | 2007-12-25 | 2009-07-01 | 中国移动通信集团公司 | 网络间数据处理方法、装置及其转换网关 |
CN102223409A (zh) * | 2011-06-13 | 2011-10-19 | 浪潮(北京)电子信息产业有限公司 | 一种网络存储资源应用系统及方法 |
CN103905466A (zh) * | 2014-04-22 | 2014-07-02 | 郭伟 | 一种存储系统数据访问控制系统及其方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112350979A (zh) * | 2019-08-09 | 2021-02-09 | 华为技术有限公司 | 数据传输方法、装置以及系统 |
CN112350979B (zh) * | 2019-08-09 | 2023-03-24 | 华为技术有限公司 | 数据传输方法和设备 |
Also Published As
Publication number | Publication date |
---|---|
CN104378438B (zh) | 2018-11-20 |
CN104378438A (zh) | 2015-02-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20180102978A1 (en) | Data transmission method and apparatus in optoelectronic hybrid network | |
US7616563B1 (en) | Method to implement an L4-L7 switch using split connections and an offloading NIC | |
CN105049504B (zh) | 一种大数据中转传输同步及存储方法 | |
CN108600376A (zh) | 基于LoRa的数据传输方法、装置、LoRa网关、系统及存储介质 | |
CN107360177B (zh) | 一种基于udp的报文传输方法及装置 | |
CN102480462A (zh) | 通用协议适配方法及装置 | |
CN105450785B (zh) | 一种文件传输方法和装置 | |
CN103248452A (zh) | 数据发送装置、数据接收装置、终端和数据传输方法 | |
CN108347463A (zh) | 一种终端文件上传方法 | |
CN101834796A (zh) | 一种双控制器通信系统和方法 | |
CN105007308B (zh) | 一种数据库隔离装置环境下的文件传输方法 | |
CN102412990B (zh) | 具有集中管理和实时传输功能遥感卫星原始数据记录系统 | |
US7565439B2 (en) | Communication control for storage system | |
CN102404414A (zh) | 基于mmc/sd接口的以太网通信系统及方法 | |
CN106411842A (zh) | 在内容中心网络堆栈中传输状态 | |
CN113259268A (zh) | 一种支持冗余架构的网口与串口数据转发网关及方法 | |
CN104378438B (zh) | 数据同步方法及其装置 | |
CN102333210A (zh) | 一种视频数据存储方法及其设备 | |
CN102111436B (zh) | 一种通过iSCSI访问存储设备的方法和一种存储设备 | |
CN109607341B (zh) | 基于区块链的电梯运转信息管理系统 | |
Wang et al. | Design and development of Ethernet-based storage area network protocol | |
US20160233987A1 (en) | Initiator terminal, target terminal, initiator terminal error-processing method, and target terminal error-processing method | |
CN111078154A (zh) | 一种数据快速加载方法及系统 | |
CN109918172A (zh) | 一种虚拟机热迁移方法及系统 | |
CN101572716A (zh) | 传输小型计算机系统接口scsi包的方法和装置 |
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 | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20181218 |