一种存储系统以及存储数据的方法和读取数据的方法
技术领域
本发明涉及网络存储技术,特别是涉及一种存储系统、存储数据的方法、读取数据的方法以及一种基于PCIe接口的设备。
背景技术
随着信息量的急剧增长,网络存储技术应运而生。在目前的网络存储技术中,存储区域网络(Storage Area Network,SAN)是一种通过交换网络连接服务器和磁盘阵列的高速专用子网,其中,磁盘阵列主要用于存储大量的数据,服务器主要用于对磁盘阵列进行读写操作以便获取和存储数据。在SAN系统中,每一个服务器都可以通过交换网络访问任意一个磁盘阵列,从而大大提高了数据的可用性。
对于SAN系统,目前主要包括FC SAN系统和IP SAN系统。图1是在现有技术中IP SAN系统的结构示意图。参见图1,IP SAN系统是一种采用iSCSI协议并架构在以太网上的SAN系统。图2是在现有技术中利用IP SAN系统由服务器向磁盘阵列下发命令或数据的流程图。参见图1和图2,在现有技术中,在服务器至磁盘阵列的方向上,利用IP SAN系统实现由服务器向磁盘阵列下发命令或数据的过程包括以下步骤:
步骤201:服务器将所需下发的命令或数据携带在iSCSI协议包中,并对该iSCSI协议包进行以太网的封装后发送给主机接入网络(HAN)中的设备。
这里,服务器所需下发的命令可以是读命令或写命令,所需下发的数据则是需存储在磁盘阵列中的数据。
步骤202:HAN中的设备将封装后的iSCSI协议包发送至存储控制器。
步骤203:存储控制器对接收到的iSCSI协议包进行解封装处理,获取命令或数据,并对所获取的命令或数据进行快照等业务处理。
步骤204:存储控制器将所获取的命令或数据携带在iSCSI协议包中,并对该iSCSI协议包进行以太网的封装后发送给存储传输网络(SDN)中的设备。
步骤205:SDN中的设备通过查找路由列表将封装后的iSCSI协议包发送至磁盘阵列。
步骤206:磁盘阵列对接收到的iSCSI协议包进行以太网的解封装和协议解析处理,获取命令或数据。
这里,磁盘阵列通过在内部预先设置的传输控制协议卸载引擎(TOE)或现场可变成阵列(+FPGA)来完成所述的解封装和协议解析处理。
步骤207:磁盘阵列根据所获取的命令或数据进行读数据或存储数据的处理。
图3是在现有技术中利用IP SAN系统由磁盘阵列将数据发送给服务器的流程图。参见图1和图3,在现有技术中,在磁盘阵列至服务器的方向上,利用IP SAN系统实现磁盘阵列将数据发送给服务器的过程包括以下步骤:
步骤301:磁盘阵列将需要发送给服务器的数据携带在iSCSI协议包中,并对该iSCSI协议包进行以太网的封装后发送给SDN中的设备。
步骤302:SDN中的设备通过查找路由列表将封装后的iSCSI协议包发送至存储控制器。
步骤303:存储控制器对接收到的iSCSI协议包进行解封装处理,获取数据,并对所获取的数据进行帧格式转换等业务处理。
步骤304:存储控制器将所获取的数据携带在iSCSI协议包中,并对该iSCSI协议包进行以太网的封装后发送给HAN中的设备。
步骤305:HAN中的设备将封装后的iSCSI协议包发送至服务器。
从上述图2和图3所示流程可以看出,在IP SAN系统中,SDN是标准的以太网,SDN网络中的每一级设备均需要通过查找路由列表的方式来确定iSCSI协议包的转发路由。由于SDN网络中设备和端口的数目众多,使得一个路由列表中的表项较大,这样,查找路由列表通常需要耗费较长的时间,并且逐级查找的方式也进一步增加了确定转发路由的时间,因此增加了对命令或数据的传输时延。另外,由于SDN是标准的以太网,存储控制器在发送iSCSI协议包时需要进行封装处理,在接收到磁盘阵列发来的iSCSI协议包时需要进行解封装处理,因此进一步增加了对命令或数据的传输时延,从而无法满足对实时性要求较高的业务应用场合。
发明内容
有鉴于此,本发明的主要目的在于提供一种存储系统以及一种基于PCIe接口的设备,本发明的另一目的在于提供一种存储数据的方法和读取数据的方法,以便大大降低命令和数据的传输时延。
为了达到上述目的,本发明的技术方案是这样实现的:
一种存储系统,该系统包括:至少一个服务器、至少一个存储控制器、基于PCIe接口的设备和至少一个磁盘阵列,基于PCIe接口的设备分别与每一个存储控制器和磁盘阵列相连,并且,
服务器,用于发送写命令和数据;
存储控制器,用于接收写命令和数据,并通过PCIe接口将写命令和数据发送至基于PCIe接口的设备;
基于PCIe接口的设备,用于将接收到的写命令和数据发送至磁盘阵列;
磁盘阵列,用于根据接收到的写命令,存储所接收到的数据。
所述基于PCIe接口的设备为符合高级交换互连ASI架构的ASI设备;
所述磁盘阵列包括支持PCIe接口的磁盘阵列;
所述ASI设备通过PCIe接口与支持PCIe接口的磁盘阵列相连。
所述基于PCIe接口的设备为包括FC接口的ASI设备;
所述磁盘阵列包括支持FC接口的磁盘阵列;
所述ASI设备通过FC接口与支持FC接口的磁盘阵列相连。
所述基于PCIe接口的设备为包括FC接口的ASI设备;
所述磁盘阵列包括支持PCIe接口的磁盘阵列和支持FC接口的磁盘阵列;
所述ASI设备通过PCIe接口与支持PCIe接口的磁盘阵列相连,并通过FC接口与支持FC接口的磁盘阵列相连。
所述基于PCIe接口的设备为PCIe交换设备;
所述磁盘阵列为支持PCIe接口的磁盘阵列;
所述PCIe交换设备通过PCIe接口与支持PCIe接口的磁盘阵列相连。
所述基于PCIe接口的设备,用于保存磁盘阵列标识与自身中接口的对应关系,根据该对应关系确定与写命令中携带的磁盘阵列标识对应的接口,然后通过内部的交换网将接收到的写命令和数据交换到所确定的接口上并发送至目标磁盘阵列。
该系统进一步包括:主机接入网络;
所述服务器,用于将写命令和数据携带在iSCSI协议包中,并对该iSCSI协议包进行封装后发送至主机接入网络;
所述主机接入网络,用于将封装后的携带写命令和数据的iSCSI协议包发送至存储控制器;
所述存储控制器,用于对接收到的iSCSI协议包进行解封装,得到写命令和数据。
所述服务器和存储控制器位于同一物理实体中;
所述服务器,通过内部交互方式将写命令和数据发送至存储控制器。
所述服务器,进一步用于发送读命令,并接收数据;
所述存储控制器,进一步用于接收读命令,通过PCIe接口将读命令发送至基于PCIe接口的设备,并且,在接收到基于PCIe接口的设备发来的数据后,将该数据发送至服务器;
所述基于PCIe接口的设备,进一步用于将接收到的读命令发送至磁盘阵列,并通过PCIe接口将磁盘阵列发来的数据发送至存储控制器;
所述磁盘阵列,进一步用于根据接收到的读命令,从内部的磁盘中读取数据,并将所读取的数据发送至基于PCIe接口的设备。
一种存储系统,该系统包括:至少一个服务器、至少一个存储控制器、基于PCIe接口的设备和至少一个磁盘阵列,基于PCIe接口的设备分别与每一个存储控制器和磁盘阵列相连,其中,
所述服务器,用于发送读命令,并接收数据;
所述存储控制器,用于接收读命令,通过PCIe接口将读命令发送至基于PCIe接口的设备,并且,在接收到基于PCIe接口的设备发来的数据后,将该数据发送至服务器;
所述基于PCIe接口的设备,用于将接收到的读命令发送至磁盘阵列,并通过PCIe接口将磁盘阵列发来的数据发送至存储控制器;
所述磁盘阵列,用于根据接收到的读命令,从内部的磁盘中读取数据,并将所读取的数据发送至基于PCIe接口的设备。
所述基于PCIe接口的设备为符合ASI架构的ASI设备;
所述磁盘阵列包括支持PCIe接口的磁盘阵列;
所述ASI设备通过PCIe接口与支持PCIe接口的磁盘阵列相连。
所述基于PCIe接口的设备为包括FC接口的ASI设备;
所述磁盘阵列包括支持FC接口的磁盘阵列;
所述ASI设备通过FC接口与支持FC接口的磁盘阵列相连。
所述基于PCIe接口的设备为包括FC接口的ASI设备;
所述磁盘阵列包括支持PCIe接口的磁盘阵列和支持FC接口的磁盘阵列;
所述ASI设备通过PCIe接口与支持PCIe接口的磁盘阵列相连,并通过FC接口与支持FC接口的磁盘阵列相连。
所述基于PCIe接口的设备为PCIe交换设备;
所述磁盘阵列为支持PCIe接口的磁盘阵列;
所述PCIe交换设备通过PCIe接口与支持PCIe接口的磁盘阵列相连。
所述基于PCIe接口的设备,用于保存磁盘阵列标识与自身中接口的对应关系,根据该对应关系确定与读命令中携带的磁盘阵列标识对应的接口,通过内部的交换网将接收到的读命令交换到所确定的接口上并发送至目标磁盘阵列。
该系统进一步包括:主机接入网络;
服务器,用于将读命令携带在iSCSI协议包中,并对该iSCSI协议包进行封装后发送至主机接入网络,并对主机接入网络发来的携带数据的iSCSI协议包进行解封装,得到数据;
主机接入网络,用于将封装后的携带读命令的iSCSI协议包发送至存储控制器,并将存储控制器发来的携带数据的iSCSI协议包发送至服务器;
存储控制器,用于接收封装后的携带读命令的iSCSI协议包,并对该iSCSI协议包进行解封装后获取读命令,通过PCIe接口将所获取的读命令发送至基于PCIe接口的设备,并且,在接收到基于PCIe接口的设备发来的数据后,将该数据携带在iSCSI协议包中,并对该iSCSI协议包进行封装后发送至主机接入网络。
所述服务器和存储控制器位于同一物理实体中;
所述服务器,通过内部交互方式将读命令发送至存储控制器;
所述存储控制器,通过内部交互方式将接收到的数据发送至服务器。
一种存储数据的方法,将基于PCIe接口的设备分别与存储控制器和磁盘阵列相连,该方法还包括:
A、服务器将写命令和数据发送至存储控制器;
B、存储控制器通过PCIe接口将写命令和数据发送至基于PCIe接口的设备;
C、基于PCIe接口的设备将写命令和数据发送至磁盘阵列;
D、磁盘阵列根据接收到的写命令,存储所接收到的数据。
所述基于PCIe接口的设备为符合ASI架构的ASI设备;
所述磁盘阵列为支持PCIe接口的磁盘阵列;
所述步骤C包括:ASI设备通过PCIe接口将写命令和数据发送至支持PCIe接口的磁盘阵列。
所述基于PCIe接口的设备为包括FC接口的ASI设备;
所述磁盘阵列为支持FC接口的磁盘阵列;
所述步骤C包括:ASI设备通过FC接口将写命令和数据发送至支持FC接口的磁盘阵列。
所述基于PCIe接口的设备为PCIe交换设备;
所述磁盘阵列为支持PCIe接口的磁盘阵列;
所述步骤C包括:PCIe交换设备通过PCIe接口将写命令和数据发送至支持PCIe接口的磁盘阵列。
该方法进一步包括:根据磁盘阵列与基于PCIe接口设备中接口的连接关系,建立磁盘阵列标识与基于PCIe接口设备中接口的对应关系;
所述步骤B包括:基于PCIe接口的设备根据所建立的对应关系,确定与写命令中携带的磁盘阵列标识对应的接口,然后通过内部的交换网将接收到的写命令和数据交换到所确定的接口上并发送至目标磁盘阵列。
所述步骤A包括:服务器将写命令和数据携带在iSCSI协议包中,并对该iSCSI协议包进行封装后发送至主机接入网络,主机接入网络将封装后的携带写命令和数据的iSCSI协议包发送至存储控制器;
所述步骤A进一步包括:存储控制器对接收到的iSCSI协议包进行解封装,得到写命令和数据。
所述服务器和存储控制器设置在同一物理实体中;
所述步骤A包括:服务器通过内部交互方式将写命令和数据发送至存储控制器。
该方法进一步包括:服务器将读命令发送至存储控制器;存储控制器通过PCIe接口将读命令发送至基于PCIe接口的设备,基于PCIe接口的设备将接收到的读命令发送至磁盘阵列;磁盘阵列根据接收到的读命令,从内部的磁盘中读取数据,并将所读取的数据发送至基于PCIe接口的设备;基于PCIe接口的设备通过PCIe接口将数据发送至存储控制器;存储控制器将数据发送至服务器。
一种读取数据的方法,将基于PCIe接口的设备分别与存储控制器和磁盘阵列相连,该方法还包括:
a、服务器将读命令发送至存储控制器;
b、存储控制器通过PCIe接口将读命令发送至基于PCIe接口的设备,基于PCIe接口的设备将接收到的读命令发送至磁盘阵列;
c、磁盘阵列根据接收到的读命令,从内部的磁盘中读取数据,并将所读取的数据发送至基于PCIe接口的设备;
d、基于PCIe接口的设备通过PCIe接口将数据发送至存储控制器;
e、存储控制器将数据发送至服务器。
所述基于PCIe接口的设备为符合ASI架构的ASI设备;
所述磁盘阵列为支持PCIe接口的磁盘阵列;
所述ASI设备与支持PCIe接口的磁盘阵列之间通过PCIe接口执行所述的交互过程。
所述基于PCIe接口的设备为包括FC接口的ASI设备;
所述磁盘阵列为支持FC接口的磁盘阵列;
所述ASI设备与支持FC接口的磁盘阵列之间通过FC接口执行所述的交互过程。
所述基于PCIe接口的设备为PCIe交换设备;
所述磁盘阵列为支持PCIe接口的磁盘阵列;
所述PCIe交换设备与支持PCIe接口的磁盘阵列之间通过PCIe接口执行所述的交互过程。
该方法进一步包括:根据磁盘阵列与基于PCIe接口设备中接口的连接关系,建立磁盘阵列标识与基于PCIe接口设备中接口的对应关系;
所述步骤b包括:基于PCIe接口的设备根据所建立的对应关系,确定与读命令中携带的磁盘阵列标识对应的接口,然后通过内部的交换网将接收到的读命令交换到所确定的接口上并发送至目标磁盘阵列。
所述步骤a包括:服务器将读命令携带在iSCSI协议包中,并对该iSCSI协议包进行封装后发送至主机接入网络,主机接入网络将封装后的携带读命令的iSCSI协议包发送至存储控制器;
所述步骤a进一步包括:存储控制器对接收到的iSCSI协议包进行解封装,得到读命令;
所述步骤e包括:存储控制器将接收到的数据携带在iSCSI协议包中,并对该iSCSI协议包进行封装后发送至主机接入网络;主机接入网络将封装后的携带数据的iSCSI协议包发送至服务器。
所述服务器和存储控制器设置在同一物理实体中;
所述步骤a包括:服务器通过内部交互方式将读命令发送至存储控制器;
所述步骤e包括:存储控制器通过内部交互方式将数据发送至存储控制器。
一种基于PCIe接口的设备,该设备用于通过PCIe接口接收存储控制器发来的写命令和数据,并利用内部的交换网将写命令和数据交换到与目标磁盘阵列相连的接口上并发送至目标磁盘阵列。
所述基于PCIe接口的设备为ASI设备或PCIe交换设备。
一种基于PCIe接口的设备,该设备用于通过PCIe接口接收存储控制器发来的读命令,并利用内部的交换网将读命令交换到与目标磁盘阵列相连的接口上并发送至目标磁盘阵列,并且,该设备接收磁盘阵列发来的数据,并利用内部的交换网将该数据交换到与目标存储控制器相连的接口上并发送至目标存储控制器。
所述基于PCIe接口的设备为ASI设备或PCIe交换设备。
由此可见,本发明具有以下优点:
1、在本发明中,由于无需进行现有技术在以太网中逐级转发逐级查找路由列表的过程,并无需进行以太网的封装和解封装以及复杂的协议解析过程,因此减少了转发命令或数据所耗费的时间;另外,当采用ASI设备与磁盘阵列交互命令或数据时,由于ASI设备在物理层和数据链路层通过其协议接口对PCIe协议进行了很好地承载,其内部的传输时延很小,因此,进一步减少了转发命令或数据所耗费的时间,使得本发明能够满足对实时性要求较高的业务应用场合。
2、在本发明中,当采用ASI设备与磁盘阵列交互命令或数据时,磁盘阵列所接收到的命令或数据未进行以太网的封装,因此,磁盘阵列无需内置TOE或+FPGA来进行以太网的解封装和复杂的协议解析转换过程,因此,降低了磁盘阵列结构的复杂性。
3、在本发明中,当采用ASI设备时,由于ASI设备中可以同时支持PCIe接口和FC接口,因此,本发明的存储系统中,磁盘阵列可以是支持PCIe接口的磁盘阵列,也可以是支持FC接口的磁盘阵列,还可以同时包括支持PCIe接口的磁盘阵列及支持FC接口的磁盘阵列,因此,极大地增加了本发明实现的灵活性。
附图说明
图1是在现有技术中IP SAN系统的结构示意图。
图2是在现有技术中利用IP SAN系统由服务器向磁盘阵列下发命令或数据的流程图。
图3是在现有技术中利用IP SAN系统由磁盘阵列将数据发送给服务器的流程图。
图4是在本发明中存储系统的基本结构示意图。
图5A是当服务器通过HAN与存储控制器相连、基于PCIe接口的设备为高级交换互连(ASI)设备且磁盘阵列支持PCIe接口时本发明系统的结构示意图。
图5B是当服务器与存储控制器位于同一物理实体中、基于PCIe接口的设备为高级交换互连(ASI)设备且磁盘阵列支持PCIe接口时本发明系统的结构示意图。
图6A是当服务器通过HAN与存储控制器相连、基于PCIe接口的设备为ASI设备且磁盘阵列支持FC接口时本发明系统的结构示意图。
图6B是当服务器与存储控制器位于同一物理实体中、基于PCIe接口的设备为ASI设备且磁盘阵列支持FC接口时本发明系统的结构示意图。
图7A是当服务器通过HAN与存储控制器相连、基于PCIe接口的设备为ASI设备且磁盘阵列包括支持PCIe接口的磁盘阵列和支持FC接口的磁盘阵列时本发明系统的结构示意图。
图7B是当服务器与存储控制器位于同一物理实体中、基于PCIe接口的设备为ASI设备且磁盘阵列包括支持PCIe接口的磁盘阵列和支持FC接口的磁盘阵列时本发明系统的结构示意图。
图8A是当服务器通过HAN与存储控制器相连、基于PCIe接口的设备为PCIe交换设备时本发明系统的结构示意图。
图8B是当服务器与存储控制器位于同一物理实体中、基于PCIe接口的设备为PCIe交换设备时本发明系统的结构示意图。
图9是在本发明实施例中实现存储数据的流程图。
图10是在本发明实施例中实现读取数据的流程图。
具体实施方式
在现有技术中,IP SAN系统是基于以太网来完成命令和数据的传输,因此导致了命令和数据的传输时延。而目前,PCIe协议由于可以整合多个通道,并具备多层次的服务质量水平以及信息处理和避免拥塞的机制,在传输PCIe协议包时,只需要根据ID路由和地址路由进行数据包转发,无需进行现有技术的在以太网中查找路由列表、逐级传输以及封装和解封装的过程,因此,可大大减少命令和数据的传输时延。
针对上述特点,本发明提出了一种利用基于PCIe接口设备的存储系统。图4是在本发明中存储系统的基本结构示意图。参见图4,本发明的存储系统包括:至少一个服务器、至少一个存储控制器、基于PCIe接口的设备和至少一个磁盘阵列,并且,基于PCIe接口的设备分别与每一个存储控制器和磁盘阵列相连。
当利用图4所示的本发明的存储系统实现存储数据时,
服务器,用于发送写命令和数据;
存储控制器,用于接收写命令和数据,并通过PCIe接口将写命令和数据发送至基于PCIe接口的设备;
基于PCIe接口的设备,用于将接收到的写命令和数据发送至磁盘阵列;
磁盘阵列,用于根据接收到的写命令,存储所接收到的数据。
当利用图4所示的本发明的存储系统实现读取数据时,
所述服务器,用于发送读命令,并接收数据;
所述存储控制器,用于接收读命令,通过PCIe接口将读命令发送至基于PCIe接口的设备,并且,在接收到基于PCIe接口的设备发来的数据后,将该数据发送至服务器;
所述基于PCIe接口的设备,用于将接收到的读命令发送至磁盘阵列,并通过PCIe接口将磁盘阵列发来的数据发送至存储控制器;
所述磁盘阵列,用于根据接收到的读命令,从内部的磁盘中读取数据,并将所读取的数据发送至基于PCIe接口的设备。
参见图4,在本发明系统中还可以进一步包括HAN,所述的服务器可以通过HAN与存储控制器相连;或者,在本发明系统中,所述的服务器与存储控制器可以位于同一物理实体中并直接相连。
目前,由于高级交换互连(ASI)架构是支持PCIe协议的,即ASI设备中包括PCIe接口和ASI交换网,ASI交换网能够利用其协议接口直接承载PCIe协议,直接向外输出原始的未进行封装的命令或数据,因此,在图4所示的本发明的存储系统中,所述的基于PCIe接口的设备可以是符合ASI架构的ASI设备。并且,由于ASI设备中除了包括PCIe接口之外,还可以包括FC接口,而现有的磁盘阵列中也存在支持PCIe接口或FC接口的磁盘阵列,所以,在本发明系统中,当基于PCIe接口的设备为ASI设备时,所述的磁盘阵列可以是支持PCIe接口的磁盘阵列,此时本发明系统的具体结构示意图可参见图5A和图5B。当ASI设备中包括FC接口时,所述的磁盘阵列可以是支持FC接口的磁盘阵列,此时本发明系统的具体结构示意图可参见图6A和图6B;或者,所述的磁盘阵列也可以同时包括支持PCIe接口的磁盘阵列和支持FC接口的磁盘阵列,此时本发明系统的具体结构示意图可参见图7A和图7B。
另外,在图4所示的本发明的存储系统中,所述的基于PCIe接口的设备还可以是一个对外出PCIe接口由PCIe交换网组成PCIe交换设备,所述的磁盘阵列则为支持PCIe接口的磁盘阵列,此时,本发明系统的结构示意图可参见图8A和图8B。
对应于本发明的系统,本发明还提出了一种存储数据的方法,其核心思想是:将基于PCIe接口的设备分别与存储控制器和磁盘阵列相连;服务器将写命令和数据发送至存储控制器;存储控制器通过PCIe接口将写命令和数据发送至基于PCIe接口的设备;基于PCIe接口的设备将写命令和数据发送至磁盘阵列;磁盘阵列根据接收到的写命令,存储所接收到的数据。
并且,本发明还提出了一种读取数据的方法,其核心思想是:将基于PCIe接口的设备分别与存储控制器和磁盘阵列相连;服务器将读命令发送至存储控制器;存储控制器通过PCIe接口将读命令发送至基于PCIe接口的设备,基于PCIe接口的设备将接收到的读命令发送至磁盘阵列;磁盘阵列根据接收到的读命令,从内部的磁盘中读取数据,并将所读取的数据发送至基于PCIe接口的设备;基于PCIe接口的设备通过PCIe接口将数据发送至存储控制器;存储控制器将数据发送至服务器。
为使本发明的目的、技术方案和优点更加清楚,下面结合附图及具体实施例对本发明作进一步地详细描述。
图9是在本发明实施例中实现存储数据的流程图。参见图5A至图8B以及图9,利用本发明的系统,本发明方法实现存储数据的过程具体包括以下步骤:
步骤901:预先通过PCIe接口将存储控制器与基于PCIe接口的设备相连,并将基于PCIe接口的设备与磁盘阵列相连。
这里,参见图5A、图5B、图6A、图6B、图7A和图7B,在本发明系统中,当基于PCIe接口的设备为ASI设备时,在本步骤中,是通过PCIe接口将存储控制器与ASI设备相连。并且,
参见图5A和图5B,由于ASI设备中包括PCIe接口,所以当磁盘阵列为支持PCIe接口的磁盘阵列时,在本步骤中,是通过PCIe接口将ASI设备与支持PCIe接口的磁盘阵列相连;
参见图6A和图6B,由于ASI设备中还可以包括FC接口,所以当ASI设备中包括FC接口,并且磁盘阵列为支持FC接口的磁盘阵列,在本步骤中,是通过FC接口将ASI设备与支持FC接口的磁盘阵列相连;
参见图7A和图7B,当ASI设备中包括FC接口,并且磁盘阵列包括支持PCIe接口的磁盘阵列和支持FC接口的磁盘阵列,在本步骤中,是通过PCIe接口将ASI设备与支持PCIe接口的磁盘阵列相连,并通过FC接口将ASI设备与支持FC接口的磁盘阵列相连。
参见图8A和图8B,在本发明系统中,当基于PCIe接口的设备为PCIe交换设备比如PCIe交换机时,在本步骤中,是通过PCIe接口将存储控制器与PCIe交换设备相连,并通过PCIe接口将PCIe交换设备与支持PCIe接口的磁盘阵列相连。
步骤902:预先根据基于PCIe接口设备的接口与磁盘阵列的连接关系,建立磁盘阵列标识与基于PCIe接口设备的接口的对应关系。
比如,基于PCIe接口的设备为ASI设备,且该ASI设备通过PCIe接口1与支持PCIe接口的磁盘阵列1相连,并通过PCIe接口2与支持PCIe接口的磁盘阵列2相连,并通过自身的FC接口1与支持FC接口的磁盘阵列3相连,那么,在本步骤中,建立磁盘阵列1的标识与PCIe接口1的对应关系,建立磁盘阵列2的标识与PCIe接口2的对应关系,并建立磁盘阵列3的标识与FC接口1的对应关系。
步骤903:当服务器需要将数据存储在一个磁盘阵列中时,服务器生成写命令,并将所生成的写命令和所需存储的数据发送至存储控制器。
这里,所述的写命令中携带有数据需存储到的磁盘阵列的标识。
参见图5A、图6A、图7A和图8A,在本发明中,当服务器通过HAN与存储控制器相连时,本步骤的具体实现过程包括:服务器将所述写命令和数据携带在iSCSI协议包中,然后对该iSCSI协议包进行以太网的封装后发送给HAN;HAN中的设备将封装后的iSCSI协议包发送至存储控制器;存储控制器对接收到的iSCSI协议包进行解封装处理,得到写命令和数据。
参见图5B、图6B、图7B和图8B,在本发明中,当服务器与存储控制器位于同一物理实体中直接相连时,在本步骤中,服务器通过内部交换方式将所述写命令和数据发送至存储控制器。
步骤904:存储控制器对写命令和数据进行相应的业务处理。
本步骤的实现过程与现有技术的相应过程相同。
步骤905:存储控制器通过PCIe接口将所获取的写命令和数据发送至基于PCIe接口的设备。
步骤906:基于PCIe接口的设备接收到写命令和数据后,根据预先建立的磁盘阵列标识与基于PCIe接口设备的接口的对应关系,确定与写命令中携带的磁盘阵列标识对应的接口。
比如,写命令中所携带的磁盘阵列标识为磁盘阵列2,那么,基于PCIe接口的设备在步骤902中所设置的对应关系中进行查找,确定与磁盘阵列2对应的接口为PCIe接口2。
将步骤905至步骤906与现有技术的相应过程进行对比可知,存储控制器在发送写命令和数据时,无需进行现有技术中以太网的封装处理,基于PCIe接口的设备在接收到写命令和数据时,无需进行现有技术中以太网的解封装处理,因此,可以大大减少传输命令和数据的时延,并简化业务处理流程。
步骤907:基于PCIe接口的设备通过内部的交换网将写命令和数据交换到所确定的接口上并发送至目标磁盘阵列。
步骤908:该磁盘阵列根据接收到的写命令,存储所接收到的数据。
在上述步骤905至步骤908的过程中,当本发明系统如图5A和图5B所示时,所述的基于PCIe接口的设备为ASI设备,所述的磁盘阵列为支持PCIe接口并接收到写命令的磁盘阵列;当本发明系统如图6A和图6B所示时,所述的基于PCIe接口的设备为包括FC接口的ASI设备,所述的磁盘阵列为支持FC接口并接收到写命令的磁盘阵列;当本发明系统如图7A和图7B所示时,所述的基于PCIe接口的设备为包括FC接口的ASI设备,所述的磁盘阵列为支持PCIe接口的磁盘阵列和支持FC接口的磁盘阵列中接收到写命令的磁盘阵列;当本发明系统如图8A和图8B所示时,所述的基于PCIe接口的设备为PCIe交换设备,所述的磁盘阵列为支持PCIe接口并接收到写命令的磁盘阵列。
图10是在本发明实施例中实现读取数据的流程图。参见图5A至图8B以及图10,利用本发明的系统,本发明方法实现存储数据的过程具体包括以下步骤:
步骤1001至步骤1002的所有描述与步骤901至步骤902的所有描述均相同。
步骤1003:当服务器需要从一个磁盘阵列中读取数据时,服务器生成读命令,并将所生成的读命令发送至存储控制器。
这里,所述的读命令中携带有磁盘阵列的标识。
参见图5A、图6A、图7A和图8A,在本发明中,当服务器通过HAN与存储控制器相连时,本步骤的具体实现过程包括:服务器将所述读命令携带在iSCSI协议包中,然后对该iSCSI协议包进行以太网的封装后发送给HAN;HAN中的设备将封装后的iSCSI协议包发送至存储控制器;存储控制器对接收到的iSCSI协议包进行解封装处理,得到读命令。
参见图5B、图6B、图7B和图8B,在本发明中,当服务器与存储控制器位于同一物理实体中直接相连时,在本步骤中,服务器通过内部交换方式将所述读命令发送至存储控制器。
步骤1004:存储控制器对读命令进行相应的业务处理。
本步骤的实现过程与现有技术的相应过程相同。
步骤1005:存储控制器通过PCIe接口将读命令发送至基于PCIe接口的设备。
步骤1006:基于PCIe接口的设备接收到读命令后,根据预先建立的磁盘阵列标识与基于PCIe接口设备上接口的对应关系,确定与读命令中携带的磁盘阵列标识对应的接口。
将步骤1005至步骤1006与现有技术的相应过程进行对比可知,存储控制器在发送读命令时,无需进行现有技术中以太网的封装处理,基于PCIe接口的设备在接收到读命令时,无需进行现有技术中以太网的解封装处理,因此,可以大大减少传输命令和数据的时延,并简化业务处理流程。
步骤1007:基于PCIe接口的设备通过内部的交换网将读命令交换到所确定的接口上并发送至目标磁盘阵列。
步骤1008:该磁盘阵列根据接收到的读命令,从内部的磁盘中读取数据,并将所读取的数据发送至基于PCIe接口的设备。
步骤1009:基于PCIe接口的设备通过PCIe接口将接收到的数据发送至发来读命令的目标存储控制器。
这里,本步骤的具体实现过程包括:基于PCIe接口的设备通过内部的交换网将数据交换到与所述目标存储控制器相连的接口上并发送至目标存储控制器。
步骤1010:存储控制器将接收到的数据发送至服务器。
这里,参见图5A、图6A、图7A和图8A,在本发明中,当服务器通过HAN与存储控制器相连时,本步骤的具体实现过程包括:存储控制器将接收到的数据携带在iSCSI协议包中,然后对该iSCSI协议包进行以太网的封装后发送给HAN;HAN中的设备将封装后的iSCSI协议包发送至服务器;服务器对接收到的iSCSI协议包进行解封装处理,得到数据。
参见图5B、图6B、图7B和图8B,在本发明中,当服务器与存储控制器位于同一物理实体中直接相连时,在本步骤中,存储控制器通过内部交换方式将所述数据发送至服务器。
在上述步骤1005至步骤1010的过程中,当本发明系统如图5A和图5B所示时,所述的基于PCIe接口的设备为ASI设备,所述的磁盘阵列为支持PCIe接口并接收到读命令的磁盘阵列;当本发明系统如图6A和图6B所示时,所述的基于PCIe接口的设备为包括FC接口的ASI设备,所述的磁盘阵列为支持FC接口并接收到读命令的磁盘阵列;当本发明系统如图7A和图7B所示时,所述的基于PCIe接口的设备为包括FC接口的ASI设备,所述的磁盘阵列为支持PCIe接口的磁盘阵列和支持FC接口的磁盘阵列中接收到读命令的磁盘阵列;当本发明系统如图8A和图8B所示时,所述的基于PCIe接口的设备为PCIe交换设备,所述的磁盘阵列为支持PCIe接口并接收到读命令的磁盘阵列。
总之,以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。