CN107851058B - 存储系统及设备扫描方法 - Google Patents
存储系统及设备扫描方法 Download PDFInfo
- Publication number
- CN107851058B CN107851058B CN201680003259.9A CN201680003259A CN107851058B CN 107851058 B CN107851058 B CN 107851058B CN 201680003259 A CN201680003259 A CN 201680003259A CN 107851058 B CN107851058 B CN 107851058B
- Authority
- CN
- China
- Prior art keywords
- processing unit
- scanned
- equipment
- address
- current processing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0607—Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4022—Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
- G06F13/404—Coupling between buses using bus bridges with address mapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0626—Reducing size or complexity of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0635—Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0653—Monitoring storage devices or systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0685—Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/54—Presence management, e.g. monitoring or registration for receipt of user log-on information, or the connection status of the users
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0026—PCI express
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Small-Scale Networks (AREA)
Abstract
一种PCIe存储系统及设备扫描方法,能够降低系统复杂度和建造成本。该系统包括:呈环形连接的N个存储设备,每个存储设备包括至少一个处理单元、交换单元和至少一个存储单元,该交换单元包括至少两个上行端口和至少两个下行端口,其中,该至少两个上行端口包括至少一个第一上行端口和第二上行端口,该至少一个处理单元连接至该至少一个第一上行端口;该至少两个下行端口包括至少一个第一下行端口和第二下行端口,该至少一个存储单元连接至该至少一个第一下行端口;其中,第i个存储设备的第二下行端口与第i+1个存储设备的第二上行端口连接,第N个存储设备中的第二下行端口与第1个存储设备的第二上行端口连接。
Description
技术领域
本发明实施例涉及存储领域,并且更具体地,涉及存储系统及设备扫描方法。
背景技术
现有技术中的存储系统,例如外围部件互连高速(Peripheral ComponentInterconnect express,PCIe)存储系统,可以包括多个存储设备,并且该多个存储设备可以两两互连。例如,如图1所示,存储系统100中包括N个存储设备110,该N个存储设备110中的任意两个存储设备110之间存在直连链路,并且可以通过两者之间的直连链路相互通信。因此,存储系统100中的N个存储设备之间存在N×(N-1)/2个直连链路。如果存储系统中包括的存储设备数量较多,即N的数值较大,存储系统的连接链路的数量较多,链路结构复杂。
发明内容
本发明实施例提供一种存储系统以及设备扫描方法,能够降低系统复杂度和建造成本。
第一方面,提供了一种存储系统,包括:呈环形连接的N个存储设备,每个存储设备包括至少一个处理单元、交换单元和至少一个存储单元,该交换单元包括至少两个上行端口和至少两个下行端口,其中,该至少两个上行端口包括至少一个第一上行端口和第二上行端口,该至少一个处理单元连接至该至少一个第一上行端口;该至少两个下行端口包括至少一个第一下行端口和第二下行端口,该至少一个存储单元连接至该至少一个第一下行端口;其中,在该N个存储设备中,第i个存储设备的第二下行端口与第i+1个存储设备的第二上行端口连接,第N个存储设备中的第二下行端口与第1个存储设备的第二上行端口连接,i=1,...,N-1,N≥2。
可选地,该存储系统具体为PCIe存储系统。此时,该至少两个上行端口可以具体为PCIe上行端口,该至少两个下行端口可以具体为PCIe下行端口。
因此,本发明实施例提供的存储系统,通过将N个存储设备首尾相接,构成环形连接结构,以使得该N个存储设备中的任意两个存储设备之间可以相互通信,与现有技术中通过存储设备两两直连相比,能够降低系统的物理链路的复杂度和建造成本。
在第一方面的第一种可能的实现方式中,该至少两个下行端口中的任一下行端口与该至少两个上行端口中的任一上行端口之间存在连接链路。
此时,该至少两个下行端口均为共享下行端口,相应地,存储设备中的至少一个存储单元为共享存储单元,即能够被存储设备中的所有处理单元共享。
这样,通过将交换单元中的下行端口设置为共享端口,使得存储单元可以被系统中的所有处理单元共享。此外,处理单元可以对系统中的任意存储单元直接进行读写操作,无需通过与其它处理单元进行交互,从而简化处理单元的数据读写流程,节约处理单元的处理资源,并加快数据读写效率。此外,处理单元可以对存储系统中的各个存储单元的资源统一进行管理,有利于提高系统整体性能。
可选地,该至少两个上行端口之间存在连接链路。
结合上述可能的实现方式,在第一方面的第二种可能的实现方式中,处理单元用于:扫描该处理单元能够访问的设备;在扫描过程中记录该处理单元扫描到的设备之间的连接关系,并且根据所记录的连接关系,生成该处理单元的PCIe树。
结合上述可能的实现方式,在第一方面的第三种可能的实现方式中,在扫描能够访问的设备时,处理单元具体用于:根据深度优先搜索算法DFS,扫描与该处理单元连接的设备。
可选地,处理单元具体用于:确定扫描到的设备是否曾被该处理单元扫描过;若确定扫描到的设备曾经被该处理单元扫描过,返回至与该扫描到的设备的上行端连接的设备进行扫描。
具体地,与该扫描到的设备的上行端连接的设备可以具体为沿着上行方向与该扫描到的设备连接的设备。
可选地,若确定重复扫描到某个设备,则处理单元可以返回至该设备的上行设备继续进行扫描。
可选地,处理单元具体用于:若确定扫描到的设备曾经被处理单元扫描过,确定该扫描到的设备为与该处理单元直接相连的交换单元。
可选地,处理单元具体用于:若确定扫描到的设备曾经被处理单元扫描过,返回至与该扫描到的设备的上行端口连接的上级交换单元,并扫描与该上级交换单元连接的未被扫描到的设备。
可选地,处理单元还用于:当该上级交换单元所连接的设备被扫描完后,则返回该上级交换单元的上行端口连接的上级交换单元扫描未被扫描到的设备,直到与该处理单元连接的所有交换单元所连接的设备全部被扫描完。
可选地,若确定首次扫描到某个设备,则处理单元可以为该设备分配设备地址,并沿着下行方向扫描与该设备连接的设备。可选地,该处理单元还可以将为该设备分配的设备地址添加至该处理单元的分配地址集合中。
可选地,上行方向可以具体为靠近该处理单元的方向,下行方向可以具体为远离该处理单元的方向。
结合上述可能的实现方式,在第一方面的第四种可能的实现方式中,处理单元具体用于:确定所扫描到的设备是否被分配了设备地址;若确定该扫描到的设备被分配了设备地址,判断该扫描到的设备被分配的设备地址是否存在于该处理单元对应的设备地址集合中,其中,处理单元对应的设备地址集合包括该处理单元已扫描到的至少一个设备中每个设备被分配的设备地址;若该扫描到的设备被分配的设备地址存在于该处理单元对应的设备地址集合中,确定扫描到的设备曾经被该处理单元扫描过。
结合上述可能的实现方式,在第一方面的第五种可能的实现方式中,处理单元还用于:若确定该扫描到的设备没有被分配设备地址,为该扫描到的设备分配设备地址,并将该分配的设备地址添加到该处理单元对应的设备地址集合中。
此时,可选地,该处理单元可以继续扫描与该扫描的设备连接的设备。
可选地,处理单元还用于:若确定该扫描到的设备被分配的设备地址不存在于该处理单元对应的设备地址集合中,将该扫描到的设备被分配的设备地址添加到该处理单元对应的设备地址集合中。
结合第一方面的第五种可能的实现方式,在第一方面的第七种可能的实现方式中,处理单元还用于:在生成该处理单元的PCIe树之后,发送校验消息,该校验消息的目的地址为该PCIe树中最外层叶节点设备的设备地址,其中,该PCIe树的根节点为该处理单元,该PCIe树的最外层叶节点为在PCIe树中与该处理单元距离最远的节点;若该处理单元接收到该校验消息,确定该PCIe树建立成功。
结合第一方面的第五种可能的实现方式,在第一方面的第八种可能的实现方式中,处理单元还用于:若该处理单元未接收到该校验消息,确定在用于生成该PCIe树的扫描过程中重复扫描到的设备;为该重复扫描到的设备分配不同于该重复扫描到的设备当前的设备地址的新设备地址,并在该处理单元对应的设备地址集合中将该当前的设备地址替换为该新设备地址;以该重复扫描到的设备为起点,扫描与该重复扫描到的设备连接的设备,在扫描过程中记录扫描到的设备之间的连接关系,并且根据所记录的连接关系,生成该处理单元的新的PCIe树。
第二方面,提供了一种设备扫描方法,可以应用于如第一方面或第一方面的任意可能实现方式中的PCIe存储系统,该方法包括:该呈环形连接的N个存储设备中的当前处理单元扫描该当前处理单元能够访问的设备;在扫描过程中记录该当前处理单元扫描到的设备之间的连接关系,并且根据所记录的扫描到的设备之间的连接关系,生成该当前处理单元的PCIe树。
在第二方面的第一种可能的实现方式中,该扫描该当前处理单元能够访问的设备,包括:根据深度优先搜索算法DFS,扫描与该当前处理单元直接或间接连接的设备。
可选地,该扫描该当前处理单元能够访问的设备,包括:若确定扫描到的设备曾经被该当前处理单元扫描过,返回至与该扫描到的设备的上行端连接的设备进行扫描。
具体地,若确定扫描到的设备曾经被该当前处理单元扫描过,则确定该扫描到的设备为与该当前处理单元直接相连的交换单元,返回至与该当前处理单元直接相连的交换单元的上行端口连接的上级交换单元,并扫描与该上级交换单元连接的未被扫描到的设备,当该上级交换单元所连接的设备被扫描完后,则返回该上级交换单元的上行端口连接的上级交换单元扫描未被扫描的设备,直到该存储系统中所有交换单元所连接的设备全部被扫描完。
结合上述可能的实现方式,在第二方面的第二种可能的实现方式中,该确定扫描到的设备曾经被该当前处理单元扫描过,包括:确定所扫描到的设备是否被分配了设备地址;若确定该扫描到的设备被分配了设备地址,判断该扫描到的设备被分配的设备地址是否存在于该当前处理单元对应的设备地址集合中,其中,该当前处理单元对应的设备地址集合包括该当前处理单元已扫描到的至少一个设备中每个设备被分配的设备地址;若该扫描到的设备被分配的设备地址存在于该当前处理单元对应的设备地址集合中,确定扫描到的设备曾经被该当前处理单元扫描过。
结合上述可能的实现方式,在第二方面的第三种可能的实现方式中,该扫描该当前处理单元能够访问的设备,还包括:若确定该扫描到的设备没有被分配设备地址,为该扫描到的设备分配设备地址,并将该分配的设备地址添加到该当前处理单元对应的设备地址集合中;和/或若确定该扫描到的设备被分配的设备地址不存在于该当前处理单元对应的设备地址集合中,将该扫描到的设备被分配的设备地址添加到该当前处理单元对应的设备地址集合中。
结合上述可能的实现方式,在第二方面的第四种可能的实现方式中,在生成该PCIe树之后,该方法还包括:发送校验消息,该校验消息的目的地址为该PCIe树中最外层叶节点设备的设备地址,其中,该PCIe树的根节点为该当前处理单元,该PCIe树的最外层叶节点为在PCIe树中与该当前处理单元距离最远的节点;若该当前处理单元接收到该校验消息,确定该PCIe树建立成功。
结合上述可能的实现方式,在第二方面的第五种可能的实现方式中,该方法还包括:若该当前处理单元未接收到该校验消息,确定在用于生成该PCIe树的扫描过程中重复扫描到的设备;为该重复扫描到的设备分配不同于该重复扫描到的设备当前的设备地址的新设备地址,并在该当前处理单元对应的设备地址集合中将该当前的设备地址替换为该新设备地址;以该重复扫描到的设备为起点,扫描与该重复扫描到的设备连接的设备,在扫描过程中记录扫描到的设备之间的连接关系,并且根据所记录的连接关系,生成该当前处理单元的新的PCIe树。
本发明实施例提供的设备扫描方法,通过发送校验消息来验证PCIe树的建立是否正确,并且在确定当前PCIe树存在错误时重新建立PCIe树,能够避免错误PCIe树的建立,从而提高系统性能。
此外,在本发明实施例中,通过以上次扫描过程中重复扫描到的设备(即中断扫描处的设备)为起点进行扫描,避免需要从该第一处理设备开始进行重复扫描,从而提高PCIe树的建立速度和效率,进一步提高系统性能。
第三方面,提供了一种计算机可读介质,用于存储计算机程序,该计算机程序包括用于执行第二方面或第二方面的任意可能的实现方式中的方法的指令。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是现有技术中的存储系统的架构示意图。
图2是本发明实施例的存储系统的架构示意图。
图3是本发明实施例的存储系统示例的示意图。
图4是图3所示的存储系统示例中存储设备A的CPU建立的PCIe树的示意图。
图5是本发明实施例的设备扫描方法的示意性流程图。
图6是本发明另一实施例的设备扫描方法的示意性流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。
图2示出了本发明实施例提供的存储系统200的架构示意图。该存储系统200包括:呈环形连接的N个存储设备210,N≥2,其中,每个存储设备210可以包括至少一个处理单元212、交换单元214和至少一个存储单元216。
如图2所示,该交换单元214可以包括至少两个上行端口(图中表示为U)和至少两个下行端口(图中表示为D),其中,该至少两个上行端口可以包括至少一个第一上行端口和至少一个第二上行端口,该至少一个第一上行端口可以与该至少一个处理单元212连接;该至少两个PCIe下行端口可以包括至少一个第一下行端口和第二下行端口,该至少一个第一下行端口可以与该至少一个存储单元216连接。
在该N个存储设备的环形连接结构中,第i个存储设备210的交换单元的第二下行端口可以与第i+1个存储设备210的交换单元的第二上行端口连接,并且第N个存储设备210中的交换单元的第二下行端口可以与第1个存储设备210的交换单元的第二上行端口连接,其中,i=1,...,N-1。
可选地,该存储系统200可以具体为PCIe存储系统。此时,该PCIe存储系统可以包括N个PCIe存储设备210,PCIe存储设备210中的交换单元214可以具体为PCIe交换单元,该PCIe交换单元可以具体通过PCIe上行端口和PCIe下行端口分别与处理单元212和存储单元216连接。可选地,该处理单元212可以作为PCIe主设备,而存储单元216可以作为PCIe从设备,但本发明实施例不限于此。
该交换单元214可以包括交换芯片,可以具有多个上行端口和多个下行端口,其中,该多个上行端口可以包括至少一个第一上行端口以及一个或多个第二上行端口,其中,第一上行端口可以为用于与同一个存储设备中的处理单元连接的上行端口,第二上行端口可以为用于与另一个存储设备中的交换单元214的下行端口连接的上行端口。此外,该多个下行端口可以包括至少一个第一下行端口以及一个或多个第二下行端口,其中,该第一下行端口可以为用于与同一个存储设备中的存储单元连接的下行端口,该第二下行端口可以为用于与另一个存储设备中的交换单元的上行端口连接的下行端口,但本发明实施例不限于此。
该处理单元212可以包括中央处理单元(Central Processing Unit,CPU),可以用于与存储设备中的交换单元的第一上行端口连接。在存储设备中,交换单元214的至少一个第一上行端口的数量可以等于该至少一个处理单元212的数量,此时,该至少一个第一上行端口可以与该至少一个处理单元212一一对应地连接;或者,交换单元214的至少一个第一上行端口的数量可以不等于该至少一个处理单元212的数量,例如,交换单元214的至少一个第一上行端口的数量大于该至少一个处理单元212的数量,此时,该至少一个第一上行端口中的部分第一上行端口可以与该至少一个处理单元212一一对应的连接,而另一部分第一上行端口可以闲置,但本发明实施例对此不做限定。
该存储单元216可以用于与同一个存储设备中的交换单元214的第一下行端口连接。可选地,在存储设备210内,交换单元214的至少一个第一下行端口的数量可以等于该至少一个存储单元216的数量,此时,该至少一个第一下行端口可以与该至少一个存储单元216一一对应地连接;或者,该交换单元214的至少一个第一下行端口的数量也可以不等于该至少一个存储单元的数量,例如,该交换单元214的至少一个第一下行端口的数量可以大于该至少一个存储单元216的数量,此时,该至少一个第一下行端口中的部分第一下行端口可以与该至少一个存储单元216一一对应的连接,而另一部分第一下行端口可以闲置,但本发明实施例不限于此。
在本发明实施例中,可选地,该N个存储设备中的不同存储设备可以包括不同数量的处理单元212和/或存储单元216,并且不同存储设备中的交换单元可以具有不同数量的上行端口和/或下行端口,本发明实施例对此不做限定。
这样,在本发明实施例提供的存储系统中,N个存储设备通过交换单元首尾相接,构成环形连接结构。该N个存储设备中的任意两个存储设备之间可以通过该环形连接结构相互通信,与现有技术的存储系统中多个存储设备两两直连相比,能够减少物理链路的数量,降低系统的复杂度和建造成本。
可选地,在本发明实施例中,存储设备内的至少一个处理单元212之间可以存在连接链路,并且交换单元中的至少两个上行端口之间也可以存在连接链路。作为一个可选实施例,若该存储设备具体为PCIe存储设备,则该交换单元中的上行端口和下行端口可以具体为PCIe端口,此时,该处理单元可以具体作为PCIe主设备,该存储单元可以具体作为PCIe从设备。此外,可选地,该至少两个上行端口之间可以通过非透明桥连接,并且该至少一个处理单元之间可以通过非透明桥连接,但本发明实施例不限于此。
可选地,该下行端口可以为能够被共享的共享下行端口或为不能够被共享的普通下行端口,其中,交换单元的普通下行端口只能与该交换单元中的一个上行端口之间存在连接链路或连接通道,相应地,存储设备内仅有一个处理单元能访问该下行端口,并通过该下行端口访问与该下行端口连接的存储单元,其中,该处理单元具体可以为与该下行端口连接的上行端口所对应的处理单元;而交换单元的共享下行端口可以与该交换单元中的所有上行端口之间均存在连接链路或连接通道,相应地,存储设备内的所有处理单元均可以访问该共享下行端口,并通过该共享下行端口访问与其连接的存储单元,使得该存储单元能够被该存储设备中的所有处理单元共享,但本发明实施例对此不做限定。
作为一个可选实施例,交换单元中的至少两个下行端口可以均为共享下行端口。相应地,该至少两个下行端口中的任一下行端口与该至少两个上行端口中的任一上行端口之间可以存在连接链路。这样,存储设备内的任意处理单元均可以通过该共享下行端口访问该存储设备中的任意存储单元,并且可以通过环形连接结构访问其它存储设备中的任意存储单元,从而使得存储单元可以被存储系统中的任意处理单元访问,并且处理单元可以对任意存储单元直接进行读写操作,无需通过与其它处理单元进行交互,从而简化处理单元的数据读写流程,节约处理单元的处理资源,并加快数据读写效率。此外,处理单元可以对存储系统中的各个存储单元的资源统一进行管理,有利于提高系统整体性能。
在本发明实施例中,可选地,处理单元212可以通过设备扫描,以发现与该处理单元212直接或间接连接的设备,即发现该处理单元212能够访问的设备。其中,该处理单元212能够访问的设备可以包括至少一个交换单元和至少一个存储单元及其他处理单元。具体地,存储单元可以作为PCIe端点设备,该交换单元可以作为总线和桥,用于连接处理单元和存储单元,例如,交换单元中的上行端口和下行端口可以作为总线,同一个交换单元中的上行端口与下行端口之间的连接链路可以作为桥,但本发明实施例不限于此。
具体地,处理单元212可以在设备扫描的过程中记录扫描到的每个设备的信息,例如每个设备的设备号等配置信息,并记录扫描到的各个设备之间的连接关系,以及根据所记录的扫描到的各个设备之间的连接关系,生成处理单元212的PCIe树。
可选地,处理单元212可以利用深度优先搜索(Depth First Search,DFS)算法进行设备扫描。具体地,处理单元212在扫描到与该处理单元212直接连接的设备时,可以进一步沿着下行方向扫描与该直接连接的设备直接连接的设备,直到发现当前扫描到的设备沿着下行方向未连接有其它设备。此时,该处理单元212可以返回至与该未连接其它设备的设备的上级设备,其中,特定设备的上级设备可以指位于该特定设备的上行方向并且与该特定设备连接的设备,也就是与该特定设备的上行端连接的设备,并且该处理单元212可以沿着下行方向扫描与该上级设备连接的未被扫描到的设备,当该上级设备所连接的设备被扫描完后,则返回该上级设备的上级设备继续进行扫描,直到该存储系统中所有与该处理单元212直接或间接连接的设备全部被扫描完。
在本发明实施例中,可选地,当处理单元212扫描到与该处理单元212连接的设备时,其中,该设备可以具体为该存储系统200中的交换单元214或存储单元216,可以确定是否为首次扫描到该设备,即确定是否曾经扫描到过该设备。可选地,若确定是首次扫描到该设备,则该处理单元212可以记录该设备以及该设备与扫描到的其它设备之间的连接关系,并沿着该设备的下行方向继续进行扫描。可选地,若确定不是首次扫描到该设备,即曾经扫描到过该设备,则可以停止扫描该设备的下行方向,并返回至与该设备的上行方向进行扫描,即可以返回至该设备的上行端连接的设备进行扫描。这样,可以防止该处理单元212在该环形连接结构中进行重复地无限扫描。
具体地,如果处理单元212确定当前扫描到的设备曾经被该处理单元扫描过,则可以返回至与该当前扫描到的设备连接的上级交换单元,并扫描与该上级交换单元连接的未被扫描到的设备。可选地,当该上级交换单元所连接的设备被扫描完后,则该处理单元212可以返回与该上级交换单元的上行端口连接的上级交换单元扫描未被扫描的设备,直到该存储系统中所有与该处理单元212直接或间接连接的设备被扫描完。
可选地,该重复扫描到的设备(即曾经被该处理单元扫描过的设备)可以具体为与该处理单元直接连接的交换单元,但本发明实施例不限于此。
可选地,如果确定重复扫描到该设备,即确定不是首次扫描到该设备,则该处理单元212还可以记录该重复扫描的信息,例如记录该重复扫描到的设备的信息,该重复扫描到的设备的信息可以包括该重复扫描到的设备的设备号和/或该重复扫描到的设备与其它设备之间的连接关系,等等,但本发明实施例不限于此。
可选地,该处理单元212可以通过多种方式确定是否首次扫描到与其连接的设备。作为一个可选实施例,该处理单元212可以确定扫描到的设备是否被分配了设备地址。可选地,如果该扫描到的设备未被分配设备地址,则该处理单元212可以确定首次扫描到该设备。此时,可选地,该处理单元212可以为该扫描到的设备分配设备地址,并将该分配的设备地址添加至该处理单元212对应的设备地址集合中,其中,该处理单元212的设备地址集合可以包括该处理单元212扫描到的至少一个设备中每个设备被分配的设备地址,其中,每个设备被分配的设备地址可以是本处理单元212分配的,也可以是存储系统中的其它处理单元分配的,本发明实施例对此不做限定。
可选地,如果确定该扫描到的设备被分配了设备地址,则表明该处理单元212或存储系统中的其它处理单元212曾经扫描到过该设备。此时,该处理单元212可以进一步确定该设备的设备地址是否是本处理单元分配的,如果是,则表明该处理单元曾经扫描到该设备,该处理单元212可以返回至该设备的上行方向进行扫描。可选地,如果确定该设备的设备地址是其它处理单元212分配的,则该处理单元212可以将该设备的设备地址添加至该处理单元212的设备地址集合中,并沿着该设备的下行方向继续扫描,但本发明实施例不限于此。
在本发明实施例中,该处理单元212可以通过多种方式确定扫描到的设备是否被分配了设备地址。可选地,该处理单元212可以从扫描到的设备的配置空间,获取该设备的地址,并且可以根据获取到的地址,确定扫描到的设备是否被分配了设备地址。具体地,如果获取到的地址为默认地址,则可以确定该设备未被分配设备地址。其中,该默认地址可以为固定地址,并且该默认地址可以是设备厂商预先配置的或存储系统通过其它方式预先设置的,例如该默认地址可以为由多个0、1组成的数字串或为由多个字符F组成的字符串,本发明实施例对此不做限定。
可选地,如果获取到的该地址不为默认地址,表明该设备被分配了设备地址。此时,该处理单元212可以进一步确定获取到的该地址是否为本处理单元212分配的。例如,该处理单元212可以通过将获取到的地址与该处理单元212的分配地址集合中包括的至少一个设备地址进行匹配,确定该分配地址集合中是否包括该获取到的地址。如果该分配地址集合中包括该获取到的地址,则表明该获取到的地址是由本处理单元212分配的,即该处理单元212曾经扫描到该设备。此时,该处理单元212可以返回至与当前扫描到的设备连接的上行设备继续进行扫描。可选地,如果该分配地址集合中不包括该获取到的地址,则表明获取到的地址是由存储系统中的其它处理单元分配的,而本处理单元212是第一次扫描到该设备,但本发明实施例不限于此。
作为一个可选实施例,处理单元212可以用于扫描沿着下行方向与扫描到的当前设备所连接的设备,其中,该连接的设备可以包括交换单元、存储单元和处理单元中的至少一种。如果扫描到与该当前设备连接的设备,则该处理单元212可以获取扫描到的设备的地址;若该地址不为默认地址,则可以确定该处理单元212的分配地址集合中是否存在该地址,其中,该处理单元212的分配地址集合包括该处理单元212已扫描到的至少一个设备中每个设备被分配的设备地址。可选地,如果该分配地址集合中存在该地址,则该处理单元212可以返回至当前设备继续进行扫描,以确定该当前设备是否还连接有其它未扫描到的设备。可选地,作为另一实施例,如果该分配地址集合中不存在该地址,则该处理单元212可以继续沿着下行方向扫描与该扫描到的设备连接的设备。具体地,如果当前扫描到的设备为交换单元,则该处理单元212可以继续扫描与该交换单元的下行端口连接的设备;如果当前扫描到的设备为PCIe端点设备,例如存储单元,则该处理单元212可以可以确定该PCIe端点设备未连接其它设备,并返回至当前设备继续进行扫描,以确定该当前设备是否连接有其它未扫描到的设备,本发明实施例不限于此。
作为一个示例,在图3所示的PCIe存储系统中,PCIe存储系统可以包括4个存储设备:存储设备A、存储设备B、存储设备C和存储设备D。每个存储设备包括一个CPU、交换芯片和至少一个从设备,其中,该至少一个从设备可以具体为至少一个存储单元。该交换芯片可以具体为PCIe交换芯片,并且该交换芯片可以具有多个PCIe上行端口和多个PCIe下行端口,其中,该多个PCIe上行端口中的第一上行端口与CPU连接,该多个PCIe下行端口中的至少一个第一PCIe下行端口可以与该至少一个从设备一一对应的连接。该从设备可以为共享从设备,即该从设备能够被存储设备中的CPU共享。此外,存储设备A中的PCIe交换芯片的第二下行端口与存储设备B中的PCIe交换芯片的第二上行端口连接,存储设备B中的PCIe交换芯片的第二下行端口与存储设备C中的PCIe交换芯片的第二上行端口连接,存储设备C中的PCIe交换芯片的第二下行端口与存储设备D中的PCIe交换芯片的第二上行端口连接,存储设备D中的PCIe交换芯片的第二下行端口与存储设备A中的PCIe交换芯片的第二上行端口连接。
在存储设备A的CPU进行设备扫描时,可以将存储设备A的CPU作为PCIe树的根节点。该存储设备A的CPU可以首先扫描到与该CPU直接连接的存储设备A的交换芯片,若确定存储设备A的交换芯片还未被分配设备地址,则在为存储设备A的交换芯片分配设备地址后,将所分配的设备地址记录至该存储设备A的CPU的设备地址集合中,并且可以记录存储设备A的交换芯片与该CPU之间的连接关系。然后,该存储设备A的CPU可以按照预设的顺序以与扫描存储设备A的交换芯片同样的方式扫描该交换芯片的其他上行端口及下行端口所连接的设备。当扫描到与下行端口所连接的存储设备B的交换芯片时,则可以对存储设备B的交换芯片中的上行端口及下行端口所连接的设备进行扫描,此时,即使存储设备A的交换芯片所连接的设备还没有被扫描完,也不再对存储设备A的交换芯片所连接的设备进行扫描,同样,在扫描存储设备B的交换芯片中的上行端口及下行端口所连接的设备时,若扫描到下行端口所连接的设备为存储设备C的交换芯片时,则不再扫描存储设备B的交换芯片所连接的设备,而是对存储设备C的交换芯片所连接的设备进行扫描,以此类推,在对存储设备D的交换芯片所连接的设备进行扫描时,若扫描到存储设备D的交换芯片的下行端口所连接的设备为存储设备A的交换芯片,由于存储设备A的交换芯片之前已经被扫描过,所以存储设备A的交换芯片的设备地址已经存在于所述设备地址集合中,即出现了重复的设备地址,则可以记录存储设备A的交换芯片与存储设备D的交换芯片之间的连接关系,然后返回存储设备A的交换芯片的上行端口连接的存储设备D的交换芯片,对存储设备D的交换芯片所连接的之前没有扫描到设备进行扫描,以此类推,直到返回至存储设备A的交换芯片,对存储设备A的交换芯片所连接的之前没有扫描到设备进行扫描,在对存储设备A的交换芯片所连接的设备扫描完成之后,即完成了对存储设备A的CPU所能访问的设备的扫描,并根据上述设备扫描过程中记录的所扫描到的设备的连接关系生成存储设备A的CPU的PCIe树(如图4所示的)。另外,为了后续校验所述PCIe树是否正确建立,可以在所述PCIe树的末端的存储设备A的交换芯片上建立与存储设备A的CPU的连接关系。
如图4所示,在存储设备A的CPU所对应的PCIe树中,根节点和最外层叶节点可以均为该CPU本身,其中,该最外层叶节点与根节点之间的距离最远,相应地在到达根节点的过程中需要经过的节点数目最多。
应理解,图3至图4的例子是为了帮助本领域技术人员更好地理解本发明实施例,而非要限制本发明实施例的范围。本领域技术人员根据所给出的图3至图4的例子,显然可以进行各种等价的修改或变化,这样的修改或变化也落入本发明实施例的范围内。
在本发明实施例中,可选地,在处理单元212通过上述设备扫描过程生成了该处理单元212对应的PCIe树之后,还可以对生成的该PCIe树进行校验处理,以确定建立的该PCIe树是否正确。
作为一个可选实施例,该处理单元212可以发送校验消息,该校验消息的目的地址为该PCIe树中最外层叶节点设备的设备地址,即该处理单元212通过与其连接的交换单元中的上行端口向该PCIe树的最外层叶节点发送校验消息,其中,该最外层叶节点可以为该PCIe树中与该处理单元212距离最远的节点,该最外层叶节点到达该处理单元需要经过的节点数目最多。从图4所示的PCIe树示例可以看出,如果该处理单元212建立了正确的PCIe树,则该PCIe树的最外层叶节点设备可以为该处理单元本身。因此,如果该处理单元212能够接收到自身发送的该校验消息,则表明该PCIe树建立成功;否则,该处理单元212未接收到该校验消息,则表明该PCIe树错误,该处理单元212需要重新建立PCIe树或对已建立的该PCIe树进行修正,本发明实施例对此不做限定。
可选地,该处理单元212在发送该校验消息时,还可以设置定时器,并确定在该定时器超时前是否收到该校验消息。如果在在定时器超时前接收到该校验消息,则表明该PCIe树建立正确,但本发明实施例不限于此。
作为一个可选实施例,如果该处理单元212未接收到或未在定时器超时前接收到该校验消息,则该处理单元212可以查找在建立该PCIe树的过程中重复扫描到的设备,例如,该处理单元212可以通过查找记录的重复扫描的信息,确定该重复扫描到的设备。该处理单元212可以为该重复扫描到的设备分配不同于该设备的当前设备地址的新设备地址,并且可以以该重复扫描到的设备为起点继续扫描,以建立新的PCIe树。当该处理单元建立了新的PCIe树之后,还可以采用上述流程对新的PCIe树进行验证,循环往复,直到该处理单元确定其建立的PCIe树正确,但本发明实施例不限于此。
上文中结合图2至图4,详细描述了本发明实施例提供的存储系统,下面将结合图5至图6,描述本发明实施例提供的存储系统中的设备扫描方法。
图5示出了本发明实施例提供的设备扫描方法300。该方法300可以应用于上述实施例中的存储系统200。可选地,该方法300可以由存储设备中的处理单元执行。为了便于理解,下面将该方法300的执行主体称为当前处理单元,其中,该当前处理单元可以位于存储系统的任一存储设备中,本发明实施例对此不做限定。
S310,当前处理单元扫描该当前处理单元能够访问的设备。
可选地,该当前处理单元能够访问的设备可以包括与该当前处理单元直接或间接连接的设备,具体可以包括与该当前处理单元直接或间接连接的交换单元以及与该交换单元连接的设备,例如存储单元和/或处理单元。
可选地,该当前处理单元可以根据DFS进行扫描。
可选地,当该当前处理单元扫描到与该当前处理单元直接或间接连接的设备时,若确定首次扫描到该设备,则可以沿着下行方向继续扫描与该扫描到的设备连接的设备。
可选地,若确定该当前处理单元重复扫描到该设备,即该扫描到的设备曾经被该当前处理单元扫描过,则可以返回至与该重复扫描到的设备的上行端连接的设备继续进行扫描,即可以返回至该重复扫描到的设备的上行分支进行扫描。具体地,若确定重复扫描到交换单元,则可以返回至与该重复扫描到的交换单元的上行端口连接的设备进行扫描;或若确定重复扫描到与存储单元或处理单元,则可以返回至与该重复扫描到的存储单元或处理单元连接的交换单元进行扫描。
可选地,如果该当前处理单元确定当前扫描到的设备曾经被该当前处理单元扫描过,则可以确定该当前扫描到的设备为与该当前处理单元直接相连的交换单元。
可选地,如果该当前处理单元确定当前扫描到的设备曾经被该当前处理单元扫描过,则可以返回至与该当前扫描到的设备的上行端口连接的上级交换单元,并扫描与该上级交换单元连接的未被扫描到的设备。
可选地,如果确定该上级交换单元所连接的设备被扫描完,则该当前处理单元可以返回与该上级交换单元的上行端口连接的上级交换单元进行扫描,以发现未被扫描到的设备,直到该存储系统中所有交换单元所连接的设备全部被扫描完。
可选地,若确定该当前处理单元重复扫描到设备,则该当前处理单元还可以记录该重复扫描的信息,例如,该重复扫描到的设备的信息,例如该重复扫描到的设备的设备地址或设备号以及该重复扫描到的设备与其它设备之间的连接关系,但本发明实施例不限于此。
可选地,该当前处理单元可以具体确定所扫描到的设备是否被分配了设备地址;若确定该扫描到的设备被分配了设备地址,判断该扫描到的设备被分配的设备地址是否存在于该当前处理单元对应的设备地址集合中,其中,该当前处理单元对应的设备地址集合包括该当前处理单元已扫描到的至少一个设备中每个设备被分配的设备地址;若该扫描到的设备被分配的设备地址存在于该当前处理单元对应的设备地址集合中,确定该扫描到的设备曾经被该当前处理单元扫描过。
可选地,若确定该扫描到的设备没有被分配设备地址,则该当前处理单元可以为该扫描到的设备分配设备地址,并将该分配的设备地址添加到该当前处理单元对应的设备地址集合中。此时,可选地,该当前处理单元可以沿着下行方向,扫描与该扫描到的设备连接的设备。
可选地,若确定该扫描到的设备被分配的设备地址不存在于该当前处理单元对应的设备地址集合中,则该当前处理单元可以将该扫描到的设备被分配的设备地址添加到该当前处理单元对应的设备地址集合中。此时,可选地,该当前处理单元可以沿着下行方向,扫描与该扫描到的设备连接的设备。
S320,在扫描过程中记录该当前处理单元扫描到的设备之间的连接关系,并且根据所记录的连接关系,生成该当前处理单元的PCIe树。
作为另一个可选实施例,在S320之后,该方法300还可以包括:
发送校验消息,该校验消息的目的地址为该PCIe树中最外层叶节点设备的设备地址,其中,该PCIe树的根节点为该当前处理单元,该PCIe树的最外层叶节点为在PCIe树中与该当前处理单元距离最远的节点;
若该当前处理单元接收到该校验消息,确定该PCIe树建立成功。
作为另一个可选实施例,该方法300还可以包括:
若该当前处理单元未接收到该校验消息,重新建立该当前处理单元的PCIe树。
可选地,在重新建立该当前处理单元的PCIe树时,该当前处理单元可以确定在用于生成该PCIe树的扫描过程中重复扫描到的设备;为该重复扫描到的设备分配不同于该重复扫描到的设备当前的设备地址的新设备地址,并在该当前处理单元对应的设备地址集合中将该当前的设备地址替换为该新设备地址;以该重复扫描到的设备为起点,扫描与该重复扫描到的设备连接的设备,在扫描过程中记录扫描到的设备之间的连接关系,并且根据所记录的扫描到的设备之间的连接关系,生成该当前处理单元的新的PCIe树。
因此,根据本发明实施例的设备扫描方法,该当前处理单元在确定扫描到的设备曾经被该当前处理单元扫描过时,则停止扫描该设备,并且返回至该扫描到的设备的上行设备进行扫描,其中,该扫描到的设备的上行设备可以具体为沿着上行方向与该扫描到的设备连接的设备,能够避免该当前处理单元在设备扫描过程中对同一设备进行多次扫描而陷入扫描死循环,以及避免由于重复扫描而建立错误的PCIe树,从而提高设备扫描的效率和准确度。
下面将结合具体例子对本发明实施例提供的设备扫描方法做更详细的说明。应注意,这些例子只是为了帮助本领域技术人员更好地理解本发明实施例,而非限制本发明实施例的范围。
图6是本发明另一实施例提供的设备扫描方法400的示意性流程图。
在S410中,处理单元扫描该处理单元连接的总线,并为扫描到的总线分配总线号。
具体地,可以将与该处理单元直接连接的总线定义为总线0,并且为扫描到的总线依次编号,但本发明实施例不限于此。
在S420中,处理单元确定当前总线的下行方向是否连接有未扫描到的桥设备。其中,该未扫描到的桥设备可以为该当前总线的下行方向连接的唯一桥设备,也可以为除了已经扫描到的该当前总线的下行方向连接的桥设备之外的其它桥设备。
可选地,如果当前总线的下行方向不存在未扫描到的桥设备,则该处理单元可以执行S480和S485。反之,则该处理单元可以执行S430和S440。
在S430中,该处理单元可以读取当前扫描到的桥设备的地址,并且在S440中确定读取到的该地址是否为默认地址。如果读取到的该地址为默认地址,则该处理单元可以执行S450和S410,即将读取到的该地址写入分配地址存储空间,并且继续扫描该当前总线的下行方向是否连接有未扫描到的桥设备。可选地,如果读取到的该地址不为默认地址,则该处理单元可以执行S460。
在S460中,该处理单元可以确定读取到的该地址是否是该处理单元分配的。具体地,该处理单元可以通过将该读取到的地址与分配地址存储空间中存储的设备地址进行比较,以确定该分配地址存储空间中是否存在该读取到的地址。如果存在,则表明读取到的该地址是由该处理单元分配的,反之,则表明读取到的该地址不是由该处理单元分配的。可选地,该处理单元还可以通过其它方式确定读取到的该地址是否是由该处理单元分配的,本发明实施例对此不做限定。
可选地,如果该处理单元确定读取到的该地址是由本处理单元分配的,则该处理单元可以执行S470和S490,即中断对当前桥设备的进一步扫描,并且返回至该当前桥设备的上行总线进行扫描。如果该上行总线为总线0,则该处理单元可以结束本次设备扫描过程。如果该上行总线不为总线0,则该处理单元可以执行S410。
可选地,如果该处理单元确定读取到的该地址不是由本处理单元分配的,则该处理单元可以执行S410,即继续扫描该桥设备的下行总线,但本发明实施例不限于此。
应注意,图6的例子是为了帮助本领域技术人员更好地理解本发明实施例,而非要限制本发明实施例的范围。本领域技术人员根据所给出的图6的例子,显然可以进行各种等价的修改或变化,这样的修改或变化也落入本发明实施例的范围内。
应理解,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
还应理解,上文对实施例的描述着重于强调各个实施例之间的不同之处,其相同或相似之处可以互相参考,为了简洁,这里不再赘述。
还应理解,本文中术语“系统”和“网络”在本文中常被可互换使用。本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系;术语“多个”一般表示至少两个,即两个或三个以上。
本领域普通技术人员可以意识到,结合本文中所公开的实施例中描述的各方法步骤和单元,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各实施例的步骤及组成。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域普通技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种存储系统,其特征在于,所述系统包括:
N个存储设备,每个存储设备包括至少一个处理单元、交换单元和至少一个存储单元,所述交换单元包括至少两个上行端口和至少两个下行端口,其中,
所述至少两个上行端口包括至少一个第一上行端口和第二上行端口,所述至少一个处理单元连接至所述至少一个第一上行端口;
所述至少两个下行端口包括至少一个第一下行端口和第二下行端口,所述至少一个存储单元连接至所述至少一个第一下行端口;
所述N个存储设备呈环形连接,其中,
在所述N个存储设备中,第i个存储设备的第二下行端口与第i+1个存储设备的第二上行端口连接,第N个存储设备中的第二下行端口与第1个存储设备的第二上行端口连接,i=1,…,N-1,N≥2;
所述呈环形连接的N个存储设备中每个存储设备的至少一个处理单元中的每个处理单元用于:
扫描所述每个处理单元能够访问的设备;
在扫描过程中记录所述每个处理单元扫描到的设备之间的连接关系,并且根据所记录的所述连接关系,生成所述每个处理单元的PCIe树,在扫描过程中,如果扫描到重复的设备,则返回至该设备的上行设备继续进行扫描。
2.根据权利要求1所述的存储系统,其特征在于,所述至少两个下行端口中的任一下行端口与所述至少两个上行端口中的任一上行端口之间存在连接链路。
3.根据权利要求1或2所述的存储系统,其特征在于,所述至少两个上行端口中的每个上行端口具体为外围部件互连高速PCIe上行端口,所述至少两个下行端口中的每个下行端口具体为PCIe下行端口。
4.根据权利要求3所述的存储系统,其特征在于,在扫描能够访问的设备时,当前进行设备扫描的当前处理单元具体用于:
根据深度优先搜索算法DFS,扫描与所述当前处理单元直接或者间接连接的设备;
若确定扫描到的设备曾经被所述当前处理单元扫描过,则确定所述扫描到的设备为与所述当前处理单元直接相连的交换单元,返回至与所述当前处理单元直接相连的交换单元的上行端口连接的上级交换单元,并扫描与所述上级交换单元连接的未被扫描到的设备,当所述上级交换单元所连接的设备被扫描完后,则返回所述上级交换单元的上行端口连接的上级交换单元扫描未被扫描的设备,直到所述存储系统中所有交换单元所连接的设备全部被扫描完。
5.根据权利要求4所述的存储系统,其特征在于,每个处理单元对应设备地址集合,所述设备地址集合用于记录每个处理单元所扫描到的设备的设备地址;
在确定扫描到的交换单元曾经被所述当前处理单元扫描过时,所述当前处理单元具体用于:
确定所扫描到的设备是否被分配了设备地址;
若确定所述扫描到的设备被分配了设备地址,判断所述扫描到的设备被分配的设备地址是否存在于所述当前处理单元对应的设备地址集合中;
若所述扫描到的设备被分配的设备地址存在于所述当前处理单元对应的设备地址集合中,确定扫描到的设备曾经被所述当前处理单元扫描过。
6.根据权利要求5所述的存储系统,其特征在于,所述当前处理单元还用于:
若确定所述扫描到的设备没有被分配设备地址,为所述扫描到的设备分配设备地址,并将所述分配的设备地址添加到所述每个处理单元对应的设备地址集合中;和/或
若确定所述扫描到的设备被分配的设备地址不存在于所述当前处理单元对应的设备地址集合中,将所述扫描到的设备被分配的设备地址添加到所述当前处理单元对应的设备地址集合中。
7.一种设备扫描方法,其特征在于,应用于如权利要求1至3中任一项所述的存储系统,所述方法包括:
所述N个存储设备中当前进行设备扫描的当前处理单元扫描所述当前处理单元能够访问的设备;
在扫描过程中记录所述当前处理单元扫描到的设备之间的连接关系,并且根据所记录的所述连接关系,生成所述当前处理单元的PCIe树。
8.根据权利要求7所述的设备扫描方法,其特征在于,所述扫描所述当前处理单元能够访问的设备,包括:
根据深度优先搜索算法DFS,扫描与所述当前处理单元直接或间接连接的设备;
若确定扫描到的设备曾经被所述当前处理单元扫描过,确定所述扫描到的设备为与所述当前处理单元直接相连的交换单元,返回至与所述当前处理单元直接相连的交换单元的上行端口连接的上级交换单元,并扫描与所述上级交换单元连接的未被扫描到的设备,当所述上级交换单元所连接的设备被扫描完后,则返回所述上级交换单元的上行端口连接的上级交换单元扫描未被扫描的设备,直到所述存储系统中所有交换单元所连接的设备全部被扫描完。
9.根据权利要求8所述的设备扫描方法,其特征在于,所述确定扫描到的设备曾经被所述当前处理单元扫描过,包括:
确定所扫描到的设备是否被分配了设备地址;
若确定所述扫描到的设备被分配了设备地址,判断所述扫描到的设备被分配的设备地址是否存在于所述当前处理单元对应的设备地址集合中,其中,所述当前处理单元对应的设备地址集合包括所述当前处理单元已扫描到的至少一个设备中每个设备被分配的设备地址;
若所述扫描到的设备被分配的设备地址存在于所述当前处理单元对应的设备地址集合中,确定扫描到的设备曾经被所述当前处理单元扫描过。
10.根据权利要求9所述的设备扫描方法,其特征在于,所述扫描所述当前处理单元能够访问的设备,还包括:
若确定所述扫描到的设备没有被分配设备地址,为所述扫描到的设备分配设备地址,并将所述分配的设备地址添加到所述当前处理单元对应的设备地址集合中;和/或
若确定所述扫描到的设备被分配的设备地址不存在于所述当前处理单元对应的设备地址集合中,将所述扫描到的设备被分配的设备地址添加到所述当前处理单元对应的设备地址集合中。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2016/083701 WO2017201742A1 (zh) | 2016-05-27 | 2016-05-27 | 存储系统及设备扫描方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107851058A CN107851058A (zh) | 2018-03-27 |
CN107851058B true CN107851058B (zh) | 2021-02-12 |
Family
ID=60412041
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680003259.9A Active CN107851058B (zh) | 2016-05-27 | 2016-05-27 | 存储系统及设备扫描方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10437473B2 (zh) |
EP (1) | EP3291096B1 (zh) |
CN (1) | CN107851058B (zh) |
WO (1) | WO2017201742A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108052421B (zh) * | 2017-12-13 | 2021-08-10 | 郑州云海信息技术有限公司 | 一种基于存储多重冗余架构的整机系统 |
CN117614753A (zh) * | 2023-11-23 | 2024-02-27 | 中科驭数(北京)科技有限公司 | 网卡、数据传输方法及系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101206632A (zh) * | 2006-12-19 | 2008-06-25 | 国际商业机器公司 | 用套接字连接和共享存储器在主机系统间通信的系统和方法 |
CN103246545A (zh) * | 2013-05-07 | 2013-08-14 | 中国人民解放军国防科学技术大学 | 面向多虚拟域可定制的PICe外设设备树生成方法 |
Family Cites Families (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1997007464A1 (de) * | 1995-08-11 | 1997-02-27 | Siemens Nixdorf Informationssysteme Ag | Anordnung zum anschluss peripherer speichergeräte |
US7835973B2 (en) * | 1999-10-20 | 2010-11-16 | Accenture Global Services Limited | Spot market clearing |
US7287678B2 (en) * | 2001-11-16 | 2007-10-30 | Vamco International Inc. | Method and apparatus for determining and setting material release mechanism timing for a material feed mechanism |
WO2005114255A2 (en) * | 2004-05-14 | 2005-12-01 | Siemens Medical Solutions Usa, Inc. | Device for on-line data acquisition in three-demensional positron emission tomography |
US20060041715A1 (en) * | 2004-05-28 | 2006-02-23 | Chrysos George Z | Multiprocessor chip having bidirectional ring interconnect |
US20080082969A1 (en) * | 2006-04-04 | 2008-04-03 | The Board Of Trustees Of The University Of Illinois | Software Testing Technique Supporting Dynamic Data Structures |
CN100581172C (zh) * | 2006-04-19 | 2010-01-13 | 杭州华三通信技术有限公司 | 一种对目的磁盘进行访问的方法和扩展磁盘容量的系统 |
US20080209436A1 (en) * | 2006-10-25 | 2008-08-28 | Gul Agha | Automated testing of programs using race-detection and flipping |
US20090077297A1 (en) * | 2007-09-14 | 2009-03-19 | Hongxiao Zhao | Method and system for dynamically reconfiguring PCIe-cardbus controllers |
JP5440507B2 (ja) * | 2008-10-15 | 2014-03-12 | 日本電気株式会社 | マルチルートpciエクスプレススイッチ、その起動方法、及び、マルチルートpciマネージャプログラム |
US7992044B2 (en) * | 2008-12-05 | 2011-08-02 | Oracle America, Inc. | Method and system for platform independent fault management |
CN101587453B (zh) * | 2009-06-18 | 2012-01-04 | 成都市华为赛门铁克科技有限公司 | 数据备份处理方法、数据存储节点设备及数据存储装置 |
GB2473675B (en) * | 2009-09-22 | 2011-12-28 | Virtensys Ltd | Switching method |
CN101917492B (zh) * | 2010-08-06 | 2013-06-05 | 北京乾唐视联网络科技有限公司 | 一种新型网的通信方法及系统 |
TWI439837B (zh) * | 2011-08-26 | 2014-06-01 | Richtek Technology Corp | 穩壓電路控制器 |
US9305312B2 (en) * | 2011-10-25 | 2016-04-05 | Theodosios Kountotsis | Express easy-pass checkout at grocery stores and retail establishments for preferred members |
CN102508797B (zh) * | 2011-10-27 | 2015-02-11 | 忆正存储技术(武汉)有限公司 | 闪存控制扩展模块、控制器、存储系统及其数据传输方法 |
US8943258B2 (en) * | 2011-11-04 | 2015-01-27 | Lsi Corporation | Server direct attached storage shared through virtual SAS expanders |
US20130179621A1 (en) * | 2012-01-06 | 2013-07-11 | Glenn Willis Smith | Extensible daisy-chain topology for compute devices |
US20130179722A1 (en) * | 2012-01-06 | 2013-07-11 | Glen Smith | Ring topology for compute devices |
US9575806B2 (en) * | 2012-06-29 | 2017-02-21 | Intel Corporation | Monitoring accesses of a thread to multiple memory controllers and selecting a thread processor for the thread based on the monitoring |
CN103634277B (zh) * | 2012-08-23 | 2019-02-05 | 深圳市腾讯计算机系统有限公司 | 一种共享内存的方法、服务器及系统 |
KR102007368B1 (ko) * | 2012-12-17 | 2019-08-05 | 한국전자통신연구원 | Pci 익스프레스 스위치 및 이를 이용한 컴퓨터 시스템 |
US9519606B2 (en) * | 2013-07-22 | 2016-12-13 | GigaIO Networks, Inc. | Network switch |
WO2015045030A1 (ja) * | 2013-09-25 | 2015-04-02 | 株式会社日立製作所 | ドライブの増設可能な情報システムおよび該情報システムのバス番号割り当て方法 |
CN103543961B (zh) * | 2013-10-12 | 2017-04-19 | 浙江宇视科技有限公司 | 一种基于PCIe的存储扩展系统及存储扩展方法 |
US9026687B1 (en) * | 2013-12-26 | 2015-05-05 | Lsi Corporation | Host based enumeration and configuration for computer expansion bus controllers |
US20150261709A1 (en) * | 2014-03-14 | 2015-09-17 | Emilio Billi | Peripheral component interconnect express (pcie) distributed non- transparent bridging designed for scalability,networking and io sharing enabling the creation of complex architectures. |
US10114784B2 (en) * | 2014-04-25 | 2018-10-30 | Liqid Inc. | Statistical power handling in a scalable storage system |
US9419918B2 (en) * | 2014-11-07 | 2016-08-16 | Futurewei Technologies, Inc. | Non-transparent bridge method and apparatus for configuring high-dimensional PCI-express networks |
US10191882B2 (en) * | 2015-06-29 | 2019-01-29 | Futurewei Technologies, Inc. | Method and system for aggregation-friendly address assignment to PCIe devices |
US10061707B2 (en) * | 2015-12-26 | 2018-08-28 | Intel Corporation | Speculative enumeration of bus-device-function address space |
US10482049B2 (en) * | 2017-02-03 | 2019-11-19 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Configuring NVMe devices for redundancy and scaling |
-
2016
- 2016-05-27 CN CN201680003259.9A patent/CN107851058B/zh active Active
- 2016-05-27 EP EP16890129.6A patent/EP3291096B1/en active Active
- 2016-05-27 WO PCT/CN2016/083701 patent/WO2017201742A1/zh active Application Filing
-
2017
- 2017-10-30 US US15/797,687 patent/US10437473B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101206632A (zh) * | 2006-12-19 | 2008-06-25 | 国际商业机器公司 | 用套接字连接和共享存储器在主机系统间通信的系统和方法 |
CN103246545A (zh) * | 2013-05-07 | 2013-08-14 | 中国人民解放军国防科学技术大学 | 面向多虚拟域可定制的PICe外设设备树生成方法 |
Also Published As
Publication number | Publication date |
---|---|
EP3291096A1 (en) | 2018-03-07 |
CN107851058A (zh) | 2018-03-27 |
US10437473B2 (en) | 2019-10-08 |
EP3291096B1 (en) | 2020-01-15 |
EP3291096A4 (en) | 2018-05-30 |
US20180046380A1 (en) | 2018-02-15 |
WO2017201742A1 (zh) | 2017-11-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10846186B2 (en) | Central processing unit CPU hot-remove method and apparatus, and central processing unit CPU hot-add method and apparatus | |
WO2019037203A1 (zh) | 应用程序的性能测试方法、装置、计算机设备和存储介质 | |
CN107181636B (zh) | 一种负载均衡系统中的健康检查方法及装置 | |
US11070529B2 (en) | Method for wireless fidelity connection and related products | |
CN103747013A (zh) | 一种云端登录验证方法及装置 | |
CN110557304B (zh) | 一种地址探测方法、设备及计算机可读存储介质 | |
US20210373929A1 (en) | Offline configuration method and apparatus for intelligent device | |
CN106713504A (zh) | 任务处理方法和系统 | |
CN109819023B (zh) | 分布式事务处理方法及相关产品 | |
CN110971702A (zh) | 服务调用方法、装置、计算机设备及存储介质 | |
KR101754618B1 (ko) | 소프트웨어 정의 네트워크 기반의 가상 네트워크 동적 생성 방법 및 그 장치 | |
CN107851058B (zh) | 存储系统及设备扫描方法 | |
CN108228350B (zh) | 一种资源分配方法及装置 | |
CN111143031A (zh) | 一种虚拟机的容量更改方法及装置 | |
EP3285173A1 (en) | Cpu interconnecting apparatus, system and control method, control apparatus therefor | |
CN108846085B (zh) | 一种id生成方法、装置、电子设备及系统 | |
CN113448844A (zh) | 用于回归测试的方法及装置、电子设备 | |
CN107015906B (zh) | 测试方法及装置、端口生成方法及端口生成器和测试系统 | |
CN106534113B (zh) | Ssh连接的建立方法及装置 | |
CN114356378A (zh) | 计算节点在线升级方法、装置、电子设备及存储介质 | |
CN115357513A (zh) | 程序模糊测试方法、装置、设备及存储介质 | |
CN109005191A (zh) | 一种验证方法和系统、仲裁节点、存储介质 | |
CN111030863B (zh) | 一种节点拓扑信息确定方法、装置、设备及存储介质 | |
CN113169900B (zh) | 分布式系统中追踪业务执行过程的方法和装置 | |
CN113691403A (zh) | 拓扑节点配置方法、相关装置及计算机程序产品 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |