数据读写命令的控制方法、存储设备和系统技术方案

技术编号:21850516 阅读:27 留言:0更新日期:2019-08-14 00:18
本发明专利技术实施例提供一种NVMe over Fabric架构中数据读写命令的控制方法、设备和系统,以解决现有技术中因数据读写命令所要传输的数据大,存储设备中的缓存单元因存储空间不足而导致的数据读写命令执行失败的问题。根据本发明专利技术实施例提供的方法,数据处理单元根据所述数据读写命令中携带的需要传输数据的长度,从所述缓存单元的可用存储空间中分配第一存储空间,所述第一存储空间小于所述缓存单元的存储空间,且所述第一长度小于所述需要传输数据的长度,并依次将所述数据读写命令所要传输的数据迁移到目的地址所对应的存储空间中。解决了因数据读写命令所要传输的数据大,缓存单元无法缓存需要传输的数据而导致的数据读写命令无法被执行的问题。

Control Method, Storage Equipment and System of Data Reading and Writing Command

【技术实现步骤摘要】
数据读写命令的控制方法、存储设备和系统
本专利技术涉及信息
,特别涉及一种基于Fabric的非易失性高速传输总线NVMe,NVMeoverFabric,架构中数据读写命令的控制方法、存储设备和系统。
技术介绍
非易失性高速传输总线(英文:NVMe,non-volatilememoryexpress)是一种控制器接口标准,统一了通过快速外围部件互连(英文:PCIe,PeripheralComponentInterconnectExpress)总线进行连接的NVMe设备和主机(英文:Host)之间的队列(英文:Queue)传输机制,优化了队列接口等。已经发布的PCIe架构的NVMe标准在产业界取得了巨大的成功之后,业界很快希望将NVMe标准扩展到数据中心领域。但受限于数据中心领域没有大量现成的PCIe网络以及PCIe协议本身的缺陷(扩展性、远距离连接等),产业界正在推动将NVMe协议运行在iWrap,基于融合以太的远程内存直接访问协议(英文:ROCE,remotedirectmemoryaccessoverConvergedEthernet),Infiniband,光纤通道(英文:FC,FiberChannel),Omni-Path等网络上,以提供更灵活的更广泛的应用。业界将NVMe协议运行在iWrap、ROCE、Infiniband、FC和Omni-Path等网络上的应用称之为NVMeoverFabric(简称NOF)。在NVMeoverFabric的架构中,Host表示主机,主机负责发起数据的读写;Target表示目标存储设备,负责接收并且执行Host发送的命令。当Target接收到Host发送的WriteCommand之后,解析WriteCommand中的内容得到WriteCommand需要传输的数据长度,并在Target的网卡内存中分配对应的缓存空间,用于缓存Host待传输的数据。Target的网卡分配好缓存数据所需的存储空间后,Host将数据传输到被分配的网卡内存的缓存空间中。之后,缓存在网卡内存的缓存空间的数据被写入Target的硬盘中。当Host发送ReadCommand时,实现过程类似,即需要将Target硬盘中的数据缓存在Target的网卡内存的缓存空间中,再将缓存在缓存空间中的数据,发送给Host。在具体的业务实现时,可能会出现Host发送的一个WriteCommand或一个ReadCommand需要传输的数据量很大,超过了Target的网卡内存的最大缓存空间,导致Target的网卡内存无法缓存需要传输的数据而造成数据读写命令执行的失败。
技术实现思路
本专利技术实施例提供一种NVMeoverFabric架构中数据读写命令的控制方法、设备和系统,以解决现有技术中因数据读写命令所要传输的数据大,存储设备中的缓存单元因存储空间不足而导致的数据读写命令执行失败的问题。一方面,本专利技术实施例提供了一种NVMeoverFabric架构中控制设备与存储设备之间数据读写命令的控制方法,所述存储设备包括数据处理单元、缓存单元和存储单元,所述控制设备需要读写的数据存储在所述存储单元中,所述数据处理单元用于接收所述控制设备发送的数据读写命令,所述缓存单元用于缓存所述数据读写命令所需要传输的数据;其中,所述方法包括:所述数据处理单元接收所述控制设备发送的数据读写命令,根据所述数据读写命令中携带的需要传输数据的长度,从所述缓存单元的可用存储空间中分配第一存储空间,所述第一存储空间能够存储数据的长度为第一长度,所述第一存储空间小于所述缓存单元的存储空间,且所述第一长度小于所述需要传输数据的长度;所述数据处理单元依次获取所述第一长度的数据,缓存在所述第一存储空间中,并将缓存在所述第一存储空间的数据,依次迁移到所述数据读写命令所要传输的数据的目的地址所对应的存储空间中。通过上述方法,所述数据处理单元根据所述数据读写命令中携带的需要传输数据的长度,从所述缓存单元的可用存储空间中分配第一存储空间,所述第一存储空间小于所述缓存单元的存储空间,且所述第一长度小于所述需要传输数据的长度,并依次将所述数据读写命令所要传输的数据迁移到目的地址所对应的存储空间中。解决了因数据读写命令所要传输的数据大,缓存单元无法缓存需要传输的数据而导致的数据读写命令无法被执行的问题。可选的,所述NVMeoverFabric架构中,所述控制设备与所述存储设备之间可以通过iWarp、ROCE、Infiniband、FC或Omni-Path等网络实现连接和通信。所述存储设备中的数据处理单元可以是网卡、独立的FPGA芯片或所述存储设备中的中央处理器(英文:CPU,centralprocessingunit)来实现。所述存储设备中的缓存单元也可以由网卡内存、FPGA芯片中的存储单元、存储设备上的缓存单元或所述存储设备中的CPU的内存来实现。所述存储设备中的缓存单元也可以由网卡内存、FPGA芯片中的存储单元、存储设备上的缓存单元或所述存储设备中的CPU的内存中的至少两个组成的缓存资源池来实现来实现。可选的,所述第一存储空间的大小是固定的,所述第一长度也是固定的。这样,所述数据处理单元每次获取的所述第一长度的数据大小或长度是固定的。这样,数据处理单元每次按照固定的大小分配所述第一存储空间,数据处理单元的实现方式简单,容易实现。可选的,所述第一存储空间的大小也可以是变化的,所述第一长度也随之相应变化。即所述数据处理单元至少有两次分配的所述第一存储空间的大小不同,相应的,所述第一长度的数据大小或长度至少有两次是不同的。这样,数据处理单元分配大小不同的所述第一存储空间,能够灵活地调整所述第一存储空间的大小,使得所述缓存单元能够有更灵活的可用存储空间来缓存各种数据读写命令所要传输的数据。可选的,所述第一存储空间的位置是固定的,所述数据处理单元每次获取的所述第一长度的数据,被缓存在所述缓存单元固定位置的存储空间中。这样,数据处理单元每次在固定的所述第一存储空间缓存需要传输的数据,实现方式简单,容易实现。可选的,所述第一存储空间的位置是变化的,即所述数据处理单元至少有两次分配的所述第一存储空间的位置不同。这样,数据处理单元能够能够灵活地分配所述第一存储空间,使得所述缓存单元能够有更灵活的可用存储空间来缓存各种数据读写命令所要传输的数据。可选的,所述第一存储空间的大小和位置都是变化的,这样能够更进一步灵活地分配所述第一存储空间,使得所述缓存单元能够有更灵活的可用存储空间来缓存各种数据读写命令所要传输的数据。可选的,所述数据处理单元可以在分配所述第一存储空间之间,判断所述数据读写命令所要传输的数据的长度或大小是否大于或等于预设的阈值,在所述数据读写命令所要传输的数据的长度或大小,大于或等于预设的阈值时,分配所述第一存储空间。这样,能够避免数据读写命令所要传输的数据不大时,不用分多次传输需要传输的数据,提高数据传输的效率,并能够节省所述数据处理单元和所述缓存单元因多次缓存需要传输的数据所带来的资源的消耗。在一个可能的设计中,所述第一存储空间小于或等于所述数据处理单元接收数据读写命令时的可用存储空间;或,所述第一存储空间为预设的阈值,当所述第一存储空间小于或等于所述数据处理本文档来自技高网
...

【技术保护点】
1.一种基于Fabric的非易失性高速传输总线NVMe,NVMe over Fabric,架构中控制设备与存储设备之间数据读写命令的控制方法,所述存储设备包括数据处理单元、缓存单元和存储单元,所述控制设备需要读写的数据存储在所述存储单元中,所述数据处理单元用于接收所述控制设备发送的数据读写命令,所述缓存单元用于缓存所述数据读写命令所需要传输的数据;其特征在于,所述方法包括:所述数据处理单元接收所述控制设备发送的数据读写命令,将所述数据读写命令中携带的需要传输的数据划分为两个以上的分段数据,并依次将所述分段数据缓存在所述缓存单元中,所述分段数据占用的存储空间小于所述缓存单元的存储空间;所述数据处理单元将缓存的所述分段数据,依次迁移到所述数据读写命令所要传输的数据的目的地址所对应的存储空间中。

【技术特征摘要】
1.一种基于Fabric的非易失性高速传输总线NVMe,NVMeoverFabric,架构中控制设备与存储设备之间数据读写命令的控制方法,所述存储设备包括数据处理单元、缓存单元和存储单元,所述控制设备需要读写的数据存储在所述存储单元中,所述数据处理单元用于接收所述控制设备发送的数据读写命令,所述缓存单元用于缓存所述数据读写命令所需要传输的数据;其特征在于,所述方法包括:所述数据处理单元接收所述控制设备发送的数据读写命令,将所述数据读写命令中携带的需要传输的数据划分为两个以上的分段数据,并依次将所述分段数据缓存在所述缓存单元中,所述分段数据占用的存储空间小于所述缓存单元的存储空间;所述数据处理单元将缓存的所述分段数据,依次迁移到所述数据读写命令所要传输的数据的目的地址所对应的存储空间中。2.根据权利要求1所述的方法,其特征在于:所述分段数据占用的存储空间小于或等于所述数据处理单元接收所述数据读写命令时的可用存储空间;或,当所述分段数据占用的存储空间小于或等于所述数据处理单元接收所述数据读写命令时的可用存储空间时,所述数据处理单元从所述缓存单元的可用存储空间中分配相应的存储空间用于存储所述分段数据;当所述分段数据占用的存储空间大于所述数据处理单元接收所述数据读写命令时的可用存储空间时,所述数据处理单元在等待预设时间后再判断所述分段数据占用的存储空间是否小于或等于所述缓存单元的可用存储空间,并在所述分段数据占用的存储空间小于所述缓存单元的可用存储空间时,从所述缓存单元的可用存储空间中分配相应的存储空间用于存储数据分段数据。3.根据权利要求1或2所述的方法,其特征在于,所述数据读写命令包括所述需要传输的数据的地址信息和所述需要传输的数据的长度。4.根据权利要求1或2所述的方法,其特征在于:所述数据读写命令为写命令,所述需要传输的数据为需要存储的数据,所述写命令包括所述需要存储的数据在所述控制设备的源地址,所述需要存储的数据的长度和所述需要存储的数据在所述存储单元的目的地址;相应的,所述数据处理单元将所述数据读写命令中携带的需要传输的数据划分为两个以上的分段数据,并依次将所述分段数据缓存在所述缓存单元中,所述数据处理单元将缓存的所述分段数据,依次迁移到所述数据读写命令所要传输的数据的目的地址所对应的存储空间中包括:步骤S1:所述数据处理单元从所述控制设备处获取所述需要存储的数据中的一个分段数据;步骤S2:所述数据处理单元将获取到的所述分段数据缓存在所述缓存单元的第一存储空间中,并修改所述写命令,将所述写命令中的所述需要存储的数据在所述控制设备的源地址修改为所述第一存储空间的地址,将所述需要存储的数据的长度修改为所述一个分段数据的长度;步骤S3:所述数据处理单元将修改后的所述写命令发送给所述存储单元;重复执行所述步骤S1-步骤S3,直到将所述需要存储的数据迁移到所述需要存储的数据在所述存储单元的目的地址所对应的存储空间中。5.根据权利要求1或2所述的方法,其特征在于:所述数据读写命令为读命令,所述需要传输的数据为需要读取数据,所述读命令包括所述需要读取的数据在所述存储单元的源地址,所述需要读取的数据的长度和所述需要读取的数据在所述控制设备的目的地址;相应的,所述数据处理单元将所述数据读写命令中携带的需要传输的数据划分为两个以上的分段数据,并依次将所述分段数据缓存在所述缓存单元中,所述数据处理单元将缓存的所述分段数据,依次迁移到所述数据读写命令所要传输的数据的目的地址所对应的存储空间中包括:步骤S1:所述数据处理单元修改所述读命令,将所述读命令中的所述需要读取的数据在所述控制设备的目的地址修改为所述分段数据在所述缓存单元的第一存储空间的地址,将所述需要读取的数据的长度修改为所述一个分度数据的长度;并将修改后的读命令发送给存储单元;步骤S2:所述数据处理单元将一个分段数据缓存在所述第一存储空间中,并将所述第一存储空间中的分段数据发送给所述控制设备;重复执行所述步骤S1-步骤S2,直到将所述需要读取的数据迁移到所述需要读取的数据在所述控制设备的目的地址所对应的存储空间中。6.根据权利要求1或2所述的方法,其特征在于,所述数据处理单元与所述存储单元之间通过基于快捷外围部件互连标准PCIe的NVMe,NVMeoverPCIe,架构实现连接。7.根据权利要求1或2所述的方法,其特征在于,所述数据处理单元中包括控制器,所述控制器用于控制所述缓存单元中缓存的数据与所述存储单元之间的传输,所述控制器是NVMeoverFabric架构中的物理控制器或非易失性存储控制器。8.一种存储设备,所述存储设备是基于Fabric的非易失性高速传输总线NVMe,NVMeoverFabric,架构中的存储设备,所述存储设备与NVMeoverFabric架构中的控制设备之间进行数据传输,所述存储设备包括数据处理单元、缓存单元和存储单元,所述控制设备需要读写的数据存储在所述存储单元中,所述数据处理单元用于接收所述控制设备发送的数据读写命令,所述缓存单元用于缓存所述数据读写命令所需要传输的数据;其特征在于,所述数据处理单元包括处理器,所述处理器用于执行下述步骤:接收所述控制设备发送的数据读写命令,将所述数据读写命令中携带的需要传输数据划分为两个以上的分段数据,并依次将所述分段数据缓存在所述缓存单元中,所述分段数据占用的存储空间小于所述缓存单元的存储空间;将缓存的所述分段数据,依次迁移到所述数据读写命令所要传输的数据的目的地址所对应的存储空间中。9.根据权利要求8所述的存储设备,其特征在于:所述分段数据占用的存储空间小于或等于所述存储设备接收所述数据读写命令时所述缓存单元的可用存储空间;或,当所述分段数据占用的存储空间小于或等于所述存储设备接收所述数据读写命令时所述缓存单元的可用存储空间,从所述缓存单元的可用存储空间中分配相应的存储空间用于存储所述分段数据;当所述分段数据占用的存储空间大于所述存储设备接收所述数据读写命令时所述缓存单元的可用存储空间,所述数据处理单元在等待预设时间后再判断所述分段数据占用的存储空间是否小于或等于所述缓存单元的可用存储空间,并在所述分段数据占用的存储空间小于所述缓存单元的可用存储空间时,从所述缓存单元的可用存储空间中分配相应的存储空间用于存储数据分段数据。10.根据权利要求8或9所述的存储设备,其特征在于,所述数据读写命令包括所述需要传输的数据的地址信息和所述需要传输的数据的长度。11.根据权利要求8或9所述的存储设备,其特征在于:所述数据读写命令为写命令,所述需要传输的数据为需要存储的数据,所述写命令包括所述需要存储的数据在所述控制设备的源地址,所述需要存储的数据的长度和所述需要存储的数据在所述存储单元的目的地址;相应的,将所述数据读写命令中携带的需要传输数据划分为两个以上的分段数据,并依次将所述分段数据缓存在所述缓存单元中,将缓存的...

【专利技术属性】
技术研发人员:邱鑫吉辛·维克多张锦彬
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1