一种计算机系统和存储访问装置的制作方法

文档序号:14135834阅读:166来源:国知局
一种计算机系统和存储访问装置的制作方法

本发明涉及存储技术,特别涉及一种计算机系统和存储访问装置。



背景技术:

虚拟化技术应用范围越来越广泛,通过网络、存储虚拟化提升资源利用率,提高虚拟机访问网络和存储的性能的需求越来越强。

现有虚拟化技术,通过虚拟化层hypervisor或者虚拟机管理器(virtualmachinemanager,vmm)实现虚拟存储资源的管理,虚拟化层或虚拟机管理器对下挂的存储资源进行封装成虚拟硬盘,并分配给不同的vm使用。虚拟机(virtualmachine,vm)访问所分配的存储资源的路径比较复杂,需要通过部署在虚拟机上的前端访问接口接入到虚拟化层或虚拟机管理器上的后端访问接口(后端访问接口一般位于内核态),然后再由后端访问接口转发到虚拟化层或虚拟机管理器上部署的存储资源调度模块进行实际物理存储资源调度或定位(存储资源调度模块一般位于用户态),最后才能将存储访问请求转发到物理存储资源中去。

上述的存储资源访问方式,访问路径复杂,路径长,延时大;并且,访问请求必须经过虚拟机的前端访问接口、虚拟化层或虚拟机管理器的后端访问接口以及存储资源调度模块,这些都需要占用主机中的cpu的资源,影响主机的cpu资源占用率。



技术实现要素:

本发明实施例提供一种计算机系统和存储访问装置,以实现虚拟机对存储资源的直通访问,缩短存储访问的路径和时延,以及减少对计算节点cpu资源的占用。

第一方面,本发明实施例提供一种计算机系统,该计算机系统包括n个计算节点、n个存储访问装置和m个网络存储设备,在每个计算节点上运行至少一个虚拟机vm,所述n个网络存储设备为所述至少一个虚拟机提供分布式存储资源,每个计算节点包括处理器、内存和存储访问装置,n和m为大于等于1的整数;

每个存储访问装置包括硬件的处理单元、高速外围组件互连总线pcie接口以及网络接口,所述存储访问装置一端通过所述pcie接口连接所述至少一个计算节点的处理器,一端通过所述网络接口连接所述至少一个网络存储设备;

本申请中的存储访问装置支持单根i/o虚拟化sriov,用于通过所述sriov功能中的物理功能pf配置至少一个虚拟功能vf,并配置vm与vf的关联关系以使得相关联vm与vf之间建立直通通道,其中,一个vm对应一个vf;该存储访问装置还支持分布式存储资源调度功能,用于通过所述网络接口获取所连接的至少一个网络存储设备所提供的数据块资源,将所获取到的数据块资源组成多个虚拟卷,并配置vf与虚拟卷的关联关系,其中,一个vf对应至少一个虚拟卷。

本申请提供的存储访问装置由于可直接建立存储资源与虚拟机之间的的直通通道,其所支持的存储访问方法无需现有云计算虚拟化技术中vm访问存储资源的前后端软件栈,减少软件栈路径,减小延时,增强性能,同时也无需运用到太多的主机(计算节点中的cpu)资源,提高了主机的资源利用率。

可选地,本申请提供的存储访问装置中部署有pf后端驱动,与该存储访问装置相连的计算节点中部署有pf前端驱动;当该存储访问装置启动之后,加载所述pf后端驱动进行初始化;该存储访问装置连接的计算节点,加载所述pf前端驱动,通过所述pf前端驱动获取所述存储访问装置的资源信息,根据所述存储访问装置的资源信息向所述存储访问装置下发配置命令,以使得所述存储访问装置进行资源配置,为pf以及每个vf分配对应的硬件资源。

可选地,本申请提供的存储访问装置具体如下执行vm与vf的关联操作:存储访问装置连接的计算节点在接收到上层应用发送的第一vm关联命令后,将第一vm关联命令通过所述pf前端驱动模块转发到所述pf后端驱动模块;该存储访问装置通过所述pf后端驱动模块接收所述第一vm关联命令后,为所述第一vm关联命令中指定的第一vm配置对应的第一vf,并记录所述第一vm与第一vf之间的关联关系。

可选地,本申请提供的存储访问装置具体如下执行vf与虚拟卷的关联操作:存储访问装置(存储访问装置可以提供管理接口,例如面向管理层提供命令行界面cli或网页用户界面webui的接口)接收为第一vm分配存储资源的分配请求,确定所述第一vm关联的第一vf,从所述多个虚拟卷中为所述第一vm分配至少一个虚拟卷,建立所述分配的至少一个虚拟卷与所述第一vf之间的关联关系,返回分配响应,所述分配响应包含为所述第一vm分配的所述至少一个虚拟卷的信息。

可选地,本申请提供的存储访问装置具体如下执行vm的读写请求:存储访问装置的第一vf通过直通通道接收所述第一vm的i/o请求,将所述i/o请求放入所述第一vf的io队列中,根据所述第一vf所关联的虚拟卷,确定所述i/o请求对应的所述网络存储设备中的数据块,对所述i/o请求对应的所述网络存储设备中的数据块执行读或写的操作。

第二方面,本申请还提供一种存储访问装置,该存储访问装置包括硬件的处理单元、高速外围组件互连总线pcie接口以及网络接口,所述存储访问装置一端通过所述pcie接口连接计算节点的处理器,一端通过所述网络接口连接至少一个网络存储设备;

所述计算节点上运行至少一个虚拟机vm,所述至少一个网络存储设备为所述至少一个虚拟机提供分布式存储资源;

本申请提供的存储访问装置包括直通模块,所述直通模块支持单根i/o虚拟化sriov,用于通过所述sriov功能中的物理功能pf虚拟出至少一个虚拟功能vf,并配置vm与vf的关联关系以使得相关联vm与vf之间建立直通通道,其中,一个vm对应一个vf;该存储访问装置还包括资源调度器,所述资源调度器支持分布式存储资源调度功能,用于通过所述网络接口获取所连接的至少一个网络存储设备所提供的数据块资源,将所获取到的数据块资源组成多个虚拟卷,并配置vf与虚拟卷的关联关系,其中,一个vf对应至少一个虚拟卷。

第三方面,本申请还提供一种存储访问装置,该存储访问装置包括硬件的处理单元、第一接口(例如,高速外围组件互连总线pcie接口)以及第二接口(例如网络接口);

本申请提供的存储访问装置中的硬件的处理单元,用于支持sriov和分布式存储资源调度功能,用于通过所述sriov功能中的物理功能pf虚拟出至少一个虚拟功能vf,并配置vm与vf的关联关系以使得相关联vm与vf之间建立直通通道,其中,一个vm对应一个vf,以及通过所述网络接口获取所连接的至少一个网络存储设备所提供的数据块资源,将所获取到的数据块资源组成多个虚拟卷,并配置vf与虚拟卷的关联关系,其中,一个vf对应至少一个虚拟卷;本申请提供的存储访问装置中的硬件的处理单元,用于执行本申请特有的存储访问方法:当第一vm发出i/o请求后,存储访问装置的第一vf通过直通通道接收所述第一vm的i/o请求,将所述i/o请求放入所述第一vf的io队列中,处理单元再根据所述第一vf所关联的虚拟卷,确定所述i/o请求对应的所述网络存储设备中的数据块,对所述i/o请求对应的所述网络存储设备中的数据块执行读或写的操作。

本申请通过所述存储访问装置实现的存储访问方法可以不再需要经过虚拟化中间层中的前后端接口,减少了vm访问路径,减少了软件栈路径,减小了访问延时,增强了存储访问性能;同时也无需运用到太多的主机(计算节点中的cpu)资源,提高了主机的资源利用率。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本申请提供的计算机系统的架构示意图;

图2为本申请提供的计算机系统的组成细节示意图;

图3为本申请提供的存储访问装置的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。

参考图1,图1为用于执行本申请中存储访问方法的计算机系统的示意图,图1分别示出了该计算机系统的硬件层和软件层,该计算机系统的硬件层包括n个计算节点(n在实际业务中,可为大于等于1的任何正整数)、n个存储访问装置与m个网络存储设备(m在实际业务中,可为大于等于1的任何正整数),其中,每个计算节点可以为刀片服务器、机架服务器或者其他类型的服务器,用于提供计算资源,每个网络存储设备可以为san存储设备,包含存储阵列或者hdd、sdd硬盘等,用于提供存储资源。该计算机系统的软件层包括用于进行虚拟化的虚拟化层(可能分布式设置于每个计算节点的操作系统os中,或者独立设置于其中一个计算节点的操作系统中)和多个虚拟机(virtualmachine,vm)。

下面以在图1中其中的一个计算节点11为例来说明计算节点的组成。计算节点11包括cpu11-1、内存11-2,还可以包括一些其他的硬件组成,例如网络接口卡等等(图未示),cpu11-1可以是一个或多个intel处理器芯片,内存11-2为cpu11-1提供存储能力,暂时存放cpu11-1所运行的程序和数据,可以是随机存储器(ram)、只读存储器(rom)、以及高速缓存(cache)等等。

存储访问装置11-3为本申请新提供的一个硬件设备,用于作为关键角色实现本申请的存储访问方法。存储访问装置11-3包括硬件的处理单元、高速外围组件互连总线pcie接口以及网络接口,其一端通过pcie(peripheralcomponentinterconnectexpress)总线与cpu11-1进行连接(可以视为接入计算节点中cpu11-1的一个pcie端点设备),另一端通过网络接口(eth/roce/ib等)连接网络存储设备(例如网络存储设备21、22…2n)。存储访问装置11-3内部包含硬件的处理单元,存储访问装置11-3内部的处理芯片可以采用系统级芯片soc(systemonchip)或专用集成电路asic(applicationspecificintegratedcircuit)等来实现,也可以采用cpu来实现。存储访问装置11-3内部还可以包含firmware及os引导介质以及电源、时钟等其他硬件装备。存储访问装置11-3支持基于存储的单根i/o虚拟化(single-rooti/ovirtualization,sriov)功能,其内部处理芯片提供支持sriov的pcie端点设备的接口,支持sr-iov技术的存储访问装置11-3包括物理功能(physicalfunction,pf)和虚拟功能(virtualfunction,vf),pf为支持sr-iov扩展功能的pcie功能,被用于配置和管理sr-iov功能特性,pf是全功能的pcie功能,可以像其他任何pcie设备一样进行发现、管理和处理。pf拥有完全配置资源,可以用于配置或控制存储访问装置11-3。vf是与物理功能关联的一种功能,vf是一种轻量级pcie功能,可以与物理功能以及与同一物理功能关联的其他vf共享一个或多个物理资源。每个sr-iov设备都可有至少一个pf,并且每个pf都可配置一个或多个与其关联的vf。pf可以通过寄存器创建vf,vf呈现在pcie配置空间中,每个vf都有它们自己的pcie配置空间。vf对外可显示为实际存在的pcie设备,可通过模拟配置空间来分配一个或者多个虚拟功能给虚拟机。存储访问装置11-3支持sriov,用于通过所述sriov功能中的物理功能pf配置至少一个虚拟功能vf,并配置vm与vf的关联关系以使得相关联vm与vf之间建立直通通道,其中,一个vm对应一个vf。

存储访问装置11-3还支持分布式存储资源调度功能,用于通过所述网络接口获取所连接的至少一个网络存储设备所提供的数据块资源,将所获取到的数据块资源组成多个虚拟卷,配置vf与虚拟卷的关联关系,其中,一个vf对应至少一个虚拟卷。简单来说,就是将网络存储设备中的存储资源封装为虚拟卷,通过vf直通给vm使用。

本申请中的虚拟卷也可以称为虚拟磁盘,相对于物理磁盘,主要指提供给虚拟机使用的存储资源,一般由物理存储资源整合划分得到。

本申请提供的存储访问装置11-3由于可直接建立存储资源与vm之间的的直通通道,其所支持的存储访问方法无需现有云计算虚拟化技术中vm访问存储资源的前后端软件栈,减少软件栈路径,减小延时,增强性能,同时也无需运用到太多的主机(计算节点中的cpu)资源,提高了主机的资源利用率。

设备21-2n为网络存储设备,存储访问装置11-3通过网络接口与之连接。网络存储设备21-2n可组成分布式存储资源池,存储资源池的容量可任意扩展,每个网络存储设备包括存储控制器和存储介质,实现硬盘管理以及底层数据管理,向上呈现数据块及数据块调用接口,每个网络存储设备可设置在远端而非计算节点本地。网络存储设备21-2n支持包括多副本或者ec等分布式存储方式,可保证存储资源可靠性。

图2为本申请计算机系统的软件模块组成示意图。该图2中仅示意出一个存储访问装置为例。存储访问装置11-3包括操作系统11-30、资源调度器11-31、直通模块11-32,操作系统11-30中装载有pf后端驱动11-a,直通模块11-32包括pf以及多个vf。计算节点11的操作系统中设置有pf前端驱动11-b。虚拟机31的客户端操作系统中装载有vf驱动模块。

存储访问装置11-3的直通模块11-32支持单根i/o虚拟化sriov,用于通过所述sriov功能中的物理功能pf配置至少一个虚拟功能vf,并配置个vm与vf的关联关系以使得相关联vm与vf之间建立直通通道。

具体地,所述存储访问装置11-3启动之后,加载所述pf后端驱动11-a进行sriov功能的初始化;所述计算节点11,加载所述pf前端驱动11-b,通过所述pf前端驱动11-b获取所述存储访问装置的资源信息,为所述存储访问装置配置队列或中断资源,实现与存储访问装置11-3的通信。

存储访问装置11-3的资源调度器11-31还支持分布式存储资源调度功能,用于通过所述网络接口获取所连接的至少一个网络存储设备所提供的数据块资源,将所获取到的数据块资源组成多个虚拟卷,配置vf对应的虚拟卷并记录vf与对应的虚拟卷的的关联关系。

具体地,资源调度器11-31通过对网络存储设备的数据块和数据块的元数据的访问和调用,把数据块资源封装成虚拟卷,以及配置vf与虚拟卷形成两者映射关系,另外,资源调度器11-31还负责虚拟卷的元数据的管理,能够通过确定的虚拟卷查询到网络存储设备的数据块具体的物理地址。

存储访问装置11-3上还可部署管理代理单元(图2未示出),该管理代理单元提供管理接口连接到计算机系统的管理层(该计算机系统的管理层可以是云管理组件或存储管理组件或者其它用于对计算机系统进行管理的组件),计算机系统的管理层可以根据上层应用的命令,或者根据预置的管理策略确定进行虚拟机资源的分配,在确定需要进行虚拟机资源的分配的时候,计算机系统的管理层可以通过管理接口发起为vm分配存储资源的分配请求,具体地,该为vm分配存储资源的分配请求可以是创建卷或挂载卷的请求,以任意虚拟机为例,本申请以第一虚拟机表示任意虚拟机,存储访问装置11-3通过管理接口接收为第一vm分配存储资源的分配请求,确定所述第一vm关联的第一vf,从所述多个虚拟卷中为所述第一vm分配至少一个虚拟卷,建立所述分配的至少一个虚拟卷与所述第一vf之间的关联关系,返回分配响应,所述分配响应包含为所述第一vm分配的所述至少一个虚拟卷的信息。

在上述存储访问装置的直通模块11-32和资源调度器11-31分别实现了vm与vf的关联以及vf与虚拟卷的关联之后,vm和虚拟卷实际上实现了直通,当第一vm发出i/o请求后,存储访问装置11-3的第一vf通过直通通道接收所述第一vm的i/o请求,将所述i/o请求放入所述第一vf的io队列中,存储访问装置11-3的资源调度器再根据所述第一vf所关联的虚拟卷,确定所述i/o请求对应的所述网络存储设备中的数据块,对所述i/o请求对应的所述网络存储设备中的数据块执行读或写的操作。

本申请上述的存储访问方法可以不再需要经过虚拟化中间层中的前后端接口,减少了vm访问路径,减少了软件栈路径,减小了访问延时,增强了存储访问性能;同时也无需运用到太多的主机(计算节点中的cpu)资源,提高了主机的资源利用率。

每个vm中部署有vf驱动(vfdriver),该vf驱动可以是scsidriver或者nvmedriver,部署在vm内部,当vm发出i/o请求后,该i/o请求通告vf驱动直接发送到与vm关联的vf,当存储访问装置执行完该i/o请求的操作后,i/o请求的操作结果也通过vf驱动传回发出i/o请求的vm。

下面结合图2具体描述存储访问装置所执行的各项操作的流程。

1、存储访问装置与计算节点的初始配置以实现通信的流程:在存储访问装置11-3启动以后,存储访问装置11-3加载pf后端驱动11-a,存储访问装置11-3执行初始化,该初始化过程可以包括pf和vf的寄存器初始化,配置带内/带外地址转换单元映射,doorbell(门铃)地址配置,dma(directmemoryaccess,直接内存存取)初始化,基地址寄存器(baseaddressregister,bar)初始化,该初始化的目的是确保存储访问装置11-3可被计算节点11枚举到并认可为作为计算节点11的pcie端点设备,以实现和计算节点11的硬件间的中断发送以及内存访问。计算节点11加载pf前端驱动11-b,获取存储访问装置11-3上的资源信息,为存储访问装置11-3中的pf或vf配置中断、队列、基地址寄存器等资源,实现与存储访问装置的通信。

在本申请中,存储访问装置11-3中的pf可用于实现单根i/o虚拟化的使能,存储设备中的存储介质的查询、分配以及资源分配表的维护等功能。具体的,计算节点11可加载pf前端驱动11-b,使能sr-iov功能,创建管理队列,并通过pf前端驱动管理队列下发资源查询命令给pf,pf接收到上述查询命令之后,则可将存储设备中包括的存储介质、中断资源以及队列资源的状态返回给计算节点11。计算节点11接收到pf返回的存储介质中断资源以及队列资源的状态之后,则可向pf发送分配命令,pf根据上述分配命令将统一存储资源划分为多个存储子资源,进而将存储子资源、队列资源和中断资源分配给pf或者vf。

2、配置vm与vf的关联关系的流程:vm与vf的关联可以发生在vm新创建的时候,也可以发生在vm创建之后。vm的管理模块或者上层应用通过计算节点11上的pf前端驱动11-b发送vm关联命令到存储访问装置11-3的pf后端驱动11-a,存储访问装置11-3的直通模块11-32选择相关联的vf,并进行vf与vm的关联,即建立vf与vm的映射关系,记录所述指定的vm与对应的vf之间的关联关系,向pf前端驱动11-b返回关联成功的消息,pf前端驱动11-b再将关联成功的消息返回给vm的管理模块或者上层应用模块。

3、将网络存储设备上的数据块整合为虚拟卷的流程:该流程与前述的流程2之间没有特定的先后关系,在存储访问装置11-3启动后,上述两个流程都可随时执行。资源调度器11-31通过网络接口向分布式的网络存储设备获取器提供的存储资源,即各个网络存储设备的数据块资源,将所获取到的数据块资源组成多个虚拟卷,记录虚拟卷与数据块的物理地址的对应关系(虚拟卷的元数据管理)。

4、配置vf与虚拟卷的关联关系的流程:以在挂载卷的过程中实现关联为例(也可以是创建卷的过程中实现关联)。用户或上层应用发起为第一vm挂载卷的命令,存储访问装置通过管理接口接收到该挂载卷的命令,确定所述第一vm关联的第一vf,资源调度器11-31从流程3中组成的多个虚拟卷中为第一vm选择至少一个虚拟卷,建立所述选择的至少一个虚拟卷与所述第一vf之间的关联关系,返回挂载卷响应,所述挂载卷响应包含为第一vm分配的所述至少一个虚拟卷的信息。

5、vm的i/o请求的处理流程:第一vm发起i/o请求,第一vf还用于通过直通通道接收所述第一vm的i/o请求,将所述i/o请求放入所述第一vf的io队列中,资源调度器11-31根据所述第一vf所关联的虚拟卷,确定所述i/o请求对应的所述网络存储设备中的数据块,对所述i/o请求对应的所述网络存储设备中的数据块执行读或写的操作,资源调度器11-31执行完该i/o请求的操作后,将i/o请求的操作结果通过vf驱动传回发出i/o请求的第一vm。

如图3所示,本发明实施例还提供了一种存储访问装置300,所述存储访问装置300包括第一接口301、第二接口302以及处理单元303。具体地,第一接口301为pcie接口,用于连接计算节点的cpu,第二接口为网络接口,用于连接网络存储设备,处理单元303可以是硬件的处理电路来实现,例如系统级芯片soc(systemonchip)或专用集成电路asic(applicationspecificintegratedcircuit)或现场可编程门阵列(fieldprogrammablegatearray,fpga),处理单元303也可以是由cpu与内存(包含相应代码)的组合的方式来实现。

图3所示存储访问装置用于实现上述图1和图2中所描述的存储访问装置11-3的功能,在此不再赘述。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

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