CN1971497B - 主机端为sas接口的冗余储存虚拟化子系统及其系统 - Google Patents
主机端为sas接口的冗余储存虚拟化子系统及其系统 Download PDFInfo
- Publication number
- CN1971497B CN1971497B CN200610078552XA CN200610078552A CN1971497B CN 1971497 B CN1971497 B CN 1971497B CN 200610078552X A CN200610078552X A CN 200610078552XA CN 200610078552 A CN200610078552 A CN 200610078552A CN 1971497 B CN1971497 B CN 1971497B
- Authority
- CN
- China
- Prior art keywords
- storage virtualization
- sas storage
- controller
- sas
- virtualization controller
- 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2053—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
- G06F11/2089—Redundant storage control functionality
- G06F11/2092—Techniques of failing over between control units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2002—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant
- G06F11/2007—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant using redundant communication media
- G06F11/201—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant using redundant communication media between storage system components
-
- 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/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/40—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Debugging And Monitoring (AREA)
- Hardware Redundancy (AREA)
- Information Transfer Systems (AREA)
Abstract
本发明涉及一种主机端为序列连接小型计算机系统接口的冗余储存虚拟化子系统及其系统,储存虚拟化控制器对与主机之间的输出入连结接口,采用序列连接小型计算机系统接口,并在此主机端输出入连结路径上插入至少一序列连接小型计算机系统接口扩充器,用以提供装置扩充的功能,或是在储存虚拟化控制器中内建虚拟序列连接小型计算机系统接口扩充器,以提供每一序列连接小型计算机系统接口连接端口多组虚拟身分,当储存虚拟化控制器对中的一控制器故障或失效时,本发明依照不同实施例提出因应对策,让存活的控制器可以承接失效控制器的身份(地址),使得主机察觉不到装置的状态有任何变化而继续正常地运作。
Description
技术领域
本发明关于一种冗余储存虚拟化子系统及其系统,尤其是一种主机端为序列连接小型计算机系统接口(Serial-Attached Small Computer SystemsInterface,Serial-Attached SCSI,SAS)的冗余储存虚拟化子系统及其系统。
背景技术
储存虚拟化(storage virtualization)是指一种将实体储存装置(Physical Storage Device,PSD)的不同区段虚拟化成一供主机系统(host)存取使用的逻辑储存体(logical storage entity)的技术,该逻辑储存体称为“逻辑媒体单元”(Logical Media Unit,LMU)。此技术主要应用于磁盘阵列(Redundant Array of Independent Disks,RAID)的储存虚拟化,通过此磁盘阵列的技术,可将较小实体储存装置结合成容量较大、可容错、高效能的逻辑媒体单元。
储存虚拟化控制器(Storage Virtualization Controller,SVC)的主要功用即是为达成上述效能,其将实体储存装置的各区段组合映像(map)成一主机系统可见的逻辑媒体单元。而由主机系统发出的输出入请求(I/O request)于储存虚拟化控制器接收后,会先被剖析并解释,然后,相关的操作及数据会被转译为实体储存装置的输出入请求。这个过程可以是间接的,例如运用快取(cache)、延迟(如:回写(write-back))、预期(anticipate)(先读(read-ahead))、群集(group)等操作来加强效能及其它的操作特性,因而一主机输出入请求并不一定是以一对一的方式直接对应于实体储存装置的输出入请求。
外部(或称为独立式(stand-alone))储存虚拟化控制器为一通过输出入接口连接于主机系统的储存虚拟化控制器,其也可连接至主机系统外部的装置。一般而言,外部储存虚拟化控制器独立于主机系统进行运作。
外部(或独立式)直接存取磁盘阵列控制器(external direct-access RAIDcontroller)是外部储存虚拟化控制器的一个例子。磁盘阵列控制器将一或多个实体储存装置的区段组合以构成逻辑媒体单元,而它们的构成方式由所采用的特定磁盘阵列型态(RAID level)决定,其所构成的逻辑媒体单元对于主机系统而言,为可连续寻址的,以使每一逻辑媒逻辑媒体单元可被利用。典型地,一个单一的磁盘阵列控制器(single RAID controller)可支持多种磁盘阵列型态,因此,不同的逻辑媒体单元可以由实体储存装置的各个区段通过不同的磁盘阵列型态而以不同的方式组合而成,所组合成的各个不同的逻辑媒体单元则具有各该磁盘阵列型态的特性。
另一个外部储存虚拟化控制器的例子是JBOD(Just a Bunch of Drives)仿真控制器。JBOD为“仅是一组驱动器”的缩写,是一组实体直接存取储存装置,并通过一或多个多装置输出入装置连结信道(multiple-device IOdevice interconnect channel)直接连接于一主机系统上。至于智能型的JBOD仿真器,是通过将输出入请求映像到实体直接存取储存装置的方式,而用来仿真多个多装置输出入装置连结直接存取储存装置,而其中该实体直接存取储存装置是个别地通过输出入装置连结信道连接至JBOD仿真器。
为确保数据的安全性与可用性(availability),磁盘阵列系统常利用“冗余”(redundancy)的概念来达成这样的功效。在装置端,通过多储存一至数组冗余数据来提供使用者数据的容错能力;在主机端,则是将一对储存虚拟化控制器(SVC)配置成一冗余对,称为“储存虚拟化控制器对”,以因应单一SVC故障或失效时的情形。储存虚拟化控制器对的设计是为了让主机在单一SVC故障或失效时,依旧能连续不中断地执行数据存取工作;这可利用在此等储存虚拟化控制器对中加入一功能,使得其中一SVC发生故障或失效的情形下,存活的SVC可接管其工作而实现。
在磁盘阵列系统的装置端,储存虚拟化控制器对中的两个SVC,必须能对所有实体储存装置进行存取,无论此实体储存装置原本是否被指定由其管理。在主机端,则必须使储存虚拟化控制器对中每一SVC,即便是在它的同伴(mate)SVC处于原本就没上线或上线后又因故下线(例如:故障、失效、或维护操作等所造成的下线)的情形下,具有将所有可供存取的资源呈现于主机且使该资源可被主机所利用的能力;这些可存取的资源也包括原来就指定由另一个SVC所管理的资源。
在上述装置端,一代表性的实施方式是采用多启动者(multiple-initiator)、多装置(multiple-device)类型的装置端输出/输入装置连结(如:光纤、并列小型计算机系统接口(并列SCSI,parallel smallcomputer system interface)),而所有的装置端输出入装置连结都连接至此两个储存虚拟化控制器,所以此两个储存虚拟化控制器中任一个都可存取连接于装置端输出入装置连结上的任何一个实体储存装置。当此两个储存虚拟化控制器都在线上操作时,每个实体储存装置将由其中一储存虚拟化控制器或另一储存虚拟化控制器管理,至于由谁管理通常是由使用者的设定或系统组态来决定,例如:对一由实体储存装置组合所构成的逻辑媒体单元,此逻辑媒体单元中的所有实体储存装置,将由此逻辑媒体单元所指定的特定储存虚拟化控制器所管理。
冗余储存虚拟化系统中的另外一个基本要件就是每个储存虚拟化控制器需能监视另一个的状态。此可利用一介于此两个储存虚拟化控制器间的控制器间通讯信道(ICC,inter-controller communications channel)来完成,是利用此信道来交换该两个储存虚拟化控制器的操作状态。此通讯信道可以是专用的,其唯一的作用就是交换与此冗余储存虚拟化子系统的操作相关的参数与数据。或者此通讯信道是一或多个主机端或装置端的输出入装置连结,通过此种连结,这些操作上的参数、数据交换可连同在这些连结上的主机-储存虚拟化控制器或装置-储存虚拟化控制器输出入请求所关联的数据一起被多任务传输。
而储存虚拟化控制器对与主机间的输出入接口,一般来说以光纤信道(Fiber Channel,FC)与并列小型计算机系统接口(Parallel Small ComputerSystem Interface,并列SCSI)为较常见的标准。光纤信道及并列SCSI都为“多装置输出入装置连结”(multiple-device I/O device interconnect),而多装置输出入装置连结的频宽需由与其连接的所有主机及所有装置共享。光纤信道的通讯品质好、速度快、扩充性高,但其架构的造价惊人;并列SCSI虽然是在成本/效能考虑下的不错选择,但是,其并列(parallel)传输的架构和共享总线的特性,使得其未来在速度提升和扩充潜力上均受到限制。除了较常见的序列先进技术接取接口(Serial Advanced Technology Attachment,Serial AT Attachment,Serial ATA,SATA)之外,光纤信道与并列SCSI接口也是主要的装置端输出入装置连结,用来连接控制器冗余对与实体储存装置。
为突破SCSI接口在速度效能提升上的瓶颈,以因应现在及未来更高速的计算机传输要求,因此序列连接小型计算机系统接口(Serial-Attached SmallComputer System Interface,Serial-Attached SCSI,SAS)应运而生。SAS运用并列SCSI经过验证的优点(稳固的可靠性、丰富和成熟的指令集),同时使用新的串行(serial)架构,取得惊人的传输量(3.0 Gbits/sec或6.0Gbits/sec或以上)和显著的扩充性(利用扩充器,最多可扩充到16384项装置)。目前市面上已有将SAS技术实现在装置端,作为储存虚拟化控制器与实体储存装置的连结接口的成熟产品。
相对地,因为SAS的“点对点”(peer-to-peer)连结的特性,无法如光纤信道或平行SCSI般提供数组的装置识别码(multiple device ID)供主机系统判别;因此当其应用在主机端、作为储存虚拟化控制器对与主机间的连结接口时,则有如何承接失效控制器的身份的问题需要克服。无论如何,由于SAS的高效能与高扩充性的优点,可以预计未来在主机端使用SAS接口将成趋势。
“冗余”(redundancy)的概念也有实行在“启动端(initiator)”的做法。所谓“启动端(initiator)”,是指其为发出命令的一端,而接收命令并执行得的储存虚拟化控制器(或是磁盘阵列系统)则视为“目标端(target)”。实务上,启动端(initiator)可为一主机计算机,如一服务器系统、工作站、个人计算机系统或是其它相关计算机等,甚至是另一储存虚拟化控制器也可。启动端(initiator)的“冗余”概念,实务上,是通过多信道输出输入(Multi-PathIO)技术来达成,其可以提供由启动端(initiator)到目标端(target)的多信道连结,而达到容错(fault tolerance)、高可利用性(high availability)、与高效能(better performance)等功效。
发明内容
本发明所要解决的技术问题在于提供一种主机端为SAS接口的冗余储存虚拟化子系统及其系统,且提供控制器备援的解决方案,以解决当其中一储存虚拟化控制器失效时,存活控制器承接失效控制器的身份的问题,以使主机端能持续正常地存取数据。
为了实现上述目的,本发明提供了一种主机端为序列连接小型计算机系统接口的冗余储存虚拟化子系统,与至少一启动端相连接,其特点在于,该子系统包含有:一储存虚拟化控制器对,包括有一第一储存虚拟化控制器与一第二储存虚拟化控制器,用于执行输出入操作以响应该至少一启动端所发出的一输出入请求;至少一扩充器,位于该储存虚拟化控制器对与该启动端的输出入装置连结的路径上,用以提供装置扩充的功能;以及一实体储存装置数组,包含至少一实体储存装置,用来提供该冗余储存虚拟化子系统储存空间;其中,该储存虚拟化控制器对、该至少一扩充器与该启动端间的信号连结接口为一序列连接小型计算机系统接口。
上述子系统,其特点在于,该实体储存装置数组中的至少一实体储存装置,通过一点对点序列信号连结耦接于该储存虚拟化控制器对。
上述子系统,其特点在于,该点对点序列信号连结为一序列先进技术接取接口,且该至少一实体储存装置为一序列先进技术接取接口磁盘驱动器。
上述子系统,其特点在于,还包含有至少一多任务器,其耦接于该序列先进技术接取接口磁盘驱动器与该冗余储存虚拟化控制器对之间,用以处理该序列先进技术接取接口磁盘驱动器与该冗余储存虚拟化控制器对之间的输出入信号连接。
上述子系统,其特点在于,该点对点序列信号连结为一序列连接小型计算机系统接口,且该至少一实体储存装置为一序列连接小型计算机系统接口磁盘驱动器。
上述子系统,其特点在于,该实体储存装置数组中的至少一实体储存装置的连结接口,为光纤信道或小型计算机系统接口。
上述子系统,其特点在于,该储存虚拟化控制器对中的每一该储存虚拟化控制器还包含有:一中央处理电路,用于执行输出入操作以响应该主机所发出的该输出入请求;一冗余控制器通讯连结控制器,耦接于该中央处理电路与该储存虚拟化控制器对中的另一储存虚拟化控制器之间;一主机端输出入装置连结控制器,耦接于该中央处理电路、以及通过该扩充器耦接于该主机,用来作为该储存虚拟化控制器及该主机间的接口及缓冲;一装置端输出入装置连结控制器,耦接于该中央处理电路及该实体储存装置数组之间,用来作为该储存虚拟化控制器及该实体储存装置数组间的接口及缓冲;以及一内存,耦接于该中央处理电路,作为一缓冲器,用来缓冲传送于该主机及该实体储存装置数组之间通过该中央处理电路的数据。
上述子系统,其特点在于,该主机端输出入装置连结控制器还包含有至少一序列连接小型计算机系统接口类型的主机端输出入装置连接端口。
上述子系统,其特点在于,该储存虚拟化控制器对中,每一该储存虚拟化控制器还包含有:一中央处理电路,用于执行输出入操作以响应该主机所发出的该输出入请求;至少一输出入装置连结控制器,耦接于该中央处理电路;至少一主机端输出入装置连结端口,设置于该至少一输出入装置连结控制器的一者中,用来耦接至该主机;以及至少一装置端输出入装置连结端口,设置于该至少一输出入装置连结控制器的一者中,用来通过该点对点序列信号连结耦接至该至少一实体储存装置。
上述子系统,其特点在于,该主机端输出入装置连结端口中的一者与该装置端输出入装置连结端口中的一者设置于同一个该输出入装置连结控制器中。
上述子系统,其特点在于,该主机端输出入装置连结端口中的一个与该装置端输出入装置连结端口中的一个是设置于不同的该输出入装置连结控制器中。
上述子系统,其特点在于,该主机端输出入装置连结端口为一序列连接小型计算机系统接口类型的主机端连接端口。
上述子系统,其特点在于,该储存虚拟化控制器对中的该第一储存虚拟化控制器与该第二储存虚拟化控制器各自有两个该主机端输出入装置连结端口。
上述子系统,其特点在于,每一该主机端输出入装置连结端口由四组实体线路所组成,为一4-实体线路宽端口。
上述子系统,其特点在于,当该储存虚拟化控制器对中的一个故障或失效时,另一存活的该储存虚拟化控制器的每一4-实体线路宽端口还拆分为两个由两组实体线路所组成的2-实体线路宽端口,且拆分后所有该2-实体线路宽端口可以承接没有故障或失效发生时所有该4-实体线路宽端口的身份。
上述子系统,其特点在于,令该第一储存虚拟化控制器的第一个4-实体线路宽端口的地址等于一基础地址、且该第二储存虚拟化控制器的第一个4-实体线路宽端口的地址等于该基础地址加一适当的值。
上述子系统,其特点在于,该适当的值等于1。
上述子系统,其特点在于,还启动一初始化程序,并于该初始化程序中指派所有新的该2-实体线路宽端口的地址等于装置失效前所有该4-实体线路宽端口的地址。
上述子系统,其特点在于,该初始化程序由一核心程序负责启动。
上述子系统,其特点在于,该核心程序储存于该中央处理电路的一只读存储器中。
上述子系统,其特点在于,该基础地址储存于一背板之中,该背板与该储存虚拟化控制器对中的每一个电性连接。
上述子系统,其特点在于,该至少一扩充器的数量为一。
上述子系统,其特点在于,还利用分区技术将该扩充器划分为一第一区域与一第二区域。
上述子系统,其特点在于,该至少一扩充器的数量为二。
上述子系统,其特点在于,该储存虚拟化控制器对中的该第一储存虚拟化控制器设定为主动模式,以处理该主机所发出的该输出入请求,该第二储存虚拟化控制器设定为待命模式,以做为该第一储存虚拟化控制器的备援。
上述子系统,其特点在于,该储存虚拟化控制器对中的每一该储存虚拟化控制器还具有双数倍的该主机端输出入装置连结端口,其中一半的主机端输出入装置连结端口设定为主动模式,另一半的主机端输出入装置连结端口设定为待命模式,以做为备援。
本发明还提供一种主机端为序列连接小型计算机系统接口的冗余储存虚拟化系统,其特点在于,包含有:至少一启动端,用来发出至少一输出入请求;以及至少一冗余储存虚拟化子系统,通过一序列连接小型计算机系统接口耦接于该至少一启动端,该至少一冗余储存虚拟化子系统中的每一个还包含有:一储存虚拟化控制器对,包括有一第一储存虚拟化控制器与一第二储存虚拟化控制器,用于执行输出入操作以响应该至少一启动端所发出的该输出入请求;至少一扩充器,位于该储存虚拟化控制器对与该主机的输出入装置连结的路径上,用以提供装置扩充的功能;以及一实体储存装置数组,包含至少一实体储存装置,用来提供该冗余储存虚拟化子系统储存空间。
上述系统,其特点在于,还具有多个该冗余储存虚拟化子系统,且该多个冗余储存虚拟化子系统以邻接的方式串接起来。
上述系统,其特点在于,还将该多个冗余储存虚拟化子系统中第一个与最后一个的该至少一扩充器其中之一连接起来,且移除该多个冗余储存虚拟化子系统中的第一个与第二个的该至少一扩充器的相对应连接。
上述系统,其特点在于,还具有多个该冗余储存虚拟化子系统,且该多个冗余储存虚拟化子系统中的一冗余储存虚拟化子系统与其它所有的冗余储存虚拟化子系统相连接。
上述系统,其特点在于,所述连接或串接,是指通过该冗余储存虚拟化子系统的该扩充器的连接端相互连接。
上述系统,其特点在于,还具有多个该启动端与该至少一冗余储存虚拟化子系统相连接。
上述系统,其特点在于,该启动端还支持多信道输出输入技术。
本发明还提供一种主机端为序列连接小型计算机系统接口的冗余储存虚拟化子系统,与至少一启动端相连接,其特点在于,该子系统包含有:一储存虚拟化控制器对,包括有一第一储存虚拟化控制器与一第二储存虚拟化控制器,用于执行输出入操作以响应该至少一启动端所发出的一输出入请求,该第一储存虚拟化控制器与该第二储存虚拟化控制器各自内建一虚拟扩充器,用以提供每一实体连接端口数组虚拟身份;一开关元件,位于该储存虚拟化控制器对与该启动端的输出入装置连结的路径上;以及一实体储存装置数组,包含至少一实体储存装置,用来提供该冗余储存虚拟化子系统储存空间;其中,该储存虚拟化控制器对与该启动端间地信号连结接口为一序列连接小型计算机系统接口。
上述子系统,其特点在于,该虚拟扩充器为一功能模块,可以以软件及硬件的方式联合实现。
上述子系统,其特点在于,该虚拟扩充器为一程序模块,该程序模块分别刻录在该第一储存虚拟化控制器与该第二储存虚拟化控制器的一只读存储器之中。
上述子系统,其特征在于,该虚拟扩充器还具有一对应表,用以记录该数组虚拟身份各自的相对应信息。
上述子系统,其特点在于,该相对应信息包括该数组虚拟身份中的每一个的状态(连接或未连接)及/或其对应的实体线路地址。
上述子系统,其特点在于,当该储存虚拟化控制器对中的其一故障或失效时,另一存活的该储存虚拟化控制器还启动一初始化程序。
上述子系统,其特点在于,该初始化程序更改该对应表所记录的该数组虚拟身份的该相对应信息。
上述子系统,其特点在于,该初始化程序由一核心程序负责启动。
上述子系统,其特点在于,该核心程序储存于一只读存储器,该只读存储器位于该第一储存虚拟化控制器或该第二储存虚拟化控制器中。
上述子系统,其特点在于,该开关元件可为一扩充器。
上述子系统,其特点在于,该实体储存装置数组中的至少一实体储存装置,是通过一点对点序列信号连结耦接于该储存虚拟化控制器对。
上述子系统,其特点在于,该点对点序列信号连结为一序列先进技术接取接口,且该至少一实体储存装置为一序列先进技术接取接口磁盘驱动器。
上述子系统,其特点在于,还包含有至少一多任务器,其耦接于该序列先进技术接取接口磁盘驱动器与该冗余储存虚拟化控制器对之间,用以处理该序列先进技术接取接口磁盘驱动器与该冗余储存虚拟化控制器对之间的输出入信号。
上述子系统,其特点在于,该点对点序列信号连结为一序列连接小型计算机系统接口,且该至少一实体储存装置为一序列连接小型计算机系统接口磁盘驱动器。
上述子系统,其特点在于,该实体储存装置数组中的至少一实体储存装置的连结接口,为光纤信道或小型计算机系统接口。
上述子系统,其特点在于,该储存虚拟化控制器对中的每一该储存虚拟化控制器还包含有:一中央处理电路,用于执行输出入操作以响应该主机所发出的该输出入请求;一冗余控制器通讯连结控制器,耦接于该中央处理电路与该储存虚拟化控制器对中的另一储存虚拟化控制器之间;一主机端输出入装置连结控制器,耦接于该中央处理电路、以及通过该扩充器耦接于该主机,用来作为该储存虚拟化控制器及该主机间的接口及缓冲;一装置端输出入装置连结控制器,耦接于该中央处理电路及该实体储存装置数组之间,用来作为该储存虚拟化控制器及该实体储存装置数组间的接口及缓冲;以及一内存,耦接于该中央处理电路,作为一缓冲器,用来缓冲传送于该主机及该实体储存装置数组之间通过该中央处理电路的数据。
上述子系统,其特点在于,该主机端输出入装置连结控制器还包含有至少一序列连接小型计算机系统接口类型的主机端输出入装置连接端口。
上述子系统,其特点在于,该储存虚拟化控制器对中,每一该储存虚拟化控制器还包含有:一中央处理电路,用于执行输出入操作以响应该主机所发出的该输出入请求;至少一输出入装置连结控制器,耦接于该中央处理电路;至少一主机端输出入装置连结端口,设置于该至少一输出入装置连结控制器的一个中,用来耦接至该主机;以及至少一装置端输出入装置连结端口,设置于该至少一输出入装置连结控制器的一个中,用来通过该点对点序列信号连结耦接至该至少一实体储存装置。
上述子系统,其特点在于,该主机端输出入装置连结端口中的一个与该装置端输出入装置连结端口中的一个设置于同一个该输出入装置连结控制器中。
上述子系统,其特点在于,该主机端输出入装置连结端口中的一个与该装置端输出入装置连结端口中的一个设置于不同的该输出入装置连结控制器中。
上述子系统,其特点在于,该主机端输出入装置连结端口为一序列连接小型计算机系统接口类型的主机端连接端口。
上述子系统,其特点在于,该主机端输出入装置连结端口由四组实体线路所组成,为一4-实体线路宽端口。
本发明功效,在于解决了当一储存虚拟化控制器失效时,存活控制器承接失效控制器的身分的问题,以使主机端能持续正常地存取数据。
以下结合附图和具体实施例对本发明进行详细描述,但不作为对本发明的限定。
附图说明
图1为本发明的冗余储存虚拟化子系统的第一实施例方块图;
图2为本发明的冗余储存虚拟化子系统的第二实施例方块图;
图3为本发明的储存虚拟化控制器的功能方块图;
图4为图3中的中央处理电路之一实施例的功能方块图;
图5为本发明的冗余储存虚拟化子系统发生装置失效时的方块图;
图6A与6B为LSI公司出产的控制器芯片在装置正常与失效时的SAS连接端口地址的示意图;
图7为本发明冗余储存虚拟化子系统的第三实施例的方块图;
图8为本发明冗余储存虚拟化子系统的第四实施例的方块图;
图9 A与9B为本发明的储存虚拟化控制器为主动-待命模式时的示意图;
图10为本发明的冗余储存虚拟化子系统的第五实施例方块图;
图11为描绘本发明内建虚拟SAS扩充器的储存虚拟化控制器的功能方块图;
图12为本发明中一个冗余储存虚拟化系统再串接其它冗余储存虚拟化子系统的拓扑结构的第一实施例;
图13为本发明中一个冗余储存虚拟化系统再串接其它冗余储存虚拟化子系统的拓扑结构的第二实施例;
图14为本发明中一个冗余储存虚拟化系统再串接其它冗余储存虚拟化子系统的拓扑结构的第三实施例;
图15为本发明中多个冗余储存虚拟化系统互相连接的拓扑结构的示意图。
其中,附图标记:
100 冗余储存虚拟化子系统
110 储存虚拟化控制器对
111 第一储存虚拟化控制器(SVC1)
112 第二储存虚拟化控制器(SVC2)
120、120-1、120-2 SAS连结
130 SAS扩充器 131第一区域
132 第二区域 135虚拟SAS扩充器
140 总线接头
150 实体储存装置数组(PSD数组)
151 多任务器
210 RCC连结控制器
220 主机端输出入装置连结控制器
230 内存
240 装置端输出入装置连结控制器
250 中央处理电路
251 CPU芯片组/同位引擎
252 中央处理器(CPU)
253 只读存储器(ROM)
254 非挥发性随机存取内存(NVRAM)
255 液晶显示模块(LCD Module)
260 箱体管理服务电路
311、312 启动端
具体实施方式
在冗余储存虚拟化子系统中安排两个储存虚拟化控制器(StorageVirtualization Controller,SVC)搭配成一冗余对,以下称为“储存虚拟化控制器对”,其目的是作为备援之用,以让其中一控制器故障或失效时,还有存活的一个可以让启动端(initiator)(如主机计算机)持续不中断地存取数据。储存虚拟化控制器对中的两个储存虚拟化控制器基本上是互相独立运作,但保持互通信息。在意外状况发生时,为达到备援的目的,冗余储存虚拟化子系统须有相应对策,以使存活控制器承接失效控制器的身份,而不让启动端(initiator)察觉到控制器的状态有任何变化而继续正常运作。
请参照图1,依照本发明的一实施例,冗余储存虚拟化子系统100主要包含有一储存虚拟化控制器对110、至少一序列连接小型计算机系统接口扩充器(SAS expander,以下简称为“SAS扩充器”或“扩充器”)130、以及一实体储存装置数组(PSD Array)150;其中,储存虚拟化控制器对110与SAS扩充器130之间、以及对外与启动端(initiator)311、312的连结接口,都是“序列连接小型计算机系统接口”(Serial-Attached SCSI,SAS)连结120,以下简称为“SAS”、“SAS连结”或“SAS接口”。该储存虚拟化控制器对110中还包含有一第一储存虚拟化控制器(SVC1)111、以及一第二储存虚拟化控制器(SVC2)112;其中该两个储存虚拟化控制器111、112可为一磁盘阵列控制器或是一个JBOD仿真器。
此冗余储存虚拟化子系统100的架构,在装置端,还包含有专用的点对点(peer-to-peer)输出入装置连结,例如:序列先进技术接取接口(serial ATA,SATA)或SAS等,或者是其它形式的输出入装置连结,例如:光纤信道(FiberChannel,FC)、小型计算机系统接口(Small Computer System Interface,SCSI)或平行ATA(PATA,或称IDE)等,用来连接实体储存装置数组150至储存虚拟化控制器对110。以下的实施例,虽然以序列先进技术接取接口磁盘驱动器(以下简称为“SATA磁盘驱动器”)与序列连接小型计算机系统接口磁盘驱动器(以下简称为“SAS磁盘驱动器”)为实体储存装置的两个实施形式,但在其它实施例中,实体储存装置也可选择FC、SCSI或IDE连结接口的磁盘驱动器。
上述实体储存装置若是SAS磁盘驱动器,其本身即配置有两个输出/输入端(I/O port),在图1的实施例中,可以直接个别连接至第一储存虚拟化控制器(SVC1)111、以及第二储存虚拟化控制器(SVC2)112。相对地,实体储存装置若是SATA磁盘驱动器,为了让两个储存虚拟化控制器111、112可以分别地与SATA磁盘驱动器连结,本实施例在储存虚拟化控制器111、112与每一SATA磁盘驱动器间的装置端输出入装置连结路径上插入一多任务器(Mux)151,用以让SATA磁盘驱动器的单一连接部(port)可以被两个(或两个以上)的储存虚拟化控制器111、112存取数据。
在主机端,本发明的冗余储存虚拟化子系统100与启动端(initiator)311、312间是以SAS作为主机端输出入装置连结120。因为受限于SAS的点对点连结的特性,为能使储存虚拟化控制器对110与启动端(initiator)间达到冗余连结而发挥其冗余功效,本发明还在此主机端输出入装置连结120的路径上插入至少一SAS扩充器130,以提供装置扩充的功能,让两个(或两个以上的)储存虚拟化控制器111、112可以分别与至少一启动端(initiator)311、312相连接。一般而言,冗余储存虚拟化子系统100对外是通过至少一总线接头140(如:InfiniBand)做为与外部装置(如:启动端(initiator)311、312)的连接接口。
在图1图示的实施例中,冗余储存虚拟化子系统100配置有1个SAS扩充器130,但利用分区(zoning)技术分为第一区域131、与第二区域132。两个储存虚拟化控制器111、112分别通过SAS连结120与此两个区域131、132连接。也即,第一储存虚拟化控制器111通过SAS连结120分别与第一区域131与第二区域132连接;同理,第二储存虚拟化控制器112也通过SAS连结120分别与第一区域131与第二区域132连接。由此结构,由启动端(initiator)311、312的观点,举例来说,启动端(initiator)311是通过SAS扩充器130中的第一区域131与两个储存虚拟化控制器111、112沟通,如此一来,启动端(initiator)311、第一区域131与两个储存虚拟化控制器111、112构成“第一领域(the first domain)”、其所形成的信号信道为“信道一(channel 1)”;相对地,启动端(initiator)312、第二区域132与两个储存虚拟化控制器111、112构成“第二领域(the second domain)”、其所形成的信号信道为“信道二(channel 2)”。相反地,由控制器的观点,举例来说,第一储存虚拟化控制器111通过不同路径的SAS连结120,也即通过“信道一(channel 1)”与“信道二(channel 2)”,分别与第一区域131与第二区域132连接而和两个启动端(initiator)131、132沟通。
实体储存装置数组150中的每一实体储存装置与两个储存虚拟化控制器111、112之间,会分别建立一个装置端输出入装置连结。多个实体储存装置组成一个逻辑储存单元(LUN)。在一般的状态下,储存虚拟化控制器111、112会依照RAID系统的组态设定(configuration),而决定与其连接的逻辑储存单元(LUN)是否归其管辖范围。举例来说,若实体储存装置数组150具有二十个逻辑储存单元(LUN),每一逻辑储存单元(LUN)可视为一逻辑磁盘驱动器,其中,若第1磁盘驱动器(Disk 0)至第10磁盘驱动器(Disk 9)指派给第一储存虚拟化控制器111、且其信号走“信道一(channel 1)”的路径,第11磁盘驱动器(Disk 10)至第20磁盘驱动器(Disk 19)是指派给第二储存虚拟化控制器112、且其信号走“信道二(channel 2)”的路径。在意外发生时,若该磁盘驱动器原本指派的路径断掉,则存活的储存虚拟化控制器111或112会重新指派路径,让磁盘驱动器的传输信号有替代道路可走。以同样的例子来说,若第一储存虚拟化控制器111在运行的过程中故障或失效,则在一初始化过程后,第1磁盘驱动器(Disk 0)至第10磁盘驱动器(Disk 9)的传输路径会被重新指派给第二储存虚拟化控制器112,也即此时所有的磁盘驱动器都被指派给第二储存虚拟化控制器112,但是还是各自通过“信道一(channel 1)”与“信道二(channel2)”传输信号给启动端(initiator)311、312。
请参考图2,在本发明的另一实施例,也可于冗余储存虚拟化子系统100中设置两个SAS扩充器130,分别连接在两个启动端(initiator)131、132与两个储存虚拟化控制器111、112之间,用以取代图1中SAS扩充器130分区(zoning)为第一区域131与第二区域132的角色。其功能效用实际与图1的描述相同,因此以下不再多做说明。
图1、图2与以下各图中图示的启动端(initiator)311、312,实务上可以是一主机计算机,如一服务器系统、工作站、个人计算机系统或是其它相关计算机等,甚至是另一储存虚拟化控制器也可;除此之外,也有以一主机计算机配置两个主机总线配接器(Host Bus Adapter,HBA)(图中没有图示)来作为两个启动端(initiator)311、312,或是一主机总线配接器的两个连接端,也可能是两个启动端(initiator)311、312。在本发明的一实施例,启动端(initiator)311、312还支持多信道输出输入(Multi-Path IO)技术,以达到备援的功效。
冗余储存虚拟化子系统100与启动端(initiator)311、312的拓扑结构(topology),可以是一个冗余储存虚拟化子系统100连接一或多个启动端(initiator)311、312,或是多个冗余储存虚拟化子系统100连接一个启动端(initiator)311、312,或是多个冗余储存虚拟化子系统100连接多个启动端(initiator)311、312。虽然图中图示的实体储存装置数组150由多个SATA磁盘驱动器与SAS磁盘驱动器所混合组成,但在实际应用时,实体储存装置数组150也可纯粹由SATA磁盘驱动器或SAS磁盘驱动器所组成,或是纯粹由FC磁盘驱动器或SCSI磁盘驱动器所组成。其中,多任务器151只适用于连接SATA磁盘驱动器的情况,若是与其它种类的磁盘驱动器连接,则不须加上多任务器151。
在SAS系统中,一对发送/接收线路的基本结构称为一组“实体线路”,或者称为一个“PHY”。一个PHY可以构成一个“窄端(narrow port)”;而两个以上的PHY可集合成1个“宽端(wide port)”。本发明在图示中,在SAS连结120上以“/”与一数字联合表示该连结路径是由该数字表示的实体线路(PHY)所组成;例如,“/”与数字“4”表示该SAS连结120为一个由四组实体线路(PHY)所组成的宽端,表示为4-实体线路宽端口、或4-PHY宽端。
在图1与图2中所示的实施例,两个储存虚拟化控制器111、112各具有两个宽端,每个宽端口由4组实体线路(PHY)集结而成,也即一个4-PHY宽端(4-PHY wide port)。储存虚拟化控制器111、112赋予此两个4-PHY宽端口各一唯一的地址(address),用以供与之连结的装置(如:启动端(initiator)311、312)识别之用。例如,设定第一储存虚拟化控制器111的两个4-PHY宽端口的地址分别是adrs1与adrs2、第二储存虚拟化控制器112的两个4-PHY宽端口的地址分别是adrs3与adrs4。储存虚拟化控制器111、112的连接端组态未必限定为两个4-PHY宽端,也有可能只具有一个4-PHY宽端、或者有三个以上的宽端;其选择的考虑因素之一为搭配启动端(initiator)311、312的连接端(port)的数目。
请参阅图3,以第一储存虚拟化控制器111为例,图示本发明的储存虚拟化控制器111、112的一实施例方块图。其对外连接至第二储存虚拟化控制器112、启动端(initiator)311、312(或通过SAS扩充器130连接至启动端(initiator)311、312)以及实体储存装置数组(PSD Array)150;其中,实体储存装置数组150,在本实施例中,包含多个SAS磁盘驱动器及/或多个SATA磁盘驱动器。在此实施例中,第一储存虚拟化控制器(SVC1)111包含有一主机端输出入装置连结控制器(Host-side IO Device InterconnectController)220、一中央处理电路(Central Processing Circuit,CPC)250、一内存(Memory)230、一装置端输出入装置连结控制器(Drive-side IO DeviceInterconnect Controller)240以及一冗余控制器通讯连结控制器(RedundantController Communicating Interconnect Controller,以下简称为“RCC连结控制器”)210。此处虽以分开的功能方块描述,但在实际应用时,部分甚至全部的功能方块(functional block)都可整合在一单一芯片上。例如:RCC连结控制器210能与主机端输出入装置连结控制器220整合为一单芯片IC。
主机端输出入装置连结控制器220连接至中央处理电路250、以及通过SAS扩充器130连接至启动端(initiator)311、312,用来作为第一储存虚拟化控制器(SVC1)111及启动端(initiator)311、312之间的接口及缓冲,其可接收由启动端(initiator)311、312传来的输出入请求和相关数据,并且将其传递给中央处理电路250,以转换及/或映像该输出入请求和相关数据。主机端输出入装置连结控制器220可以包含有一或多个用来耦接于启动端(initiator)311、312(或通过SAS扩充器130耦接于启动端(initiator)311、312)的主机端连接端口,在本发明,连接端的类型为SAS(序列连接SCSI)。
当中央处理电路250接收到来自主机端输出入装置连结控制器220的启动端(initiator)输出/输入请求时,中央处理电路250会将此输出入请求剖析,并且执行一些操作以响应此输出入请求,以及将所请求的数据及/或信息,由第一储存虚拟化控制器111的主机端输出入装置连结控制器220传送至启动端(initiator)311、312。将启动端(initiator)311、312传入的输出/输入请求剖析之后,若所收到的为一读取请求且一或多个操作被执行以为响应时,中央处理电路250会由内部或由内存230中或通过此两种方式取得所请求的数据,并将这些数据传送至启动端(initiator)311、312。若所请求的数据无法在内部取得或并不存在于内存230,该读取请求将会通过装置端输出入装置连结控制器240发送至实体储存装置数组150,然后这些请求的数据将由实体储存装置数组150传送至内存230,之后再通过主机端输出入装置连结控制器220传送到启动端(initiator)311、312。当由启动端(initiator)311、312传入的写入请求(write request)传达至中央处理电路250时,中央处理电路250通过主机端输出入装置连结控制器220接收从启动端(initiator)311、312传入的数据,将其储存在内存230中。当储存虚拟化控制器111、112接收到写入请求(write request)时,会依据本身的组态设定(configuration)而决定要以“回写(write back)”或“完全写入(write through)”的其一方式处理该写入请求(write request)。当以回写(write back)方式处理时,其输出入完成响应(IO complete response)会先被传送至启动端(initiator)311、312,而后中央处理电路250才会执行实际的写入操作;而当该写入请求以完全写入(write through)方式处理时,则输出入完成响应会在数据已实际写入实体储存装置数组150后才被传送至启动端(initiator)311、312。对于“回写(writeback)”或“完全写入(write through)”两种操作,数据都通过中央处理电路250传送至实体储存装置数组150。内存230连接于中央处理电路250,其作为一缓冲器,用来缓冲传送于启动端(initiator)311、312及实体储存装置数组150之间通过中央处理电路250的数据。实际应用时,内存230可以是动态随机存取内存(Dynamic Random Access Memory,DRAM),或更具体地,该DRAM可为同步动态随机存取内存(Synchronous Dynamic Random Access Memory,SDRAM)。
装置端输出入装置连结控制器240位于中央处理电路250及实体储存装置数组150之间,用来作为储存虚拟化控制器111、112及实体储存装置数组150间的接口及缓冲。装置端输出/输入装置连结控制器240接收由中央处理电路250传入的输出入请求及相关数据,并将其传送至实体储存装置数组150。
于本实施例中,可在中央处理电路250上附接一箱体管理服务电路(Enclosure Management Service Circuitry,EMS Circuitry)260,作为一容置实体储存装置数组150箱体的管理电路。在其它实施例中,箱体管理服务电路260也具有其它功能,如散热电扇及/或电源供应(power supply)器的管理。然而储存虚拟化子系统111、112也可能有其它的配置方式,例如可根据各种不同产品的功能设计而定,而将箱体管理服务电路260省略,或是将箱体管理服务电路260整合在中央处理电路250中。
在本实施例中,在第一储存虚拟化控制器(SVC1)111中的RCC连结控制器210,用来连接中央处理电路250与第二储存虚拟化控制器(SVC2)112;因此在此架构中,第二储存虚拟化控制器(SVC2)112,可附接于第一储存虚拟化控制器(SVC1)111,且实体储存装置数组150可被此两个储存虚拟化控制器111、112所存取。并且,由启动端(initiator)311、312发出的控制/数据数据可从中央处理电路250通过RCC连结控制器210传送给第二储存虚拟化控制器(SVC2)112,或更进一步地,传送给其它的实体储存装置数组(图中未绘示)。
请参阅图4,为中央处理电路250的一实施例,其中包含有CPU芯片组/同位引擎251(CPU chipset/parity engine)、一中央处理器252(CPU)、一只读存储器253(Read Only Memory,ROM)、一非挥发性随机存取内存254(Non-Volatile Random Access Memory,NVRAM)、一液晶显示模块255(LiquidCrystal Display Module,LCD Module)、以及一箱体管理服务电路260。其中该CPU 252可为,例如,一Power PC CPU,而ROM 253可为一闪存(flash),用来储存基本输入/输出系统(BIOS)及其它程序,例如:控制器的核心程序(kernel)以及各程序模块,其中,核心程序(kernel)用以在开机后执行以控制子系统的操作。NVRAM 254用来储存储存虚拟化控制器111、112的各种组态(configuration)设定的相关信息,例如:网络IP设定、装置端组态设定、主机端组态设定等。LCD模块255则是用来显示子系统的操作状态,箱体管理服务电路260用来控制该实体储存装置数组的电源及进行其它的管理。ROM 253、NVRAM 254、LCD模块255及箱体管理服务电路260都经过一X-总线(X-bus)连结至CPU芯片组/同位引擎251。并且,该NVRAM 254及该LCD模块255为可选择项目,在本发明的另一种配置中可以省略不设。
在正常运作的情形下,储存虚拟化系统(包括冗余储存虚拟化子系统100与启动端(initiator)311、312)在系统启动之初,储存虚拟化控制器111、112中的中央处理电路250会先进行一初始化工作;该初始化工作由储存在ROM253中的核心程序(kernel)负责启动。执行该初始化工作时,核心程序(kernel)会扫描系统中所有的装置、读取每一装置所独有的一组装置识别码(deviceID)、以及初始化每一连接端口的地址。值得注意的是,此初始化工作分别由第一与第二储存虚拟化控制器111、112各自独立执行;但在初始化之初,两个储存虚拟化控制器111、112会先到背板(backplane)读取一基础地址(baseaddress),再根据该基础地址为各SAS连接端口寻址。该背板位于冗余储存虚拟化子系统100之内(图中没有绘示)、与两个储存虚拟化控制器111、112相连接,可提供电力、通讯连结(communication link)等,其上也有非挥发性储存媒体、与其它被动元件(passive component),而该基础地址即可储存于该非挥发性储存媒体之中。
请参考图5,系统在运行的过程中,举例来说,若是第一储存虚拟化控制器111故障或失效,则与之连接的两个SAS连结路径自然也失效。由于装置失效后便无法做出响应,因此第二储存虚拟化控制器112可以立即检测得知第一储存虚拟化控制器111装置失效的状况。在此情形下,为了使系统维持正常的运作,冗余储存虚拟化子系统100须有因应对策,以期让启动端(initiator)311、312察觉不到装置失效的状况,并且可以持续通过第二储存虚拟化控制器112对实体储存装置数组150存取数据,以达到储存虚拟化控制器对110的“控制器备援”的功效。
在SAS系统架构,配置连接端口的地址属于较底层的连结层(link layer)的工作;而启动端(initiator)311、312与储存虚拟化控制器111、112是以较高层的SAS协议传输层(SAS protocol transport layer)来沟通。利用此一特性,只要存活的第二储存虚拟化控制器112可以承接失效的第一储存虚拟化控制器111的连接端口地址,则以启动端(initiator)311、312的观点来看,将不会发现装置的状态有任何变化,而继续正常运作。
同样以图5中的实施例为例,一但发现有装置失效的情况发生,存活的控制器则会重新启动初始化的程序,包括重新到背板读取基础地址、以及据以配置新的SAS连接端口的地址。为了让失效前后的SAS连结120的状态“看似”相同,首先,存活的第二储存虚拟化控制器112须将原先的两个4-PHY宽端,拆分为各由两PHY集结而成的四个2-PHY宽端。若此四个2-PHY宽端口的地址各为adrs1’、adrs2’、adrs3’、adrs4’,则其代表的地址须等于装置失效前四个4-PHY宽端(即图1与图2中的adrs1、adrs2、adrs3、adrs4)的地址。
在实际应用上,举例来说,若储存虚拟化控制器111、112采用Adaptec公司出产的芯片,因其本身即具备指定地址的功能,因此只要在重新启动的初始化过程中,无论是哪一个控制器故障或失效,只要指定新的四个2-PHY宽端口的地址(adrs1’、adrs2’、adrs3’、adrs4’)等于旧的四个4-PHY宽端口的地址(adrs1、adrs2、adrs3、adrs4),即可达到承接失效控制器地址的功效。另一种实务上的应用是,若储存虚拟化控制器111、112采用LSI logic公司出产的芯片,因该公司的芯片有一特性:同一控制器芯片的两个4-PHY宽端口的地址相差值固定为4。因此,请参阅图6A,若是第一储存虚拟化控制器111的两个4-PHY宽端口地址为P与P+4、第二储存虚拟化控制器112的两个4-PHY宽端口地址为S与S+4,则只要令S=P+1,即可达到承接失效控制器的地址的功效。
请同时参照图6A与图6B,若背板上所储存的基础地址(base address)为BA,则于正常的情况下,系统初始化工作中会将BA指派给adrs1,又已规范S=P+1,且依照LSI芯片的特性,因此adrs1至adrs4的地址分别为:
adrs1=P=BA
adrs2=P+4=BA+4
adrs3=S=P+1=BA+1
adrs4=S+4=P+5=BA+5
也即,(adrs1,adrs2,adrs3,adrs4)=(BA,BA+4,BA+1,BA+5)。当状况发生后,例如第一储存虚拟化控制器111故障或失效,则重新启动一初使化过程,将第二储存虚拟化控制器112的两个4-PHY宽部拆分为四个2-PHY宽端口,并指派基础地址BA予adrs1’;再依照LSI芯片的特性,因此adrs1’至adrs4’的地址分别为:
adrs1’=P=BA
adrs2’=P+1=BA+1
adrs3’=P+4=BA+4
adrs4’=P+5=BA+5
也即,(adrs1’,adrs2’,adrs3’,adrs4’)=(BA,BA+1,BA+4,BA+5)。因此,在基础地址BA固定不变的情形下,装置失效前后的SAS连接端口地址相同,达到承接失效控制器的地址的目的。相反地,若状况是第二储存虚拟化控制器112故障或失效,应用相同的方法,也能得到相同的结果。须注意的是,“S=P+1”的关系只是应用上的一实施范例,实务上“P”与“S”的关系可根据不同的实施态样而调整,只要符合本发明的精神,应视为本发明的涵盖范围。
请参阅图7,为本发明的冗余储存虚拟化子系统100的另一实施例。如上文所述,储存虚拟化控制器111、112的连接端组态未必限定为两个4-PHY宽端,若是启动端(initiator)311、312不须分处于不同的“领域(domain)”/“信道(channel)”,则可以选择只有一个4-PHY宽端的控制器111、112与之配合,以节省成本。在此种组态下的冗余储存虚拟化子系统100,只能让两个储存虚拟化控制器111、112连接一SAS扩充器130,且不可将SAS扩充器130分区(zoning),如此两个启动端(initiator)311、312才能与两个储存虚拟化控制器111、112互相沟通;至于其处理控制器装置失效的方法,则与前述的实施例类似。
请参阅图8,为本发明的冗余储存虚拟化子系统100的又一实施例;其与图1的实施例相比较,其差异在SAS扩充器130并未分区(zoning)为两个区域。在图1的实施例中,由于将SAS扩充器130分区(zoning)为第一区域131与第二区域132,明确界定启动端(initiator)311、第一区域131与储存虚拟化控制器111、112属“第一领域(the first domain)”、其所形成的信号信道为“信道一(channel 1)”,并界定启动端(initiator)312、第二区域132与储存虚拟化控制器111、112属“第二领域(the second domain)”、其所形成的信号信道为“信道二(channel 2)”;因此启动端(initiator)311、312不须判断即知其所接收的信号是来自实体储存装置数组150中归类为哪一个信道的磁盘。但在图8中,在本发明的另一实施例,只要启动端(initiator)311、312本身可以判断其所接收的信号是来自“信道一”或“信道二”,则将此一分区去掉,也不会影响本发明技术的实施。
储存虚拟化控制器111、112的组态分为两类,以上所述的各实施例都以主动-主动模式(active-active mode)为例来描述。此模式中,两个储存虚拟化控制器111、112同时对呈现于此储存虚拟化子系统100中的各种逻辑媒体单元的输出入请求进行呈现、管理及处理。在主动-主动模式中,上述两个储存虚拟化控制器一直都准备在另一个储存虚拟化控制器因故障(malfunction)而导致发生障碍或失能的情况下接管对方;因此需要前述的本发明各实施例所描述的技术,来解决主机端为SAS接口时控制器失效的地址承接问题。
另一类是主动-待命模式(active-standby mode),此模式有两种可能的状况:第一种是,两个储存虚拟化控制器111、112除主动(active)作用的连接端外,多具备一倍的连接端,设定为待命(standby)状态,以作为备援之用。请参阅第9A图,若正常运作下每一储存虚拟化控制器111、112需要两个连接端口(设定为主动模式)传输数据,则实体上储存虚拟化控制器111、112应具有四个连接端,多余的两个设定为待命(standby)状态。若其中一储存虚拟化控制器(例如:第一储存虚拟化控制器111)发生障碍或失效时,另一个储存虚拟化控制器(例如:第二储存虚拟化控制器112)的备用SAS连结即可启动,代为处理原来第一储存虚拟化控制器111所负责处理的流量。
请参阅图9B,主动-待命模式的第二种可能状况是:其中一个储存虚拟化控制器(例如:第一储存虚拟化控制器111)设定为主动状态(active mode),负责对储存虚拟化子系统100中的所有逻辑媒体单元的所有输出入请求进行呈现、管理及处理;而另一储存虚拟化控制器(例如:第二储存虚拟化控制器112)仅是处于待命状态(standby mode),准备在主动储存虚拟化控制器发生障碍或失能时,随时接替。
由于本发明的目的之一为在储存虚拟化子系统100的主机端实现SAS连结,因此也可采用两种主动-待命模式的储存虚拟化控制器111、112的配置,来实现设置储存虚拟化控制器对110的“控制器备援”的目的。
另一种实现储存虚拟化子系统100的主机端为SAS连结的方法,从让SAS连结本身可以提供数组身份(multiple ID)来着手。但是,在实体上,SAS连结的规格定义每一个SAS连结端(port)只能有一唯一的“身份”(ID),这也是为何以上各实施例采用SAS扩充器(SAS Expander)130来达到SAS的多装置连结的原因。若想要达到SAS连结本身提供数组身份(multiple ID)的效果,于本发明的另一实施例,请参考图10,可以让储存虚拟化控制器111、112内建“虚拟SAS扩充器(Virtual SAS Expander)”135(或称为虚拟扩充器),而提供每一SAS连接端口“数组虚拟身份(multiple virtual ID)”。
虚拟SAS扩充器135,请参考图11,位于主机端输出入装置连结控制器(Host-side IO Device Interconnect Controller)220上,其程序模块,可内建于储存虚拟化控制器111、112的韧体(如,请参阅图4,烧录在只读存储器253)之中,系统启动时再上载(upload)于主机端输出入装置连结控制器(Host-side IO Device Interconnect Controller)220上。虚拟SAS扩充器135赋予每一连接端(port)数组虚拟身份(multiple virtual ID);从另一个观点来看,也可视每一虚拟身份为一虚拟连接端口(virtual port),也可具有两个虚拟连接端口的连结。虚拟SAS扩充器135内有一“对应表”(table),记录每一虚拟连接端口(或虚拟身份)的相对应信息,例如:其连结的对应地址。若以图10的实施例为例,每一储存虚拟化控制器111、112的内部各自有两个虚拟连接端口,分别代表地址adrs I与adrs II。在一般正常的状态下,一储存虚拟化控制器111或112只让其中一个虚拟连接端口adrs I或adrsII处于连结状态,也即其“对应表”上有记录adrs I或adrs II的信息,而另一个虚拟连接端口则处于未连结状态,也即其“对应表”上没有记录此地址信息;例如,储存虚拟化控制器111的虚拟SAS扩充器135的adrs I处于连结状态而adrs II则处于未连结状态,另一方面,储存虚拟化控制器112的虚拟SAS扩充器135的adrs II处于连结状态而adrs I则处于未连结状态。储存虚拟化控制器111、112与启动端(initiator)311、312间的连结路径上,有一开关元件(Switch Component)130,提供建立连结与传递信号的功能,在正常情形下,该开关元件130会记录adrs I位于其与储存虚拟化控制器111的虚拟SAS扩充器135的连结120-1上,adrs II位于其与储存虚拟化控制器112的虚拟SAS扩充器135的连结120-2上;在本实施例,开关元件(SwitchComponent)的较佳实施例为SAS扩充器130。
以启动端(initiator)311、312的观点,其同时可以看到两个SAS连接端口的地址adrs I与adrs II。当启动端(initiator)311、312发出一输出入请求(I/O request),该输出入请求通过SAS扩充器130传送到其目标连接端口所在的储存虚拟化控制器111或112。例如,若该输出入请求的发送目标是adrsI,则输出入信号将会传送至第一储存虚拟化控制器111接收并处理。
当系统运行的过程中发生意外,例如第二储存虚拟化控制器112故障或失效,存活的第一储存虚拟化控制器111会重新启动初始化的程序,此时其“对应表”便会被更新为其两个虚拟连接端口adrs I与adrs II都处于连结状态,因而就该SAS扩充器130而言,adrs I与adrs II都位于连结120-1上,且连结120-2上已无任何虚拟连接端口的地址存在。因此,由启动端(initiator)311、312的观点还是可以看到两个SAS连接端口的地址adrs I与adrs II,而不知有任何装置状态产生变化;只是此后所有的输出入请求都改为由第一储存虚拟化控制器111接收并处理。此种实施例的特点是:在意外发生、存活的储存虚拟化控制器111或112要承接失效的储存虚拟化控制器112或111的身份时,不须拆分任何实体连接端口。
此种实施例中的储存虚拟化控制器111、112的内部组成,与图3与图4所述类似,只是多了一个储存在只读存储器(ROM)253中的虚拟SAS扩充器135的程序模块。至于装置端的部分,也与前述相同,因此以下不再多做说明。
于本发明其它实施例中,还可以将多个储存虚拟化子系统100串接起来(除了图10的实施例外),以扩充储存空间来服务启动端(initiator)311、312的需求。请参阅图12,图中以图2所示的储存虚拟化子系统100的架构为例,并简化以两个储存虚拟化控制器111、112与SAS扩充器130来代表整个储存虚拟化子系统100。多个储存虚拟化子系统100间的串接,实体上以连接SAS扩充器130的连接端来达成;其串接的拓扑(topology)架构,根据需求与条件,可以区分为多种实施形式。
图12中所示的串接方式为一种邻接的串接(cascading)结构,将相邻的储存虚拟化子系统100一个接一个串接起来。举例来说,当原来的储存虚拟化系统(包括第一个储存虚拟化子系统100与启动端(initiator)311、312)需要再串接其它的储存虚拟化子系统100时,将第一个储存虚拟化子系统100的第一个SAS扩充器130连接到第二个储存虚拟化子系统100的第一个SAS扩充器130,同理,第一个储存虚拟化子系统100的第二个SAS扩充器130连接到第二个储存虚拟化子系统100的第二个SAS扩充器130。若是需要再串接第三个储存虚拟化子系统100,则以同样的方式将第二个储存虚拟化子系统100的第一SAS扩充器130连接到第三个储存虚拟化子系统100的第一SAS扩充器130、第二个储存虚拟化子系统100的第二SAS扩充器130连接到第三个储存虚拟化子系统100的第二SAS扩充器130;以此类推,可以一直串接下去。此种串接方式简单,但有一致命缺点:一但连接在中间的储存虚拟化子系统100故障或失效,则串接在其后的所有储存虚拟化子系统100都将无法与主机沟通。
为了改善以上的缺失,改良后的拓扑(topology)结构,虽然基本上与图11一样采用邻接的串接(cascading)方式,但是串接的方式有些许变动。举例来说,请参阅图13,各储存虚拟化子系统100的第一个SAS扩充器130依然延续图12的连接方式,也即第一个储存虚拟化子系统100的第一个SAS扩充器130连接到第二个储存虚拟化子系统100的第一个SAS扩充器130、第二个储存虚拟化子系统100的第一个SAS扩充器130连接到第三个储存虚拟化子系统100的第一个SAS扩充器130,以下以此类推(简称为“1-2-3式连接”);但是,各储存虚拟化子系统100的第二个SAS扩充器130的连接顺序稍微调整为:第一个储存虚拟化子系统100的第二个SAS扩充器130连接到最后一个储存虚拟化子系统100的第二个SAS扩充器130、然后再回头与前一个储存虚拟化子系统100的第二个SAS扩充器130相连接,以下以此类推(简称为“1-3-2式连接”)。如此一来,即使中间的储存虚拟化子系统100发生故障或失效的状况,启动端(initiator)312也可以通过与最后一个储存虚拟化子系统100的连结跟位于断线路径后的其它储存虚拟化子系统100沟通。虽然图13中图示的是:各个储存虚拟化子系统100的第一个SAS扩充器130做“1-2-3式连接”、以及各个储存虚拟化子系统100的第二个SAS扩充器130做“1-3-2式连接”,但这仅是一种实施例而已,于其它实施例中,也可互相交换,即各个储存虚拟化子系统100的第一个SAS扩充器130做“1-3-2式连接”、各个储存虚拟化子系统100的第二个SAS扩充器130做“1-2-3式连接”。
请参阅图14,为另一种多个储存虚拟化子系统100连接的拓扑(topology)结构,其将第一个储存虚拟化子系统100连接到后续增加的每一个储存虚拟化子系统100;如此一来,第一个储存虚拟化子系统100扮演如交换器(switch)的角色,启动端(initiator)311、312可以通过它与其它的储存虚拟化子系统100沟通。实施这种拓扑架构有个前提,就是第一个储存虚拟化子系统100所配置的SAS扩充器130的连接端数目要足够,否则就相当地限制了扩充储存虚拟化子系统100的数目。
以上图12至图14的实施例中,每一储存虚拟化子系统100也可能采用图1的实施例:只有一个SAS扩充器130,但分区(zoning)为两个区域,以取代两个SAS扩充器130的实施方式。在此种情形下,各储存虚拟化子系统100间的连接方式则是各SAS扩充器130的第一区互相连接、以及第二区互相连接。在本发明的其它实施例中,也可将图1与图2两种不同的储存虚拟化子系统100交互串接,形成类似图12至图14的拓扑(topology)结构。
在图12至图14的实施例中,都是描述储存虚拟化系统(包括储存虚拟化子系统100与主机311、312)再扩充连接其它储存虚拟化子系统100的态样。在本发明的其它实施例中,也可以视需求将不同的储存虚拟化系统(各自包括储存虚拟化子系统100与启动端(initiator)311、312)相连接。举例来说,请参阅图15,可以将三个不同的储存虚拟化系统以邻接的方式串接起来,每一个储存虚拟化系统中启动端(initiator)311、312的数目可以视需要而定,并不限定一个储存虚拟化子系统100只能连接一个或两个启动端(initiator)311、312;若是SAS扩充器130的连接端数目够多,也可以连接至三、四个以上。
总而言之,图12至图15的实施例中,以菊花链(daisy chain)的串接方式,将多个不同的主机端为SAS接口的储存虚拟化系统或储存虚拟化子系统100连接起来,使得它们的资源可以共享,而有效地增加了服务启动端(initiator)311、312的储存空间。
当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明权利要求的保护范围。
Claims (53)
1.一种主机端为序列连接小型计算机系统接口的冗余储存虚拟化子系统,与至少一启动端相连接,该子系统包含有:
一储存虚拟化控制器对,包括有一第一储存虚拟化控制器与一第二储存虚拟化控制器,用于执行输出入操作以响应该至少一启动端所发出的一输出入请求;
至少一扩充器,位于该储存虚拟化控制器对与该启动端的输出入装置连结的路径上,用以提供装置扩充的功能;以及
一实体储存装置数组,包含至少一实体储存装置,用来提供该冗余储存虚拟化子系统储存空间;
其中,该储存虚拟化控制器对、该至少一扩充器与该启动端间的信号连结接口为一序列连接小型计算机系统接口;
其中,该储存虚拟化控制器对的每一该储存虚拟化控制器各自包含有至少一主机端输出入装置连接端口,用来耦接至该主机,每一该主机端输出入装置连接端口还包含有多组实体线路;当该储存虚拟化控制器对的其一故障或失效时,另一存活的该储存虚拟化控制器的该至少一主机端输出入装置连接端口的每一所包含的该多组实体线路拆分为二组,而产生双倍的拆分后的主机端连接端口,用以承接没有故障或失效发生时所有该储存虚拟化控制器的该主机端输出入装置连接端口的身分。
2.根据权利要求1所述的子系统,其特征在于,该实体储存装置数组中的至少一实体储存装置,通过一点对点序列信号连结耦接于该储存虚拟化控制器对。
3.根据权利要求2所述的子系统,其特征在于,该点对点序列信号连结为一序列先进技术接取接口,且该至少一实体储存装置为一序列先进技术接取接口磁盘驱动器。
4.根据权利要求3所述的子系统,其特征在于,还包含有至少一多任务器,其耦接于该序列先进技术接取接口磁盘驱动器与该冗余储存虚拟化控制器对之间,用以处理该序列先进技术接取接口磁盘驱动器与该冗余储存虚拟化控制器对之间的输出入信号连接。
5.根据权利要求2所述的子系统,其特征在于,该点对点序列信号连结为一序列连接小型计算机系统接口,且该至少一实体储存装置为一序列连接小型计算机系统接口磁盘驱动器。
6.根据权利要求1所述的子系统,其特征在于,该实体储存装置数组中的至少一实体储存装置的连结接口,为光纤信道或小型计算机系统接口。
7.根据权利要求1所述的子系统,其特征在于,该储存虚拟化控制器对中的每一该储存虚拟化控制器还包含有:
一中央处理电路,用于执行输出入操作以响应该主机所发出的该输出入请求;
一冗余控制器通讯连结控制器,耦接于该中央处理电路与该储存虚拟化控制器对中的另一储存虚拟化控制器之间;
一主机端输出入装置连结控制器,耦接于该中央处理电路、以及通过该扩充器耦接于该主机,用来作为该储存虚拟化控制器及该主机间的接口及缓冲;
一装置端输出入装置连结控制器,耦接于该中央处理电路及该实体储存装置数组之间,用来作为该储存虚拟化控制器及该实体储存装置数组间的接口及缓冲,该主机端输出入装置连结控制器包含有该至少一主机端输出入装置连接端口;以及
一内存,耦接于该中央处理电路,作为一缓冲器,用来缓冲传送于该主机及该实体储存装置数组之间通过该中央处理电路的数据。
8.根据权利要求7所述的子系统,其特征在于,该主机端输出入装置连结控制器的该主机端输出入装置连接端口的类型为序列连接小型计算机系统接口。
9.根据权利要求1所述的子系统,其特征在于,该储存虚拟化控制器对中,每一该储存虚拟化控制器还包含有:
一中央处理电路,用于执行输出入操作以响应该主机所发出的该输出入请求;
至少一输出入装置连结控制器,耦接于该中央处理电路,该至少一输出入装置连接控制器包含有该至少一主机端连接端口,用来耦接至该主机;
以及
至少一装置端输出入装置连结端口,设置于该至少一输出入装置连结控制器的一者中,用来通过该点对点序列信号连结耦接至该至少一实体储存装置。
10.根据权利要求9所述的子系统,其特征在于,该主机端输出入装置连结端口中的一者与该装置端输出入装置连结端口中的一者设置于同一个该输出入装置连结控制器中。
11.根据权利要求9所述的子系统,其特征在于,该主机端输出入装置连结端口中的一个与该装置端输出入装置连结端口中的一个是设置于不同的该输出入装置连结控制器中。
12.根据权利要求9所述的子系统,其特征在于,该主机端输出入装置连结端口为一序列连接小型计算机系统接口类型的主机端连接端口。
13.根据权利要求1所述的子系统,其特征在于,该储存虚拟化控制器对中的该第一储存虚拟化控制器与该第二储存虚拟化控制器各自有两个该主机端输出入装置连结端口。
14.根据权利要求1所述的子系统,其特征在于,每一该主机端输出入装置连结端口由四组实体线路所组成,为一4-实体线路宽端口。
15.根据权利要求14所述的子系统,其特征在于,当该储存虚拟化控制器对中的一个故障或失效时,另一存活的该储存虚拟化控制器的每一4-实体线路宽端口还拆分为两个由两组实体线路所组成的2-实体线路宽端口,且拆分后所有该2-实体线路宽端口可以承接没有故障或失效发生时所有该4-实体线路宽端口的身份。
16.根据权利要求14所述的子系统,其特征在于,令该第一储存虚拟化控制器的第一个4-实体线路宽端口的地址等于一基础地址、且该第二储存虚拟化控制器的第一个4-实体线路宽端口的地址等于该基础地址加一适当的值。
17.根据权利要求16所述的子系统,其特征在于,该适当的值等于1。
18.根据权利要求15所述的子系统,其特征在于,还启动一初始化程序,并于该初始化程序中指派所有新的该2-实体线路宽端口的地址等于装置失效前所有该4-实体线路宽端口的地址。
19.根据权利要求18所述的子系统,其特征在于,该初始化程序由一核心程序负责启动。
20.根据权利要求19所述的子系统,其特征在于,该核心程序储存于该中央处理电路的一只读存储器中。
21.根据权利要求16所述的子系统,其特征在于,该基础地址储存于一背板之中,该背板与该储存虚拟化控制器对中的每一个电性连接。
22.根据权利要求1所述的子系统,其特征在于,该至少一扩充器的数量为一。
23.根据权利要求22所述的子系统,其特征在于,还利用分区技术将该扩充器划分为一第一区域与一第二区域。
24.根据权利要求1所述的子系统,其特征在于,该至少一扩充器的数量为二。
25.根据权利要求1所述的子系统,其特征在于,该储存虚拟化控制器对中的该第一储存虚拟化控制器设定为主动模式,以处理该主机所发出的该输出入请求,该第二储存虚拟化控制器设定为待命模式,以做为该第一储存虚拟化控制器的备援。
26.根据权利要求1所述的子系统,其特征在于,该储存虚拟化控制器对中的每一该储存虚拟化控制器还具有双数倍的该主机端输出入装置连结端口,其中一半的主机端输出入装置连结端口设定为主动模式,另一半的主机端输出入装置连结端口设定为待命模式,以做为备援。
27.一种主机端为序列连接小型计算机系统接口的冗余储存虚拟化系统,其特征在于,包含有:
至少一启动端,用来发出至少一输出入请求;以及
多个冗余储存虚拟化子系统,通过一序列连接小型计算机系统接口耦接于该至少一启动端,该多个冗余储存虚拟化子系统中的每一个还包含有:
一储存虚拟化控制器对,包括有一第一储存虚拟化控制器与一第二储存虚拟化控制器,用于执行输出入操作以响应该至少一启动端所发出的该输出入请求;
至少一扩充器,位于该储存虚拟化控制器对与该主机的输出入装置连结的路径上,用以提供装置扩充的功能;以及
一实体储存装置数组,包含至少一实体储存装置,用来提供该冗余储存虚拟化子系统储存空间;
其中,该多个冗余储存虚拟化子系统是通过各自的该扩充器的连接端口相互连接或串接。
28.根据权利要求27所述的系统,其特征在于,该多个冗余储存虚拟化子系统以邻接的方式串接起来。
29.根据权利要求28所述的系统,其特征在于,还将该多个冗余储存虚拟化子系统中第一个与最后一个的该至少一扩充器其中之一连接起来,且移除该多个冗余储存虚拟化子系统中的第一个与第二个的该至少一扩充器的相对应连接。
30.根据权利要求27所述的系统,其特征在于,该多个冗余储存虚拟化子系统中的一冗余储存虚拟化子系统与其它所有的冗余储存虚拟化子系统相连接。
31.根据权利要求27所述的系统,其特征在于,还具有多个该启动端与该多个冗余储存虚拟化子系统相连接。
32.根据权利要求27所述的系统,其特征在于,该启动端还支持多信道输出输入技术。
33.一种主机端为序列连接小型计算机系统接口的冗余储存虚拟化子系统,与至少一启动端相连接,其特征在于,该子系统包含有:
一储存虚拟化控制器对,包括有一第一储存虚拟化控制器与一第二储存虚拟化控制器,用于执行输出入操作以响应该至少一启动端所发出的一输出入请求,该第一储存虚拟化控制器与该第二储存虚拟化控制器各自内建一虚拟扩充器,用以提供每一实体连接端口数组虚拟身份;
一开关元件,位于该储存虚拟化控制器对与该启动端的输出入装置连结的路径上;以及
一实体储存装置数组,包含至少一实体储存装置,用来提供该冗余储存虚拟化子系统储存空间;
其中,该储存虚拟化控制器对与该启动端间地信号连结接口为一序列连接小型计算机系统接口;
其中,当该储存虚拟化控制器对中的其一故障或失效时,另一存活的该储存虚拟化控制器还启动一初始化程序,以更改该实体连接端口的该多组虚拟身份的相对应信息。
34.根据权利要求33所述的子系统,其特征在于,该虚拟扩充器为一功能模块,可以以软件及硬件的方式联合实现。
35.根据权利要求33所述的子系统,其特征在于,该虚拟扩充器为一程序模块,该程序模块分别刻录在该第一储存虚拟化控制器与该第二储存虚拟化控制器的一只读存储器之中。
36.根据权利要求33所述的子系统,其特征在于,该虚拟扩充器还具有一对应表,用以记录该数组虚拟身份各自的该相对应信息。
37.根据权利要求36所述的子系统,其特征在于,该相对应信息包括该数组虚拟身份中的每一个的状态(连接或未连接)及/或其对应的实体线路地址。
38.根据权利要求36所述的子系统,其特征在于,该初始化程序更改该对应表所记录的该数组虚拟身份的该相对应信息。
39.根据权利要求33所述的子系统,其特征在于,该初始化程序由一核心程序负责启动。
40.根据权利要求39所述的子系统,其特征在于,该核心程序储存于一只读存储器,该只读存储器位于该第一储存虚拟化控制器或该第二储存虚拟化控制器中。
41.根据权利要求33所述的子系统,其特征在于,该开关元件可为一扩充器。
42.根据权利要求33所述的子系统,其特征在于,该实体储存装置数组中的至少一实体储存装置,是通过一点对点序列信号连结耦接于该储存虚拟化控制器对。
43.根据权利要求42所述的子系统,其特征在于,该点对点序列信号连结为一序列先进技术接取接口,且该至少一实体储存装置为一序列先进技术接取接口磁盘驱动器。
44.根据权利要求43所述的子系统,其特征在于,还包含有至少一多任务器,其耦接于该序列先进技术接取接口磁盘驱动器与该冗余储存虚拟化控制器对之间,用以处理该序列先进技术接取接口磁盘驱动器与该冗余储存虚拟化控制器对之间的输出入信号。
45.根据权利要求42所述的子系统,其特征在于,该点对点序列信号连结为一序列连接小型计算机系统接口,且该至少一实体储存装置为一序列连接小型计算机系统接口磁盘驱动器。
46.根据权利要求33所述的子系统,其特征在于,该实体储存装置数组中的至少一实体储存装置的连结接口,为光纤信道或小型计算机系统接口。
47.根据权利要求33所述的子系统,其特征在于,该储存虚拟化控制器对中的每一该储存虚拟化控制器还包含有:
一中央处理电路,用于执行输出入操作以响应该主机所发出的该输出入请求;
一冗余控制器通讯连结控制器,耦接于该中央处理电路与该储存虚拟化控制器对中的另一储存虚拟化控制器之间;
一主机端输出入装置连结控制器,耦接于该中央处理电路、以及通过该扩充器耦接于该主机,用来作为该储存虚拟化控制器及该主机间的接口及缓冲;
一装置端输出入装置连结控制器,耦接于该中央处理电路及该实体储存装置数组之间,用来作为该储存虚拟化控制器及该实体储存装置数组间的接口及缓冲;以及
一内存,耦接于该中央处理电路,作为一缓冲器,用来缓冲传送于该主机及该实体储存装置数组之间通过该中央处理电路的数据。
48.根据权利要求47所述的子系统,其特征在于,该主机端输出入装置连结控制器还包含有至少一序列连接小型计算机系统接口类型的主机端输出入装置连接端口。
49.根据权利要求33所述的子系统,其特征在于,该储存虚拟化控制器对中,每一该储存虚拟化控制器还包含有:
一中央处理电路,用于执行输出入操作以响应该主机所发出的该输出入请求;
至少一输出入装置连结控制器,耦接于该中央处理电路;
至少一主机端输出入装置连结端口,设置于该至少一输出入装置连结控制器的一个中,用来耦接至该主机;以及
至少一装置端输出入装置连结端口,设置于该至少一输出入装置连结控制器的一个中,用来通过该点对点序列信号连结耦接至该至少一实体储存装置。
50.根据权利要求49所述的子系统,其特征在于,该主机端输出入装置连结端口中的一个与该装置端输出入装置连结端口中的一个设置于同一个该输出入装置连结控制器中。
51.根据权利要求49所述的子系统,其特征在于,该主机端输出入装置连结端口中的一个与该装置端输出入装置连结端口中的一个设置于不同的该输出入装置连结控制器中。
52.根据权利要求49所述的子系统,其特征在于,该主机端输出入装置连结端口为一序列连接小型计算机系统接口类型的主机端连接端口。
53.根据权利要求48或49所述的子系统,其特征在于,该主机端输出入装置连结端口由四组实体线路所组成,为一4-实体线路宽端口。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US59731705P | 2005-11-23 | 2005-11-23 | |
US60/597,317 | 2005-11-23 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1971497A CN1971497A (zh) | 2007-05-30 |
CN1971497B true CN1971497B (zh) | 2011-05-18 |
Family
ID=37963930
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200610078552XA Active CN1971497B (zh) | 2005-11-23 | 2006-05-10 | 主机端为sas接口的冗余储存虚拟化子系统及其系统 |
Country Status (4)
Country | Link |
---|---|
US (1) | US8352653B2 (zh) |
EP (1) | EP1796003A3 (zh) |
CN (1) | CN1971497B (zh) |
TW (1) | TWI307034B (zh) |
Families Citing this family (54)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7953917B2 (en) * | 2005-06-30 | 2011-05-31 | Intel Corporation | Communications protocol expander |
US7437462B2 (en) * | 2006-01-06 | 2008-10-14 | Dell Products L.P. | Method for zoning data storage network using SAS addressing |
TWI353536B (en) * | 2006-01-26 | 2011-12-01 | Infortrend Technology Inc | Virtualized storage computer system and method of |
US7921185B2 (en) * | 2006-03-29 | 2011-04-05 | Dell Products L.P. | System and method for managing switch and information handling system SAS protocol communication |
US9342413B2 (en) * | 2006-04-27 | 2016-05-17 | Infortrend Technology, Inc. | SAS RAID head |
US9679602B2 (en) * | 2006-06-14 | 2017-06-13 | Seagate Technology Llc | Disc drive circuitry swap |
US7761642B2 (en) * | 2006-12-22 | 2010-07-20 | Lsi Corporation | Serial advanced technology attachment (SATA) and serial attached small computer system interface (SCSI) (SAS) bridging |
US8340108B2 (en) * | 2007-04-04 | 2012-12-25 | International Business Machines Corporation | Apparatus and method for switch zoning via fibre channel and small computer system interface commands |
CN101359309B (zh) * | 2007-08-03 | 2012-03-07 | 中兴通讯股份有限公司 | 串行附接小型计算机系统接口硬盘状态指示装置及方法 |
US7996509B2 (en) * | 2007-09-26 | 2011-08-09 | International Business Machines Corporation | Zoning of devices in a storage area network |
US8074105B2 (en) * | 2007-10-08 | 2011-12-06 | Dot Hill Systems Corporation | High data availability SAS-based RAID system |
US7882281B2 (en) * | 2007-12-10 | 2011-02-01 | Emulex Design & Manufacturing Corporation | SAS reference Phys for virtualization and traffic isolation |
TWI357562B (en) * | 2007-12-20 | 2012-02-01 | Infortrend Technology Inc | Io processor |
US7765358B2 (en) * | 2008-04-23 | 2010-07-27 | Quantum Corporation | Connecting multiple peripheral interfaces into one attachment point |
US7958293B2 (en) * | 2008-05-07 | 2011-06-07 | International Business Machines Corporation | Virtualized serial attached SCSI adapter |
US8954685B2 (en) * | 2008-06-23 | 2015-02-10 | International Business Machines Corporation | Virtualized SAS adapter with logic unit partitioning |
US7913023B2 (en) * | 2008-09-05 | 2011-03-22 | Lsi Corporation | Specifying lanes for SAS wide port connections |
US8656058B2 (en) | 2008-09-05 | 2014-02-18 | Lsi Corporation | Back-off retry with priority routing |
US8321596B2 (en) * | 2008-09-05 | 2012-11-27 | Lsi Corporation | SAS paired subtractive routing |
US8244948B2 (en) | 2008-09-05 | 2012-08-14 | Lsi Corporation | Method and system for combining multiple SAS expanders into a SAS switch |
US8077605B2 (en) | 2008-09-05 | 2011-12-13 | Lsi Corporation | Method for providing path failover for multiple SAS expanders operating as a single SAS expander |
US8321878B2 (en) * | 2008-10-09 | 2012-11-27 | Microsoft Corporation | Virtualized storage assignment method |
CN101488108B (zh) * | 2008-12-17 | 2010-10-27 | 成都市华为赛门铁克科技有限公司 | 一种提高sas域运行稳定性的方法、装置及系统 |
JP5391994B2 (ja) * | 2009-10-19 | 2014-01-15 | 富士通株式会社 | ストレージシステム,制御装置および診断方法 |
CN101710298B (zh) * | 2009-12-17 | 2012-05-30 | 成都市华为赛门铁克科技有限公司 | 存储系统及系统中磁盘链路的数据处理方法和控制器 |
KR20110088240A (ko) * | 2010-01-28 | 2011-08-03 | 삼성전자주식회사 | 스토리지 시스템과 상기 시스템의 데이터 처리 방법 |
US8402196B2 (en) * | 2010-03-04 | 2013-03-19 | Xyratex Technology Limited | Storage assembly, a physical expander and a method |
JP5528243B2 (ja) * | 2010-07-23 | 2014-06-25 | インターナショナル・ビジネス・マシーンズ・コーポレーション | マルチパスを制御するシステム及び方法 |
CN102375699A (zh) * | 2010-08-23 | 2012-03-14 | 英业达股份有限公司 | 一种存储器系统 |
US8171176B2 (en) * | 2010-08-31 | 2012-05-01 | Lsi Corporation | Method for selective replication of physical devices on a virtual self-configuring zoning expander |
US8484416B2 (en) | 2010-12-23 | 2013-07-09 | Lsi Corporation | High availability raid using low-cost direct attached raid controllers |
US9286253B2 (en) * | 2011-01-21 | 2016-03-15 | Hewlett Packard Enterprise Development Lp | System and method for presenting devices through an SAS initiator-connected device |
WO2012170033A1 (en) * | 2011-06-10 | 2012-12-13 | Hewlett-Packard Development Company, L.P. | Virtual initiator |
US8527685B2 (en) * | 2011-06-10 | 2013-09-03 | Lsi Corporation | Firmware-driven multiple virtual SAS expanders on a single expander hardware component |
US9348513B2 (en) | 2011-07-27 | 2016-05-24 | Hewlett Packard Enterprise Development Lp | SAS virtual tape drive |
US8943258B2 (en) * | 2011-11-04 | 2015-01-27 | Lsi Corporation | Server direct attached storage shared through virtual SAS expanders |
CN104067248A (zh) * | 2012-02-22 | 2014-09-24 | 惠普发展公司,有限责任合伙企业 | 用于根据不同协议的信号的复用器 |
US8909816B2 (en) * | 2012-03-19 | 2014-12-09 | Kaminario Technologies Ltd. | Implementing a logical unit reset command in a distributed storage system |
US8977787B1 (en) * | 2012-06-28 | 2015-03-10 | Emc Corporation | Management of path operating mode transitions in multipathing host computer |
JP5977431B2 (ja) * | 2012-07-17 | 2016-08-24 | 株式会社日立製作所 | ディスクアレイシステム及び接続方法 |
US9582218B2 (en) * | 2013-01-09 | 2017-02-28 | Cisco Technology, Inc. | Serial attached storage drive virtualization |
CN103440177A (zh) * | 2013-08-23 | 2013-12-11 | 浪潮电子信息产业股份有限公司 | 一种基于numa多物理层分区的存储控制冗余方法 |
US9542349B2 (en) | 2013-12-04 | 2017-01-10 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Wide port emulation at serial attached SCSI expanders using virtual physical links |
JP6269163B2 (ja) * | 2014-02-27 | 2018-01-31 | 富士通株式会社 | 中継装置、ストレージ装置、および中継プログラム |
TWI560558B (en) * | 2015-06-08 | 2016-12-01 | Synology Inc | Method for managing a storage system, and associated apparatus |
CN108173271B (zh) * | 2016-12-07 | 2020-01-10 | 南京南瑞继保电气有限公司 | 一种冗余结构的次同步振荡阻尼控制系统 |
US20180165031A1 (en) * | 2016-12-09 | 2018-06-14 | Hewlett Packard Enterprise Development Lp | Port modes for storage drives |
CN107291640B (zh) * | 2017-06-30 | 2021-01-12 | 苏州浪潮智能科技有限公司 | 一种基于sas技术的数据传输的方法与装置 |
WO2020014836A1 (zh) * | 2018-07-16 | 2020-01-23 | 华为技术有限公司 | 获取光模块链路协商信息的方法、设备和系统 |
US10963413B2 (en) | 2018-11-02 | 2021-03-30 | Wipro Limited | Method and system for transmitting data using small computer system interface (SCSI) |
CN110275680B (zh) * | 2019-06-24 | 2020-12-01 | 浙江大华技术股份有限公司 | 一种双控双活存储系统 |
CN111045602B (zh) * | 2019-11-25 | 2024-01-26 | 浙江大华技术股份有限公司 | 集群系统控制方法及集群系统 |
US11842083B2 (en) | 2021-02-03 | 2023-12-12 | Infortrend Technology, Inc. | Storage system architecture with dual storage virtualization controllers and the data access method thereof |
CN218940691U (zh) * | 2022-11-08 | 2023-04-28 | 宁德时代未来能源(上海)研究院有限公司 | 储能阀控系统及储能设备 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6944785B2 (en) * | 2001-07-23 | 2005-09-13 | Network Appliance, Inc. | High-availability cluster virtual server system |
US6775728B2 (en) * | 2001-11-15 | 2004-08-10 | Intel Corporation | Method and system for concurrent handler execution in an SMI and PMI-based dispatch-execution framework |
JP3714613B2 (ja) * | 2001-12-12 | 2005-11-09 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 記憶装置、該記憶装置を含む情報処理装置および情報記憶システムのリカバリ方法 |
JP4202709B2 (ja) * | 2002-10-07 | 2008-12-24 | 株式会社日立製作所 | ストレージ装置を有するネットワークにおける、ボリューム及び障害管理方法 |
US8301809B2 (en) * | 2003-07-02 | 2012-10-30 | Infortrend Technology, Inc. | Storage virtualization computer system and external controller thereof |
US7058749B2 (en) * | 2003-11-13 | 2006-06-06 | Dell Products L.P. | System and method for communications in serial attached SCSI storage network |
US7028106B2 (en) * | 2003-12-05 | 2006-04-11 | Hewlett-Packard Development Company, L.P. | Remapping routing information entries in an expander |
US20050138154A1 (en) * | 2003-12-18 | 2005-06-23 | Intel Corporation | Enclosure management device |
US7437462B2 (en) * | 2006-01-06 | 2008-10-14 | Dell Products L.P. | Method for zoning data storage network using SAS addressing |
-
2006
- 2006-03-20 TW TW095109493A patent/TWI307034B/zh active
- 2006-05-10 CN CN200610078552XA patent/CN1971497B/zh active Active
- 2006-11-16 EP EP06023842A patent/EP1796003A3/en not_active Withdrawn
- 2006-11-22 US US11/603,072 patent/US8352653B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
CN1971497A (zh) | 2007-05-30 |
US8352653B2 (en) | 2013-01-08 |
US20070165660A1 (en) | 2007-07-19 |
TWI307034B (en) | 2009-03-01 |
TW200720985A (en) | 2007-06-01 |
EP1796003A3 (en) | 2007-06-27 |
EP1796003A2 (en) | 2007-06-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1971497B (zh) | 主机端为sas接口的冗余储存虚拟化子系统及其系统 | |
US6578158B1 (en) | Method and apparatus for providing a raid controller having transparent failover and failback | |
US6446141B1 (en) | Storage server system including ranking of data source | |
US8683172B2 (en) | Method and apparatus for management between virtualized machines and virtualized storage systems | |
CN100334567C (zh) | 冗余外部储存虚拟化计算机系统 | |
US6553408B1 (en) | Virtual device architecture having memory for storing lists of driver modules | |
JP4643539B2 (ja) | メモリシステムおよびその使用方法 | |
JP4294142B2 (ja) | ディスクサブシステム | |
EP2366153B1 (en) | Active-active failover for a direct-attached storage system | |
US7814363B2 (en) | Virtual computer system and control method thereof | |
US6691209B1 (en) | Topological data categorization and formatting for a mass storage system | |
US8543762B2 (en) | Computer system for controlling allocation of physical links and method thereof | |
US9342413B2 (en) | SAS RAID head | |
JP5363924B2 (ja) | 単一sasエクスパンダの機能性を提供するために複数のsasエクスパンダを組み合わせる方法、及び、単一sasエクスパンダ | |
KR20080089589A (ko) | 목표 디스크에 액세스하기 위한 방법, 디스크 용량을 확장하는 시스템 및 디스크 어레이 | |
US20070067670A1 (en) | Method, apparatus and program storage device for providing drive load balancing and resynchronization of a mirrored storage system | |
US20050015544A1 (en) | Storage system configurations | |
US7603580B2 (en) | Redundant manager for a storage system | |
US7373546B2 (en) | Cluster network with redundant communication paths | |
US7865625B2 (en) | Data storage system with shared cache address space | |
US7464019B1 (en) | Method of resolving conflicts of virtualized disks between two operating environments | |
CN100504747C (zh) | 储存虚拟化子系统架构及其组态建构方法以及电脑系统 | |
CN112286446B (zh) | 一种存储装置及其控制方法 | |
WO2010056239A1 (en) | Active-active failover for a direct-attached storage system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |