CN1553346A - 冗余外部储存虚拟化计算机系统 - Google Patents
冗余外部储存虚拟化计算机系统 Download PDFInfo
- Publication number
- CN1553346A CN1553346A CNA2004100621380A CN200410062138A CN1553346A CN 1553346 A CN1553346 A CN 1553346A CN A2004100621380 A CNA2004100621380 A CN A2004100621380A CN 200410062138 A CN200410062138 A CN 200410062138A CN 1553346 A CN1553346 A CN 1553346A
- Authority
- CN
- China
- Prior art keywords
- storage virtualization
- sas storage
- port
- virtualization controller
- redundant
- 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.)
- Granted
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
- 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
-
- 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/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- 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/0614—Improving the reliability of storage systems
- G06F3/0617—Improving the reliability of storage systems in relation to availability
-
- 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/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- 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/0662—Virtualisation aspects
- G06F3/0664—Virtualisation aspects at device level, e.g. emulation of a storage device or system
-
- 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
-
- 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/0689—Disk arrays, e.g. RAID, JBOD
Abstract
本发明提供一种冗余外部储存虚拟化计算机系统,其包含有:一主机,用来发出输出入请求;一冗余外部储存虚拟化控制器对,耦接至该主机,用以执行输出入操作,以响应该主机所发出的输出入请求;以及多个物理储存装置,用来提供储存空间给该计算机系统。其中,每一个物理储存装置经由一点对点序列讯号连结耦接至冗余外部储存虚拟化控制器对,冗余外部储存虚拟化控制器对包含有一第一与一第二储存虚拟化控制器,其皆耦接至主机,在冗余外部储存虚拟化控制器对中,当第二储存虚拟化控制器离线时,第一储存虚拟化控制器将接替该第二储存虚拟化控制器原先所执行的功能。
Description
技术领域
本发明涉及一冗余外部储存虚拟化计算机系统(redundant_externalstorage_virtualization_computer_system)相关,特别是涉及一种利用点对点序列讯号连结作为主要装置端输出入(IO)装置连结的冗余外部储存虚拟化计算机系统。
背景技术
所谓储存虚拟化(storage_virtualization)是一种将物理储存空间虚拟化的技术,其是将物理储存装置(PSD,physical_storage_devices)的不同区段结合成可供一主机系统存取使用的逻辑储存体(logicalstorage_entity)-在此称为「逻辑介质单元」(LMU,logical_media_unit)。该技术主要用于磁盘阵列(RAID)储存虚拟化,经由此磁盘阵列的技术,可将较小物理储存装置结合成为容量较大、可容错、高效能的逻辑介质单元。
储存虚拟化控制器(SVC,storage_virtualization_controller)的主要目的是将物理储存介质的各区段的组合映像(map)形成一主机系统可见的逻辑介质单元。由该主机系统发出的输出入(IO)请求于接收只后会先被剖析并解译,且相关的操作及数据会被编译成物理储存装置的输出入请求。这个过程可以是间接地,例如运用快取、延迟(如:回写(write-back))、预期(anticipate)(先读(read-ahead))、群集(group)等操作来加强效能及其它的操作特性,因而一主机输出入请求并不一定是以一对一的方式直接对应于物理储存装置输出入请求。
外部(或可称为独立式(stand-alone))储存虚拟化控制器为一种经由输出入接口连接于主机系统的储存虚拟化控制器,且其可连接至位于主机系统外部的装置,一般而言,外部储存虚拟化控制器通常是独立于主机进行运作。
外部(或独立式)直接存取磁盘阵列控制器(external_direct-accessRAID_controller)是外部储存虚拟化控制器的一个例子。磁盘阵列控制器是将一个或多个物理储存装置的区段组合以构成逻辑介质单元,而它们的构成方式由所采用的特定磁盘阵列型态(RAID_level)决定,其所构成的逻辑介质单元对于主机系统而言,为可连续寻址的,以使每一逻辑介质单元可被利用。典型地,一个单一的磁盘阵列控制器(single_RAID_controller)可支持多种磁盘阵列型态,因此,不同的逻辑介质单元可以由物理储存装置的各个区段藉由不同的磁盘阵列型态而以不同的方式组合而成,所组合成的各个不同的逻辑介质单元则具有各该磁盘阵列型态的特性。
另一个外部储存虚拟化控制器的例子是JBOD(Just_a_Bunch_of_Drives)模拟控制器。JBOD为『仅是一捆盘机』的缩写,是一组物理直接存取储存装置,并经由一个或多个多装置输出入装置连结信道(multiple-device_IOdevice_interconnect_channel)直接连接于一主机系统上。但使用点对点输出入装置连结连接至该主机系统的物理储存装置(如SATA硬盘、PATA硬盘等),无法通过直接连结而构成如前述的JBOD系统,因为这些直接存取储存装置并不允许多个装置直接连接至输出入装置信道。至于智能型的JBOD仿真器,是藉由将输出入请求映像到物理直接存取储存装置的方式,而用来仿真多个多装置输出入装置连结直接存取储存装置,而其中该物理直接存取储存装置是个别地经由点对点输出入装置连结信道连接至JBOD仿真器。
另一个外部储存虚拟化控制器的例子为一种外部磁带备份子系统用的控制器。
将一对外部储存虚拟化控制器配置成一冗余对的主要动机是为了即使是在单个储存虚拟化控制器发生故障或是失效的情形下,主机依旧可以连续不中断的执行数据存取工作,此是可利用在该储存虚拟化控制器中加入一功能以使得其中一个控制器发生障碍或完全失能的情形下另一个控制器可接管其工作而实现。
在装置端,对受该储存虚拟化控制器管理的所有物理储存装置,此两个控制器必须皆能对其进行存取,而不论此物理储存装置原本是否被指定由其所管理。在主机端,则必须使每一个储存虚拟化控制器,即便是在它的同伴储存虚拟化控制器(mate)处于原本就没上线或上线后又因故下线的情况下(例如像是故障/失效、维护操作等所造成的下线),具有将所有可供存取的资源呈现于主机且使该资源可被主机所利用的能力,这些可存取的资源也包括原来就指定由另一个储存虚拟化控制器所管理的资源。
在上述装置端,一代表性的实施方式,是采用多启动者(multiple-initiator)、多装置(multiple-device)类型的装置端输出入装置连结(如:光纤、并列小型计算机系统接口(并列SCSI,parallel_smallcomputer_system_interface),而所有的装置端输出入装置连结皆连接至此两个储存虚拟化控制器,所以此二储存虚拟化控制器中任一个皆可存取连接于装置端输出入装置连结上的任何一个物理储存装置。当此二储存虚拟化控制器皆为在线操作时,每个物理储存装置将由其中一储存虚拟化控制器或另一储存虚拟化控制器管理,至于由谁管理通常是由使用者的设定或系统组态来决定,例如:对一由物理储存装置的磁盘阵列(RAID)组合所构成的逻辑介质单元,此逻辑介质单元中的所有物理储存装置,将由此逻辑介质单元所指定的特定储存虚拟化控制器所管理。
一典型的装置端实施方案,包含有多装置输出入装置连结,其连接至该主机与该二储存虚拟化控制器,并就每一个连结而言,每个虚拟储存控制器将呈现它自己所独有的一组映像至逻辑介质单元的装置识别码(device_ID)。当其中一个特定的储存虚拟化控制器未上线或是下线时,则在线的储存虚拟化控制器会在主机端连结上呈现两组装置识别码,其中一组为自己所拥有,另一组为在正常状态下是指定给其同伴(mate)的,且此在线的储存虚拟化控制器亦将映像逻辑介质单元至这些识别码,其映像的方式与此二储存虚拟化控制器皆在线且完全可操作时所采用的映射方式相同。在此一实施方案中,即使当一储存虚拟化控制器未上线时,主机并不需要特殊功能,来从一个装置/路径转换至另一个,即可继续对所有逻辑介质单元进行存取,这种实施方式通常可以称为「透明冗余(transparent_redundancy)」。
冗余储存虚拟化控制器的组态分为两类,第一类是主动-待命模式(active-standby),在此模式中,其中一个储存虚拟化控制器对储存虚拟化子系统中的所有逻辑介质单元的所有输出入请求进行呈现、管理及处理,而另一储存虚拟化控制器将仅是处于待命状态(standby),而于主动储存虚拟化控制器发生障碍或失能时,随时接替主动储存虚拟化控制器。第二种是主动-主动模式(active-active),在此模式中,此两个储存虚拟化控制器对同时呈现于此储存虚拟化子系统中的各种逻辑介质单元的输出入请求进行呈现、管理及处理。在主动-主动模式中,上述二储存虚拟化控制器一直都准备在另一个储存虚拟化控制器因故障(malfunction)而导致发生障碍或失能的情况下接管对方。主动-主动模式,通常提供较好的效能,因为其两个储存虚拟化控制器的资源(例如:中央处理器(CPU,central_processing_unit)时间、内部总线频宽...等)与单一储存虚拟化控制器相比可负荷较多的输出入请求服务。
在冗余储存虚拟化系统中的另外一个基本要件就是每个储存虚拟化控制器需能监视另一个的状态。此可利用一介于此二储存虚拟化控制器间的控制器间通讯信道(ICC,inter-controller_communications_channel)来完成,是利用此通道来交换该二储存虚拟化控制器的操作状态。此通讯信道可以是专用的,其唯一的作用就是交换与此冗余储存虚拟化子系统的操作相关的参数与数据。或者此通讯信道是一个或多个主机端或装置端的输出入装置连结,经由此种连结,这些操作上的参数、数据交换可连同在这些连结上的主机-储存虚拟化控制器或装置-储存虚拟化控制器输出入请求所关联的数据一起被多任务传输。
此外,冗余储存虚拟化系统的另一个重要要件是一个储存虚拟化控制器要能使另一个储存虚拟化控制器“完全失能”(completelyincapacitate),如此,此储存虚拟化控制器才能不受干扰的完全接替另一个储存虚拟化控制器。举例来说,为了让此一存活的储存虚拟化控制器承接它同伴的身分,其可能需要承接该离线的储存虚拟化控制器其原先呈现于主机端输出入装置连结上的装置识别码,这接下来,将要求该离线的储存虚拟化控制器释出对这些识别码的控制。
上述的“失能作用”要件,典型地是藉由拉启该离线控制器的重置讯号线来实现,拉启重置讯号线将导致所有外部连接讯号线进入一预设状态,以排除对该存活的储存虚拟化控制器可能的干扰。为了实现前述,一种常用的方法是在储存虚拟化控制器之间连结重置讯号线,如此一来一储存虚拟化控制器就能重置另一储存虚拟化控制器。另外一种方法是利用储存虚拟化控制器建立一自我检测的能力的方式来实现,当储存虚拟化控制器自己发生故障时,其可以藉由拉启自我的重置讯号来自杀(例如:其包含一监视定时器(watchdog_timer),若于一预设区间,在储存虚拟化控制器上所执行的程序对此监视定时器的轮询发生失败时,此监视定时器将拉启一重置讯号),而使所有外部连接讯号线进入一预设状态而可排除对存活的储存虚拟化控制器干扰的可能性。
传统上,储存虚拟化采用并列SCSI或是光纤输出入装置连结作为主要装置端输出入装置连结,用来连接物理储存装置与储存虚拟化控制器对,其中并列SCSI或是光纤都是多装置输出入装置连结,多装置输出入装置连结是一种允许多个输出入装置被直接连接至单一或多个主机系统的输出入装置连结,这表示其无须任何额外的装置外介入主动电路(请注意典型的光纤信道仲裁循环(FC-AL)JBOD虽具有装置外主动电路,但此电路的目的并非为了赋予互相连结功能,而是为适应可能发生在直接存取储存装置上的故障或是抽换可能在输出入连结上造成毁灭性损坏的直接存取储存装置)。多装置输出入装置连结中常见的例子是光纤信道FC-AL与并列SCSI。多装置输出入连结的频宽是由藉该连结而互连的所有主机及所有装置所共享。
请参阅图1,图1为一已知冗余外部储存虚拟化计算机系统的方块示意图。请注意,其中主机端输出入装置连结允许一储存虚拟化控制器接替其同伴,藉由接收其同伴正常时呈现于此连结上的输出入装置连结的识别码以及以其同伴相同的方式映像逻辑介质单元至这些识别码。另外需注意的是,该装置端输出入装置连结允许该二储存虚拟化控制器存取所有连接至此装置端输出入装置连结上的物理储存装置,举例来说:一典型的输出入装置连结,可能用于主机端或装置端,为并列SCSI或光纤FC-AL多启动者、多装置输出入装置连结,因此,操作在目标模式(即装置模式)下的此二储存虚拟化控制器都连接至该主机上的一单一连结,且允许操作在启动者模式的此二储存虚拟化控制器连同多个装置皆连结至装置端。然而图1中所示的架构的缺点是,当单一个物理储存装置故障,视其故障的本质为何,将可能导致整个装置端输出入装置连结失效而使所有其它连接至此相同连结上的物理储存装置无法被存取。
图2显示一种改进方案,可有效避免由于一导致单一装置端连结失败的故障而使连接于该相同装置端输出入装置连结的其它物理储存装置的存取中断,其是藉由使用双端口物理储存装置以及对每一个物理储存装置增加一额外的连结而实现。用这种方法,单一装置端输出入装置连结的阻断(可能是因一物理储存装置上的连结控制IC故障而造成),将不会造成其它连接于此相同连结上的其它物理储存装置无法存取,因为连接至每个物理储存装置的第二连结将能被用来不受干扰地存取这些物理储存装置。
图2所示的架构还具有一优点,就是输出入请求负载能被分散于该冗余装置端连结间,因而,与图1所示的每组物理储存装置“单一”连结的结构相比,图2藉此可有效加倍装置端输出入装置连结子系统的整体频宽。在此情况下,一特选的装置端输出入装置连结,典型地为光纤FC-AL,因为目前市售光纤FC-AL物理储存装置的双端口性质,以及此光纤协议的组成允许一启动者(例如储存虚拟化控制器)去决定在不同连结上的那一些连结识别码对应至相同的物理储存装置。
虽然图2中所示的架构在面对装置端输出入装置连结失效的问题上,远比图1中所示的确实更为强健,但其仍存有连接于一物理储存装置的故障使得连接至其双端口端口对上的两条输出入装置连结同时当机的可能性。若发生此情况,再一次,连接在相同连结对上的其它物理储存装置的存取将被中断。且在由物理储存介质的标准单一冗余磁盘阵列(RAID)组合所构成的逻辑介质单元(如RAID5)中,这将是一场大灾难,因为其可造成在此组合中的多个物理储存装置离线而导致整个逻辑储存单元离线。
发明内容
本发明的主要目的是提供一种冗余外部储存虚拟化计算机系统,此计算机系统使用点对点序列讯号传输作为主要装置端输出入装置连结,以解决上述问题。
本发明披露一种冗余外部储存虚拟化计算机系统,包含有:一主机,用来发送输出入请求(IO_request);一冗余储存虚拟化控制器对,其耦接至主机,用来执行输出入操作以响应主机的输出入请求;多个物理储存装置用来提供此计算机系统储存空间。其中每个物理储存装置以一点对点序列讯号连结,耦接至冗余储存虚拟化控制器对,此冗余储存虚拟化控制器对包含有耦接至主机的第一与第二储存虚拟化控制器。在冗余储存虚拟化控制器对中,当第一储存虚拟化控制器未上线或是未运作时,第二储存虚拟化控制器将接替此第一储存虚拟化控制器原先所执行的功能。在本发明的一实施例中此点对点序列讯号连结为一序列先进技术接取接口(SATA,serial_advanced_technology_attachment)输出入装置连结。
本发明的优点之一是在所提供的冗余外部储存虚拟化计算机系统中使用SATA为主要装置端输出入装置连结,且每个物理储存装置都有其专用连结至该储存虚拟化控制器对。
本发明另一优点是该SATA输出入装置连结不仅保护信息的有效负载数据的部份,还可保护控制信息。
本发明进一步披露了一种冗余储存虚拟化子系统,用来提供一主机储存空间,该冗余储存虚拟化子系统包含有:一冗余外部储存虚拟化控制器对,用来执行输出入操作以响应于由该主机发出的输出入请求,其包括有耦接至该主机的一第一与一第二外部储存虚拟化控制器;以及一组物理储存装置包括至少一物理储存装置,用来提供该主机储存空间,该组物理储存装置中的至少一成员包括有一物理储存装置经由一点对点序列讯号连结耦接于该冗余储存虚拟化控制器对;其中,当该冗余储存虚拟化控制器对中的一个储存虚拟化控制器未上线或者上线后又下线,则该冗余储存虚拟化控制器对中的另一个储存虚拟化控制器将自动地接替该冗余储存虚拟化控制器对中该个储存虚拟化控制器原先执行的功能。
本发明还披露了一种应用于一冗余储存虚拟化控制器对中的外部储存虚拟化控制器,包含有:一中央处理电路,用以执行输出入操作以响应一主机的输出入请求;至少一输出入装置连结控制器,耦接于该中央处理电路;至少一主机端输出入装置连结端口,设置于该至少一输出入装置连结控制器的一个中,用来耦接至该主机;以及至少一装置端输出入装置连结端口,设置于该至少一输出入装置连结控制器的一个中,用来耦接至至少一物理储存装置并与的执行点对点序列讯号传递;其中一个该外部储存虚拟化控制器,在另一个外部储存虚拟化控制器未上线或者上线后又离线时,将接替该冗余储存虚拟化控制器组中该另一个外部储存虚拟化控制器原先所执行的功能。
本发明还披露了一种在一具有一第一与一第二外部储存虚拟化控制器并配置为一冗余储存虚拟化控制器对的计算机系统中执行储存虚拟化方法,该方法包含:响应该计算机系统中的一主机端发出的输出入请求,以该冗余储存虚拟化控制器组中的一个储存虚拟化控制器执行输出入操作,并使用点对点序列讯号传递方式至该计算机系统中的至少一物理储存装置;以及当在该冗余储存虚拟化控制器组中的该个储存虚拟化控制器未上线或上线后又下线,则藉由该冗余储存虚拟化控制器对中的另一个储存虚拟化控制器执行该输出入操作以响应该主机发出的该输出入请求,并使用点对点序列讯号传递方式存取该计算机系统中该至少一物理储存装置。
本发明还披露了一种执行储存虚拟化于一具有一第一与一第二外部储存虚拟化控制器而配置为一冗余储存虚拟化控制器对的计算机系统中的方法,该方法包含:响应自该计算机系统中的一主机端发出的输出入请求,以该冗余储存虚拟化控制器对中的一个储存虚拟化控制器执行输出入操作以存取该计算机系统中至少一物理储存装置;以及当在该冗余储存虚拟化控制器组中的该一储存虚拟化控制器未上线或上线后又下线时,则藉由该冗余储存虚拟化控制器组中另一个的储存虚拟化控制器执行该输出入操作以响应该主机发出的该输出入请求,以存取该计算机系统中该至少一物理储存装置;其中以一冗余输出入装置连结端口对执行输出入请求复位路径传送功能,此冗余输出入装置连结端口对包括:一位于该第一储存虚拟化控制器的第一输出入装置连结端口,以及一位于该第二储存虚拟化控制器的第二输出入装置连结端口。
前述本发明所提供的储存虚拟化的方法,其执行过程可以藉由软件程序完成,因此本发明可以以计算机语言撰写程序后再加载一计算机可读取记录介质中,该记录介质可以是IC芯片、硬盘、光盘或其它可记录软件程序的物品。
附图说明
图1为一传统冗余外部储存虚拟化计算机系统的方块图。
图2为另一传统冗余外部储存虚拟化计算机系统的方块图。
图3为依据本发明的一冗余外部储存虚拟化计算机系统的方块图。
图4为利用一条讯号线来控制状态的存取控制开关的方块图。
图5为一利用两条讯号线来控制状态的存取控制开关的方块图。
图6为依据本发明的储存虚拟化控制器的方块图。
图7为图6中所示的中央处理电路的一实施例的方块图。
图8为图7中所示的中央处理芯片组/奇偶性引擎的一实施例的方块图。
图9为图6中所示的SATA输出入装置连结控制器的方块图。
图10为图9中所示的PCI-X转SATA控制器的方块图。
图11为图10中所示的SATA端口的方块图。
图12为一符合SATA协议的传输架构的示意图。
图13为一符合SATA协议的第一帧信息结构的示意图。
图14为一符合SATA协议中第二帧信息结构的示意图。
图15为一转换程序的流程图。
图16为使用二元讯号对存取所有权仲裁机制进行转换程序的流程图。
图17为使用另一个二元讯号对存取所有权仲裁机制进行转换程序的时序图。
图18为图17中所示的转换程序的流程图。
图19为当储存虚拟化控制器组中有一储存需拟化控制器故障时的强制转换程序的流程图。
图20为一输出入请求路径的流程图。
图21为一冗余储存虚拟化控制器连结扩充端口实施例的方块示意图。
图22为一显示如何使用硬件开关而完成可切换连结的方块图。
图23显示一种依赖硬件讯号检测以启动此开关状态的变更的电路设计。
图24显示一种从第一储存虚拟化控制器(SVC1)与第二储存虚拟化控制器(SVC2)各自取得输入讯号C1与C2,以触发此开关状态的变更的电路设计。
图25显示一种图23与图24中所示电路的混合型电路的示意图。
图26为一冗余储存虚拟化控制器连结冗余扩充端口实施例方块示意图。
图27为另一冗余储存虚拟化控制器连结冗余扩充端口实施例的方块示意图。
图28为利用一硬件开关去连结如图27所示的连接于二储存虚拟化控制器的二个输出入装置连结的实施例的方块图。
图29显示一种依赖硬件讯号检测以启动图28所示的硬件开关的开关状态变更的电路设计的示意图。
图30显示一种从第一储存虚拟化控制器(SVC1)与第二储存虚拟化控制器(SVC2)各自取得输入讯号C1与C2,以触发图28所示的硬件开关的开关状态变更的电路设计的示意图。
图31显示一种图29与图30中所示电路的混合型电路。
图32为在冗余储存虚拟化控制器连结扩充端口上输出入请求路径的流程图。
图33为一冗余外部储存虚拟化计算机系统的示意图,其包含每个储存虚拟化控制器中的两个个别的主机端端口,连接至两个完全分开的主机端输出入装置连结以及主机端口。
图34为利用一开关电路完成图33中所示的主机端连结的方块示意图。
图35为一冗余外部储存虚拟化计算机系统的方块示意图,其中每一储存虚拟化控制器上都有一主机端端口,用以连接到一主机端输出入装置连结与主机端口。
图36为可拆卸冗余SATA物理储存装置盒的方块图。
图37为图36所示的可拆卸盒中特有的印刷电路板的较详细的方块图。
图38为一可拆卸冗余PATA物理储存装置盒的方块图。
图39为图38所示的可拆卸盒中特有的印刷电路板的较详细的方块图。
图40为图4所示控制开关活动的真值表。
图41为图5所示控制开关活动的真值表。
图42为当发生故障情况时,用以改变循环通联路径的图表。
图43为图29中所示的电路的真值表。
图44为图30中所示的电路的真值表。
图45为图31中所示的电路的真值表。
附图符号说明
____10 | 主机 | ____20 | SVS |
____200 | SVC | ____220 | 主机端输出入装置连结控制器 |
____236 | RCC连结控制器 | ____240 | 中央处理电路 |
____242 | CPU | ____244 | 中央处理芯片组/奇偶性引擎 |
____246 | ROM | ____248 | NVRAM |
____262 | XOR引擎 | ____264 | XOR_FIFO |
____280 | 存储器 | ____300 | SATA输出入装置连结控制器 |
____310 | PCI-X转SATA控制器 | ____312 | PCI-X接口 |
____314 | 解/多任务仲裁器 | ____316 | 组态电路 |
____318 | 总线接口 | ____340 | 开关电路 |
____342 | 存取控制开关 | ____350 | LCD模块 |
____360 | EMS | ____420 | 物理储存装置 |
____600 | SATA端口 | ____620 | DMA寄存器 |
____630 | 超集寄存器 | ____640 | 指令区块寄存器 |
____650 | 控制区块寄存器 | ____660 | 双端口先进先出缓冲器 |
____670 | DMA控制器 | ____680 | PIO |
____690 | 传输层 | ____700 | 连结层 |
____710 | 物理层 | ____910 | CPU接口 |
____920 | 存储器接口 | ____922 | CM_FIFO |
____924 | 除错码产生电路 | ____926 | 除错码修正电路 |
____930、____932 | PCI接口 | ____934____、936 | PM_FIFO |
____940 | X-总线接口 | ____950 | PM总线 |
____980 | 锁相回路 | ____982 | 计时控制器 |
____984 | 内部寄存器 | ____986 | UART |
具体实施方式
请参阅图3,图3为本发明的一实施例的方块示意图,此系统包含有一主机10以及一冗余储存虚拟化子系统20(SVS,redundant_storagevirtualization_subsystem)。冗余储存虚拟化子系统20包含有一冗余储存虚拟化控制器对(包括第一与第二储存虚拟化控制器(SVC1,SVC2)200,与多个物理储存装置420。此冗余储存虚拟化子系统的架构包含有专用的点对点输出入装置连结,用来连接所有的物理储存装置420至此二储存虚拟化控制器200,其中储存虚拟化控制器200可为一磁盘阵列控制器或是一个JBOD仿真器。
虽然图3中所示仅有一主机10与一储存虚拟化子系统20相互连接,实际应用时可用多个主机10连接一个储存虚拟化子系统20,或是一主机10连接多个储存虚拟化子系统20,或是多个主机10连接多个储存虚拟化子系统20。主机10可为一主机计算机,如一服务器系统、工作站、个人计算机系统或是其它相关计算机等,而且主机10也可为另一储存虚拟化控制器。
为了使上述两个控制器200可存取相同的物理储存装置420,本实施例中在储存虚拟化控制器200与物理储存装置420之间的装置端输出入装置连结路径上插入一存取控制开关342。因为点对点连结的本质,每次仅有一储存虚拟化控制器200能启动存取一个物理储存装置,即该特定物理储存装置在当时所被指定到的储存虚拟化控制器200。而另一个与此物理储存装置420有关的储存虚拟化控制器200则停留在待命状态,其连接此特定的物理储存装置的输出入装置连结则被禁能(disabled)。每个储存虚拟化控制器200有一讯号线与存取控制开关342连接以控制此存取控制开关342,此开关342决定那一个储存虚拟化控制器连结被接通至物理储存装置420。
如图4所示,存取控制开关342外的这些讯号线可以被牵成一单一控制讯号线CS,其依据图40所示的真值表(truth_table)来控制存取控制开关342的状态。另外,亦可如图5所示,存取控制开关342被设计成接收两条控制输入线CS1,CS2,而因为从两个储存虚拟化控制器200发出的讯号有四种可能的组合,故每个储存虚拟化控制器200送出的控制输入线CS1,CS2是依据图41中所示的真值表来决定此存取控制开关342的状态。
请注意,在冗余储存虚拟化子系统中任何主动组件或群组位于一热插拔(hot_swappable)单元中,所以若一组件发生失效时,此子系统并不需要关机即可更换此组件,此种热插拔单元一般被称为现场可更换单元(FRU,field_replaceable_unit)。因此,主动组件,如:物理储存装置与存取控制开关,很自然地应设置于热插拔单元中,且将物理储存装置与存取控制开关放置于同一热插拔单元是有其意义的,因为如果缺少任何一方,剩下的另一方也不能独立运作。因此,存取控制开关与物理储存装置典型地设置于可拆卸的物理储存装置盒(physical_storage_device_canister)中,图36与图38,即显示了此种设计的方块示意图。
在一实施方案中,在此储存虚拟化子系统20中的所有的物理储存装置420可组合形成一物理储存装置阵列400,以及所有存取控制开关342可组成一开关电路340,图6即为此种实施方案的一个例子,图6为本发明中连接至主机10及物理储存装置阵列400的储存虚拟化控制器200的一实施例方块图。此实施例中,第一储存虚拟化控制器(SVC1)200包含有一主机端输出入装置连结控制器220、一中央处理电路(CPC,centralprocessing_circuit)240、一存储器280、一SATA输出入装置连结控制器300以及一冗余控制器通讯(RCC,redundant_controllercommunicating)连结控制器236。此处虽以分开的功能方块描述,但在实际应用时,部份甚至全部的功能方块(functional_block)皆可整合在一单一芯片上。例如:RCC连结控制器236能与主机端输出入装置连结控制器220整合为一单芯片IC。
主机端输出入装置连结控制器220连接至主机10及中央处理电路240,用来作为第一储存虚拟化控制器(SVC1)200及主机10之间的接口及缓冲,其可接收由主机10传来的输出入请求和相关数据,并且将其转换和/或映像至中央处理电路240。主机端输出入装置连结控制器220可以包含有一个或多个用来耦接于主机10的主机端端口。此处所提及的端口的类型可以为:光纤信道支持fabric连结(fibre_channel_supportingfabric)、点对点连结、公用回路连结和/或专用回路连结于目标模式,操作于目标模式的并列小型计算机系统接口(并列SCSI,parallel_smallcomputer_system_interface)、支持因特网SCSI(iSCSI,internet_SCSI)协议且操作于目标模式的以太网络,操作于目标模式的序列附加SCSI(SAS,serial-attached_SCSI),以及操作于目标模式的序列先进技术接取接口(SATA,serial_advanced_technology_attachment)。
当中央处理电路240接收到来自主机端输出入装置连结控制器220的主机输出入请求时,中央处理电路240会将此输出入请求剖析,并且执行某些操作以响应此输出入请求,以及将所请求的数据和/或报告和/或信息,由第一储存虚拟化控制器200经由主机端输出入装置连结控制器220传送至主机10。将主机10传入的输出入请求剖析之后,若所收到的为一读取请求且一个或多个操作被执行以为响应时,中央处理电路240会由内部或由存储器280中或藉由此二种方式取得所请求的数据,并将这些数据传送至主机10。若所请求的数据无法于内部取得或并不存在于存储器280,该读取请求将会经由SATA输出入装置连结控制器300及该开关电路340发送至物理储存装置阵列400,然后这些所请求的数据将由物理储存装置阵列400传送至存储器280,之后再经由主机端输出入装置连结控制器220传送到主机10。当由主机10传入的写入请求(write_request)传达至中央处理电路240时,于写入请求被剖析并执行一个或多个操作后,中央处理电路240通过主机端输出入装置连结控制器220接收从主机10传入的数据,将其储存在存储器280中。对于同步或异步装置操作两者,数据皆经由中央处理电路240传送至物理储存装置阵列400。当该写入请求为一回写请求(write_back_request),输出入做完报告(IO_complete_report)会先被传送至主机10,而后中央处理电路240才会执行实际的写入操作;而当该写入请求为一完全写入请求(write_through_request),则输出入做完报告会在数据已实际写入物理储存装置阵列400后才被传送至主机10。存储器280连接于中央处理电路240,其作为一缓冲器,用来缓冲传送于主机10及物理储存装置阵列400之间通过中央处理电路240的数据。实际应用时,存储器280可以是动态随机存取存储器(DRAM,dynamic_randomaccess_memory),或更特别地,该DRAM亦可为同步动态随机存取存储器(SDRAM,synchronous_dynamic_random_access_memory)。
SATA输出入装置连结控制器300为介于中央处理电路240及物理储存装置阵列400间的装置端输出入装置连结控制器,用来作为储存虚拟化控制器200及物理储存装置阵列400间的接口及缓冲。SATA输出入装置连结控制器300接收由中央处理电路240传入的输出入请求及相关数据,并将其映像和/或传送至物理储存装置阵列400。为了符合SATA协议的规范,SATA输出入装置连结控制器300会将经由中央处理电路240传入的数据及控制讯号再格式化,并且将这些数据及讯号传送至物理储存装置阵列400。
在本实施例中,可于中央处理电路240上附接一箱体管理服务电路360(EMS_circuitry,enclosure_management_service_circuitry),作为一容置物理储存装置阵列400箱体的管理电路。然而储存虚拟化子系统20亦有其它的配置方式,例如可依各种不同产品的功能设计而定,而将箱体管理服务箱体管理服务电路360省略,或是将箱体管理服务箱体管理服务电路360整合在中央处理电路240中。
在本实施例中,在第一储存虚拟化控制器(SVC1)200上的RCC连结控制器236用来连接中央处理电路240到第二储存虚拟化控制器(SVC2)200。除此之外,SATA输出入装置连结控制器300经由开关电路340连接至物理储存装置阵列400,开关电路340亦连接至第二储存虚拟化控制器(SVC2)200。在此一架构中,第二储存虚拟化控制器(SVC2)200可附接于第一储存虚拟化控制器(SVC1)200,且物理储存装置阵列400可藉由开关电路340,而被此两个储存虚拟化控制器200所存取。更甚者,由主机10发出的控制/数据讯号可从中央处理电路240通过RCC连结控制器236传送给第二储存虚拟化控制器(SVC2)200或更进一步地传送给一第二物理储存装置阵列(图中未示)。
请参阅图7,图7为中央处理电路240的一实施例,其中包含有CPU芯片组/奇偶性引擎224(CPU_chipset/parity_engine),一中央处理器242(CPU),一只读存储器246(ROM,read_only_memory),一非易失性随机存取存储器248(NVRAM,non-volatile_random_access_memory),一液晶显示模块350(liquid_crystal_display_module,LCD_module),及一箱体管理服务电路360。其中该CPU_242可为,例如,一Power_PC_CPU,而ROM_246可为一闪存,用来储存基本输入/输出系统(BIOS)和/或其它程序。NVRAM_248用来储存该物理储存装置阵列输出入操作执行状态的相关信息,以备输出入操作尚未做完前发生不正常电源关闭时,作检验使用。LCD模块350则是用来显示子系统的操作状态,箱体管理服务电路360用来控制该物理储存装置阵列的电源及进行其它的管理。ROM_246,NVRAM_248,LCD模块350及箱体管理服务电路360皆经由一X-总线(X-bus)连结至CPU芯片组/奇偶性引擎224。另外,该NVRAM_248及该LCD模块350为可选择项目,在本发明的另一种配置中可以省略不设。
图8为本发明中CPU芯片组/奇偶性引擎224的一实施例,CPU芯片组/奇偶性引擎224包含有奇偶性引擎260,CPU接口910,存储器接口920,周边组件连结(PCI,peripheral_component_interconnect)接口930、932,X-Bus接口940,及主要存储器(PM,primary_memory)总线950,其中PM总线950,举例而言,为一64-bit,133Mhz总线,且连接至奇偶性引擎260、CPU接口910、存储器接口920、PCI接口930、932、X-Bus接口940上,用以于其间通联数据讯号及控制讯号。
由主机端输出入装置连结控制器220所发出的数据及控制信号经由PCI接口930,传送至PM先进先出缓冲器934(PM_FIFO)中缓冲,再进入CPU芯片组/奇偶性引擎224。其中连结至主机端输出入装置连结控制器220的PCI接口930可为,举例而言,64-bit,66Mhz的频宽。于PCI从属周期(PCI_slave_cycle)中,PCI接口930拥有PM总线950(PM_Bus),使PM先进先出缓冲器934中的数据及控制信号被传送至存储器接口920或是CPU接口910。
由PM_Bus_950传至CPU接口910的数据及控制信号,而后会传送至CPU_242进行进一步的处理,而CPU接口910及CPU_242间的沟通管道则可为,举例而言,64-bit数据传输线及32-bit地址线来进行。此数据及控制信号会经由一频宽为64-bit,133Mhz的CPU至存储器先进先出缓冲器922(CM_FIFO,CPU_to_memroy_FIFO),传送至存储器接口920。
在CM先进先出缓冲器922及存储器接口920之间,有一除错码产生电路924(ECC_circuit,error_correction_code_circuit),用以产生一ECC码,而其产生的方式可为,举例而言,将8-bit的数据以异或(XOR)运算后,产生一单一位的ECC码。接下来,存储器接口920将数据及ECC码储存在存储器280中。该存储器280可为,举例而言,SDRAM。而存储器280中的数据经过除错码修正电路926(ECC_correction_circuit),并与除错码产生电路924中的ECC码作比较,最后再被传送到PM_Bus_950,其中除错码修正电路926是用来进行单一位自动修正(1-bitauto-correction)及多位检错(multi-bit_error_detecting)。
奇偶性引擎260响应于CPU_242的指示,来执行一特定磁盘阵列型态的奇偶性功能。当然,在一些特定的条件下,比如说RAID0,奇偶性引擎260可以关掉而不执行奇偶性功能。在图8所示的实施例中,奇偶性引擎260包含有一XOR引擎262经由XOR先进先出缓冲器(XOR_FIFO)264而连接至PM_Bus_950。该XOR引擎262,举例而言,可对一给定的地址及长度的存储器位置来执行XOR运算。
锁相回路980(PLL,phase_locked_loop)是用于在相关讯号间维持适当的相移(phase_shift)。而计时控制器982(timer_controller)是用来提供各种不同时钟及讯号的时间基准。内部寄存器984(internalregister)是用来暂存CPU芯片/奇偶性引擎224的状态,及控制PM_Bus_950中的数据流动,而一对通用异步收发器(UART,universal_asynchronousreceiver_and_transmitter,)功能方块986则是用作CPU芯片/奇偶性引擎224对外的接口,且该接口规格为RS232。
在实际应用时,PCI接口930,932可代换为周边组件连结扩充(PCI-X,peripheral_component_interconnect_extended)接口,或者是以周边组件连结快捷(PCI_Express)接口取代PCI接口930,932。
请参考图9,图9为图6中SATA输出入装置连结控制器300的方块图,在本实施例中,SATA输出入装置连结控制器300包含有两个PCI-X转SATA控制器310(PCI-X_to_SATA_controller)。图10为图9中PCI-X转SATA控制器310的方块图,其中每个PCI-X转SATA控制器310包含有一连接至中央处理电路240的PCI-X接口312,一连接至PCI-X接口312的译码/多任务仲裁器314(Dec/Mux_arbiter),以及八个连接至Dec/Mux仲裁器314的SATA端口600。PCI-X接口312包含有一连接至Dec/Mux仲裁器314的总线接口318,以及一用来储存PCI-X转SATA控制器310组态的组态电路316(configuration_circuit)。Dec/Mux仲裁器314将在PCI-X接口312与多个SATA端口600间进行仲裁,且执行自PCI-X接口312至SATA端口600的交易(transaction)的地址译码。而数据及控制讯号将经由此PCI-X转SATA控制器310的SATA端口600,被传送至物理储存装置420。在实际应用中,PCI-X转SATA控制器310可由PCI转SATA控制器取代,而在PCI转SATA控制器中,PCI-X接口312可由一PCI接口取代。同样地,在其它的实施例中,PCI-X转SATA控制器310可由一PCI_Express转SATA控制器取代,而在PCI_Express转SATA控制器中,PCI-X接口312系由一PCI_Express接口取代。
接下来请参考图11,图11为图10中SATA端口600的一实施例方块图。如图11中所示,SATA端口600包含有一超集寄存器630(supersetregister),一指令区块寄存器640(command_block_register),一控制区块寄存器650(control_block_register),以及一直接存储器存取寄存器620(DMA_register),前述所有的寄存器系经由Dec/Mux仲裁器314,而连接至PCI-X接口312的总线接口318。经由填值于上述的寄存器中,数据得以通过一由直接存储器存取控制器670所控制的双端口先进先出缓冲器660,而在Dec/Mux仲裁器314与传输层690(transport_layer)间传输。数据传送至传输层690后,被再格式化成为帧信息结构(FIS,frameinformation_structure),并传送到连结层700(link_layer)。
连结层700稍后将帧信息结构再格式化成为帧(frame),以加入帧起始信息(SOF,start_of_frame),循环冗余校验码(CRC,cyclic-redundancycheck_code),帧结束信息(EOF,end_of_frame)等,并将其以8b/10b编码方式转译成8b/10b编码的字符而实现,并将其传送到物理层710(PHYlayer)。
物理层710经由一对差动讯号线(differential_signal_lines)—传输线LTX+及LTX-—传送出讯号至物理储存装置420,并经由另一对差动讯号线—接收线LRX+及LRX-—接收来自物理储存装置420的讯号,其中各组的两条讯号线,例如LTX+及LTX-,同时个别传送以一参考电压Vref为准的正负电压的讯号TX+/TX-,例如+V/-V或是-V/+V的电压讯号,所以它们的电压差是+2V或是-2V,如此一来便可增加讯号的品质。在LRX+及LRX-接收在线也可以使用相同的方法接收讯号RX+/RX-。
当一帧由物理层710传送至连结层700,连结层700将用8b/10b编码的字符进行译码,并且除去SOF,CRC,EOF的部份,其中经由帧信息结构FIS计算得出的CRC将会被拿来与所接收到CRC作比较,用来确定所接收的信息的正确性。当传输层690接收到来自连结层700的FIS讯号,传输层690将会决定FIS的型式,并依照FIS的型式将FIS的内容传送到所指定的区域。
图12为符合SATA协议的传输结构,其中在序列线中通联的讯号为一连串使用8b/10b编码的字符,其最小单位为双字组(double-word,32位)。每一个双字组的内容将被组合以提供低阶的控制信息,或是用以传送主机与相连结的装置间的信息,而在讯号在线传送的两种数据结构为基元(primitive)以及帧。
一基元是由一单一的双字组所组成,其为主机与装置间通讯信息中最简单的单位。当一基元中的字节在编码之后,其所产生的型样(pattern)便不容易被误解成其它型式的基元或是其它任意的型态。基元主要的用途是传送实时(real-time)状态的信息,这些信息是用来控制信息的传递以及协调主机及装置间的通讯。一基元的第一字节为一特别的字符。
一帧是由多个双字组所构成,并以SOF(Start_of_Frame)基元开始,以EOF(End_of_Frame)基元结束。在SOF基元之后为一使用者有效负载,称之为帧信息结构(FIS,ftame_information_structure)。另外循环冗余校验码(CRC)为紧接在EOF基元之前的最后非基元双字组,且CRC为依据FIS运算得来。另外,介于SOF与EOF间可以有流程控制基元HOLD或是HOLDA用来调整数据流,以达到速率匹配(speed_matching)的目的。
传输层690用来建构FIS以用于传送,以及是于自连结层700接收到FIS时将其分解。且该传输层690并不维护ATA指令或是先前的FIS内容的前后关系(context)。当收到请求时,传输层690会收集FIS内容,并依照正确的顺序建构FIS。FIS的型态有很多种,图13及14分别为其中之一。
请参阅图13,图13为一信息帧的示意图。如图中所示,一直接存储器存取设定的FIS在字段0处包含有一标头(HEADER),而其第一字节(字节0)则定义了该FIS的型态(41h),此FIS的型态则定义了此FIS其余的字段,和定义它的全部长度为七个双字组。字节1中的位D则标示了该后续数据传送的方向,D为1表示传送端至接收端,D为0则表示接收端至传送端。字节1中的位I为一中断位(interrupt_bit),而位R为一保留位,且设为0。直接存储器存取缓冲器识别码的高/低字段(DMA_bufferidentifier_high/low_field,字段2和字段1),则分别标示了该主机存储器的直接存储器存取缓冲区域。直接存储器存取缓冲器偏移字段(DMAbuffer_offset_field,field_4),为进入缓冲器内的字节偏移。直接存储器存取传送计数字段(DMA_transfer_count_field,field_5),则为此装置所读取或写入的字节数量。
请参阅图14,图14为另一型态的信息帧的示意图。如图中所示,一数据FIS(DATA_FIS)于字段0处包含有一标头,且该第一字节(字节0)定义了该数据型FIS的型式(46h),而此FIS的型式则定义了其余的字段以及它的全长为n+1双字组(double-word)。还有,字节1中的R位则为保留位,并且设定为0,而字段1至n为双字组数据,其中包含有要传送的数据。一单一数据FIS内的数据有上限。
请回顾在图6的实施例,主机端输出入装置连结控制器220及装置端输出入装置连结控制器300(SATA输出入装置连结控制器300),可使用相同类型的IC芯片,而其中主机端输出入装置连结控制器220上的输出入装置连结端口的组态被设定为主机端的输出入装置连结端口,而装置端输出入装置连结控制器300中的输出入装置连结端口的组态则被设定为装置端的输出入装置连结端口使用。另外,亦可采用一单一芯片,其组态可被设定为同时包含有主机端输出入装置连结端口及装置端输出入装置连结端口,用以在同一时间分别耦接至主机10及物理储存装置阵列400。
请回顾图4、图5,通常,图4、图5中所述的存取控制开关342维持在一状态而使被指定处理装置端输出入请求的储存虚拟化控制器200配接至物理储存装置420的状态,而这些装置端输出入请求为响应主机端输出入请求所产生的操作的结果。但是,在某些情况下,其必须暂时允许另一个储存虚拟化控制器200来存取物理储存装置420,此情况可能出现的一个组态的例子是,储存虚拟化控制器200中之一被选定为主人(Master),当此储存虚拟化控制器200涉及某些物理储存装置相关管理功能时,且此管理功能由此储存虚拟化控制器200所执行(例如:监视物理储存装置420的健康状态或对物理储存装置420上的介质的某一个保留给储存虚拟控制器组内部使用的区域进行存取),同时,一些可经由主机端输出入装置连结而可被主机10存取的逻辑介质单元,则是指定给另一个储存虚拟化控制器200作为处理主机端输出入请求之用。在此情况下,该储存虚拟化控制器200彼此之间可以互相通讯(如可能可以通过图6所示的RCC连结控制器236),以决定一适当的机会,使开关342的状态得以安全地被改变,进而允许另一个储存虚拟化控制器200对此物理储存装置420进行存取,而无须中断物理储存装置420正在进行中的存取。此步骤在其后将称之为“物理储存装置存取权转移”。
图15为一转换程序的流程图,其中每一储存虚拟化控制器200皆能决定存取控制开关342目前的状态,其是利用允许储存虚拟化控制器200读回控制讯号的状态,或藉由使每一个储存虚拟化控制器200在存储器中维护一存放目前状态的镜像而实现。一目前未配接至物理储存装置420却要求存取物理储存装置420的储存虚拟化控制器20(称为存取权请求者,access_requester),将发出一个请求给目前正配接至物理储存装置420的储存虚拟化控制器200(称为存取权所有者,access_owner),使此存取控制开关342的状态得以被切换成允许此存取权请求者存取物理储存装置420。当存取权所有者接收到此请求时,此存取权所有者会等待一“适当”的时机,来开始此转换程序,此程序必须使任何正在进行中(pending)的输出入请求被做完、并将所有尚未开始执行的输出入请求放入队列中(queueing)。当所有正在进行中的请求都被做完,此存取权所有者就会更改它的开关控制讯号的状态,以释出对物理储存装置420的存取能力,然后发送一个应答讯号(acknowledgement)给存取权请求者,告知它现在可以安全的存取物理储存装置420了。此时,存取权请求者也更改其开关控制讯号的状态,以取得可对物理储存装置进行存取的能力,这使得转换程序完成,同时此存取请求者将变成新的存取权所有者。
此时,新的存取权所有者是可自由的依意愿去发出输出入请求给物理储存装置420,并且新的存取权所有者可保留此所有权,直到原本的存取权所有者请求将存取权切换回去,并且进行上述相同的步骤。或者,在一些“适当”的时机,例如,所有当时要发的输出入请求皆已执行完毕时,此新的存取权所有者可以自动地开始切回(switch-back)程序,此是藉由更改其存取开关控制讯号的状态,以释出对物理储存装置420的存取能力,以及发出一主动发出的(unsolicited)应答讯号给原先的存取权所有者,告知它新的存取权所有者已释出存取权,此原先的存取权所有者现在可以收回存取权了。
基本上来说,不论是新的存取权所有者保留所有权直到原本的存取权所有者发出一“切回”请求,或是自动转移所有权给原本的存取权所有者,要采用何种方式,可以是依系统预设而固定,或是根据一些因素而动态决定,如:此二个储存虚拟化控制器相对的存取频率,或比对保留所有权与自动归还所有权给原本的存取权所有者此两方式在效能上相对的影响。
为实现上述转换程序,有一些控制器间通讯的机制可供选用。在这里提出一种可能的通讯机制,其为二元讯号对存取所有权仲裁机制(binarysignal_pair_access_ownership_arbitration_mechanism),其中每一SATA输出入装置连结均有一对“存取请求”讯号线,对于每一条数字二元讯号线,都有一个储存虚拟化控制器200可设定/清除此讯号线(在此讯号在线的“主动”储存虚拟化控制器),以及有另一储存虚拟化控制器200可读取此讯号线的状态(“被动”储存虚拟化控制器)。此存取请求讯号线中之一以第一储存虚拟化控制器(SVC1)200为主动端、第二储存虚拟化控制器(SVC2)200为被动端,同时,另一存取请求讯号线以第一储存虚拟化控制器(SVC1)200为被动端、第二储存虚拟化控制器(SVC2)200为主动端。在被动端,储存虚拟化控制器200读取其另一个储存虚拟化控制器的存取请求讯号的目前状态,以及从上回的读取后是否讯号线曾改变过状态。当读取时,则后者将被清除,亦即从上回的读取后是否讯号线曾发生过状态改变的纪录将会被清除。
在此一机制中,起初,一储存虚拟化控制器200拥有SATA输出入装置连结的所有权以及相连于此输出入装置连结的讯号线为拉启(assert)状态,当另一个储存虚拟化控制器200意欲取得所有权时,其成为一存取请求者并且拉启其“主动”讯号线,然后监视其“被动”讯号线,监看其状态的改变,此改变代表者此讯号线在一些时点曾被停止拉启(deassert),意即,代表者存取权所有者应答其请求。此时,此发出请求的储存虚拟化控制器200可利用改变存取控制开关342的状态,来接管该SATA输出入装置连结,所以该发出请求的储存虚拟化控制器200就配接到物理储存装置420上了。
另一方面,此存取权所有者会持续监视其被动讯号线是否有拉启,若检测此被动讯号线拉启后,就会在一个适当的时机,开始等待任何正在进行中的输出入请求,同时将任何新的输出入请求放入队列中。当所有正在进行中的输出入请求皆做完,藉停止拉启其主动讯号线,以应答此存取控制请求。如果其希望归还存取控制,例如当有新的输出入请求被排在队列中而要发出时,则重新拉启此主动讯号线。存取权请求者则是监视被动讯号线是否有状态上的改变,而不是监视一停止拉启状态,因为存取权所有者可能在停止拉启之后接着立刻拉启讯号线,而使存取权请求者根本没有机会检测到此停止拉启状态。图16为显示描述于前的流程图。
上述二元讯号对存取所有权仲裁机制的一变形以达到协调存取所有权转移,是利用一对硬件电路,此处称为存取所有权仲裁(AOA,aceessownership_arbitration)电路,每个储存虚拟化控制器一个,以间接控制存取控制开关控制讯号,而不是控制那些直接由储存虚拟化控制器来控制的讯号。
此二个存取所有权仲裁电路中之一的输出端连接并控制与其中一个储存虚拟化控制器相关的存取控制开关控制讯号,而另一个存取所有权仲裁电路的输出端连接并控制与另一储存虚拟化控制器相关的存取控制开关控制讯号。除此之外,每一存取所有权仲裁电路将来自于此二储存虚拟化控制器的存取所有权请求讯号(AOR,access_ownership_requestsignals)作为输入端。当一储存虚拟化控制器未拥有存取权也没有请求存取所有权时,它的存取所有权请求讯号会维持在停止拉启的状态。在此状态下,与这个储存虚拟化控制器关联的存取所有权仲裁电路的输出讯号为未活动。当此储存虚拟化控制器欲取得所有权时,其拉启它的存取所有权请求讯号,如果此时另一个储存虚拟化控制器的存取所有权请求讯号未活动,则此发出请求的储存虚拟化控制器关联的存取所有权仲裁电路将会拉启它的输出讯号,从而拉启与发出请求的储存虚拟化控制器关联的存取控制开关控制讯号。如果此时另一储存虚拟化控制器的存取所有权请求讯号为活动中,则此发出请求的储存虚拟化控制器的存取所有权仲裁电路输出仍维持停止拉启状态,直到另一个储存虚拟化控制器的存取所有权请求讯号停止拉启后,此发出请求的储存虚拟化控制器的存取所有权仲裁电路输出才会变为活动中。这发出请求的储存虚拟化控制器的存取所有权仲裁电路的输出接着维持活动中,直到此发出请求储存虚拟化控制器的存取所有权请求讯号停止拉启为止,且此活动不受另一储存虚拟化控制器的存取所有权请求讯号所影响。基本上说,该二存取所有权仲裁电路可紧靠着存取控制开关而放置,譬如像是与存取控制开关一奇偶性于该物理储存装置盒中。
在这存取权仲裁机制中需要有一判定设备(facility),能在两个储存虚拟化控制器同时拉启他们的存取所有权请求讯号的情况下,使一储存虚拟化控制器来判定它是不是被授与存取所有权,以及使目前拥有存取所有权的储存虚拟化控制器来判定另一储存虚拟化控制器何时请求存取所有权。前者可藉由使一储存虚拟化控制器具有决定存取控制开关的状态的能力而实现,而使一储存虚拟化控制器具有决定另一储存虚拟化控制器的存取所有权请求讯号的状态的能力则可实现后者。然而,既然此两个判定是在存取所有权转移过程期间不同的时间点做出的,它们可以合并成一个单一设备,其是由每一储存虚拟化控制器提供单一数字二元讯号所构成,称为另一个储存虚拟化控制器存取所有权请求讯号(ASAOR,alternatestorage_virtualization_controller_access_ownership_requestsignal),并且由储存虚拟化控制器上所执行的固件来读取此讯号的状态。正常状态下,这讯号会反映另一储存虚拟化控制器的存取所有权请求讯号的状态,然而,当此储存虚拟化控制器取得存取所有权时,它的ASAOR会被清除为不活动(inactive),而不受另一个储存虚拟化控制器的存取所有权请求讯号的状态影响,且会维持此一状态直到此储存虚拟化控制器的固件读取,其后,它能回到正常状态下而反映另一个储存虚拟化控制器的存取所有权请求的状态。图17为此实施方案中不同讯号间相互影响的时序图。请参阅图18,图18为对应至图17的存取权仲裁机制的流程图。如图中所示,在此一存取权仲裁机制中,当一个储存虚拟化控制器意欲取得所有权时,它会拉启它的AOR讯号,然后开始监视它的ASAOR讯号。当此储存虚拟化控制器检测到它的ASAOR讯号为不活动时,则知道其已经取得所有权且可以进行存取物理储存装置了。接着,此储存虚拟化控制器会维持其AOR讯号为拉启的状态,直到其意欲释出存取所有权为止,亦即停止拉启其AOR讯号。上述整个过程中,此储存虚拟化控制器想要维持存取所有权,则它除了维持它的AOR讯号为拉启外,它也监视它的ASAOR讯号是否拉启,若它检测到它的ASAOR讯号拉启,表示另一个储存虚拟化控制器希望取得所有权,则在一个适当的时点,它会开始等待所有正在进行中的输出入请求做完,同时将所有新的输出入请求放入队列,而当所有正在进行中的输出入请求都做完时,它才会释出所有权,并且停止拉启它的AOR讯号。如果它希望存取所有权被归还,如,当有一些新的输出入请求在队列中要被发出时,则它会立刻重新拉启它的AOR讯号。
另一种可能的通讯机制是经由支持多重位和/或字节信息传送的通讯信道来传递存取所有权转移请求或是应答讯息。一组低成本、专用的通讯信道-例如集成电路间信道(I2C,inter-IC)-可用来实现前述交换这些请求或应答讯息的目的。此外,亦可利用现存的、用以允许在冗余对中的二个储存虚拟化控制器彼此互相沟通的控制器间通讯信道(ICC)来实现,去交换这些存取所有权转移请求与应答讯息,作为此二储存虚拟化控制器间交换的正常状态同步信息的一部分。这些控制器间通讯信道可以为光纤信道、序列先进技术接取接口信道、并列小型计算机系统接口信道、以太网络以及序列附加小型计算机系统接口信道等。
一种强制存取所有权转换的情况是,当存取权所有者200故障而另一个储存虚拟化控制器200必须接替其功能时。图19显示在这种情况下转换存取所有权的程序。当另一个储存虚拟化控制器200检测到此故障储存虚拟化控制器200无法正常运作时,另一个储存虚拟化控制器200就会拉启故障储存虚拟化控制器的重置讯号(reset_signal),使其能完全地失能,并迫使所有的外部讯号线进入预设状态。其中上述外部讯号线中之一为此故障储存虚拟化控制器200的存取控制开关控制讯号;在拉启此储存虚拟化控制器的重置讯号时,这控制讯号线即被设定成使存活的储存虚拟化控制器200能够配接至物理储存装置420的状态。在拉启此故障储存虚拟化控制器的重置讯号之后,该存活的储存虚拟化控制器200就会设定其存取控制开关控制讯号,使成为配接到物理储存装置420的状态,如此一来,即完成转换存取权的程序。
存取控制开关342将会持续此状态直到故障储存虚拟化控制器200被更换或是重新上线,并且其请求所有权转移。其中对每个储存虚拟化控制器200处于重置(reset)、电源启动(power-Up)、或初始化(initialization)期间时,其存取控制开关讯号线的状态维持在使此储存虚拟化控制器200本身不能够配接至物理储存装置的状态,以确保其不会因不慎迫使存取控制开关342进入一中断存取的状态,而干扰其它在线储存虚拟化控制器可能正在进行的物理储存装置的存取。
就正常状态下不具有物理储存装置420存取所有权的储存虚拟化控制器200而言,一处理临时性(occasional)存取需求的另一个方法是,令存取权所有者扮演一代理者,用来发送此请求存取的储存虚拟化控制器200的输出入请求,此处请求存取的储存虚拟化控制器称为存取请求者(access_requester),此方法中必须执行一称为“输出入请求复位路径传送(IO_request_rerouting)”的操作。在这种方法中,存取请求者必须转移所有必要的输出入请求的信息给存取权所有者,用以建构一输出入请求而发送给物理储存装置420。除输出入请求信息之外,在输出入请求发送或执行期间或之前,存取请求者将会转移任何要被写入物理储存装置的有效负载数据给存取权所有者,且在输出入请求执行后或执行期间,任何从物理储存装置中读取的有效负载数据将会被代转回此存取请求者。在此输出入请求执行做完,将会回传此操作做完的状态给存取请求者,此操作做完状态典型地为一指示操作成功或失败以及失败理由的信息。图20是描绘此一方法的流程图。
输出入请求复位路径传送的功能可经由一冗余输出入装置连结端口对而被执行,此输出入装置连结端口对中的每个成员端口分别设置在冗余储存虚拟化控制器对中各储存虚拟化控制器上,但却通过输出入装置连结连接至相同的物理储存装置。另外此冗余输出入装置连结端口对的一个成员端口可以是一个装置端输出入装置连结端口,或是一个混合输出入装置连结端口。此混合输出入装置连结端口,对一些输出入操作是扮演一装置端输出入装置连结端口,以及对其他输出入操作是扮演一主机端输出入装置连结端口。在这一点上,此冗余输出入装置连结端口对中的成员端口可包含点对点输出入装置连结端口,例如:SATA连结,或者是,其可包含多装置输出入装置连结端口,例如:光纤信道或并列SCSI连结。此外,如此的输出入请求复位路径传送的功能也可以适用于利用此冗余储存虚拟化控制器对的互补扩充端口来执行输出入请求。此冗余储存虚拟化控制器对的互补扩充端口将在下文中结合图21至图32详细解说。
相较于为使两个储存虚拟化控制器200都能存取每一个物理储存装置420而来来回回地实际转移存取所有权,此输出入请求复位路径传送具有两个优点。首先,因SATA协议的本质,在此连结上从停止而未活动状态(down_state)至准备好可活动状态(up_state)时,其要求一相当长的起动期间(bring-up),这可能会使得在存取权请求者从存取权所有者处接收到所有权时到所有权请求者能真正开始启动物理储存装置存取之间会有一显著的延迟。其次,使SATA接口停摆随即再使其准备好的过程,可能会需要造成任何一端的SATA接口电路进入异常状况处理的状态,而因为异常状况处理程序的测试通常不会像正常状况程序的测试一样的彻底,因此,有时候错误可能会出现而干扰此连结去成功的再起动(re-bring-up)。为了减少此一风险,最好试着去减少任何一端需解译与处理异常状况的产生,在此例子中,包括减少存取所有权需转移的情况。
所有的装置端输出入装置连结都是SATA的“纯”SATA储存虚拟化控制器有一个限制,就是它的可连结的物理储存装置的数目受限于可包装在一单一储存虚拟化控制器当中的装置端输出入装置连结的数目,而SATA的规格当中,讯号线的最大长度仅限于1.5公尺,以致于连接到一储存虚拟化控制器的物理储存装置一定要靠得够近,使讯号线的长度不超过1.5公尺。由于这些限制,SATA储存虚拟化子系统只能提供最多16个SATA物理储存装置的连接。所以一纯SATA储存虚拟化子系统无法像光纤FC-AL储存虚拟化子系统一样,拥有经由同一组装置端输出入装置连结的外接扩充机箱连接至最多为250个物理储存装置的扩充性。
为了克服以上的限制,本发明的储存虚拟化控制器上选择性地可包含一个或多个扩充用装置端多装置输出入装置连结(expansion_device-sidemultiple-device_IO_device_interconnect),在此称为装置端扩充端口,如并列SCSI或是光纤FC-AL或是支持iSCSI的以太网络或是SAS等,而这些连结可允许外接扩充机箱(chassis)。这些机箱可为由物理储存装置所构成的原始型JBODs(native_JBODs),是直接连接到连结上而不需要介于其中的转换电路,也可是一仿真该原始型JBODs的智能型JBOD仿真子系统。此智能型JBOD仿真子系统使用SATA或PATA物理储存装置组合及单一或者冗余储存虚拟化控制器所构成,其中的储存虚拟化控制器是用来提供将连接JBOD子系统与主要储存虚拟化子系统(primary_storagevirtualization_subsystem)的多装置端输出入连结协议,转换到连接JBOD储存虚拟化控制器与其所管理的物理储存装置的装置端输出入装置连结(SATA与PATA)协议。当然,扩充端口亦可以是SATA扩充端口,惟其有连结长度与物理储存装置数量上的限制,一如前文所述一般。
本发明提出三种装置端扩充端口布线实施例以供选择。图21为其中一实施例,其中在一个储存虚拟化控制器上的每一个装置端扩充端口是与在另一储存虚拟化控制器上的互补物(complement,亦即互补扩充端口)相连系,此处称为冗余储存虚拟化控制器互连扩充端口(redundant_SVCinterconnected_expansion_port)实施方案。此会使这两个储存虚拟化控制器在正常操作期间共享此装置端连结以及其所提供的频宽,并且允许这两个储存虚拟化控制器完全存取每个储存单位端口。其更进一步地,允许任一储存虚拟化控制器保有对所有储存单位的完全存取,此包含原先指定给另一个储存虚拟化控制器的储存单位,即便是在该另一个储存虚拟化控制器故障的情况下。图22显示硬件开关如何被使用而实现此种具有循环形式(loop-style)多装置输出入装置连结(如光纤FC-AL)的扩充端口的可切换连结。在正常操作期间,所有开关的状态为“0”,从而,在此连结上的两储存虚拟化控制器可与储存单元连结。若第一储存虚拟化控制器(SVC1)故障,M2会设为“1”,且维持M1被清除为“0”,从而,绕过第一储存虚拟化控制器(SVC1),并自第二储存虚拟化控制器(SVC2)至储存单元建立一直接连接。若是第二储存虚理化控制器(SVC2)故障,则讯号M1会设为“1”(M2为随意讯号,“don’t_care”),藉此,绕过第二储存虚拟化控制器(SVC2),并且自第一储存虚拟化控制器(SVC1)至储存单元建立一直接连接。此开关活动可藉由一个硬件讯号检测电路(SDC,hardwaresignal_detection_circuit)启动,此SDC检测是不是有一个有效的讯号呈现在S1或S2。或者此一开关活动亦可经由此两个储存虚拟化控制器其中之一检测到另一个储存虚拟化控制器故障时启动。
图23显示一电路设计,此电路设计为依赖硬件讯号检测以启动此开关状态的变更。图24显示一电路设计,此电路设计是从第一储存虚拟化控制器(SVC1)与第二储存虚拟化控制器(SVC2)各自取得输入讯号C1与C2,以触发此开关状态的变更。在这种实施方案中,每一个控制讯号在其对应的储存虚拟化控制器离线时将被强迫进入一“清除(0)”状态(图中未显示此对应的电路),以避免若此控制讯号是三态(Tri-State)或是浮动(Floating)且因而被接着的电路所解释为“设定(1)”状态时可能引起的后果。图25显示图23与图24的混合型,其是藉由硬件讯号检测或自储存虚拟化控制器的输入讯号来支持启动开关状态的变更,以提供比只有单独一种还大的弹性。
图26描绘一强化的实施例,在此称为冗余储存虚拟化控制器互连冗余扩充端口(redundant_SVC_interconnected_redundant_expansion_port)实施例。其中包含有成对的冗余扩充端口,而不是相互间独立的扩充端口,以用来使在提供服务给一个储存虚拟化控制器的扩充端口的一个连结断掉或故障时,不会导致此储存虚拟化控制器对连接于此连结上的储存单元的存取能力全部丧失。在此一架构下,冗余对的每一端口分别与连接于此连结上的每个双端口物理储存装置的一端口相连接,或者是,与一双端口储存虚拟化子系统的一端口相连接,此双端口储存虚拟化子系统系仿真连接至此连结的多个物理储存装置,举例来说,其可为一JBOD仿真储存虚拟化子系统。若其中一储存虚拟化控制器上的一扩充端口或连结故障,则输出入请求会通过另一个扩充端口/连结复位路径传送。
图27描绘出另一可能的实施例,其中,一个储存虚拟化控制器上的每一扩充端口在另一个储存虚拟化控制器上有一冗余互补物(redundantcomplement,亦即冗余互补扩充端口),此在一个储存虚拟化控制器上的扩充端口以及其在另一个储存虚拟化控制器上的冗余互补扩充端口是以下列方式连接至每一双端口储存单元的两端口上:一储存虚拟化控制器的扩充端口连接至一双端口对中的一端口,而其在另一储存虚拟化控制器上的互补扩充端口连结至此双端口对中的另一端口。此互补扩充端口并没有互连而是藉由每一储存单元具有双端口的性质来实现冗余的目的。然而,仅仅是储存单元的双端口性质,在面临其中一储存虚拟化控制器的扩充端口故障,或一连接储存虚拟化控制器的一扩充端口与一储存单元的连结故障时,并不足以支持二储存虚拟化控制器的存取皆得以维持的这种冗余功能。为实现此种目的,需要提供一些机制用以使输出入请求复位路径传送,而在一储存虚拟化控制器自有的扩充端口或连接它与储存装置的连结故障时,改经由连接另一个储存虚拟化控制器至储存装置的连结。
图28描绘一实施方案,此实施方案为如果执行在此储存虚拟化子系统与储存单元之间的连结部分断掉或故障发生时,使用硬件开关去连接如图27所示的连接两个储存虚拟化控制器与储存单元的两个输出入装置的连结。在储存虚拟化子系统与储存单元之间的连结一般为机箱间的缆线(cable),故特别易于断掉。如图28中所示,在正常操作期间,也就是,所有连结上的操作都适当地运作时,所有开关的状态皆为“0”。自扩充端口所发出的讯号直接被递送至储存单元中相对应的端口,此处称为预设路径,因此,在每一个储存虚拟化控制器的冗余对中的每一互补扩充端口/连结都可完全独立运作且不受干扰。
当由于连接至储存单元端口2的连结断掉或者因储存单元端口2自己本身的故障,使得所有的输出入讯号必须变成从两个储存虚拟化控制器扩充端口传递至储存单元端口1时,M1与M2系设为“1”,然而M3维持在“清除(0)”,并且M4、M5为随意值。当所有输出入讯号自此二储存虚拟化控制器的扩充端口传递至储存单元端口2时,M1与M3系设为“1”,而M4与M5维持在“清除(0)”,M2则为随意值。若第一储存虚拟化控制器(SVC1)离线,而需直接从第二储存虚拟化控制器(SVC2)传递输出入讯号到储存单元端口2时,M1、M4以及M5会维持在“清除(0)”,而M2与M3则为随意值。若,除了第一储存虚拟化控制器(SVC1)离线以外,且储存单元端口2的连结断掉或是储存单元端口2自己本身故障,则输出入讯号需要自第二储存虚拟化控制器(SVC2)传递至储存单元端口1,此时藉由设定M5与M2为“1”,M1维持为“清除(0)”,同时M3与M4为为随意值即可完成。相反地,若第二储存虚拟化控制器(SVC2)离线,而需直接从第一储存虚拟化控制器(SVC1)传递输出入讯号到储存单元端口1时,M2、M3维持“清除(0)”,而M1与M4以及M5则为随意值。若,除了第二储存虚拟化控制器(SVC2)离线以外,亦有至储存单元端口1的连结断掉或可能是其自身的故障发生,则输出入讯号需要从第一储存虚拟化控制器(SVC1)传递至储存单元端口2,此将藉由设定M3与M4为“1”,M5维持为“清除(0)”,同时M1与M2为随意值即可做到。图42所示的表即概括此各种可能情况下此开关的设定。
此开关活动可藉由硬件讯号检测电路(SDC,Hardware_SignalDetection_Circuit)来启动,此SDC检测是否有一有效的讯号呈现在S1或S2,或者亦可由此两个储存虚拟化控制器的一来启动,此是当储存虚拟化控制器检测到预设路径断掉或故障时启动此一开关活动。图29显示一电路设计,此电路设计依赖硬件讯号检测去启动此开关状态的变更(此电路的真值表显示于图43)。图中所示,R1为一超控讯号(override_signal),使得在第二储存虚拟化控制器(SVC2)和/或关联电路故障的情况下,第一储存虚拟化控制器(SVC1)得以强制取得该开关的状态的控制权。同样地,R2亦为一超控讯号,使得在第一储存虚拟化控制器(SVC1)和/或关联的电路故障的情况下,第二储存虚拟化控制器(SVC2)得以强制取得该开关的状态的控制权。图30显示一电路设计,此电路设计从第一与第二储存虚拟化控制器(SVC1,SVC2)分别取得输入讯号C1,C2,以触发此开关状态的变更(此电路的真值表系显示于图44),在此例中,经由第一储存虚拟化控制器(SVC1)设定讯号C1,表示其输出入请求要被递送到储存单元端口2,以取代预设的储存单元端口1;然而,经由SVC2设定讯号C2,表示其输出入请求要被传送到储存单元端口1,而非预设的储存单元端口2。图31显示一种两者的混合型,其藉由硬件讯号检测或自二储存虚拟化控制器的输入讯号两种方式来支持启动开关状态变更,以提供比只有单独一种方式还大的弹性(此电路的真值表显示于图45中)。
对描绘于图27的组态上装置扩充端口的布线,尚有另一种完全无需任何的连结的方式可供选择。在此例中,为实现冗余的目的,经由改变输出入请求的传递路径为自储存虚拟化控制器到另一个,且经储存虚拟化控制器间通讯连结而由存活的互补扩充端口/装置端连结送出,此内部储存虚拟化控制器沟通连结通常是用来使此二储存虚拟化控制器彼此的相互状态同步。
当一储存虚拟化控制器检测到一个连接到输出入装置连结的储存单元无法再被存取,而此输出入装置连结是与此储存虚拟化控制器的扩充端口的一连接,则不论是因为检测到此扩充端口/连结发生断掉/故障或是其它原因,此检测的储存虚拟化控制器会送出输出入请求给另一个储存虚拟化控制器,使此另一个储存虚拟化控制器经由互补扩充端口/连结以及另一个储存单元端口而发送给相同的储存单元。在此输出入请求执行期间,任何与输出入请求有关的数据/状态会在此二个储存虚拟化控制器间转移。如果此另一个储存虚拟化控制器的扩充端口/连结是在准备好可活动状态下且正常运作时,但是此另一个储存虚拟化控制器存取此储存单元仍然失败,则此储存单元就会被视为已失效或已被移除了。反之,若存取成功,则前述的存取能力丧失将被视为局限在原本的储存虚拟化控制器,并且往后与此储存单元存取关联的输出入请求会自动地复位传送路径至另一个储存虚拟化控制器,而经由互补扩充端口/连结发送出。在此期间,原本的储存虚拟化控制器经由其扩充端口/连结监视对此储存单元的可存取性,此功能一般是藉由周期地发送出内部产生的输出入请求以检验此连结与储存单元的状态。如果在某一时点,此原本的储存虚拟化控制器发现此储存单元现在可经由其扩充端口/连结而被存取,则停止输出入请求复位传送路径至另一个储存虚拟化控制器,并且开始再一次地经由其自己的扩充端口/连结直接发送输出入请求。图32即为上述操作的流程图。
此外,在一个储存虚拟化控制器中还有可能使用冗余主机端连结架构。在此种架构下,储存虚拟化控制器中包含有多个主机端连结端口时,以将逻辑介质单元以相同的形式通过二个或更多的主机端连结呈现至主机。此种设计架构的目的是,即使其中一条主机端连结或端口断掉、阻断或故障了,主机能仍维持对此逻辑介质单元进行存取。
图33描绘一冗余外部储存虚拟化计算机系统的示意图,其中在储存虚拟化控制器中的两个个别的主机端端口,连接至两个完全分开的主机端输出入装置连结以及主机端口。在一储存虚拟化控制器上的每一个端口在其另一个储存虚拟化控制器上会有一个互补端口。在一代表性的主机端连结支持冗余的实施例中,每一储存虚拟化控制器将同一逻辑介质单元以相同的形式呈现至其二个主机端端口。
在正常操作下,主机能经由一个储存虚拟化控制器存取逻辑介质单元,其中该储存虚拟化控制器被配置为在一主机端连结上呈现此逻辑介质单元,这可能是冗余对其中一个或两个储存虚拟化控制器。如果其中一储存虚拟化控制器故障,则已经被此两个储存虚拟化控制器呈现至主机的逻辑介质单元将可通过仍正常工作的储存虚拟化控制器维持存取,并且,在检测到由这些储存虚拟化控制器之一所处理的输出入请求发生中断时,经由在主机上特别用途的多冗余路径(multiple-Redundant-pathing)功能的帮助,输出入请求就会完全被递送到此正常工作的储存虚拟化控制器。
那些原本只经由现在故障中的储存虚拟化控制器而呈现至主机的逻辑介质单元,将立刻藉由正常工作的储存虚拟化控制器经由连接至主机的主机端连结而呈现至主机。对于这些逻辑介质单元以及连同所有重新指定的逻辑介质单元,此正常工作的储存虚拟化控制器能单单藉由在每一连结上呈现所有逻辑介质单元而透明地接替主机输出入请求的处理,其是以相同于此故障中的储存虚拟化控制器在其故障之前所做的方式进行。藉此种“透明接替(transparent_takeover)”,主机不需要特殊的功能去查觉储存虚拟化控制器故障以及由主机自己对输出入请求复位路径传送以为响应。
除了储存虚拟化控制器的冗余架构以外,二组互补端口系也形成一冗余端口互补(redundant_port_complement)。一主机中有两个独立端口使用两个个别的输出入装置连结与这二个互补冗余端口组连接,则会有两条独立的路径至每个逻辑介质单元,且可经由该路径发出输出入请求。若主机的一端口或一储存虚拟化控制器故障,或若输出入装置连结断掉或阻断时,具有多冗余路径功能的主机即可通过另一冗余路径将输出入请求复位路径发送。另一种情况是,当两条路径都正常运作时,主机会在此二路径上选择发送输出入请求的路径以求尽力平衡此二路径间的负载,此一技术称为负载平衡(Load_Balancing)。
为了实现上述透明接替的功能,在每一储存虚拟化控制器上所形成的互补端口对中的每一端口对是物理上地相互连结。对于总线式的多装置输出入装置连结而言,如:并列SCSI,此连结仅仅由直接将装置布线在一起而构成,而不需任何中介电路。对于其它连结的型式,特殊的开关电路可用来实现上述所需的物理连结。图34显示一开关电路的例子,此开关电路能用来在光纤连结上实现此种连结,其中硬件讯号检测SDC被用来启动此开关状态的变更。在主机实行多冗余路径功能的架构中,有另一种主机端连结的结构,此结构仅需要较少数的连结即可实现类似的冗余特性,如图35中所示。需注意的是,其中用于将一储存虚拟化控制器连接该主机的主机端连结并未连结至另一个储存虚拟化控制器。在此一架构下,连结冗余藉由让每一逻辑介质单元,若可通过一个储存虚拟化控制器的主机端连结而可被主机存取,则亦通过另一个储存虚拟化控制器上的另一个主机端连结而可被主机存取的方式来实现。若其中一连结断掉、阻断或因其它原因故障,主机仍然能由另一个储存虚拟化控制器经由另一个连结而存取此逻辑介质单元。同样地,若储存虚拟化控制器中的一个故障,另一个储存虚拟化控制器能接替并且,再一次地主机仍然能由正常工作的储存虚拟化控制器经由另一个连结存取此逻辑介质单元。
经由上述说明可知,依据本发明的冗余储存虚拟化子系统的一实施态样如下,冗余储存虚拟化子系统包含两个冗余储存虚拟化控制器而形成一冗余对,该冗余储存虚拟化控制器对的至少一成员储存虚拟化控制器是包含有至少一扩充端口,可经由一多装置端输出入装置连结而耦接至一包含有至少一物理储存装置的第二组物理储存装置;该第二组物理储存装置中的一成员具有一对冗余端口,且该对冗余端口中的一成员端口耦接至一包含至少一该扩充端口的扩充端口组;该冗余物理储存装置端口对的该成员端口与该包含至少一该扩充端口的扩充端口组经由一开关电路互相耦合在一起;且该扩充端口组包含有一第一与一第二扩充端口次组,以形成一对互补次组,该每一次组系包含有至少一成员扩充端口;该开关电路可实现一连结讯号线的开关机制而支持下列各种安排:(1)耦接该对互补次组的该第一次组至该物理储存装置冗余端口对的一第一成员端口,以及耦接该对互补次组的该第二次组至该物理储存冗余端口对的一第二成员端口;(2)耦接该对互补次组的二个次组至该物理储存冗余端口对的该第一成员端口;(3)耦接该对互补次组的二个次组至该物理储存冗余端口对的该第二成员端口;(4)耦接该对互补次组的该第一次组至该物理储存冗余端口对的该第一成员端口;(5)耦接该对互补次组的该第二次组至该物理储存冗余端口对的该第二成员端口;(6)耦接该对互补次组的该第二次组至该物理储存冗余端口对的该第一成员端口;以及(7)耦接该对互补次组的该第一次组至该物理储存冗余端口对的该第二成员端口。
冗余SATA储存虚拟化子系统的一变化型为使用PATA物理储存装置而不使用SATA物理储存装置。对每一个PATA物理储存装置,于存取控制开关与此物理储存装置间,紧靠着PATA物理储存装置,需要安插一个SATA转PATA转换电路,且典型地是与此存取控制开关一起位于同一个现场可更换单元中。此转换电路将SATA讯号及协议,转换成PATA讯号及协议,并于相反方向时再转换回SATA讯号及协议。实际上,在短期来说,与PATA相比SATA磁盘的供应仍然短缺,且它的单价亦不算太便宜,因此使用PATA物理储存装置来替代SATA物理储存装置用于一SATA储存虚拟化子系统中有其重要性。在此过渡期间,此种子系统让PATA物理储存装置可以替代SATA物理储存装置,消除了SATA物理储存装置供应上及成本上的顾虑。在这样的子系统中通常可将转换电路与存取控制开关一起放置于存放物理储存装置的可拆卸盒(removable_canister)之中,因此,当后续有物理储存装置或相关电路需要进行维修服务时,可以很容易地从系统上拆卸下来。此外,藉由将转换电路设置于可拆卸盒当中,在SATA磁盘价格降低至较可接受的程度时,原先装设PATA的可拆卸盒即可很方便的整个从系统中移除,并将新的SATA物理储存装置及相关电路设置到系统上。
请参阅图36与图38。图36为可拆卸冗余SATA物理储存装置盒的方块图,图37为包括在此盒中特有的印刷电路板的较详细的方块图,存取控制开关位于其中。图38为一可拆卸冗余PATA物理储存装置盒的方块图,图39为包括在此盒中特有的印刷电路板的较详细的方块图,存取控制开关与SATA转PATA转换电路位于其中。此两者中皆有一对SATA输出入装置连结以及一组来自于二个储存虚拟化控制器的存取控制开关控制讯号,连接进入一存取控制开关。主要不同的地方在于可拆卸PATA物理储存装置盒中多了一个SATA转PATA转换电路,这在可拆卸SATA物理储存装置槽中是没有的。
以上所述仅为本发明的较佳实施例,凡依本发明的权利要求所做的均等变化与修饰,皆应属本发明专利的涵盖范围。
Claims (103)
1.一计算机系统,包含有:
一主机,用来发出输出入请求;
一冗余外部储存虚拟化控制器对,用于执行输出入操作以响应该主机发出的输出入请求,其包括有耦接至该主机的一第一与一第二外部储存虚拟化控制器;以及
一组物理储存装置包含至少一物理储存装置,用来提供该计算机系统储存空间,该组至少一物理储存装置中的至少一成员,包括有一物理储存装置经由一点对点序列讯号连结耦接于该冗余储存虚拟化控制器对;
其中,当该冗余储存虚拟化控制器对中的一个储存虚拟化控制器未上线或者上线后又离线,则该冗余储存虚拟化控制器组中的另一个储存虚拟化控制器将自动地接替该冗余储存虚拟化控制器对中原先该个储存虚拟化控制器原先执行的功能。
2.如权利要求1所述的计算机系统,其中该点对点序列讯号连结为一序列先进技术接取接口(SATA)输出入装置连结。
3.如权利要求1或2所述的计算机系统,其中对该物理储存装置中至少一个而言,该计算机系统还包含有一存取控制开关,其耦接于每个该物理储存装置与该冗余储存虚拟化控制器对之间,用以选择切换该物理储存装置至该冗余储存虚拟化控制器对在该第一及该第二储存虚拟化控制器之间的连接。
4.如权利要求1或2所述的计算机系统,其中,该冗余储存虚拟化控制器对中,每一该储存虚拟化控制器还包含有:
一中央处理电路,用于执行输出入操作以响应于该主机的该输出入请求;
至少一输出入装置连结控制器,耦接于该中央处理电路;
至少一主机端输出入装置连结端口,设置于该至少一输出入装置连结控制器的一个中,用来耦接至该主机;以及
至少一装置端输出入装置连结端口,设置于该至少一输出入装置连结控制器的一个中,用来经由该点对点序列讯号连结耦接至该至少一物理储存装置。
5.如权利要求4所述的计算机系统,其中该主机端输出入装置连结端口中的一个与该装置端输出入装置连结端口中的一个是设置于同一个该输出入装置连结控制器中。
6.如权利要求4所述的计算机系统,其中该主机端输出入装置连结端口中的一个与该装置端输出入装置连结端口中的一个是设置于不同的该输出入装置连结控制器中。
7.一冗余储存虚拟化子系统,用来提供一主机储存空间,该冗余储存虚拟化子系统包含有:
一冗余外部储存虚拟化控制器对,用来执行输出入操作以响应于由该主机发出的输出入请求,其包括有用于耦接至该主机的一第一与一第二外部储存虚拟化控制器;以及
一组物理储存装置包含至少一物理储存装置,用来提供该主机储存空间,该组至少一物理储存装置中至少一成员,包括有一物理储存装置经由一点对点序列讯号连结耦接于该冗余储存虚拟化控制器对;
其中,当该冗余储存虚拟化控制器对中的一个储存虚拟化控制器未上线或者上线后又离线,则该冗余储存虚拟化控制器对中的另一个储存虚拟化控制器将自动地接替该冗余储存虚拟化控制器对中原先该个储存虚拟化控制器原先执行的功能。
8.如权利要求7所述冗余储存虚拟化子系统,其中该点对点序列讯号连结为一序列先进技术接取接口输出入装置连结。
9.如权利要求7或8所述的冗余储存虚拟化子系统,其还包含有一附加于该冗余储存虚拟化子系统的可拆卸盒,用以设置该至少一物理储存装置的一个于其中。
10.如权利要求7或8所述的冗余储存虚拟化子系统,其中对该物理储存装置中每一个而言,该子系统还包含有一存取控制开关,其耦接于该物理储存装置与该冗余储存虚拟化控制器对之间,用以选择切换该物理储存装置至该冗余储存虚拟化控制器对在该第一及该第二储存虚拟化控制器间的连接。
11.如权利要求10所述的冗余储存虚拟化子系统,其还包含有一附加于该冗余储存虚拟化子系统的可拆卸盒,用以设置该至少一物理储存装置的一个与该存取控制开关于其中。
12.如权利要求10所述的冗余储存虚拟化子系统,其中耦接于该物理储存装置与该冗余储存虚拟化控制器对之间的该存取控制开关,可选择性地使该物理储存装置的序列讯号,在该存取控制开关为第一配接状态时,配接往返于该第一储存虚拟化控制器,在该存取控制开关为第二配接状态时,配接往返于该第二储存虚拟化控制器。
13.如权利要求12所述的冗余储存虚拟化子系统,其中还包含一存取所有权仲裁机制,其设置于该储存虚拟化控制器对与该存取控制开关之间,用于控制该存取控制开关的配接状态。
14.如权利要求13所述的冗余储存虚拟化子系统,其中该存取所有权仲裁机制包含有一存取所有权检测机制,用以判定是否存取所有权为该储存虚拟化控制器其中之一所拥有。
15.如权利要求13所述的冗余储存虚拟化子系统,其中该存取所有权仲裁机制还包含有一存取所有权授予机制,用于当该储存虚拟化控制器其中之一请求存取所有权时,授予该存取所有权。
16.如权利要求10所述的冗余储存虚拟化子系统,还包含有:
一合作机制,用以使该冗余储存虚拟化控制器对共同控制该存取控制开关的配接状态;
一监视机制,用以使该储存虚拟化控制器对中每一该储存虚拟化控制器得以监视该储存虚拟化控制器对中另一个储存虚拟化控制器的状态;以及
一状态控制机制,用以使该储存虚拟化控制器对中的每个储存虚拟化控制器在独立于该储存虚拟化控制器对中另一个储存虚拟化控制器的状态下,得以强制取得该存取控制开关的完全的控制。
17.如权利要求7或8所述的冗余储存虚拟化子系统,其中,在该冗余储存虚拟化控制器对中,每个该储存虚拟化控制器还包含有:
一中央处理电路,用于执行输出入操作以响应于该主机的该输出入请求;
至少一输出入装置连结控制器,耦接于该中央处理电路;
至少一主机端输出入装置连结端口,设置于该至少一输出入装置连结控制器的一个中,用来耦接至该主机;以及
至少一装置端输出入装置连结端口,设置于该至少一输出入装置连结控制器的一个中,用来经由该点对点序列讯号连结耦接至该至少一物理储存装置。
18.如权利要求17所述的冗余储存虚拟化子系统,其中该主机端输出入装置连结端口中的一个与该装置端输出入装置连结端口中的一个设置于同一个该输出入装置连结控制器中。
19.如权利要求17所述的冗余储存虚拟化子系统,其中该主机端输出入装置连结端口中的一个与该装置端输出入装置连结端口中的一个设置于不同的该输出入装置连结控制器中。
20.如权利要求17所述的冗余储存虚拟化子系统,其中还包括有一逻辑介质单元,经由该主机端输出入装置连结端口中的一第一端口呈现于该主机上,该逻辑介质单元亦通过该主机端输出入装置连结端口中的一第二端口冗余地呈现至该主机。
21.如权利要求20所述的冗余储存虚拟化子系统,其中该第一主机端输出入装置连结端口与该第二主机端输出入装置连结端口为该冗余储存虚拟化控制对中同一储存虚拟化控制器上的输出入装置连结端口。
22.如权利要求20所述的冗余储存虚拟化子系统,其中该第一主机端输出入装置连结端口为该冗余储存虚拟化控制对中的一个储存虚拟化控制器上的一输出入装置连结端口;以及该第二主机端输出入装置连结端口为该冗余储存虚拟化控制对中的另一个储存虚拟化控制器上的输出入装置连结端口。
23.如权利要求20所述的冗余储存虚拟化子系统,其中该第一主机端输出入装置连结端口与该第二主机端输出入装置连结端口耦接于相同的主机端输出入装置连结上。
24.如权利要求23所述的冗余储存虚拟化子系统,其中该第一主机端输出入装置连结端口与该第二主机端输出入装置连结端口经由一开关电路耦接至该同一的主机端输出入装置连结上。
25.如权利要求20所述的冗余储存虚拟化子系统,其中该第一主机端输出入装置连结端口与该第二主机端输出入装置连结端口各耦接至不同的主机端输出入装置连结上。
26.如权利要求17所述的冗余储存虚拟化子系统,其中至少一该主机端输出入装置连结端口为下列的一个:于目标模式(target_mode)时的支持点对点连结的光纤信道,于目标模式时支持公用回路连结的光纤信道,于目标模式时支持专用回路连结的光纤信道,操作于目标模式的并列小型计算机系统接口(并列SCSI),操作于目标模式的支持因特网小型计算机系统接口(iSCSI)协议的以太网络,操作于目标模式的序列附加小型计算机系统接口(Serial-Attached_SCSI,SAS),以及操作于目标模式时的序列先进技术接取接口(SATA)。
27.如权利要求7或8所述的冗余储存虚拟化子系统,其中还包括有一控制器间通讯信道,设置于该冗余储存虚拟化控制器对间,用以于传递状态同步信息。
28.如权利要求27所述的冗余储存虚拟化子系统,其中该控制器间通讯信道为一现存的输出入装置连结,藉此,控制器间通讯交换是与输出入请求以及关联数据一起多任务传输。
29.如权利要求27所述的冗余储存虚拟化子系统,其中该控制器间通讯信道为一专用信道,及其主要功能为交换该状态同步信息。
30.如权利要求27所述的冗余储存虚拟化子系统,其中该控制器间通讯信道为下列的一个:光纤信道,序列先进技术接取接口(SATA)信道,并列小型计算机系统接口(并列SCSI)信道,以太网络,序列附加小型计算机系统接口(SAS)信道,以及集成电路间接口(12C)通道。
31.如权利要求7或8所述的冗余储存虚拟子系统,其中该冗余储存虚拟化控制器对可用以执行输出入请求复位路径传送功能。
32.如权利要求7或8所述的冗余储存虚拟子系统,其中该冗余储存虚拟化控制器对可用以执行物理储存装置存取所有权转移功能。
33.如权利要求7或8所述的冗余储存虚拟化子系统,其中该冗余储存虚拟化控制器对的至少一成员储存虚拟化控制器包含有至少一扩充端口,经由一多装置装置端输出入装置连结,耦接至一包含有至少一物理储存装置的第二组物理储存装置。
34.如权利要求33所述的冗余储存虚拟化子系统,其中包含有至少一该扩充端口的一组扩充端口的各个成员彼此耦接在一起,且通过一开关电路连接至该第二组物理储存装置。
35.如权利要求33所述的冗余储存虚拟化子系统,其中包含有至少一该扩充端口的一组扩充端口的各个成员彼此耦接在一起,且未通过中介电路直接连接至该第二组物理储存装置。
36.如权利要求33所述的冗余储存虚拟化子系统,其中一包含有至少二该扩充端口的扩充端口组形成一冗余扩充端口组,用以互相执行输出入请求复位路径传送功能,藉以使得正常是通过该冗余扩充端口组中的一第一成员端口而传送至一物理储存装置的输出入请求可复位路径递送而通过该冗余扩充端口组中的一第二成员端口。
37.如权利要求33所述的冗余储存虚拟化子系统,其中该第二组物理储存装置中的一成员具有一对冗余端口,以及该对冗余端口中的一成员端口耦接至一包含至少一该扩充端口的扩充端口组。
38.如权利要求37所述的冗余储存虚拟化子系统,其中通过该第二组物理储存装置中该成员的该冗余端口,输出入请求复位路径传送功能得以被执行,藉以使得正常是经由该冗余端口对中的一第一成员端口而被传送给一物理储存装置的输出入请求可复位路径递送而经由该冗余端口对中一第二成员端口至该物理储存装置。
39.如权利要求38所述的冗余储存虚拟化子系统,其中一包含有至少二该扩充端口的扩充端口组形成一冗余扩充端口组,用以互相执行输出入请求复位路径传送功能,藉以使正常是经由该冗余扩充端口组中的一第一成员端口而传送至一物理储存装置的输出入请求可复位路径递送而经由该冗余扩充端口组中一第二成员端口。
40.如权利要求37所述的冗余储存虚拟化子系统,其中该物理储存装置冗余端口对中每个成员端口耦接至不同的扩充端口组,该扩充端口组包含有至少一该扩充端口。
41.如权利要求37所述的冗余储存虚拟化子系统,其中该冗余物理储存装置端口对的该成员端口与该包含至少一该扩充端口的扩充端口组经由一开关电路互相耦合在一起。
42.如权利要求41所述的冗余储存虚拟子系统,其中该扩充端口组包含有一第一与一第二扩充端口次组,以形成一对互补次组,该每一次组包含有至少一成员扩充端口。
43.如权利要求42所述的冗余储存虚拟化子系统,其中藉由该开关电路而实现的连结讯号线开关机制之一,为耦接该对互补次组的该第一次组至该物理储存冗余端口对的一第一成员端口,以及耦接该对互补次组的该第二次组至该物理储存冗余端口对的一第二成员端口。
44.如权利要求42所述的冗余储存虚拟化子系统,其中藉由该开关电路而实现的连结讯号线开关机制之一,为耦接该对互补次组的二个次组至该物理储存冗余端口对的一第一成员端口。
45.如权利要求42所述的冗余储存虚拟化子系统,其中藉由该开关电路而实现的连结讯号线开关机制之一,为耦接该对互补次组的该第一次组至该物理储存冗余端口对的一第一成员端口。
46.如权利要求42所述的冗余储存虚拟化子系统,其中该开关电路实现一连结讯号线的开关机制,该机制支持下列各种安排:
(1)耦接该对互补次组的该第一次组至该物理储存装置冗余端口对的一第一成员端口,以及耦接该对互补次组的该第二次组至该物理储存冗余端口对的一第二成员端口;
(2)耦接该对互补次组的二个次组至该物理储存冗余端口对的该第一成员端口;
(3)耦接该对互补次组的二个次组至该物理储存冗余端口对的该第二成员端口;
(4)耦接该对互补次组的该第一次组至该物理储存冗余端口对的该第一成员端口;
(5)耦接该对互补次组的该第二次组至该物理储存冗余端口对的该第二成员端口;
(6)耦接该对互补次组的该第二次组至该物理储存冗余端口对的该第一成员端口;以及
(7)耦接该对互补次组的该第一次组至该物理储存冗余端口对的该第二成员端口。
47.如权利要求37所述的冗余储存虚拟化子系统,其中该冗余物理储存装置端口对中的该成员端口与该包含至少一扩充端口的扩充端口组未经中介电路直接耦接在一起。
48.如权利要求37所述的冗余储存虚拟化子系统,其中该冗余储存虚拟化控制器对中的一成员储存虚拟化控制器还包含有至少二该扩充端口,以形成一冗余扩充端口组。
49.如权利要求48所述的冗余储存虚拟化子系统,其中该冗余扩充端口组中的一第一扩充端口与一第二扩充端口分别耦接至该包含至少一物理储存装置的第二组物理储存装置的一成员物理储存装置的冗余物理储存装置端口对中不同的成员端口。
50.如权利要求48所述的冗余储存虚拟化子系统,其中该冗余扩充端口组中的一第一扩充端口与一第二扩充端口皆耦接至该包含至少一物理储存装置的第二组物理储存装置的一成员物理储存装置的冗余物理储存装置端口对中相同的成员端口。
51.如权利要求50所述的冗余储存虚拟化子系统,其中该第一该第二扩充端口未经中介电路而直接连接至该包含至少一物理储存装置的第二组物理储存装置的一成员物理储存装置的冗余物理储存装置端口对中相同的成员端口。
52.如权利要求37所述的冗余储存虚拟化子系统,其还包含有:
一第一扩充端口组,其包含至少一设置于该冗余储存虚拟化控制对中的第一储存虚拟化控制器上的扩充端口;以及
一第二扩充端口组,其包含至少一设置于该冗余储存虚拟化控制对中的第二储存虚拟化控制器上的扩充端口;
其中该第一扩充端口组与该第二扩充端口组一起形成一冗余扩充端口组对。
53.如权利要求52所述的冗余储存虚拟化子系统,其中该第一扩充端口组与该第二扩充端口组分别耦接至包含有至少一物理储存装置的该第二组物理储存装置中每一该物理储存装置的冗余物理储存装置端口对中不同的成员端口。
54.如权利要求52所述的冗余储存虚拟化子系统,其中该第一扩充端口组与该第二扩充端口组皆耦接至包含有至少一物理储存装置的该第二组物理储存装置中每一该物理储存装置的冗余物理储存装置端口对中相同的成员端口。
55.如权利要求33所述的冗余储存虚拟化子系统,其中至少一该扩充端口为下列的一个:光纤信道,并列小型计算机系统接口(并列SCSI),序列先进技术接取接口(SATA),以太网络,以及序列附加小型计算机系统接口(SAS)。
56.如权利要求7或8所述的冗余储存虚拟化子系统,其中该物理储存装置为一序列先进技术接取接口物理储存装置。
57.如权利要求7或8所述的冗余储存虚拟化子系统,其中该物理储存装置为一并列先进技术接取接口物理储存装置。
58.如权利要求7或8所述的冗余储存虚拟化子系统,其中该冗余储存虚拟化控制器对的每一该储存虚拟化控制器包含有一状态定义电路,用以迫使该冗余储存虚拟化控制器对中的另一个储存虚拟化控制器的外部连接讯号线进入一预设状态。
59.如权利要求7或8所述的冗余储存虚拟化子系统,其中该冗余储存虚拟化控制器对中每一该储存虚拟化控制器包含有一自杀电路,用以迫使其自身的外部连接讯号线进入一预设状态。
60.一种应用于一冗余储存虚拟化控制器对中的外部储存虚拟化控制器,包含有:
一中央处理电路,用以执行输出入操作以响应一主机的输出入请求;
至少一输出入装置连结控制器,耦接于该中央处理电路;
至少一主机端输出入装置连结端口,设置于该至少一输出入装置连结控制器的一个中,用来耦接至该主机;以及
至少一装置端输出入装置连结端口,设置于该至少一输出入装置连结控制器的一个中,用来耦接至至少一物理储存装置并与之执行点对点序列讯号传递;
其中,该外部储存虚拟化控制器,在该冗余储存虚拟化控制器对中的另一个外部储存虚拟化控制器未上线或者上线后又离线时,将自动地接替该另一个外部储存虚拟化控制器原先所执行的功能。
61.如权利要求60所述的储存虚拟化控制器,其中该主机端输出入装置连结端口中的一个与该装置端输出入装置连结端口中的一个设置于同一个该输出入装置连结控制器中。
62.如权利要求60所述的储存虚拟化控制器,其中该主机端输出入装置连结端口中的一个与该装置端输出入装置连结端口中的一个设置于不同的该输出入装置连结控制器中。
63.如权利要求60所述的储存虚拟化控制器,其中该至少一装置端输出入装置连结端口中之一包含有一序列先进技术接取接口连结端口,用以经由一序列先进技术接取接口输出入装置连结与该至少一物理储存装置的一个连接。
64.如权利要求60或63所述的储存虚拟化控制器,还包含有一检测机制,用以察觉该另一个储存虚拟化控制器是否为离线或失效的状态。
65.如权利要求60或63所述的储存虚拟化控制器,还包含有一状态定义电路,用以迫使该冗余储存虚拟化控制器对中的另一个储存虚拟化控制器的外部连接讯号线进入一预设状态。
66.如权利要求60或63所述的储存虚拟化控制器,还包含有一自杀电路,用以迫使其自身的外部连接讯号线进入一预设状态。
67.如权利要求60或63所述的储存虚拟化控制器,其中该功能包含:将原本该另一个储存虚拟化控制器所呈现给主机并使主机可使用的可存取资源呈现给主机并使主机可使用,以及将该储存虚拟化控制器自身所呈现给主机并使主机可使用的可存取资源呈现给主机并使主机可使用。
68.如权利要求60或63所述的储存虚拟化控制器,其中还包含有一存取所有权仲裁机制,用以提供决定该储存虚拟化控制器对中那一个储存虚拟化控制器拥有存取所有权。
69.如权利要求68所述的储存虚拟化控制器,其中该存取所有权仲裁机制包含有一存取所有权检测机制,用以判定是否存取所有权为该储存虚拟化控制器所拥有。
70.如权利要求68所述的储存虚拟化控制器,其中该存取所有权仲裁机制包含有一存取所有权授予机制,用于当该储存虚拟化控制器其中的一请求存取所有权时,授予存取所有权。
71.如权利要求60或63所述的储存虚拟化控制器,还包含有:
一合作机制,用以与该储存虚拟化控制器对中的另一个储存虚拟化控制器一起去合作控制一存取控制开关的配接状态;
一监视机制,用以使该储存虚拟化控制器对中的该个储存虚拟化控制器得以监视该储存虚拟化控制器对中该另一个储存虚拟化控制器的状态;以及
一状态控制机制,用以使该储存虚拟化控制器对中的该储存虚拟化控制器在独立于该储存虚拟化控制器对中的该另一个储存虚拟化控制器的状态下,得以强制取得该存取控制开关的完全的控制。
72.如权利要求60或63所述的储存虚拟化控制器,其中还包含有一控制器间通讯端口,用以传递该冗余储存虚拟化控制器对中的该个储存虚拟化控制器与该另一个储存虚拟化控制器间的状态同步信息。
73.如权利要求72所述的储存虚拟化控制器,其中该控制器间通讯端口为一现存的输出入装置连结,藉此,控制器间通讯交换与输出入请求以及关联数据一起多任务传输。
74.如权利要求72所述的储存虚拟化控制器,其中该控制器间通讯端口为一专用端口,及其主要功能为交换该状态同步信息。
75.如权利要求72所述的储存虚拟化控制器,其中该控制器间通讯端口为下列的一个:光纤信道,序列先进技术接取接口(SATA),并列小型计算机系统接口(并列SCSI),以太网络,序列附加小型计算机系统接口(SAS),以及集成电路间接口(I2C)。
76.如权利要求60或63所述的储存虚拟化控制器,其中该储存虚拟化控制器可用以执行输出入请求复位路径传送功能。
77.如权利要求60或63所述的储存虚拟化控制器,其中该储存虚拟化控制器可用以执行物理储存装置存取所有权转移功能。
78.如权利要求60或63所述的储存虚拟化控制器,还包含有一扩充端口,用以经由一多装置装置端输出入装置连结耦接至一包含有至少一物理储存装置的第二组物理储存装置。
79.如权利要求60或63所述的储存虚拟化控制器,其中,至少一该主机端输出入装置连结端口为下列的一个:于目标模式时支持点对点连结的光纤信道,于目标模式时支持公用回路连结的光纤信道,于目标模式时的支持专用回路连结的光纤信道,操作于目标模式的并列小型计算机系统接口(并列SCSI),操作于目标模式时支持因特网小型计算机系统接口(iSCSI)协议的以太网络,操作于目标模式的序列附加小型计算机系统接口(SAS),以及操作于目标模式时的序列先进技术接取接口(SATA)。
80.一种于一具有一第一与一第二外部储存虚拟化控制器并配置为一冗余储存虚拟化控制器对的计算机系统中执行储存虚拟化的方法,该方法包含:
响应该计算机系统中的一主机端发出的输出入请求,以该冗余储存虚拟化控制器对中的一个储存虚拟化控制器执行输出入操作,并使用点对点序列讯号传递方式存取该计算机系统中的至少一物理储存装置;以及
当在该冗余储存虚拟化控制器对中的该个储存虚拟化控制器未上线或上线后又离线时,则由该冗余储存虚拟化控制器对中的另一个储存虚拟化控制器执行该输出入操作以响应该主机发出的该输出入请求,并使用点对点序列讯号传递方式存取该计算机系统中的该至少一物理储存装置。
81.如权利要求80所述的方法,其中该点对点序列讯号传输遵循SATA协议。
82.如权利要求80或81所述的方法,其中当该一储存虚拟化控制器未上线或者上线后又离线时,则该另一个储存虚拟化控制器将自动接替该个储存虚拟化控制器原先所执行的功能。
83.如权利要求82所述的方法,其中该功能包含:将原本该个储存虚拟化控制器所呈现给主机并使主机可使用的可存取资源呈现给主机并使主机可使用,以及将该另一个储存虚拟化控制器自身所呈现给主机并使主机可使用的可存取资源呈现给主机并使主机可使用。
84.如权利要求80或81所述的方法,其还包含有提供一复位路径传送机制,用以使该冗余储存虚拟化控制器对得以执行输出入请求复位路径传送的功能。
85.如权利要求84所述的方法,其中该输出入请求复位路径传送功能由下列步骤所执行:
该冗余储存虚拟化控制对中的一请求启动者传送一输出入请求给该冗余储存虚拟化控制器对中一存取权所有者;以及
该存取权所有者执行该请求启动者所传送的该输出入请求。
86.如权利要求85所述的方法,其中还包含有在该存取权所有者与该物理储存装置间传递而与该输出入请求相关的讯息与数据的至少一部份,被代传至该请求发动者。
87.如权利要求80或81所述的方法,其还包含有下列步骤:
提供一存取控制开关,其耦接于该至少一物理储存装置中的一与该外部冗余储存虚拟化控制器对之间,用以选择性地使该物理储存装置的序列讯号,于该存取控制开关为第一配接状态时,配接往返于该第一储存虚拟化控制器,于该存取控制开关为第二配接状态时,配接往返于该第二储存虚拟化控制器。
88.如权利要求80或81所述的方法,还包含有提供一存取所有权转移机制,用以使该冗余储存虚拟化控制器对中该个储存虚拟化控制器与该另一个储存虚拟化控制器合作移转存取所有权往返于其间。
89.如权利要求88所述的方法,其中该储存虚拟化控制对间与存取所有权转移相关的信息交换,是通过控制器间通讯的一部份进行。
90.如权利要求88所述的方法,其中该存取所有权转移机制包含下列步骤:
(a)存取权所有者决定释出该存取所有权并移转所有权给该冗余储存虚拟化控制器对的另一个储存虚拟化控制器;
(b)该存取权所有者释出该存取所有权,因此其不再为存取权所有者;以及
(c)该另一个储存虚拟化控制器取得该存取所有权,并成为该物理储存装置的新的存取权所有者。
91.如权利要求90所述的方法,其中该(a)决定释出该存取所有权与转移所有权给该另一个储存虚拟化控制器的步骤是由取得一存取请求者角色的该另一个储存虚拟化控制器所触发,其是藉由发出一存取权请求指示给该存取权所有者以请求存取所有权转移而触发。
92.如权利要求90所述的方法,其中,还包含有以下的步骤:在存取权所有者决定释出该存取所有权并移转所有权给该另一个储存虚拟化控制器之后,以及在该存取权所有者释出该存取所有权之前,该存取权所有者将新的输出入请求放入队列中使其之后再执行,并且做完所有正在进行中的输出入请求。
93.如权利要求90所述的方法,其中该存取权所有者释出该存取所有权的步骤,包含有改变一耦接于该储存虚拟化控制器对与该物理储存装置之间的存取控制开关的状态。
94.如权利要求90所述的方法,其中该存取请求者取得该存取所有权的步骤,包含有改变一耦接于该储存虚拟化控制器对与该物理储存装置之间的存取控制开关的状态。
95.一种执行储存虚拟化于一具有一第一与一第二外部储存虚拟化控制器而配置为一冗余储存虚拟化控制器对的计算机系统中的方法,该方法包含:
响应自该计算机系统中的一主机端发出的输出入请求,以该冗余储存虚拟化控制器对中的一个储存虚拟化控制器执行输出入操作以存取该计算机系统中至少一物理储存装置;以及
当在该冗余储存虚拟化控制器对中的该个储存虚拟化控制器未上线或上线后又离线时,则藉由该冗余储存虚拟化控制器对中的另一个储存虚拟化控制器执行该输出入操作以响应该主机发出的该输出入请求,以存取该计算机系统中该至少一物理储存装置;
其中,通过一冗余输出入装置连结端口对执行输出入请求复位路径传送功能,此冗余输出入装置连结端口对包括:一位于该第一储存虚拟化控制器的第一输出入装置连结端口,以及一位于该第二储存虚拟化控制器的第二输出入装置连结端口。
96.如权利要求95所述的方法,其中当该个储存虚拟化控制器未上线或上线后又离线时,该另一个储存虚拟化控制器将接替该个储存虚拟化控制器原先执行的功能。
97.如权利要求95所述的方法,其中该输出入请求复位路径传送功能由下列步骤所执行:
该冗余储存虚拟化控制器对中的一请求启动者传送一输出入请求给该冗余储存虚拟化控制器对中的一存取权所有者;以及
该存取权所有者执行该请求启动者所传送的该输出入请求。
98.如权利要求97所述的方法,其中还包含有于该存取权所有者与该物理储存装置间传递而与该输出入请求关联的讯息与数据的至少一部份,被代传至该请求启动者。
99.如权利要求95所述的方法,其还包含有提供一存取所有权转移机制,用以使该冗余储存虚拟化控制器对中该个储存虚拟化控制器与该另一个储存虚拟化控制器合作移转存取所有权往返于其间。
100.如权利要求99所述的方法,其中该储存虚拟化控制器对间与存取所有权转移相关的信息交换,是通过控制器间通讯的一部份进行。
101.如权利要求99所述的方法,其中该存取所有权转移机制包含下列步骤:
(a)存取权所有者决定释出该存取所有权并移转所有权给该冗余储存虚拟化控制器对中的另一个储存虚拟化控制器;
(b)该存取权所有者释出该存取所有权,因此其不再为存取权所有者;以及
(c)该另一个储存虚拟化控制器取得该存取所有权,并成为该物理储存装置的新的存取权所有者。
102.如权利要求101所述的方法,其中该(a)决定释出该存取所有权与转移所有权给该另一个储存虚拟化控制器的步骤是由取得一存取请求者角色的该另一个储存虚拟化控制器所触发,其是藉由发出一存取权请求指示给该存取权所有者以请求存取所有权转移而触发。
103.如权利要求101所述的方法,还包含有以下的步骤:在存取权所有者决定去释出该存取所有权并移转所有权给该另一个储存虚拟化控制器之后,以及在该存取权所有者释出该存取所有权之前,该存取权所有者将新的输出入请求放入队列中使其之后再执行,并且做完所有正在进行中的输出入请求。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US48392603P | 2003-07-02 | 2003-07-02 | |
US60/483,926 | 2003-07-02 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1553346A true CN1553346A (zh) | 2004-12-08 |
CN100334567C CN100334567C (zh) | 2007-08-29 |
Family
ID=34375216
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2004100618227A Active CN1320436C (zh) | 2003-07-02 | 2004-06-25 | 储存虚拟化计算机系统及用于其中的外接式控制器 |
CNB2004100621465A Active CN1320437C (zh) | 2003-07-02 | 2004-07-02 | 磁盘驱动器组子系统及用于其中的外部模拟控制器 |
CNB2004100621380A Active CN100334567C (zh) | 2003-07-02 | 2004-07-02 | 冗余外部储存虚拟化计算机系统 |
Family Applications Before (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2004100618227A Active CN1320436C (zh) | 2003-07-02 | 2004-06-25 | 储存虚拟化计算机系统及用于其中的外接式控制器 |
CNB2004100621465A Active CN1320437C (zh) | 2003-07-02 | 2004-07-02 | 磁盘驱动器组子系统及用于其中的外部模拟控制器 |
Country Status (3)
Country | Link |
---|---|
US (5) | US8301809B2 (zh) |
CN (3) | CN1320436C (zh) |
TW (3) | TWI260500B (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100447731C (zh) * | 2005-01-13 | 2008-12-31 | 普安科技股份有限公司 | 冗余存储虚拟化计算机系统 |
US7676614B2 (en) | 2005-01-13 | 2010-03-09 | Infortrend Technology, Inc. | Redundant storage virtualization computer system |
US7774514B2 (en) | 2005-05-16 | 2010-08-10 | Infortrend Technology, Inc. | Method of transmitting data between storage virtualization controllers and storage virtualization controller designed to implement the method |
CN101221483B (zh) * | 2006-12-08 | 2010-08-11 | 国际商业机器公司 | 改善连续串行小型机系统接口存储设备性能的装置和方法 |
CN101470587B (zh) * | 2004-12-21 | 2011-08-17 | 普安科技股份有限公司 | 冗余储存虚拟化子系统 |
US8352653B2 (en) | 2005-11-23 | 2013-01-08 | Infortrend Technology, Inc. | Storage virtualization subsystem and system with host-side redundancy via SAS connectivity |
CN103440177A (zh) * | 2013-08-23 | 2013-12-11 | 浪潮电子信息产业股份有限公司 | 一种基于numa多物理层分区的存储控制冗余方法 |
CN104182303A (zh) * | 2013-05-22 | 2014-12-03 | 通用汽车环球科技运作有限责任公司 | 冗余计算架构 |
CN107247565A (zh) * | 2009-03-18 | 2017-10-13 | 株式会社日立制作所 | 存储控制装置以及虚拟卷的控制方法 |
CN107851063A (zh) * | 2015-07-28 | 2018-03-27 | 华为技术有限公司 | 智能编码存储器系统的动态编码算法 |
CN108280041A (zh) * | 2017-12-29 | 2018-07-13 | 武汉船舶通信研究所(中国船舶重工集团公司第七二二研究所) | 一种内部集成电路主机的通信方法和装置 |
CN108459971A (zh) * | 2018-03-19 | 2018-08-28 | 国云科技股份有限公司 | 一种基于桌面云共享设备的云盘性能加速方法 |
Families Citing this family (117)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
USRE42761E1 (en) | 1997-12-31 | 2011-09-27 | Crossroads Systems, Inc. | Storage router and method for providing virtual local storage |
US5941972A (en) | 1997-12-31 | 1999-08-24 | Crossroads Systems, Inc. | Storage router and method for providing virtual local storage |
US8813137B2 (en) * | 1998-05-08 | 2014-08-19 | Qualcomm Incorporated | Apparatus and method for decoding digital image and audio signals |
US8301809B2 (en) | 2003-07-02 | 2012-10-30 | Infortrend Technology, Inc. | Storage virtualization computer system and external controller thereof |
JP4383132B2 (ja) * | 2003-09-02 | 2009-12-16 | 株式会社日立製作所 | 仮想化制御装置及び計算機システム |
US7308530B1 (en) * | 2003-10-02 | 2007-12-11 | Marvell International Ltd. | Architecture for a data storage device |
US20050114464A1 (en) * | 2003-10-27 | 2005-05-26 | Shai Amir | Virtualization switch and method for performing virtualization in the data-path |
US20050102468A1 (en) * | 2003-11-06 | 2005-05-12 | Delaney William P. | Methods and systems for coupling multiple initiators to SATA storage devices |
US7676603B2 (en) * | 2004-04-20 | 2010-03-09 | Intel Corporation | Write combining protocol between processors and chipsets |
US7124143B2 (en) | 2004-05-10 | 2006-10-17 | Hitachi, Ltd. | Data migration in storage system |
US7502954B1 (en) * | 2004-05-26 | 2009-03-10 | Emc Corporation | High availability data storage system |
US7958292B2 (en) * | 2004-06-23 | 2011-06-07 | Marvell World Trade Ltd. | Disk drive system on chip with integrated buffer memory and support for host memory access |
JP4438582B2 (ja) | 2004-09-22 | 2010-03-24 | 株式会社日立製作所 | データ移行方法 |
KR100640588B1 (ko) * | 2004-09-24 | 2006-11-01 | 삼성전자주식회사 | Sata 인터페이스와 ata 인터페이스를 선택적으로사용하는 비휘발성 메모리 저장 장치 |
KR100594305B1 (ko) * | 2004-12-17 | 2006-06-30 | 삼성전자주식회사 | 시리얼 ata 인터페이스를 이용하여 광학 디스크드라이버의 프로그램 코드를 업데이트하는 장치 및 그 방법 |
US9495263B2 (en) * | 2004-12-21 | 2016-11-15 | Infortrend Technology, Inc. | Redundant SAS storage virtualization subsystem and system using the same, and method therefor |
US8301810B2 (en) * | 2004-12-21 | 2012-10-30 | Infortrend Technology, Inc. | SAS storage virtualization controller, subsystem and system using the same, and method therefor |
US20060143506A1 (en) * | 2004-12-29 | 2006-06-29 | Lsi Logic Corporation | RAID storage controller assist circuit, systems and methods |
TW200627170A (en) * | 2005-01-25 | 2006-08-01 | Sunplus Technology Co Ltd | Control system for storage device |
US8019842B1 (en) * | 2005-01-27 | 2011-09-13 | Netapp, Inc. | System and method for distributing enclosure services data to coordinate shared storage |
US8180855B2 (en) * | 2005-01-27 | 2012-05-15 | Netapp, Inc. | Coordinated shared storage architecture |
CN100359454C (zh) * | 2005-01-27 | 2008-01-02 | 凌阳科技股份有限公司 | 储存装置的控制系统 |
US20060194386A1 (en) * | 2005-02-25 | 2006-08-31 | Dell Products L.P. | Method and apparatus for supporting port aggregation of serial attached SCSI wide ports via virtual ports |
US7689744B1 (en) * | 2005-03-17 | 2010-03-30 | Lsi Corporation | Methods and structure for a SAS/SATA converter |
US7984258B2 (en) * | 2005-06-03 | 2011-07-19 | Seagate Technology Llc | Distributed storage system with global sparing |
US8352649B2 (en) * | 2005-06-09 | 2013-01-08 | Infortrend Technology, Inc. | Storage virtualization subsystem architecture |
DE102005028478A1 (de) * | 2005-06-20 | 2006-12-28 | Giga-Byte Technology Co., Ltd., Hsin-Tien | Datenübertragungsvorrichtung und ein Verfahren zum Verwenden derselben |
GB2427486B (en) * | 2005-06-23 | 2010-09-29 | Giga Byte Tech Co Ltd | Interface system for SATA having fast data access function and method thereof |
TWI277874B (en) * | 2005-06-24 | 2007-04-01 | Via Tech Inc | Method for access non-standard register in serial advanced technology attachment (SATA) device |
US7627005B2 (en) * | 2005-09-29 | 2009-12-01 | Emc Corporation | Multiplexing system |
DE102005031617A1 (de) * | 2005-07-06 | 2007-01-25 | Giga-Byte Technology Co., Ltd. | System und Verfahren zur Steuerung einer Sata-Schnittstelle |
US7493430B2 (en) * | 2005-07-14 | 2009-02-17 | Quantum Corporation | Data flow control and bridging architecture enhancing performance of removable data storage systems |
US7363457B1 (en) | 2005-07-21 | 2008-04-22 | Sun Microsystems, Inc. | Method and system for providing virtualization data services for legacy storage devices |
US7571269B2 (en) * | 2005-08-25 | 2009-08-04 | Silicon Image, Inc. | Covert channel for conveying supplemental messages in a protocol-defined link for a system of storage devices |
JP5155861B2 (ja) * | 2005-08-25 | 2013-03-06 | シリコン イメージ,インコーポレイテッド | スマートスケーラブル記憶スイッチアーキテクチャ |
CN100414489C (zh) * | 2005-09-02 | 2008-08-27 | 普安科技股份有限公司 | 存储虚拟化控制器的同位引擎及同位引擎产生数据的方法 |
US8427941B2 (en) * | 2005-09-23 | 2013-04-23 | Infortrend Technology, Inc. | Redundant storage virtualization subsystem having data path branching functionality |
EP1777613B1 (en) * | 2005-10-11 | 2021-11-24 | Infortrend Technology, Inc. | Pool spares for data storage virtualization subsystem |
US20070124521A1 (en) * | 2005-11-30 | 2007-05-31 | International Business Machines Corporation | System and method of substituting redundant same address devices on a multi-mastered IIC bus |
US8533409B2 (en) * | 2006-01-26 | 2013-09-10 | Infortrend Technology, Inc. | Method of managing data snapshot images in a storage system |
US7516352B2 (en) * | 2006-03-21 | 2009-04-07 | International Business Machines Corporation | Isolating a drive from disk array for diagnostic operations |
US9342413B2 (en) * | 2006-04-27 | 2016-05-17 | Infortrend Technology, Inc. | SAS RAID head |
WO2007146515A2 (en) * | 2006-06-08 | 2007-12-21 | Dot Hill Systems Corporation | Fault-isolating sas expander |
US7673185B2 (en) * | 2006-06-08 | 2010-03-02 | Dot Hill Systems Corporation | Adaptive SAS PHY configuration |
US7536584B2 (en) * | 2006-06-08 | 2009-05-19 | Dot Hill Systems Corporation | Fault-isolating SAS expander |
US8285893B2 (en) * | 2006-10-13 | 2012-10-09 | Dell Products L.P. | System and method for adaptively setting connections to input/output hubs within an information handling system |
US7496694B2 (en) * | 2006-11-21 | 2009-02-24 | Lsi Logic Corporation | Circuit, systems and methods for monitoring storage controller status |
US8607070B2 (en) * | 2006-12-20 | 2013-12-10 | Kingston Technology Corporation | Secure storage system and method of use |
US20080168226A1 (en) * | 2007-01-05 | 2008-07-10 | Accusys. Inc. | Correction method for reading data of disk array system |
US20080168224A1 (en) * | 2007-01-09 | 2008-07-10 | Ibm Corporation | Data protection via software configuration of multiple disk drives |
US20080244620A1 (en) * | 2007-03-27 | 2008-10-02 | Brian James Cagno | Dynamic Communication Fabric Zoning |
US8527781B2 (en) * | 2007-05-09 | 2013-09-03 | Kingston Technology Corporation | Secure and scalable solid state disk system |
US8010768B2 (en) * | 2007-05-09 | 2011-08-30 | Kingston Technology Corporation | Secure and scalable solid state disk system |
US8499168B2 (en) * | 2007-05-09 | 2013-07-30 | Kingston Technology Corporation | Secure and scalable solid state disk system |
ITTO20070387A1 (it) * | 2007-06-04 | 2008-12-05 | Reven Ge S R L | Sistema di elaboratori comprendente almeno due elaboratori e relativo metodo per il funzionamento continuo di detto sistema |
US8099532B2 (en) * | 2007-06-14 | 2012-01-17 | International Business Machines Corporation | Intelligent dynamic multi-zone single expander connecting dual ported drives |
JP4945363B2 (ja) * | 2007-07-30 | 2012-06-06 | 株式会社日立製作所 | バックエンドで接続されるストレージシステム |
US8141093B2 (en) * | 2007-11-15 | 2012-03-20 | International Business Machines Corporation | Management of an IOV adapter through a virtual intermediary in an IOV management partition |
US8141092B2 (en) | 2007-11-15 | 2012-03-20 | International Business Machines Corporation | Management of an IOV adapter through a virtual intermediary in a hypervisor with functional management in an IOV management partition |
US8141094B2 (en) * | 2007-12-03 | 2012-03-20 | International Business Machines Corporation | Distribution of resources for I/O virtualized (IOV) adapters and management of the adapters through an IOV management partition via user selection of compatible virtual functions |
TWI357562B (en) * | 2007-12-20 | 2012-02-01 | Infortrend Technology Inc | Io processor |
US7966288B2 (en) * | 2008-01-02 | 2011-06-21 | Sandisk Il Ltd. | Device and method for integrating file systems |
US8307129B2 (en) * | 2008-01-14 | 2012-11-06 | International Business Machines Corporation | Methods and computer program products for swapping synchronous replication secondaries from a subchannel set other than zero to subchannel set zero using dynamic I/O |
US7930165B2 (en) * | 2008-02-07 | 2011-04-19 | Accemic Gmbh & Co. Kg | Procedure and device for emulating a programmable unit providing system integrity control |
US8359415B2 (en) * | 2008-05-05 | 2013-01-22 | International Business Machines Corporation | Multi-root I/O virtualization using separate management facilities of multiple logical partitions |
JP2010033125A (ja) * | 2008-07-25 | 2010-02-12 | Hitachi Ltd | ストレージ装置及びデータ転送方法 |
US8516173B2 (en) * | 2008-07-28 | 2013-08-20 | International Business Machines Corporation | Swapping PPRC secondaries from a subchannel set other than zero to subchannel set zero using control block field manipulation |
JP2010049640A (ja) * | 2008-08-25 | 2010-03-04 | Seiko Epson Corp | 情報処理装置及びその制御方法 |
US9384160B2 (en) * | 2008-09-04 | 2016-07-05 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Methods and controllers for affiliation managment |
US20110264926A1 (en) * | 2008-09-12 | 2011-10-27 | Guthery Scott B | Use of a secure element for writing to and reading from machine readable credentials |
US8225019B2 (en) * | 2008-09-22 | 2012-07-17 | Micron Technology, Inc. | SATA mass storage device emulation on a PCIe interface |
US20100115140A1 (en) * | 2008-10-30 | 2010-05-06 | Micron Technology, Inc. | Encoded addressing within control code for bus communication |
CN101763221B (zh) | 2008-12-24 | 2013-01-30 | 成都市华为赛门铁克科技有限公司 | 一种存储方法、存储系统及控制器 |
US8239395B2 (en) * | 2008-12-26 | 2012-08-07 | Sandisk Il Ltd. | Storage device presenting to hosts only files compatible with a defined host capability |
US8943409B2 (en) * | 2008-12-26 | 2015-01-27 | Sandisk Il Ltd. | Storage device managing playable content |
US20100169395A1 (en) * | 2008-12-26 | 2010-07-01 | Sandisk Il Ltd. | Device and method for filtering a file system |
US8166067B2 (en) * | 2008-12-26 | 2012-04-24 | Sandisk Il Ltd. | Method and apparatus for providing access to files based on user identity |
US8144582B2 (en) * | 2008-12-30 | 2012-03-27 | International Business Machines Corporation | Differentiating blade destination and traffic types in a multi-root PCIe environment |
EP2406749B1 (en) * | 2009-03-13 | 2018-06-13 | Assa Abloy Ab | Transfer device for sensitive material such as a cryptographic key |
US20100235900A1 (en) * | 2009-03-13 | 2010-09-16 | Assa Abloy Ab | Efficient two-factor authentication |
EP2228746A1 (en) * | 2009-03-13 | 2010-09-15 | Assa Abloy Ab | Realization of access control conditions as boolean expressions in credential authentications |
US9032058B2 (en) * | 2009-03-13 | 2015-05-12 | Assa Abloy Ab | Use of SNMP for management of small footprint devices |
US8125472B2 (en) * | 2009-06-09 | 2012-02-28 | Global Oled Technology Llc | Display device with parallel data distribution |
US8510592B1 (en) * | 2009-09-15 | 2013-08-13 | Netapp, Inc. | PCI error resilience |
US8261269B2 (en) * | 2009-09-21 | 2012-09-04 | Oracle International Corporation | System and method for synchronizing transient resource usage between virtual machines in a hypervisor environment |
US8201020B2 (en) | 2009-11-12 | 2012-06-12 | International Business Machines Corporation | Method apparatus and system for a redundant and fault tolerant solid state disk |
US9256521B1 (en) * | 2010-11-03 | 2016-02-09 | Pmc-Sierra Us, Inc. | Methods and apparatus for SAS controllers with link list based target queues |
US8521931B2 (en) * | 2010-12-30 | 2013-08-27 | Lsi Corporation | Serial input output (SIO) port expansion apparatus and method |
US20120317335A1 (en) * | 2011-06-08 | 2012-12-13 | Byungcheol Cho | Raid controller with programmable interface for a semiconductor storage device |
US9329939B2 (en) * | 2011-06-08 | 2016-05-03 | Taejin Info Tech Co., Ltd | Two-way raid controller for a semiconductor storage device |
TWI473005B (zh) * | 2011-06-09 | 2015-02-11 | Taejin Infotech Co Ltd | 基於開關的混合存儲系統及其提供方法 |
US8819316B2 (en) * | 2011-06-21 | 2014-08-26 | Taejin Info Tech Co., Ltd. | Two-way raid controller with programmable host interface for a semiconductor storage device |
CN102255958B (zh) * | 2011-06-27 | 2014-11-26 | 北京星网锐捷网络技术有限公司 | 数据同步方法及系统 |
CN102801768A (zh) * | 2012-01-20 | 2012-11-28 | 华为技术有限公司 | 数据处理方法及系统、网络设备 |
JP6040612B2 (ja) * | 2012-07-24 | 2016-12-07 | 富士通株式会社 | ストレージ装置、情報処理装置、情報処理システム、アクセス制御方法、およびアクセス制御プログラム |
US8773817B2 (en) * | 2012-07-24 | 2014-07-08 | Lsi Corporation | Storage device having degauss circuitry with ramp generator for use in generating chirped degauss signal |
CN104603701B (zh) * | 2012-09-05 | 2017-03-08 | 三菱电机株式会社 | 输入输出响应控制设定装置 |
CN103793179A (zh) * | 2012-10-30 | 2014-05-14 | 英业达科技有限公司 | 机柜伺服系统及逻辑磁盘系统的管理方法 |
CN103294630B (zh) * | 2013-05-07 | 2015-11-04 | 福建鑫诺通讯技术有限公司 | 一种嵌入式linux系统中实现串口多路复用的方法 |
US10691838B2 (en) * | 2014-06-20 | 2020-06-23 | Cypress Semiconductor Corporation | Encryption for XIP and MMIO external memories |
TWI501075B (zh) * | 2014-08-06 | 2015-09-21 | Inventec Corp | 伺服器 |
KR102320407B1 (ko) * | 2015-06-05 | 2021-11-03 | 삼성전자주식회사 | I2c 통신 모듈을 포함하는 컴퓨팅 장치 및 그것의 통신 에러 복구 방법 |
US10372185B2 (en) | 2015-07-28 | 2019-08-06 | Western Digital Technologies, Inc. | Enhanced power control of data storage arrays |
US10261690B1 (en) * | 2016-05-03 | 2019-04-16 | Pure Storage, Inc. | Systems and methods for operating a storage system |
US10445018B2 (en) | 2016-09-09 | 2019-10-15 | Toshiba Memory Corporation | Switch and memory device |
US10866912B2 (en) | 2017-03-10 | 2020-12-15 | Toshiba Memory Corporation | Integrated heterogeneous solid state storage drive |
US10509415B2 (en) * | 2017-07-27 | 2019-12-17 | Aurora Flight Sciences Corporation | Aircrew automation system and method with integrated imaging and force sensing modalities |
US10956245B1 (en) * | 2017-07-28 | 2021-03-23 | EMC IP Holding Company LLC | Storage system with host-directed error scanning of solid-state storage devices |
TWI656442B (zh) * | 2017-11-30 | 2019-04-11 | 慧榮科技股份有限公司 | 用來於一記憶裝置中進行存取控制之方法以及記憶裝置及其控制器 |
CN109213446B (zh) * | 2018-08-23 | 2022-03-22 | 郑州云海信息技术有限公司 | 写缓存模式的切换方法、装置、设备及可读存储介质 |
CN109271108B (zh) * | 2018-09-03 | 2021-11-30 | 青岛镕铭半导体有限公司 | 一种存储器控制装置及数据存储设备 |
US11868309B2 (en) | 2018-09-06 | 2024-01-09 | Pure Storage, Inc. | Queue management for data relocation |
CN111324296B (zh) * | 2018-12-16 | 2022-08-09 | 华为技术有限公司 | 一种数据处理的方法、控制器、存储设备及存储系统 |
US11500727B2 (en) | 2020-05-27 | 2022-11-15 | Western Digital Technologies, Inc. | ZNS parity swapping to DRAM |
US11138066B1 (en) * | 2020-05-27 | 2021-10-05 | Western Digital Technologies, Inc. | Parity swapping to DRAM |
US11645012B1 (en) * | 2022-01-18 | 2023-05-09 | Dell Products, L.P. | Method and apparatus for distributing read operations between emulations in a storage engine |
US20240028202A1 (en) * | 2022-07-20 | 2024-01-25 | Dell Products, L.P. | Optimizing Backend Workload Processing in a Storage System |
Family Cites Families (69)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0721162A2 (en) | 1995-01-06 | 1996-07-10 | Hewlett-Packard Company | Mirrored memory dual controller disk storage system |
US6532547B1 (en) * | 1995-06-16 | 2003-03-11 | Emc Corporation | Redundant peripheral device subsystem |
US5819310A (en) * | 1996-05-24 | 1998-10-06 | Emc Corporation | Method and apparatus for reading data from mirrored logical volumes on physical disk drives |
US5986880A (en) * | 1997-06-16 | 1999-11-16 | Compaq Computer Corporation | Electronic apparatus having I/O board with cable-free redundant adapter cards thereon |
US6178520B1 (en) * | 1997-07-31 | 2001-01-23 | Lsi Logic Corporation | Software recognition of drive removal or insertion in a storage system |
JPH1153235A (ja) * | 1997-08-08 | 1999-02-26 | Toshiba Corp | ディスク記憶装置のデータ更新方法、ならびにディスク記憶制御システム |
US6725331B1 (en) * | 1998-01-07 | 2004-04-20 | Emc Corporation | Method and apparatus for managing the dynamic assignment resources in a data storage system |
US6148349A (en) * | 1998-02-06 | 2000-11-14 | Ncr Corporation | Dynamic and consistent naming of fabric attached storage by a file system on a compute node storing information mapping API system I/O calls for data objects with a globally unique identification |
US6247077B1 (en) * | 1998-02-06 | 2001-06-12 | Ncr Corporation | Highly-scalable parallel processing computer system architecture |
US6061750A (en) * | 1998-02-20 | 2000-05-09 | International Business Machines Corporation | Failover system for a DASD storage controller reconfiguring a first processor, a bridge, a second host adaptor, and a second device adaptor upon a second processor failure |
US6230240B1 (en) * | 1998-06-23 | 2001-05-08 | Hewlett-Packard Company | Storage management system and auto-RAID transaction manager for coherent memory map across hot plug interface |
US6711632B1 (en) * | 1998-08-11 | 2004-03-23 | Ncr Corporation | Method and apparatus for write-back caching with minimal interrupts |
US6314460B1 (en) * | 1998-10-30 | 2001-11-06 | International Business Machines Corporation | Method and apparatus for analyzing a storage network based on incomplete information from multiple respective controllers |
US6799283B1 (en) * | 1998-12-04 | 2004-09-28 | Matsushita Electric Industrial Co., Ltd. | Disk array device |
JP2000276304A (ja) * | 1999-03-26 | 2000-10-06 | Nec Corp | データ移行方法と情報処理システム |
US6483107B1 (en) * | 1999-05-11 | 2002-11-19 | Josef Rabinovitz | Canister having a combined guide rail and light pipe system for use in a computer peripheral enclosure |
US6631442B1 (en) * | 1999-06-29 | 2003-10-07 | Emc Corp | Methods and apparatus for interfacing to a data storage system |
US7068661B1 (en) * | 1999-07-13 | 2006-06-27 | Alcatel Canada Inc. | Method and apparatus for providing control information in a system using distributed communication routing |
US6397292B1 (en) | 1999-08-19 | 2002-05-28 | Emc Corporation | Asymmetrical striping of mirrored storage device arrays and concurrent access to even tracks in the first array and odd tracks in the second array to improve data access performance |
US6493772B1 (en) * | 1999-08-23 | 2002-12-10 | International Business Machines Corporation | System and method with guaranteed maximum command response time |
EP1236106A4 (en) * | 1999-09-22 | 2002-10-30 | Netcell Corp | RAID CONTROL SYSTEM AND METHOD WITH HOST ATA EMULATION INTERFACE |
US6574709B1 (en) * | 1999-09-30 | 2003-06-03 | International Business Machine Corporation | System, apparatus, and method providing cache data mirroring to a data storage system |
US6553387B1 (en) * | 1999-11-29 | 2003-04-22 | Microsoft Corporation | Logical volume configuration data management determines whether to expose the logical volume on-line, off-line request based on comparison of volume epoch numbers on each extents of the volume identifiers |
US6516370B1 (en) * | 1999-12-29 | 2003-02-04 | Emc Corporation | Data storage system |
US6681339B2 (en) * | 2001-01-16 | 2004-01-20 | International Business Machines Corporation | System and method for efficient failover/failback techniques for fault-tolerant data storage system |
US7155569B2 (en) * | 2001-02-28 | 2006-12-26 | Lsi Logic Corporation | Method for raid striped I/O request generation using a shared scatter gather list |
US6957291B2 (en) * | 2001-03-29 | 2005-10-18 | Quantum Corporation | Removable disk storage array emulating tape library having backup and archive capability |
US6792505B2 (en) * | 2001-04-16 | 2004-09-14 | International Business Machines Corporation | System apparatus and method for storage device controller-based message passing having effective data channel bandwidth and controller cache memory increase |
US6978345B2 (en) * | 2001-05-15 | 2005-12-20 | Hewlett-Packard Development Company, L.P. | Self-mirroring high performance disk drive |
US7065661B2 (en) * | 2002-12-16 | 2006-06-20 | Emc Corporation | Using request and grant signals to read revision information from an adapter board that interfaces a disk drive |
US7107343B2 (en) * | 2001-07-12 | 2006-09-12 | Adaptec, Inc. | Method and apparatus for improved RAID 1 write performance in low cost systems |
US7171434B2 (en) * | 2001-09-07 | 2007-01-30 | Network Appliance, Inc. | Detecting unavailability of primary central processing element, each backup central processing element associated with a group of virtual logic units and quiescing I/O operations of the primary central processing element in a storage virtualization system |
US7178147B2 (en) * | 2001-09-21 | 2007-02-13 | International Business Machines Corporation | Method, system, and program for allocating processor resources to a first and second types of tasks |
US7028213B2 (en) * | 2001-09-28 | 2006-04-11 | Hewlett-Packard Development Company, L.P. | Error indication in a raid memory system |
US7107320B2 (en) * | 2001-11-02 | 2006-09-12 | Dot Hill Systems Corp. | Data mirroring between controllers in an active-active controller pair |
US7055056B2 (en) * | 2001-11-21 | 2006-05-30 | Hewlett-Packard Development Company, L.P. | System and method for ensuring the availability of a storage system |
US7552289B2 (en) * | 2002-01-18 | 2009-06-23 | Rasilient, Inc. | Method and apparatus for arbitrating access of a serial ATA storage device by multiple hosts with separate host adapters |
CA2475346A1 (en) * | 2002-02-15 | 2003-08-21 | Coloplast A/S | A wound care device |
KR100463841B1 (ko) * | 2002-02-25 | 2004-12-29 | 한국전자통신연구원 | 레이드 서브 시스템과 이를 이용한 디스크 에러 모드에서데이터 입출력 및 복구 방법 |
US7032131B2 (en) * | 2002-03-26 | 2006-04-18 | Hewlett-Packard Development Company, L.P. | System and method for ensuring merge completion in a storage area network |
US6831831B2 (en) * | 2002-04-11 | 2004-12-14 | Bruce A Bicknell | Disc storage subsystem having improved reliability |
US7073022B2 (en) * | 2002-05-23 | 2006-07-04 | International Business Machines Corporation | Serial interface for a data storage array |
US20050089027A1 (en) * | 2002-06-18 | 2005-04-28 | Colton John R. | Intelligent optical data switching system |
US6961813B2 (en) * | 2002-06-21 | 2005-11-01 | Hewlett-Packard Development Company, L.P. | System and method for providing multi-initiator capability to an ATA drive |
US6925531B2 (en) * | 2002-07-11 | 2005-08-02 | Storage Technology Corporation | Multi-element storage array |
US7146521B1 (en) * | 2002-08-21 | 2006-12-05 | 3Pardata, Inc. | Preventing damage of storage devices and data loss in a data storage system |
US7210005B2 (en) * | 2002-09-03 | 2007-04-24 | Copan Systems, Inc. | Method and apparatus for power-efficient high-capacity scalable storage system |
US20040123027A1 (en) * | 2002-10-03 | 2004-06-24 | Workman Michael Lee | Systems and methods of multiple access paths to single ported storage devices |
JP4230189B2 (ja) * | 2002-10-03 | 2009-02-25 | 株式会社日立製作所 | ディスクアレイ装置、及びその電源供給方法 |
US8214531B2 (en) * | 2002-10-24 | 2012-07-03 | Emulex Design & Manufacturing Corporation | Network configuration synchronization for hardware accelerated network protocol |
US6886059B2 (en) * | 2002-10-31 | 2005-04-26 | Lsi Logic Corporation | Methods and structure for SCSI/IDE translation for non-SCSI enclosures in a storage subsystem |
US20040088482A1 (en) * | 2002-11-04 | 2004-05-06 | Tanzer Herbert J. | Systems for storing data |
US20040177218A1 (en) * | 2002-11-06 | 2004-09-09 | Meehan Thomas F. | Multiple level raid architecture |
US7246192B1 (en) * | 2003-01-10 | 2007-07-17 | Marvell International Ltd. | Serial/parallel ATA controller and converter |
US8095704B2 (en) * | 2003-01-13 | 2012-01-10 | Sierra Logic | Integrated-circuit implementation of a storage-shelf router and a path controller card for combined use in high-availability mass-storage-device shelves that may be incorporated within disk arrays |
US7051134B2 (en) * | 2003-01-21 | 2006-05-23 | Ali Corporation | Daisy chained ATA host controllers in a single PCI device |
JP3974538B2 (ja) * | 2003-02-20 | 2007-09-12 | 株式会社日立製作所 | 情報処理システム |
WO2004077211A2 (en) * | 2003-02-28 | 2004-09-10 | Tilmon Systems Ltd. | Method and apparatus for increasing file server performance by offloading data path processing |
US7111194B1 (en) * | 2003-03-21 | 2006-09-19 | Network Appliance, Inc. | Mirror split brain avoidance |
US7516272B2 (en) * | 2003-03-28 | 2009-04-07 | Emc Corporation | Midplane-independent implementations of data storage system enclosures |
US7302536B2 (en) * | 2003-06-17 | 2007-11-27 | Hitachi, Ltd. | Method and apparatus for managing replication volumes |
JP4266725B2 (ja) * | 2003-06-27 | 2009-05-20 | 株式会社日立製作所 | 記憶システム |
US8301809B2 (en) * | 2003-07-02 | 2012-10-30 | Infortrend Technology, Inc. | Storage virtualization computer system and external controller thereof |
US7249205B2 (en) * | 2003-11-20 | 2007-07-24 | International Business Machines Corporation | Apparatus and method to provide information from a first information storage and retrieval system to a second information storage and retrieval system |
US7734868B2 (en) * | 2003-12-02 | 2010-06-08 | Nvidia Corporation | Universal RAID class driver |
US20050160319A1 (en) * | 2004-01-14 | 2005-07-21 | Marcak Scott B. | System and method for detecting and reporting resource conflicts |
US7313643B2 (en) * | 2004-02-17 | 2007-12-25 | Nec Electronics America, Inc. | PCI-express to PCI/PCI X translator |
US7913148B2 (en) * | 2004-03-12 | 2011-03-22 | Nvidia Corporation | Disk controller methods and apparatus with improved striping, redundancy operations and interfaces |
US7370188B2 (en) * | 2004-05-17 | 2008-05-06 | Intel Corporation | Input/output scanning |
-
2004
- 2004-01-20 US US10/707,871 patent/US8301809B2/en active Active
- 2004-02-12 US US10/708,156 patent/US20050015545A1/en not_active Abandoned
- 2004-02-18 US US10/708,242 patent/US7281072B2/en active Active
- 2004-05-24 US US10/709,718 patent/US9594510B2/en active Active
- 2004-06-23 TW TW093118121A patent/TWI260500B/zh active
- 2004-06-25 TW TW093118601A patent/TWI262390B/zh active
- 2004-06-25 CN CNB2004100618227A patent/CN1320436C/zh active Active
- 2004-06-28 TW TW093118844A patent/TWI253569B/zh active
- 2004-07-02 CN CNB2004100621465A patent/CN1320437C/zh active Active
- 2004-07-02 CN CNB2004100621380A patent/CN100334567C/zh active Active
-
2012
- 2012-09-14 US US13/615,653 patent/US10452270B2/en not_active Expired - Lifetime
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101470587B (zh) * | 2004-12-21 | 2011-08-17 | 普安科技股份有限公司 | 冗余储存虚拟化子系统 |
US7676614B2 (en) | 2005-01-13 | 2010-03-09 | Infortrend Technology, Inc. | Redundant storage virtualization computer system |
US8412869B2 (en) | 2005-01-13 | 2013-04-02 | Infortrend Technology, Inc. | Redundant storage virtualization computer system |
CN100447731C (zh) * | 2005-01-13 | 2008-12-31 | 普安科技股份有限公司 | 冗余存储虚拟化计算机系统 |
US7774514B2 (en) | 2005-05-16 | 2010-08-10 | Infortrend Technology, Inc. | Method of transmitting data between storage virtualization controllers and storage virtualization controller designed to implement the method |
US8352653B2 (en) | 2005-11-23 | 2013-01-08 | Infortrend Technology, Inc. | Storage virtualization subsystem and system with host-side redundancy via SAS connectivity |
CN101221483B (zh) * | 2006-12-08 | 2010-08-11 | 国际商业机器公司 | 改善连续串行小型机系统接口存储设备性能的装置和方法 |
CN107247565A (zh) * | 2009-03-18 | 2017-10-13 | 株式会社日立制作所 | 存储控制装置以及虚拟卷的控制方法 |
CN107247565B (zh) * | 2009-03-18 | 2020-06-09 | 株式会社日立制作所 | 存储控制装置以及虚拟卷的控制方法 |
CN104182303A (zh) * | 2013-05-22 | 2014-12-03 | 通用汽车环球科技运作有限责任公司 | 冗余计算架构 |
CN104182303B (zh) * | 2013-05-22 | 2016-11-23 | 通用汽车环球科技运作有限责任公司 | 冗余计算架构 |
US9372774B2 (en) | 2013-05-22 | 2016-06-21 | GM Global Technology Operations LLC | Redundant computing architecture |
CN103440177A (zh) * | 2013-08-23 | 2013-12-11 | 浪潮电子信息产业股份有限公司 | 一种基于numa多物理层分区的存储控制冗余方法 |
CN107851063A (zh) * | 2015-07-28 | 2018-03-27 | 华为技术有限公司 | 智能编码存储器系统的动态编码算法 |
CN107851063B (zh) * | 2015-07-28 | 2020-12-25 | 华为技术有限公司 | 智能编码存储器系统的动态编码算法 |
CN108280041A (zh) * | 2017-12-29 | 2018-07-13 | 武汉船舶通信研究所(中国船舶重工集团公司第七二二研究所) | 一种内部集成电路主机的通信方法和装置 |
CN108280041B (zh) * | 2017-12-29 | 2020-03-10 | 武汉船舶通信研究所(中国船舶重工集团公司第七二二研究所) | 一种内部集成电路主机的通信方法和装置 |
CN108459971A (zh) * | 2018-03-19 | 2018-08-28 | 国云科技股份有限公司 | 一种基于桌面云共享设备的云盘性能加速方法 |
Also Published As
Publication number | Publication date |
---|---|
TW200502765A (en) | 2005-01-16 |
US20050005062A1 (en) | 2005-01-06 |
TWI253569B (en) | 2006-04-21 |
CN1558321A (zh) | 2004-12-29 |
US20130013827A1 (en) | 2013-01-10 |
US20050005063A1 (en) | 2005-01-06 |
US7281072B2 (en) | 2007-10-09 |
TWI262390B (en) | 2006-09-21 |
CN1598755A (zh) | 2005-03-23 |
CN1320436C (zh) | 2007-06-06 |
CN100334567C (zh) | 2007-08-29 |
TWI260500B (en) | 2006-08-21 |
US20050005044A1 (en) | 2005-01-06 |
TW200502757A (en) | 2005-01-16 |
US8301809B2 (en) | 2012-10-30 |
CN1320437C (zh) | 2007-06-06 |
TW200502788A (en) | 2005-01-16 |
US10452270B2 (en) | 2019-10-22 |
US9594510B2 (en) | 2017-03-14 |
US20050015545A1 (en) | 2005-01-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1553346A (zh) | 冗余外部储存虚拟化计算机系统 | |
US10191669B2 (en) | Redundant SAS storage virtualization subsystem and system using the same and method therefor | |
US7676614B2 (en) | Redundant storage virtualization computer system | |
US6598174B1 (en) | Method and apparatus for storage unit replacement in non-redundant array | |
US6839788B2 (en) | Bus zoning in a channel independent storage controller architecture | |
US7607035B2 (en) | Disk array apparatus and method for controlling the same | |
US8639898B2 (en) | Storage apparatus and data copy method | |
US20100088456A1 (en) | Storage-sharing bus switch | |
US20130067162A1 (en) | Methods and structure for load balancing of background tasks between storage controllers in a clustered storage environment | |
WO2003030006A9 (en) | Controller data sharing using a modular dma architecture | |
CN101452373A (zh) | 输入输出处理器 | |
WO2012169824A2 (en) | Raid controller with programmable interface for a semiconductor storage device | |
GB2416414A (en) | Host-side rerouting of I/O requests in a data storage system with redundant controllers | |
WO2012124976A2 (en) | Hybrid system architecture for random access memory | |
WO2012105811A2 (en) | Raid-based storage control board | |
WO2014094250A1 (zh) | 数据处理方法和设备 | |
CN101218571B (zh) | 执行镜像后置写入操作的系统及方法,和总线桥接器 | |
CN100447731C (zh) | 冗余存储虚拟化计算机系统 | |
KR20050033060A (ko) | 네트워크를 이용한 핫 스페어 구성 시스템 및 방법 | |
CN101073066A (zh) | 生成奇偶数据的方法、系统和程序 | |
JP2006323541A (ja) | データ転送回路及びデータ転送方法 | |
US20130167206A1 (en) | Storage system, method of controlling access to storage system and computer system | |
WO2012169825A2 (en) | Two-way raid controller for a semiconductor storage device | |
US8489826B2 (en) | Storage controller and storage subsystem with added configurable functions | |
WO2013176306A1 (en) | System architecture based on flash memory |
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 |