存储设备的数据处理方法和装置与流程

文档序号:11250685
存储设备的数据处理方法和装置与流程

本发明涉及数据处理技术领域,特别是涉及一种存储设备的数据处理方法和装置。



背景技术:

随着移动互联网的发展,越来越多的企业办公和个人应用都迁移到虚拟化环境中,直接在虚拟化环境中的虚拟机上进行数据处理。在虚拟化技术环境中,需要将终端上接入的存储设备映射到虚拟机中,虚拟机方可对存储设备中存储的进行数据处理。但是,在虚拟机对存储设备数据处理过程中需要进行多次网络交互,才能获取到存储设备数据中的数据,进而才能对获取到的数据进行处理,过多的网络交互使得对存储设备的数据处理过程耗费较长的时间。



技术实现要素:

基于此,有必要针对存储设备的数据处理耗费时间长的问题,提供一种存储设备的数据处理方法。

一种存储设备的数据处理方法,包括:

接收虚拟机读取存储设备中指定扇区数据的第一读取指令;

根据第一读取指令通过终端从存储设备中获取指定扇区数据和指定扇区数据的关联数据;

将指定扇区数据和关联数据存储在缓存中,并将指定扇区数据返回虚拟机;

接收虚拟机读取关联数据的第二读取指令;

根据第二读取指令将缓存中匹配的关联数据返回虚拟机。

在其中一个实施例中,接收虚拟机读取存储数据的第一读取指令之前,还包括:

接收终端从存储设备中的分区表和引导扇区读取到的数据;

将读取到的数据存储在缓存中;

接收虚拟机读取存储设备的分区表和引导扇区的第三读取指令;

根据第三读取指令将缓存中的读取到的数据发送给虚拟机。

在其中一个实施例中,接收终端从存储设备中的分区表和引导扇区读取到的数据之前,还包括:

通过终端识别存储设备的传输协议和文件系统类型,并对传输协议进行验证,在验证通过后,读取文件系统类型对应的分区表和引导扇区。

在其中一个实施例中,接收虚拟机读取存储设备中指定扇区数据的第一读取指令之前,还包括:

接收虚拟机发送的对存储设备执行写入操作的写入指令;

将虚拟机的写入数据存储到缓存中,并向虚拟机返回数据写入成功的结果;

根据写入指令通过终端将缓存中的写入数据写入存储设备的指定扇区。

在其中一个实施例中,该方法还包括:

监测网络传输状态;

根据网络传输状态调整缓存的存储容量。

上述存储设备的数据处理方法,接收虚拟机读取存储设备中指定扇区数据的第一读取指令,根据第一读取指令通过终端从存储设备中获取指定扇区数据和指定扇区数据的关联数据,并将获取到的指定扇区数据和指定扇区数据的关联数据存储在缓存中,待接收到虚拟机的读取关联数据的第二读取指令后,直接在缓存中查找匹配的关联数据,将查找到关联数据返回给虚拟机。这样,避免虚拟机需要通过多次网络交互才能从存储设备中获取数据,直接将存储在缓存中匹配的数据返回给虚拟机,并节省了进行多次网络交互所耗费的时间,加快了数据处理的速度。

一种存储设备的数据处理装置,该装置包括:

第一指令接收模块,用于接收虚拟机读取存储设备中指定扇区数据的第一读取指令;

数据获取模块,用于根据第一读取指令通过终端从存储设备中获取指定扇区数据和指定扇区数据的关联数据;

第一数据返回模块,用于将指定扇区数据和关联数据存储在缓存中,并将指定扇区数据返回虚拟机;

第二指令接收模块,用于接收虚拟机读取关联数据的第二读取指令;

第二数据返回模块,用于根据第二读取指令将缓存中匹配的关联数据返回虚拟机。

在其中一个实施例中,该装置还包括:

数据接收模块,用于接收终端从存储设备中的分区表和引导扇区读取到的数据;

数据缓存模块,用于将读取到的数据存储在缓存中;

第三指令接收模块,用于接收虚拟机读取存储设备的分区表和引导扇区的第三读取指令;

数据发送模块,用于根据第三读取指令将缓存中读取到的数据发送给虚拟机。

在其中一个实施例中,该装置还包括:

存储设备识别模块,通过终端识别存储设备的传输协议和文件系统类型,并对传输协议进行验证,在验证通过后,读取文件系统类型对应的分区表和引导扇区。

在其中一个实施例中,该装置还包括:

写入指令接收模块,用于接收虚拟机发送的对存储设备执行写入操作的写入指令;

数据存储模块,用于将虚拟机的写入数据存储到缓存中,并向虚拟机返回数据写入成功的结果;

数据写入模块,用于根据写入指令通过终端将缓存中的写入数据写入存储设备的指定扇区。

在其中一个实施例中,该装置还包括:

网络监测模块,用于监测网络传输状态;

缓存调整模块,用于根据网络传输状态调整缓存的存储容量。

上述存储设备的数据处理装置,接收虚拟机读取存储设备中指定扇区数据 的第一读取指令,根据第一读取指令通过终端从存储设备中获取指定扇区数据和指定扇区数据的关联数据,并将获取到的指定扇区数据和指定扇区数据的关联数据存储在缓存中,待接收到虚拟机的读取关联数据的第二读取指令后,直接在缓存中查找匹配的关联数据,将查找到关联数据返回给虚拟机。这样,避免虚拟机需要通过多次网络交互才能从存储设备中获取数据,直接将存储在缓存中匹配的数据返回给虚拟机,并节省了进行多次网络交互所耗费的时间,加快了数据处理的速度。

附图说明

图1为一个实施例中存储设备的数据处理系统的应用环境图;

图2为一个实施例中存储设备的数据处理系统的内部结构示意图;

图3为一个实施例中存储设备的数据处理方法的流程示意图;

图4为另一个实施例中存储设备的数据处理方法的流程示意图;

图5为一个实施例中读取分区表和引导扇区的步骤的流程示意图;

图6为另一个实施例中读取分区表和引导扇区的步骤的流程示意图;

图7为一个实施例中将数据写入存储设备的步骤的流程示意图;

图8为另一个实施例中将数据写入存储设备的步骤的流程示意图;

图9为一个实施例中缓存的存储容量调整的步骤的流程示意图;

图10为一个实施例中存储设备的数据处理装置的结构框图;

图11为另一个实施例中存储设备的数据处理装置的结构框图;

图12为再一个实施例中存储设备的数据处理装置的结构框图;

图13为又一个实施例中存储设备的数据处理装置的结构框图;

图14为一个实施例中存储设备的数据处理装置的结构框图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

图1是一个实施例中存储设备的数据处理系统的应用环境图,在存储设备的数据处理系统中包括终端110,存储设备120和服务器130。其中,存储设备120连接在终端110的接口上,服务器130上运行有虚拟机,终端110与服务器130通过网络连接,终端110可以访问服务器130上的虚拟机,服务器130具体可以是多个服务器。存储设备120为具有数据存储功能的设备,具体可以是U盘、存储卡、磁盘、硬盘、具有存储功能的手机和平板电脑等。

请参照图3,在存储设备的数据处理系统中,终端110和运行在服务器130上的虚拟机上运行有加速代理程序和通讯代理程序,加速代理程序用于提高实现存储设备映射到虚拟机的速度和存储设备与虚拟机的数据传输速度,通讯代理程序为使虚拟机和终端110通过网络进行通讯。协议检查器用于检测存储设备120的传输协议类型是否被支持,在协议检查器检测到存储设备120的传输协议类型被支持后,加速代理程序开始运行。

如图3所示,在一个实施例中,提供一种存储设备的数据处理方法,该方法应用与图1中存储设备的数据处理系统的服务器130来举例说明。该方法具体包括以下步骤:

步骤302,接收虚拟机读取存储设备中指定扇区数据的第一读取指令。

具体地,当终端110上接入存储设备之后,终端110登录到服务器130上的虚拟机,将存储设备120映射到虚拟机之后,虚拟机得到存储设备120的扇区信息和扇区所存储数据的信息。在存储设备120映射到虚拟机之后,虚拟机读取存储设备120中指定扇区数据时,虚拟机将第一读取指令发送到服务器130,第一读取指令包括所要读取数据的扇区位置或者数据标识。扇区位置可以是扇区编号,数据标识可以是数据所属文件的名称或读取数据的关键字。

步骤304,根据第一读取指令通过终端从存储设备中获取指定扇区数据和指定扇区数据的关联数据。

具体地,服务器130接收到虚拟机发送的第一读取指令后,对第一读取指令进行解析,对第一读取指令所请求的数据量进行修改以增加所请求的数据量,将修改后的第一读取指令发送给终端110。终端110对修改后的第一读取指令进行解析,根据解析得到的数据存储位置或者数据标识在存储设备120中读取相 应的数据,读取到的数据包括指定扇区数据和指定扇区数据的关联数据。指定扇区数据的关联数据具体可以是与指定扇区数据属于同一文件的数据,这些关联数据可能存储在不同的扇区;关联数据也可以是指定扇区的相邻扇区所存储的数据。

在一个实施例中,服务器130接收到虚拟机发送的第一读取指令,对第一读取指令进行解析,根据解析结果在分区表和引导扇区的数据中查找所要读取数据的关联数据的存储位置或数据标识,将关联数据的存储位置或数据标识放入第一读取指令发送给终端110。

步骤306,将指定扇区数据和关联数据存储在缓存中,并将指定扇区数据返回虚拟机。

具体地,终端110将读取到的指定扇区数据和指定扇区的关联数据发送给服务器130,服务器130将接收到的指定扇区数据和指定扇区数据的关联数据存储到缓存中,并且同时将指定扇区数据发送给虚拟机。当服务器130为多个服务器时,缓存具体可以是通过调用各个服务器的缓存形成的缓存池。

步骤308,接收虚拟机读取关联数据的第二读取指令。

具体地,虚拟机需要对关联数据进行处理时,会向服务器发送第二读取指令,第二读取指令用于读取关联数据,其中包括所要读取关联数据在存储设备120中的扇区位置或者关联数据标识。

步骤310,根据第二读取指令将缓存中匹配的关联数据返回虚拟机。

具体地,服务器130接收到第二读取指令,对第二读取指令进行解析,得到所要读取关联数据的扇区位置或关联数据标识。服务器130根据关联数据的扇区位置或关联数据标识在缓存中查找匹配的关联数据,扇区位置或数据标识相同的数据为匹配的关联数据。服务器130在查找到匹配的关联数据后,直接提取缓存中匹配的关联数据,并将匹配的关联数据返回给虚拟机。

在一个实施例中,请参照图4,在步骤402中,服务器130接收虚拟机的第一读取指令;在步骤404中,服务器130根据第一读取指令通过终端110从存储设备120请求数据;在步骤406中,服务器130接收终端110从存储设备120中获取到的虚拟机读取的指定扇区数据和指定扇区数据的关联数据,并存储到 缓存中;在步骤408中,服务器130将指定扇区数据返回给虚拟机;在步骤410中,服务器130根据虚拟机发送的第二读取指令将缓存中的关联数据返回给虚拟机。

本实施例中,接收虚拟机读取存储设备中指定扇区数据的第一读取指令,根据第一读取指令通过终端从存储设备中获取指定扇区数据和指定扇区数据的关联数据,并将获取到的指定扇区数据和指定扇区数据的关联数据存储在缓存中,待接收到虚拟机的读取关联数据的第二读取指令后,直接在缓存中查找匹配的关联数据,将查找到关联数据返回给虚拟机。这样,避免虚拟机需要通过多次网络交互才能从存储设备中获取数据,直接将存储在缓存中匹配的数据返回给虚拟机,并节省了进行多次网络交互所耗费的时间,加快了数据处理的速度。

如图5所示,在一个实施例中,步骤302之前具体还包括读取分区表和引导扇区的步骤:

步骤502,通过终端识别存储设备的传输协议和文件系统类型,并对传输协议进行验证,在验证通过后,读取文件系统类型对应的分区表和引导扇区。

具体地,在存储设备120接入到终端110的接口时,终端110对存储设备进行识别,提取存储设备120所使用的传输协议,对提取到传输协议进行验证。具体可以在终端110中建立的协议支持列表,在协议支持列表中存储有终端110所支持的传输协议,在协议支持列表中查找是否存在对应的传输协议,若查找到,则表明终端110支持存储设备120的传输协议,验证通过;若未查找到,则表明终端110不支持存储设备120的传输协议,则验证未通过。传输协议具体可以是BOT协议(散装传输协议,Bulk-Only Transport Protocol)、MTP协议(媒体传输协议,Media Transfer Protocol)或USAP协议(USB Attach SCSI Protocol)。

终端110对存储设备120的传输协议验证通过后,终端110识别存储设备120的文件系统类型,并对识别到的文件系统的分区表和引导扇区进行解析。文件系统类型具体可以是FAT32、NTFS、NTFST32、EXT2、EXT3和XFS其中任意一种,还可以是其他文件系统类型。

步骤504,接收终端从存储设备中的分区表和引导扇区读取到的数据。

具体地,终端110读取分区表和引导扇区中的数据,得到分区表和引导扇区中的数据。分区表中记录了将数据分成称为分区的许多小的子集,并记录每个分区所存储的扇区位置等数据,在数据处理时,根据分区表可以将许多分区按照顺序进行处理。引导扇区中记录存储设备120的扇区信息,扇区信息具体可以包括每个存储空间大小、每磁道扇区数、扇区总数和磁头数中至少一种。

步骤506,将读取到的数据存储在缓存中。

步骤508,接收虚拟机读取存储设备的分区表和引导扇区的第三读取指令。

具体地,终端110将存储设备120映射到虚拟机上时,虚拟机检测到存储设备120,虚拟机会通过服务器130向存储设备120发送读取存储设备120的分区表和引导扇区的第三读取指令。

步骤510,根据第三读取指令将缓存中的读取到的数据发送给虚拟机。

具体地,服务器130截获第三读取指令,对第三读取指令进行解析,根据解析得到的结果在缓存中查找终端110读取到的分区表和引导扇区的数据,并将查找到的数据直接返回给虚拟机以完成存储设备120到虚拟机的映射过程。

在一个实施例中,请参照图6,在步骤602中,服务器130接收终端110读取到存储设备120的分区表和引导扇区的数据,并将接收到数据存储到缓存中;在步骤604中,服务器130接收到虚拟机的读取存储设备120的分区表和引导扇区的指令;在步骤606中,服务器130将缓存中分区表和引导扇区的数据发送给虚拟机。

本实施例中,在终端110中接入存储设备120时,终端110对存储设备120的传输协议进行验证,在验证通过后,直接读取存储设备120的分区表和引导扇区的数据,服务器130将分区表和引导扇区的数据存储到缓存中。待接收到虚拟机读取分区表和引导扇区的指令后,服务器130直接从缓存中将分区表和引导扇区的数据返回给虚拟机,以完成存储设备120到虚拟机的映射。这样,避免了虚拟机和存储设备120的多次网络交互,节省了多次网络交互耗费的时间,并提高了存储设备120映射到虚拟机的映射速度。

如图7和图8所示,在一个实施例中,步骤302之前具体还包括将数据写 入存储设备的步骤:

步骤702,接收虚拟机发送的对存储设备执行写入操作的写入指令。

具体地,虚拟机对存储设备120进行数据写入的操作时,虚拟机会发出写入指令,写入指令具体可以包括在存储设备120中执行写入操作的扇区位置。

步骤704,将虚拟机的写入数据存储到缓存中,并向虚拟机返回数据写入成功的结果。

具体地,服务器130根据写入指令获取到虚拟机需要写入存储设备120的写入数据,或者服务器130接收虚拟机发送的写入数据,服务器130将写入数据存储到缓存中,同时向虚拟机发送数据写入成功的结果。

在一个实施例中,如果服务器130接收到虚拟机读取写入数据的指令,则可以直接在缓存中查找,将查找到的写入数据返回给虚拟机。

步骤706,根据写入指令通过终端将缓存中的写入数据写入存储设备的指定扇区。

具体地,服务器130将写入指令和缓存中的写入数据发送给终端110,终端110对写入指令进行解析,通过对写入指令的解析获取到存储设备120的写入扇区的信息,终端根据写入扇区的信息确定扇区,将写入数据写入到确定的扇区中。

在一个实施例中,服务器130在监测到网络传输速度大于预设阈值时,提取缓存中的写入数据,根据写入指令通过终端将写入数据写入存储设备的指定扇区中。

本实施例中,在虚拟机对存储设备进行写入操作时,虚拟机发出写入指令后,服务器130将虚拟机的写入数据存储到缓存中,并同时向虚拟机返回数据写入成功的结果,之后再将写入数据通过终端写入到存储设备中指定扇区中。这样,避免了虚拟机与存储设备120需要进行多次网络交互才能将数据写入存储设备120的情况,在保证数据准确的前提下,保证了数据写入的速度。

如图9所示,在一个实施例中,该存储设备的数据处理方法还包括调整缓存容量的步骤:

步骤902,监测网络传输状态。

具体地,服务器130在根据写入指令执行写入操作时,对网络传输状态进行监测,具体可以网络传输速度,即计算网络在时间单位内所传输的数据量,具体还可以检测网络传输质量。

步骤904,根据网络传输状态调整缓存的存储容量。

具体地,当服务器130监测到网络传输速度快时,则将缓存的存储容量调大或调大,当监测到网络传输速度慢时,则将缓存的存储容量调小或调大,服务器130根据网络传输状态来调整缓存的存储容量,保证在网络传输不稳定时,保证缓存的存储容量足够用于存储完整的数据,避免由于缓存的存储容量小而造成数据无法更新或者丢失。

本实施例中,服务器130根据网络传输状态调整缓存的存储容量,保证了在对虚拟机的写入数据进行异步缓存时,缓存有足够的存储容量来存储写入数据,避免了由于缓存的存储容量不足导致数据无法更新和数据丢失的情况。

如图10所示,在一个实施例中,提供一种存储设备的数据处理装置1000,该装置包括:第一指令接收模块1002、数据获取模块1004、第一数据返回模块1006、第二指令接收模块1008和第二数据返回模块1010。

第一指令接收模块1002,用于接收虚拟机读取存储设备中指定扇区数据的第一读取指令。

数据获取模块1004,用于根据第一读取指令通过终端从存储设备中获取指定扇区数据和指定扇区数据的关联数据。

第一数据返回模块1006,用于将指定扇区数据和关联数据存储在缓存中,并将指定扇区数据返回虚拟机。

第二指令接收模块1008,用于接收虚拟机读取关联数据的第二读取指令。

第二数据返回模块1010,用于根据第二读取指令将缓存中匹配的关联数据返回虚拟机。

本实施例中,接收虚拟机读取存储设备中指定扇区数据的第一读取指令,根据第一读取指令通过终端从存储设备中获取指定扇区数据和指定扇区数据的关联数据,并将获取到的指定扇区数据和指定扇区数据的关联数据存储在缓存 中,待接收到虚拟机的读取关联数据的第二读取指令后,直接在缓存中查找匹配的关联数据,将查找到关联数据返回给虚拟机。这样,避免虚拟机需要通过多次网络交互才能从存储设备中获取数据,直接将存储在缓存中匹配的数据返回给虚拟机,并节省了进行多次网络交互所耗费的时间,加快了数据处理的速度。

如图11所示,在一个实施例中,该存储设备的数据处理装置1000具体还包括:数据接收模块1012、数据缓存模块1014、第三指令接收模块1016和数据发送模块1018。

数据接收模块1012,用于接收终端从存储设备中的分区表和引导扇区读取到的数据。

数据缓存模块1014,用于将读取到的数据存储在缓存中。

第三指令接收模块1016,用于接收虚拟机读取存储设备的分区表和引导扇区的第三读取指令。

数据发送模块1018,用于根据第三读取指令将缓存中读取到的数据发送给虚拟机。

本实施例中,服务器130将终端读取到的分区表和引导扇区的数据存储到缓存中,待接收到虚拟机的读取分区表和引导扇区的指令后,服务器130直接从缓存中将分区表和引导扇区的数据返回给虚拟机,以完成存储设备120到虚拟机的映射。这样,避免了虚拟机和存储设备120的多次网络交互,节省了多次网络交互耗费的时间,并提高了存储设备120映射到虚拟机的映射速度。

如图12所示,在一个实施例中,该存储设备的数据处理装置1000具体还包括:存储设备识别模块1020。

存储设备识别模块1020,通过终端识别存储设备的传输协议和文件系统类型,并对传输协议进行验证,在验证通过后,读取文件系统类型对应的分区表和引导扇区。

本实施例中,终端110可以支持存储设备的传输协议和文件系统类型,通过对传输协议的验证,保证能够正确读取文件系统类型对应的分区表和引导扇区。

如图13所示,在一个实施例中,该存储设备的数据处理装置1000具体还包括:写入指令接收模块1022、数据存储模块1024和数据写入模块1026。

写入指令接收模块1022,用于接收虚拟机发送的对存储设备执行写入操作的写入指令。

数据存储模块1024,用于将虚拟机的写入数据存储到缓存中,并向虚拟机返回数据写入成功的结果。

数据写入模块1026,用于根据写入指令通过终端将缓存中的写入数据写入存储设备的指定扇区。

本实施例中,在虚拟机对存储设备进行写入操作时,虚拟机发出写入指令后,服务器130将虚拟机的写入数据存储到缓存中,并同时向虚拟机返回数据写入成功的结果,之后再将写入数据通过终端写入到存储设备中指定扇区中。这样,避免了虚拟机与存储设备120需要进行多次网络交互才能将数据写入存储设备120的情况,提高了数据写入的速度。

如图14所示,在一个实施例中,该存储设备的数据处理装置1000具体还包括:网络监测模块1028和缓存调整模块1030。

网络监测模块,用于监测网络传输状态。

缓存调整模块,用于根据网络传输状态调整缓存的存储容量。

本实施例中,服务器130根据网络传输状态调整缓存的存储容量,保证了在对虚拟机的写入数据进行异步缓存时,缓存有足够的存储容量来存储写入数据,避免了由于缓存的存储容量不足导致数据无法更新和数据丢失的情况。

以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

再多了解一些
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1