发明内容
本发明提供一种虚拟机模板的传输方法、发送端和接收端,从而保证接收端接收到的模板文件的完整性。
一种虚拟机模板的传输方法,应用于虚拟机模板的发送端,确定数据块阈值;还包括:
确定虚拟机模板对应的各个模板文件;
为所述各个模板文件中每一个模板文件生成对应的第一文件校验和;
将每一个模板文件中的内容切分成小于等于所述数据块阈值的数据块,并发送所述各个数据块和对应的第一文件校验和给接收端;
利用所述各个数据块,触发接收端将接收到的各个数据块还原为对应的模板文件,为接收到的每一个模板文件生成对应的第二文件校验和,并触发接收端判断每一个模板文件中当前模板文件对应的第一文件校验和与第二文件校验和是否相同,如果是,则确定所述虚拟机模板传输完整,否则,重新传输当前第一文件校验和对应的模板文件。
优选地,在所述确定虚拟机模板对应的各个模板文件之后,在所述为所述各个模板文件中每一个模板文件生成对应的第一文件校验和之前,进一步包括:
解析所述各个模拟文件中的模拟配置文件,并获取所述模拟配置文件中的文件列表;
判断所述文件列表中的模拟文件数量和模拟文件名称与所述确定的各个模板文件是否一致,如果是,则直接执行所述为所述各个模板文件中每一个模板文件生成对应的第一文件校验和,否则,根据所述文件列表,重新确定模拟文件。
优选地,所述确定虚拟机模板对应的各个模板文件,包括:
解析虚拟机模板对应的模拟配置文件,并获取所述配置文件中的文件列表;
根据所述文件列表中的模拟文件数量和模拟文件名称,确定所述虚拟机模板对应的各个模板文件。
优选地,在所述将每一个模板文件中的内容切分成小于等于所述数据块阈值的数据块之后,在所述发送所述各个数据块和对应的第一文件校验和给接收端之前,进一步包括:
为所述各个数据块中的每一个数据块生成对应的第一数据块校验和;
所述发送所述各个数据块和对应的第一文件校验和给接收端,包括:发送所述各个数据块、对应的第一数据块校验和和对应的第一文件校验和给接收端。
一种虚拟机模板的传输方法,应用于虚拟机模板的接收端,包括:
接收发送端发送的各个数据块和对应的第一文件校验和;
受到所述发送端利用所述数据块触发,将所述各个数据块还原为对应的模板文件,为接收到的每一个模板文件生成对应的第二文件校验和;
判断每一个模板文件中当前模板文件对应的第一文件校验和与第二文件校验和是否相同,如果是,则确定所述虚拟机模板传输完整,否则,触发发送端重新传输当前第一文件校验和对应的模板文件。
优选地,所述为接收到的每一个模板文件生成对应的第二文件校验和,包括:
为接收到的每一个数据块生成对应的第二数据块校验和;
对于接收到的每一个数据块,判断当前数据块的第二数据块校验和与第一数据块校验和是否相同,如果是,则将当前模拟文件对应的所有数据块的第二数据块校验和进行加和,加和结果作为当前模拟文件的第二文件校验和。
优选地,在所述判断每一个模板文件中当前模板文件对应的第一文件校验和与第二文件校验和是否相同之后,进一步包括:
解析所述还原的模拟文件中的模拟配置文件;
判断所述还原的模拟文件的数量和所述还原的模拟文件名称是否与还原的模拟配置文件相同,如果是,则确定所述虚拟机模板传输完整。
一种发送端,包括:
确定单元,用于确定数据块阈值,并确定虚拟机模板对应的各个模板文件;
生成单元,用于为所述确定单元确定的各个模板文件中每一个模板文件生成对应的第一文件校验和;
发送单元,用于将所述确定单元确定的每一个模板文件中的内容切分成小于等于所述数据块阈值的数据块,并发送所述各个数据块和对应的所述生成单元生成的第一文件校验和给接收端;接收到所述控制触发单元的触发时,重新传输当前第一文件校验和对应的模板文件;
控制触发单元,用于利用所述各个数据块,触发外设的接收端将接收到的各个数据块还原为对应的模板文件,为接收到的每一个模板文件生成对应的第二文件校验和,并触发接收端判断所述发送单元发送的每一个模板文件对应的第一文件校验和与第二文件校验和是否相同,如果是,则确定所述虚拟机模板传输完整,否则,触发所述发送单元。
优选地,上述发送端,进一步包括:解析单元和文件控制单元,其中,
所述解析单元,用于解析所述确定单元确定的各个模拟文件中的模拟配置文件,并获取所述配置文件中的文件列表;
所述文件控制单元,用于判断所述解析单元获取的文件列表中的模拟文件数量和所述确定单元确定的模拟文件名称与所述确定的各个模板文件是否一致,如果是,则触发所述生成单元;
所述生成单元,用于在接收到所述文件控制单元的触发时,为所述确定单元确定的各个模板文件中每一个模板文件生成对应的第一文件校验和。
优选地,所述确定单元,用于解析虚拟机模板对应的模拟配置文件,并获取所述配置文件中的文件列表,根据所述文件列表中的模拟文件数量和模拟文件名称,确定所述虚拟机模板对应的各个模板文件。
优选地,所述发送单元,进一步用于为所述各个数据块中的每一个数据块生成对应的第一数据块校验和,并发送所述各个数据块、对应的第一数据块校验和和对应的第一文件校验和给接收端。
一种接收端,包括:
文件接收单元,用于接收外设的发送端发送的各个数据块和对应的第一文件校验和;
文件校验单元,用于受到所述外设的发送端利用所述数据块触发,将所述文件接收单元接收到的各个数据块还原为对应的模板文件,为接收到的每一个模板文件生成对应的第二文件校验和,并判断每一个模板文件中当前模板文件对应的第一文件校验和与第二文件校验和是否相同,如果是,则确定所述虚拟机模板传输完整,否则,触发所述外设的发送端重新传输当前第一文件校验和对应的模板文件。
优选地,所述文件校验单元,进一步用于为接收到的每一个数据块生成对应的第二数据块校验和,对于接收到的每一个数据块,判断当前数据块的第二数据块校验和与第一数据块校验和是否相同,如果是,则将当前模拟文件对应的所有数据块的第二数据块校验和进行加和,加和结果作为当前模拟文件的第二文件校验和。
优选地,所述文件校验单元,进一步用于解析所述还原的模拟文件中的模拟配置文件;判断所述还原的模拟文件的数量和所述还原的模拟文件名称是否与还原的模拟配置文件相同,如果是,则确定所述虚拟机模板传输完整。
本发明实施例提供了一种虚拟机模板的传输方法、发送端和接收端,该虚拟机模板的传输方法,应用于虚拟机模板的发送端,通过确定数据块阈值以及虚拟机模板对应的各个模板文件;为所述各个模板文件中每一个模板文件生成对应的第一文件校验和;将每一个模板文件中的内容切分成小于等于所述数据块阈值的数据块,并发送所述各个数据块和对应的第一文件校验和给接收端;利用所述各个数据块,触发接收端将接收到的各个数据块还原为对应的模板文件,为接收到的每一个模板文件生成对应的第二文件校验和,由于文件校验和一般是与文件内容相关,如果文件内容缺失或者被篡改,将导致文件校验和不同,则本发明通过判断每一个模板文件中当前模板文件对应的发送端生成的第一文件校验和与接收端生成的第二文件校验和是否相同,如果是,则确定所述虚拟机模板传输完整,否则,重新传输当前第一文件校验和对应的模板文件,通过这一过程则可以很直观的判断出在传输的过程中模板文件是否缺失或者被篡改,有效的保证了接收端接收到的模板文件的完整性。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明实施例提供一种虚拟机模板的传输方法,应用于虚拟机模板的发送端,该方法可以包括如下步骤:
步骤101:确定数据块阈值以及虚拟机模板对应的各个模板文件;
步骤102:为各个模板文件中每一个模板文件生成对应的第一文件校验和;
步骤103:将每一个模板文件中的内容切分成小于等于数据块阈值的数据块,并发送各个数据块和对应的第一文件校验和给接收端;
步骤104:利用各个数据块,触发接收端将接收到的各个数据块还原为对应的模板文件,为接收到的每一个模板文件生成对应的第二文件校验和;
步骤105:触发接收端判断每一个模板文件中当前模板文件对应的第一文件校验和与第二文件校验和是否相同,如果是,则执行步骤106;否则,执行步骤107;
步骤106:确定虚拟机模板传输完整,结束流程;
步骤107:重新传输当前第一文件校验和对应的模板文件。
在本发明一个实施例中,为了保证发送端发送的模板文件完整,以进一步保证接收端接收到的模板文件的完整,在步骤101之后,在步骤102之前,进一步包括:解析各个模拟文件中的模拟配置文件,并获取模拟配置文件中的文件列表;判断文件列表中的模拟文件数量和模拟文件名称与确定的各个模板文件是否一致,如果是,则直接执行为各个模板文件中每一个模板文件生成对应的第一文件校验和,否则,根据文件列表,重新确定模拟文件。
在本发明一个实施例中,为了保证发送端发送的模板文件完整,步骤101的具体实施方式:解析虚拟机模板对应的模拟配置文件,并获取配置文件中的文件列表;根据文件列表中的模拟文件数量和模拟文件名称,确定虚拟机模板对应的各个模板文件。
在本发明一个实施例中,为了提高模板文件的传输速率,在步骤103中,在将每一个模板文件中的内容切分成小于等于数据块阈值的数据块之后,在发送各个数据块和对应的第一文件校验和给接收端之前,进一步包括:为各个数据块中的每一个数据块生成对应的第一数据块校验和;而发送各个数据块和对应的第一文件校验和给接收端,包括:发送各个数据块、对应的第一数据块校验和和对应的第一文件校验和给接收端。
如图2所示,本发明实施例提供一种虚拟机模板的传输方法,应用于虚拟机模板的发送端,该方法可以包括如下步骤:
步骤201:确定数据块阈值以及虚拟机模板对应的各个模板文件;
在该步骤中,数据块阈值的大小往往跟传输的网络带宽有关系,网络带宽越大,数据块阈值越大,网络带宽越小,切分成的数据块也越小。
而在该步骤中,确认虚拟机模板对应的各个模板文件的方式可以包括但不限于:一种为人工选择的方式选择模板文件;另一种为解析虚拟机模板对应的模拟配置文件,并获取配置文件中的文件列表;该文件列表中一般包括文件名称和文件路径,根据文件列表中的模拟文件数量和模拟文件名称,确定虚拟机模板对应的各个模板文件。
步骤202:解析各个模拟文件中的模拟配置文件,并获取模拟配置文件中的文件列表;
如图3所示,为本发明实施例提供的模拟配置文件的内容,通过该内容可以解析模板文件名称、文件路径等信息,很容易统计出模板文件数量等,在该图3的模拟配置文件中主要包含有3个模板文件分别为:模板_重要_装软件(a6c28617-e5b4-45d1-a062-60c7c3e73953).vmdk;模板_重要_装软件(a6c28617-e5b4-45d1-a062-60c7c3e73953).nvram;模板_重要_装软件(a6c28617-e5b4-45d1-a062-60c7c3e73953).vmtx。
步骤203:判断文件列表中的模拟文件数量和模拟文件名称与确定的各个模板文件是否一致,如果是,则直接执行步骤205;否则,执行步骤204;
模拟配置文件中的文件列表主要包括虚拟机模板对应的所有模板文件地名称和路径,那么通过该步骤可以初步保证发送端选择了全部的模板文件,而且也可以避免不必要的文件的传输。
步骤204:根据文件列表,重新确定模拟文件;
步骤205:为各个模板文件中每一个模板文件生成对应的第一文件校验和;
该步骤生成的校验和与模板文件的内容相关,例如可以通过读取模板文件中的内容,将内容转换成唯一的字符串即为校验和,由于不同模板文件的内容不同,则不同文件对应的校验和不同,而同一文件的校验和相同。
步骤206:将每一个模板文件中的内容切分成小于等于数据块阈值的数据块;
例如:一个模板文件的大小为1MB,而数据块阈值为,则该大小为1MB的模板文件被切分为4个数据块,3个0.3MB的数据块和1个0.1MB的数据块。
步骤207:为各个数据块中的每一个数据块生成对应的第一数据块校验和;
例如:为大小为1MB的模板文件被切分成的4个数据块对应的第一数据块校验和分别为A1B2;C3D4;E5G6;H7,该1MB的模板文件对应的第一文件校验和为A1B2C3D4E5G6H7。
步骤208:发送各个数据块、对应的第一数据块校验和和对应的第一文件校验和给接收端;
步骤209:利用各个数据块,触发接收端将接收到的各个数据块还原为对应的模板文件,为接收到的每一个模板文件生成对应的第二数据块校验和以及第二文件校验和;
该步骤中的每一个模板文件的第二文件校验和是每一个模板文件对应的各个数据块的第二数据块校验和的加和,例如:一个模板文件对应的4个数据块,该4个数据块对应的第二数据块校验和依次为A1B2;C3D4;E5G6;H7,则该模板文件的第二文件校验和为A1B2C3D4E5G6H7。
步骤210:触发接收端判断每一个模板文件中当前模板文件对应的第一文件校验和与第二文件校验和是否相同,如果是,则执行步骤211;否则,执行步骤212;
如果在传输过程中模板文件内容被恶意更改或者模板文件内容传输不完全,将导致该模板文件对应的第二文件校验和与第一文件校验和不同。
步骤211:确定虚拟机模板传输完整,结束流程;
步骤212:重新传输当前第一文件校验和对应的模板文件。
如图4所示,本发明实施例提供一种虚拟机模板的传输方法,应用于虚拟机模板的接收端,可以包括如下步骤:
步骤401:接收发送端发送的各个数据块和对应的第一文件校验和;
步骤402:受到发送端利用数据块触发,将各个数据块还原为对应的模板文件,为接收到的每一个模板文件生成对应的第二文件校验和;
步骤403:判断每一个模板文件中当前模板文件对应的第一文件校验和与第二文件校验和是否相同,如果是,则执行步骤404;否则,执行步骤405;
步骤404:确定虚拟机模板传输完整,结束流程;
步骤405:触发发送端重新传输当前第一文件校验和对应的模板文件。
在本发明一个实施例中,为了能够进一步保证接收端接收到的模拟文件的完整性,步骤402的具体实施方式:为接收到的每一个数据块生成对应的第二数据块校验和;对于接收到的每一个数据块,判断当前数据块的第二数据块校验和与第一数据块校验和是否相同,如果是,则将当前模拟文件对应的所有数据块的第二数据块校验和进行加和,加和结果作为当前模拟文件的第二文件校验和。
在本发明一个实施例中,为了能够进一步保证虚拟机模板文件完整,以提高虚拟机安装或运行成功的效率,在步骤403之后,在步骤404之前,进一步包括:解析还原的模拟文件中的模拟配置文件;判断还原的模拟文件的数量和还原的模拟文件名称是否与还原的模拟配置文件相同,如果是,则确定虚拟机模板传输完整。
如图5所示,本发明实施例提供一种虚拟机模板的传输方法,应用于虚拟机模板的接收端,可以包括如下步骤:
步骤501:接收发送端发送的各个数据块和对应的第一文件校验和;
步骤502:受到发送端利用数据块触发,将各个数据块还原为对应的模板文件;
例如:4个数据块对应的第一数据块校验和分别为A1B2;C3D4;E5G6;H7,来源于同一个模板文件,则在该步骤中,将这4个数据块还原为一个模板文件。
步骤503:为接收到的每一个数据块生成对应的第二数据块校验和;
步骤504:对于接收到的每一个数据块,判断当前数据块的第二数据块校验和与第一数据块校验和是否相同,如果是,则执行步骤505,否则,执行步骤506;
例如:数据块1在发送端的第一数据块校验和为A1B2;数据块1在接收端的第二数据块校验和也为A1B2;则说明从发送端到接收端,数据块1的内容未被篡改。
步骤505:将当前模拟文件对应的所有数据块的第二数据块校验和进行加和,加和结果作为当前模拟文件的第二文件校验和,并执行步骤507;
例如:一个模板文件对应的4个数据块,该4个数据块对应的第二数据块校验和依次为A1B2;C3D4;E5G6;H7,则该模板文件的第二文件校验和为A1B2C3D4E5G6H7。
步骤506:触发发送端重新传输当前第一数据块校验和对应的数据块;
步骤507:判断每一个模板文件中当前模板文件对应的第一文件校验和与第二文件校验和是否相同,如果是,则执行步骤508;否则,执行步骤509;
步骤508:解析还原的模拟文件中的模拟配置文件,并执行步骤510;
步骤509:触发发送端重新传输当前第一文件校验和对应的模板文件,结束流程;
步骤510:判断还原的模拟文件的数量和还原的模拟文件名称是否与还原的模拟配置文件相同,如果是,则执行步骤511,否则,执行步骤512;
步骤511:确定虚拟机模板传输完整,结束流程;
步骤512:触发发送端重新传输缺失的的模板文件。
如图6所示,本发明实施例提供一种发送端,该发送端包括:
确定单元601,用于确定数据块阈值,并确定虚拟机模板对应的各个模板文件;
生成单元602,用于为确定单元601确定的各个模板文件中每一个模板文件生成对应的第一文件校验和;
发送单元603,用于将确定单元601确定的每一个模板文件中的内容切分成小于等于数据块阈值的数据块,并发送各个数据块和对应的生成单元602生成的第一文件校验和给接收端,接收到控制触发单元604的触发时,重新传输当前第一文件校验和对应的模板文件。
控制触发单元604,用于利用各个数据块,触发外设的接收端将接收到的各个数据块还原为对应的模板文件,为接收到的每一个模板文件生成对应的第二文件校验和,并触发接收端判断发送单元603发送的每一个模板文件对应的第一文件校验和与第二文件校验和是否相同,如果是,则确定虚拟机模板传输完整,否则,触发所述发送单元。
在本发明另一实施例中,上述发送端,进一步包括:解析单元和文件控制单元(图中未示出),其中,
解析单元,用于解析确定单元601确定的各个模拟文件中的模拟配置文件,并获取配置文件中的文件列表;
文件控制单元,用于判断解析单元获取的文件列表中的模拟文件数量和确定单元601确定的模拟文件名称与所述确定的各个模板文件是否一致,如果是,则触发生成单元602;
生成单元602,用于在接收到文件控制单元的触发时,为确定单元601确定的各个模板文件中每一个模板文件生成对应的第一文件校验和;
在本发明又一个实施例中,确定单元601,用于解析虚拟机模板对应的模拟配置文件,并获取配置文件中的文件列表,根据文件列表中的模拟文件数量和模拟文件名称,确定虚拟机模板对应的各个模板文件。
在本发明另一实施例中,发送单元603,进一步用于为各个数据块中的每一个数据块生成对应的第一数据块校验和,并发送各个数据块、对应的第一数据块校验和和对应的第一文件校验和给接收端。
如图7所示,本发明实施例提供一种接收端,该接收端包括:
文件接收单元701,用于接收外设的发送端发送的各个数据块和对应的第一文件校验和;
文件校验单元702,用于受到所述外设的发送端利用所述数据块触发,将文件接收单元701接收到的各个数据块还原为对应的模板文件,为接收到的每一个模板文件生成对应的第二文件校验和,并判断每一个模板文件中当前模板文件对应的第一文件校验和与第二文件校验和是否相同,如果是,则确定虚拟机模板传输完整,否则,触发外设的发送端重新传输当前第一文件校验和对应的模板文件。
在本发明另一实施例中,文件校验单元702,进一步用于为接收到的每一个数据块生成对应的第二数据块校验和,对于接收到的每一个数据块,判断当前数据块的第二数据块校验和与第一数据块校验和是否相同,如果是,则将当前模拟文件对应的所有数据块的第二数据块校验和进行加和,加和结果作为当前模拟文件的第二文件校验和。
在本发明又一实施例中,文件校验单元702,进一步用于解析还原的模拟文件中的模拟配置文件;判断还原的模拟文件的数量和还原的模拟文件名称是否与还原的模拟配置文件相同,如果是,则确定虚拟机模板传输完整。
本发明实施例提供的方案,至少能够达到如下有益效果:
1.通过确定数据块阈值以及虚拟机模板对应的各个模板文件;为各个模板文件中每一个模板文件生成对应的第一文件校验和;将每一个模板文件中的内容切分成小于等于所述数据块阈值的数据块,并发送各个数据块和对应的第一文件校验和给接收端;利用各个数据块,触发接收端将接收到的各个数据块还原为对应的模板文件,为接收到的每一个模板文件生成对应的第二文件校验和,由于文件校验和一般是与文件内容相关,如果文件内容缺失或者被篡改,将导致文件校验和不同,则本发明通过判断每一个模板文件中当前模板文件对应的发送端生成的第一文件校验和与接收端生成的第二文件校验和是否相同,如果是,则确定虚拟机模板传输完整,否则,重新传输当前第一文件校验和对应的模板文件,通过这一过程则可以很直观的判断出在传输的过程中模板文件是否缺失或者被篡改,有效的保证了接收端接收到的模板文件的完整性。
2.在本发明实施例中,根据模拟文件和数据块的内容,为模拟文件和数据块生成校验和,由于校验和与模拟文件内容或者数据块内容相关,那么,当模拟文件内容或者数据块内容发生改变时,校验和也将发生改变,则通过校验和来验证确保了接收端接收到的模拟文件的可靠性,也避免了因虚拟机模板文件缺失或文件内容不完整导致创建出的虚拟机不可用的问题。
3.通过解析虚拟机模板对应的模拟配置文件,并获取配置文件中的文件列表;保证发送的模拟文件数量和名称与文件列表中的模拟文件数量和模拟文件名称一致,也可通过文件列表中的模拟文件数量和模拟文件,确定虚拟机模板对应的各个模板文件,保证了发送端发送的模板文件完整。
4.本发明实施例为各个数据块中的每一个数据块生成对应的第一数据块校验和;并发送各个数据块、对应的第一数据块校验和和对应的第一文件校验和给接收端,提高了模板文件的传输速率,进一步保证虚拟机模板文件完整
5.本发明实施例为接收到的每一个数据块生成对应的第二数据块校验和;对于接收到的每一个数据块,判断当前数据块的第二数据块校验和与第一数据块校验和是否相同,如果是,则将当前模拟文件对应的所有数据块的第二数据块校验和进行加和,加和结果作为当前模拟文件的第二文件校验和;解析还原的模拟文件中的模拟配置文件;判断还原的模拟文件的数量和还原的模拟文件名称是否与还原的模拟配置文件相同,如果是,则确定虚拟机模板传输完整,能够进一步保证接收端接收到的模拟文件的完整性。
需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个…………”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。