发明内容
本发明实施例提供一种存储方法、存储系统及控制器,以使控制器之间共享存储设备和PCIE IO模块。
为了达到上述目的,本发明实施例提出了一种存储方法,应用于包括至少一个控制器、至少两个外设组件互连标准PCIE输入输出IO模块以及至少两个存储设备的系统中,所述至少两个存储设备通过所述至少一个控制器的PCIE交换Switch连接,所述至少两个PCIE IO模块通过所述至少一个控制器的PCIE Switch连接,控制器之间共享至少两个PCIE IO模块;所述方法包括:
通过所述至少两个PCIE IO模块接收来自服务器的请求消息;
根据所述请求消息访问所述至少两个存储设备,所述至少两个存储设备通过所述至少一个控制器的PCIE Switch连接包括:通过将所述至少一个控制器中的PCIE Switch连接,以使所述至少两个存储设备相连接;或者,所述至少两个PCIE IO模块通过所述至少一个控制器的PCIE Switch连接包括:通过将所述至少一个控制器中的PCIE Switch连接,以使所述至少两个PCIE IO模块相连接。
本发明实施例提出了一种存储系统,包括:至少一个控制器、至少两个PCIE IO模块以及至少两个存储设备,所述至少两个存储设备通过所述至少一个控制器的PCIE Switch连接,所述至少两个PCIE IO模块通过所述至少一个控制器的PCIE Switch连接,控制器之间共享至少两个PCIE IO模块;其中:
控制器,用于通过所述至少两个PCIE IO模块接收来自服务器的请求消息,根据所述请求消息访问所述至少两个存储设备;
所述至少两个存储设备,用于存储所述请求消息对应的信息;
所述至少两个存储设备通过所述至少一个控制器的PCIE Switch连接包括:通过将所述至少一个控制器中的PCIE Switch连接,以使所述至少两个存储设备相连接;或者,所述至少两个PCIE IO模块通过所述至少一个控 制器的PCIE Switch连接包括:通过将所述至少一个控制器中的PCIESwitch连接,以使所述至少两个PCIE IO模块相连接。
本发明实施例提出了一种控制器,应用于包括至少一个控制器、至少两个PCIE IO模块以及至少两个存储设备的系统中,所述至少两个存储设备通过所述至少一个控制器的PCIE Switch连接,所述至少两个PCIE IO模块通过所述至少一个控制器的PCIE Switch连接,控制器之间共享至少两个PCIE
IO模块,其中,控制器包括:
接收模块,用于通过至少两个PCIE IO模块接收来自服务器的请求消息;
访问模块,用于根据所述请求消息访问至少两个存储设备;连接模块,用于将所述至少一个控制器中的PCIE Switch连接,以使所述至少两个存储设备相连接;或者,用于将所述至少一个控制器中的PCIE Switch连接,以使所述至少两个PCIE IO模块相连接。
与现有技术相比,本发明实施例具有以下优点:
通过使用控制器的PCIE Switch将至少两个PCIE IO模块连接,使得控制器之间共享至少两个PCIE IO模块,节省了资源;而且通过使用控制器的PCIE Switch将至少两个存储设备相连接,存储设备在接入控制器时并不需要通过硬盘控制器和硬盘扩展芯片,从而节省了成本。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例一提出的一种存储方法,可以应用于包括至少一个控制 器、至少两个PCIE IO模块以及至少两个存储设备的系统中,所述至少两个存储设备通过所述至少一个控制器的PCIE Switch连接,所述至少两个PCIEIO模块通过所述至少一个控制器的PCIE Switch连接,如图1所示,可以包括:
步骤S101,通过所述至少两个PCIE IO模块接收来自服务器的请求消息;
步骤S102,根据所述请求消息访问所述至少两个存储设备。
本发明实施例方法可以根据实际需要对各个步骤顺序进行调整。
本发明实施例的存储设备可以是固态硬盘,本实施例中,该通过所述至少两个PCIE IO模块接收来自服务器的请求消息的主体可以为负载最轻的服务器,该负载最轻的控制器包括以下中的至少一种:控制器的请求数量最少;控制器响应时间最短;控制器的CPU占用率最小。
可见,本实施例中,通过使用控制器的PCIE Switch将至少两个PCIE IO模块连接,使得控制器之间共享至少两个PCIE IO模块,节省了资源;通过使用控制器的PCIE Switch将至少两个存储设备相连接,并使用固态硬盘作为存储设备,替代传统的硬盘,使得固态硬盘在接入控制器时并不需要通过硬盘控制器和硬盘扩展芯片,从而节省了成本。而且在将固态硬盘连接后使服务器可以根据控制器的负载情况选择负载最轻的控制器,从而达到控制器负载的动态平衡。
本发明实施例二提出的一种存储方法,如图2所示,可以包括:
步骤S201,服务器向负载最轻的控制器发送请求。
具体的,服务器可以通过多路径软件将请求发送给负载最轻的控制器,该多路径软件为可以自动选路的软件,即服务器的多路径软件可以通过和控制器交互,自动选择负载最轻的控制器,并将请求发送给该负载最轻的控制器,该请求包括但不限于通过归属控制器进行存储操作的请求。上述的负载最轻的控制器包括但不限于控制器的请求数量最少、控制器响应时间最短、CPU占用率最小。
本实施例中,上述的控制器可以为基于PCIE互联存储架构中的控制 器,其中,该基于PCIE互联的存储架构的结构图如图3所示,该存储架构以两个控制器为例进行说明。在该存储架构3中,包括PCIE IO(输入输出)模块、PCIE Switch、控制器和存储设备,该存储设备可以为硬盘,该硬盘的类型包括但不限于SSD(Solid State Disk,固态硬盘),本实施例中,该存储设备均以固态硬盘为例进行说明,一个控制器可以配置多个PCIE IO模块。在本实施例中,以SSD为例进行说明,上述的PCIE IO模块、PCIE Switch、控制器和PCIE SSD均以两个为例进行说明,在使用该存储架构3时,上述的PCIE IO模块、PCIE Switch、控制器和PCIE SSD的个数根据实际需要任意选取。上述的两个控制器为控制器33和控制器34,上述的两个PCIE IO模块为PCIE IO模块321和PCIE IO模块322,上述的两个PCIE Switch位于控制器内,PCIE Switch 331位于控制器33内,PCIE Switch 341位于控制器34内,上述的两个PCIE SSD为PCIE SSD351和PCIE SSD 352。
通过将PCIE Switch 331和PCIE Switch 341连接,并将PCIE IO模块321与PCIE Switch 331连接,将PCIE IO模块322与PCIE Switch 341连接,使得PCIE IO模块321与PCIE IO模块322在两个控制器之间互联,从而控制器33和控制器34可以共享PCIE IO模块321与PCIE IO模块322,而且PCIE SSD 351也与PCIE Switch 331连接,PCIE SSD 352也与PCIESwitch 341连接,使得PCIE SSD 351与PCIE SSD 352两个控制器之间互联,从而控制器33和控制器34可以访问所有的PCIE SSD,即控制器33和控制器34可以共享访问PCIE SSD 351,并将信息存储到PCIE SSD 351上,同样的,控制器33和控制器34还可以共享访问PCIE SSD 352,并将信息存储到PCIE SSD 352上。
本实施例中,该存储架构3中的控制器接收的来自服务器的请求具体为服务器311通过交换网发送的请求,该存储架构3中的控制器接收的来自服务器的请求还可以为服务器312通过交换网发送的请求,其中,该控制器为负载最轻的控制器。
步骤S202,控制器处理来自服务器的请求。
具体的,当该来自服务器的请求为存储操作的请求时,该负载最轻的控制器通过访问PCIE SSD,将该请求所对应的信息存储到该PCIE SSD上。例如,当该服务器的请求为存储网络信息,该负载最轻的控制器为控制器33时,在控制器33接收到该来自服务器的存储网络信息的请求后,将该请求所对应的网络信息存储到PCIE SSD中,本实施例中,控制器33可以将该网络信息存储到PCIE SSD 351上,也可以将该网络信息存储到PCIESSD 352上。
本发明实施例方法可以根据实际需要对各个步骤顺序进行调整。
可见,本实施例中,通过使用PCIE Switch将PCIE IO模块在两个控制器之间互联,使得两个控制器可以共享所有的PCIE IO模块,节省了PCIE接口卡的资源。
并且SSD可以直接接入控制器,并不需要通过硬盘控制器、硬盘扩展芯片接入控制器,从而节省了使用硬盘控制器、硬盘扩展芯片的高成本,而在使用传统硬盘接入控制器,CPU在访问传统接口的硬盘时,其访问路径依次为:CPU、PCIE总线的桥片、PCIE总线、硬盘控制器、硬盘扩展芯片、硬盘,该传统接口包括但不限于FC(Fibre Channel,光纤通道)和SAS(Serial Attached SCSI,串行SCSI),在访问时间上,CPU指令的执行时间是ns级,内存访问延迟是10ns级,而磁盘访问时间为十几个毫秒级,当存储设备的访问延迟需要大大提高后,例如,当存储设备的访问延迟需要提高到0.1ms时,上述的通过CPU、PCIE总线的桥片、PCIE总线、硬盘控制器、硬盘扩展芯片、硬盘的访问路径将在性能上将存在瓶颈,通过上述的访问路径不能使存储设备的访问延迟达到0.1ms,当仍使用传统接口的硬盘时,便不能满足性能要求了,此时,需要存储介质在总线层次上更接近CPU和内存,即使用SSD直接接入控制器。通过表1和表2可以看出,基于PCIE接口的固态硬盘性能指标远远高于机械硬盘性能指标,其中,表1为基于PCIE接口的固态硬盘性能指标,表2为机械硬盘性能指标。
表1
4K随机读IOPS |
4K随机写IOPS |
顺序读MB/s |
顺序写MB/s |
107,000 |
96,000 |
700 |
600 |
表2
4K随机读IOPS |
4K随机写IOPS |
顺序读MB/s |
顺序写MB/s |
241 |
179 |
66 |
52 |
即在本实施例中,通过使用高性能、非易失性的SSD作为系统的存储设备,不需要在Cache的LUN上设计归属控制器,针对某个LUN的请求可以在任意的控制器上执行,即LUN可通过任意控制器访问SSD。此时,通过使用控制器的PCIE Switch将两个SSD相连接,服务器多路径软件和控制器间的路径为对等关系,控制器之间不再有优选路径,服务器多路径软件就可以通过控制器的负荷情况选择请求的路径,以达到控制器负载的动态平衡。
本发明实施例三还提出了一种存储系统,如图4所示,该系统可以包括:至少一个控制器、至少两个PCIE IO模块以及至少两个存储设备,该至少两个存储设备通过该至少一个控制器的PCIE Switch连接,该至少两个PCIE IO模块通过该至少一个控制器的PCIE Switch连接,一个控制器可以配置多个PCIE IO模块。本实施例中,该至少一个控制器、至少两个PCIE IO模块、至少两个存储设备均以两个为例进行说明,即该存储系统包括:控制器41、控制器42、PCIE IO模块43、PCIE IO模块44、存储设备45、存储设备46;该控制器41中包括PCIE Switch 411,该控制器42中包括PCIESwitch 421,PCIE Switch 411和PCIE Switch 421连接,PCIE IO模块43和PCIE Switch 411连接,PCIE IO模块44和PCIE Switch 421连接,存储设备45和PCIE Switch 411连接,存储设备46和PCIE Switch 421连接。其中,该控制器41用于通过PCIE IO模块43接收来自服务器的请求消息,此外,该控制器41还用于通过PCIE IO模块44接收来自服务器的请求消息,控制器41根据该请求消息访问存储设备45,同样的,该控制器还可以根据该请求消息访问存储设备46,该存储设备的类型包括但不限于固态硬盘;该存储设备用于存储该请求消息对应的需要存储的信息。本实施例中, 该控制器41为负载最轻的控制器。本发明实施例系统的各个单元可以集成于一个装置,也可以分布于多个装置。上述单元可以合并为一个单元,也可以进一步拆分成多个子单元。
可见,本实施例中,通过使用控制器的PCIE Switch将至少两个PCIE IO模块连接,使得控制器之间共享至少两个PCIE IO模块,节省了资源;通过使用控制器的PCIE Switch将至少两个存储设备相连接,并使用固态硬盘作为存储设备,替代传统的硬盘,使得固态硬盘在接入控制器时并不需要通过硬盘控制器和硬盘扩展芯片,从而节省了成本。而且在将固态硬盘连接后使服务器可以根据控制器的负载情况选择负载最轻的控制器,从而达到控制器负载的动态平衡。
本发明实施例四提出的一种存储装置,该装置可以为控制器,该控制器应用于包括至少一个控制器、至少两个PCIE IO模块以及至少两个存储设备的系统中,该至少两个存储设备通过该至少一个控制器的PCIE Switch连接,该至少两个PCIE IO模块通过该至少一个控制器的PCIE Switch连接,其中,该控制器可以为负载最轻的控制器,如图5所示,可以包括:
连接模块51,用于将至少一个控制器中的PCIE Switch连接,以使至少两个存储设备相连接,存储设备的类型包括但不限于固态硬盘;
或者,
用于将该至少一个控制器中的PCIE Switch连接,以使该至少两个PCIE IO模块相连接。
接收模块52,用于通过至少两个PCIE IO模块接收来自服务器的请求消息。
访问模块53,用于根据接收模块52接收的请求消息访问连接模块51连接的至少两个存储设备。
存储模块54,用于在访问模块53访问存储设备时,将接收模块52接收的请求消息对应的信息存储到该至少两个存储设备中,该存储设备的类型包括但不限于固态硬盘。
本发明实施例设备的各个模块可以集成于一体,也可以分离部署。上述模块可以合并为一个模块,也可以进一步拆分成多个子模块。
可见,本实施例中,通过使用控制器的PCIE Switch将至少两个PCIE IO模块连接,使得控制器之间共享至少两个PCIE IO模块,节省了资源;通过使用控制器的PCIE Switch将至少两个存储设备相连接,并使用固态硬盘作为存储设备,替代传统的硬盘,使得固态硬盘在接入控制器时并不需要通过硬盘控制器和硬盘扩展芯片,从而节省了成本。而且在将固态硬盘连接后使服务器可以根据控制器的负载情况选择负载最轻的控制器,从而达到控制器负载的动态平衡。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可以通过硬件实现,也可以可借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。