存储系统的制作方法

文档序号:6556727阅读:173来源:国知局
专利名称:存储系统的制作方法
技术领域
本发明涉及一种存储系统,尤其是涉及一种存储系统中执行进行与指令对应的处理的处理装置切换的技术。
背景技术
具备主计算机与存储系统的数据处理系统被用于各种用途中。这里,所谓存储系统是由具有存储数据的盘与控制盘的控制器的至少一个存储节点构成的系统。在存储节点内,通常用盘来构筑一个或多个逻辑存储区域(例如称为‘逻辑单元’)。主计算机边发出将存储系统的存储节点内构筑的逻辑单元作为对象的指令,边执行数据处理业务。在接收来自主计算机的指令的存储节点内,控制器内的处理装置(例如CPU核心)执行与接收到的指令对应的处理。
就这种存储系统而言,由于存储在逻辑单元中的数据量增大或来自主计算机的访问频度增大等,有时特定存储节点内的特定处理装置的负荷变得过大。
另一方面,就存储系统而言,公开了将数据从第1存储节点内的逻辑单元移动到第2存储节点内的逻辑单元的技术(例如专利文献1)。在该技术中,在数据移动之后,由第2存储节点接收来自主计算机的数据。因此,在数据移动之前由第1存储节点内的处理装置执行的、与来自主计算机的指令对应的处理在数据移动之后,变为由第2存储节点内的处理装置执行。在上述特定处理装置的负荷过大的情况下,若执行进行与这种来自主计算机指令对应的处理的处理装置切换,则可实现存储系统内的负荷分散。
专利文献1特开2000-187608号公报上述现有技术存在如下问题,即当执行进行对应于指令的处理的处理装置切换时,必需要移动数据和与之相伴的各种设定的变更,处理复杂。

发明内容
本发明为了解决上述现有课题而作出,其目的在于提供一种可使存储系统容易实现执行与指令对应的处理的处理装置切换的技术。
为了解决上述课题的至少一部分,本发明的第1存储系统具备多个存储节点,分别包含作为存储数据的逻辑存储区域的至少一个逻辑单元、和控制所述逻辑单元的至少一个控制器;和控制器间结合部,不经所述控制器与连接于所述存储系统上的主计算机之间的访问路径,来连接各不相同的所述存储节点中包含的多个所述控制器之间,所述存储节点的所述控制器包含具有至少一个CPU核心的CPU;网络控制器,经网络,从主计算机接收将所述存储系统内的多个所述逻辑单元内的一个作为对象的指令;逻辑单元控制器,连接在所述逻辑单元上,并且,控制所述逻辑单元中的数据的输入输出;和存储器,作为由所述CPU与所述逻辑单元控制器共用的存储器区域,具有与所述CPU内的所述CPU核心和所述存储系统内的多个所述逻辑单元控制器的组合分别对应的多个第1共用存储器区域,在所述多个存储节点内的第1存储节点中包含的所述网络控制器从主计算机接收到将所述多个存储节点内的第2存储节点中包含的逻辑单元作为对象的指令时,所述第1存储节点内的所述CPU核心通过执行对应于接收到的指令的处理,在与所述第1存储节点内的所述CPU核心和所述第2存储节点内的所述逻辑单元控制器的组合对应的所述第1存储节点内的所述第1共用存储器区域中,存储对与所述第2存储节点中包含的逻辑单元连接的所述逻辑单元控制器的指令,所述第2存储节点内的所述逻辑单元控制器经所述控制器间结合部,取得存储在所述第1存储节点内的所述第1共用存储器区域中的指令,并根据取得的指令,控制所述逻辑单元中的数据的输入输出。
在该存储系统中,当在多个存储系统内的第1存储节点中包含的网络控制器从主计算机接收将在多个存储节点内的第2存储节点中包含的逻辑单元作为对象的指令时,通过第1存储节点内的CPU核心执行对应于接收到的指令的处理,将对连接于第2存储节点内的逻辑单元上的逻辑单元控制器的指令、存储在与自己和第2存储节点内的逻辑单元控制器的组合对应的第1存储节点内的第1共用存储器区域中。另外,第2存储节点内的逻辑单元控制器经控制器间结合部,取得存储在第1存储节点内的第1共用存储器区域中的指令,并根据取得的指令,控制逻辑单元中的数据的输入输出。因此,第1存储节点内的CPU核心可执行与将包含于存储节点中的逻辑单元作为对象的指令对应的处理。因此,该存储系统在执行对应于指令的处理的处理装置切换时,不必移动存储在逻辑单元中的数据等,可容易地实现切换。
另外,为了解决上述课题的至少一部分,本发明的第2存储系统具备至少一个存储节点,所述存储节点包含作为存储数据的逻辑存储区域的至少一个逻辑单元;包含多个CPU核心的CPU;网络控制器,经网络从主计算机接收将所述逻辑单元作为对象的指令;逻辑单元控制器,连接于所述逻辑单元上,并且,控制所述逻辑单元中的数据的输入输出;和具有多个第1共用存储器区域和多个第2共用存储器区域的存储器,该第1共用存储器区域是由所述CPU与所述逻辑单元控制器共用的存储器区域,并与所述CPU的多个CPU核心分别对应,该第2共用存储器区域是由所述CPU与所述网络控制器共用的存储器区域,并与所述CPU的多个CPU核心分别对应,所述网络控制器具有根据接收的指令的对象逻辑单元来设定作为执行与从主计算机接收到的指令对应的处理的所述CPU核心、即担当CPU核心的功能,并且,将接收到的指令存储在与所述担当CPU核心对应的所述第2共用存储器区域中,所述担当CPU核心通过执行与存储在所述第2共用存储器区域中的指令对应的处理,将针对所述逻辑单元控制器的指令存储在与所述担当CPU核心对应的所述第1共用存储器区域中,
所述逻辑单元控制器按照存储在所述第1共用存储器区域中的指令,控制所述逻辑单元中的数据的输入输出。
在该存储系统中,网络控制器具有对应于接收的指令的对象逻辑单元、设定对应于从主计算机接收的指令的处理的担当CPU核心的功能,同时,将接收到的指令存储在对应于担当CPU核心的第2共用存储器区域中。担当CPU核心通过执行与存储在第2共用存储器区域中的指令对应的处理,将针对逻辑单元控制器的指令存储在与自己对应的第1共用存储器区域中。逻辑单元控制器根据存储在第1共用存储器区域中的指令,控制逻辑单元中的数据输入输出。因此,网络控制器通过仅变更担当CPU核心的设定,执行变更后的担当CPU核心使用与自己对应的第1共用存储器区域和第2共用存储器区域的指令所对应的处理。因此,该存储系统可容易实现执行对应于指令的处理的处理装置切换。
另外,本发明可以各种形态来实现,例如可以存储系统、存储装置、存储系统或存储装置的控制方法、用于实现这些方法或装置的功能的计算机程序、包含该计算机程序的计算机程序组、记录该计算机程序的记录媒体、包含该计算机程序并在载波内具体化的数据信号等形态来实现。
在将本发明构成为计算机程序或记录该计算机程序的记录媒体等的情况下,也可构成为控制计算机系统整体的动作的程序,或构成为控制计算机或存储子系统各自的动作的程序。


图1是示意性地表示本发明第1实施例的数据处理系统的构成说明图;图2是表示存储节点100的硬件构成一例的说明图;图3是表示节点间控制器结合部102的构成的说明图;图4是表示包含于存储节点100中的逻辑单元190的构成一例的说明图;图5是表示包含于存储节点100的控制器110中的CPU120的构成一例的说明图;图6是表示包含于存储节点100的控制器110中的FC控制器150的构成一例的说明图;图7是表示包含于存储节点100的控制器110中的网络控制器130的构成一例的说明图;图8是表示包含于存储节点100的控制器110中的存储器160的构成一例的说明图;图9是表示LU管理表一例的说明图;图10是表示目标管理表一例的说明图;图11是表示发起者(initiator)管理表一例的说明图;图12是表示名字服务器500的构成一例的说明图;图13是表示存储系统1000的制品形态的一例的说明图;图14是表示存储系统1000的制品形态的另一例的说明图;图15是表示存储系统1000的存储节点100中的主指令执行处理流程的流程图;图16是表示存储系统1000的存储节点100中的主指令执行处理流程的流程图;图17是表示存储节点100中的主指令执行处理概要的说明图;图18是表示存储节点100中的主指令执行处理概要的说明图;图19是表示控制器内担当CPU核心切换后的主指令执行处理概要的说明图;图20是原理性地表示存储节点100的控制器110内的地址空间的说明图;图21是表示存储节点100的控制器110内的存储器映射图(map)的说明图;图22是原理性地表示存储系统1000的地址空间的说明图;图23是表示存储系统1000的存储器映射图的说明图;图24是表示节点间担当CPU核心切换一例的说明图;图25是原理性地表示节点间担当CPU核心切换后、从担当CPU核心看的存储系统1000的地址空间的说明图;图26是表示节点间担当CPU核心切换后的主指令执行处理流程的流程图;图27是表示节点间担当CPU核心切换后的主指令执行处理流程的流程图;图28是表示节点间担当CPU核心切换后的主指令执行处理的概要的说明图;图29是表示节点间担当CPU核心切换后的主指令执行处理的概要的说明图;图30是表示主计算机200与存储节点100之间的访问路径变更处理的一例的说明图;图31是表示存储系统1000的管理装置400的管理画面410一例的说明图;图32是表示存储系统1000的管理装置400的管理画面410另一例的说明图;图33是表示关于存储系统1000中的投影像(shadow image)的应用一例的说明图;图34是表示关于存储系统1000中的投影像的应用另一例的说明图;图35是表示关于存储系统1000中的快照(snapshot)的应用一例的说明图;图36是表示关于存储系统1000中的远程拷贝的应用一例的说明图;图37是表示关于存储系统1000中的存储节点100之间的镜像(mirroring)的应用一例的说明图。
图38是表示关于存储系统1000中的存储节点100之间RAID的应用一例的说明图;图39是示意性地表示第2实施例的数据处理系统的构成说明图;图40是表示第2实施例中的节点间控制器结合部102的构成的说明图;图41是原理性地表示第2实施例中的存储系统1000的地址空间的说明图;图42是表示作为变形例的节点间控制器结合部102的构成的说明图;图43是表示作为另一变形例的节点间控制器结合部102的构成的说明图;图44是表示作为变形例的存储节点100的构成的说明图;
图45是表示主计算机200与存储节点100之间的访问路径的变更处理的变形例的说明图;图46是表示主计算机200与存储节点100之间的访问路径的变更处理的另一变形例的说明图。
符号的说明10...数据处理系统100...存储节点102...节点间控制器结合部104...连接线105...连接线106...结合部开关110...控制器112...控制器芯片114...DMA电路116...奇偶位运算电路120...CPU122...核心130...网络控制器132...门铃(doorbell)寄存器134...NWC门铃138...中断线140...网桥(bridge)141...网桥电路142...开关144...中断变换器150...FC控制器152...门铃寄存器154...FCC门铃156...CPU对应器
158...中断线160...存储器162...高速缓冲存储器区域164...控制数据区域166...控制程序区域168...存储器控制电路171...系统构成管理表172...LU管理表173...目标管理表174...发起者管理表176...NWC邮件箱178...FCC邮件箱180...操作系统程序183...目标控制程序184...RAID控制程序185...高速缓冲存储器控制程序186...盘控制程序187...FC控制程序188...LU控制程序189...通信程序190...逻辑单元192...光纤信道(fibre channel)194...盘200...主计算机210...发起者管理表220...路径切换程序300...开关310...虚拟连接装置(virtual connecting device)400...管理装置
410...管理画面500...名字服务器520...CPU530...网络控制器540...网桥560...存储器562...控制数据区域564...控制程序区域571...名字管理表580...操作系统程序582...名字管理程序583...通信程序1000...存储系统1200...控制器壳体1300...盘壳体具体实施方式
下面,根据实施例按如下顺序来说明本发明的实施方式。另外,下面说明的实施方式是一例,因此,不限定本发明。
A.第1实施例A-1.系统的构成A-2.主指令执行处理A-3.控制器内担当CPU核心切换A-4.存储节点100的控制器110内的地址空间和存储器映射图(map)A-5.存储系统100的地址空间和存储器映射图A-6.节点间担当CPU核心切换A-7.主计算机与存储节点间的访问路径变更A-8.管理画面的一例A-9.第1实施例的应用B.第2实施例
C.变形例A.第1实施例A-1.系统的构成图1是示意性地表示本发明第1实施例的数据处理系统的构成说明图。第1实施例的数据处理系统10具备主计算机(下面也称为‘Host’)200、和连接于主计算机200上的存储系统1000。在图1的实例中,数据处理系统10具备三个主计算机200(200a、200b、200c),但数据处理系统10也可具备至少一个主计算机200。
在本实施例的数据处理系统10中,假设IP网络作为连接主计算机200与存储节点100的网络,同样,假设TCP/IP协议作为网络协议,假设使用作为块型I/O接口(interface)的iSCSI协议来作为主计算机200与存储节点100之间的数据协议,但本发明不限于此。
另外,在本说明书和附图中,在数据处理系统10内具有多个相同构成要素的情况下,向这些构成要素的名称和符号的末尾附加小写字母(a、b、c...),作为区别它们的识别符。例如图1所示,将3台主计算机200分别表示为‘主计算机a(Host a)’、‘主计算机b(Host b)’、‘主计算机c(Host c)’,其符号分别表示为‘200a’、‘200b’、‘200c’。但是,当不必特别区别各个构成要素时,有时也省略附加的识别符。
存储系统1000(图1)包含存储节点(下面也称为‘SN’)100、开关300、管理装置400和名字服务器(name server)500。另外,名字服务器500在执行本实施方式中说明的基于Target名字继承的访问路径切换时必需存在,但在利用后述的其它方法来进行访问路径切换时不必存在。
存储节点100包含作为从主计算机200访问的逻辑存储区域的逻辑单元(下面也称为‘LU’)190、和控制逻辑单元190并执行来自主计算机200的访问请求的控制器(下面也称为‘CTL’)110。另外,在本说明书和附图中,为了分别区别一个存储节点100内的逻辑单元190,向逻辑单元190的名称和符号附加连续序号(0大于等于的整数)。
本实施例的存储系统1000是像这样包含一个或一个以上具备逻辑单元190和控制器110的存储节点100来构成的系统。在存储系统1000中,可对应于请求容量或请求性能,进行存储节点100的增减设置。下面,如图1所示,用在存储系统1000中包含3个存储节点100的实例来进行说明。
存储节点100的控制器110经节点间控制器结合部102与存储系统1000内的其它存储节点100的控制器110连接。该节点间控制器结合部102不经开关300、即不经主计算机200与控制器110之间的访问路径,连接控制器110彼此。另外,后面描述节点间控制器结合部102的详细构成。
开关300彼此连接存储节点100的控制器110、管理装置400、名字服务器500、和主计算机200。管理装置400是进行存储系统1000的管理的装置。名字服务器500是用于存储节点100和主计算机200的名称(名字)管理和逻辑连接关系的装置。
另外,在图1的实例中,开关300、管理装置400和名字服务器500包含于存储系统1000内,但开关300、管理装置400和名字服务器500也可不包含于存储系统1000内,而作为与存储系统1000独立的构成要素。另外,在图1的实例中,假设管理装置400为经由经开关300的网络与各控制器110通信的‘InBand型’的通信形态,但也可采用‘Out of Band型’的通信形态,即在各控制器110中设置用于与管理网络(未图示)连接的管理接口,该管理网络是为了管理而专门被设置的,管理装置400经管理网络连接于各控制器110的管理接口上,进行通信。
主计算机200是具有CPU、存储器和网络控制器(均未图示)的计算机,在存储器内具有发起者(initiator)管理表210。后面描述发起者管理表210。
图2是表示存储节点100(图1)的硬件构成一例的说明图。如图2所示,存储节点100包含控制器(CTL)110、和经光纤信道(fibre channel)(下面也称为‘FC’)192连接于控制器110上的多个盘194。另外,作为盘种类,除FC外,也可采用SATA、SAS、并行SCSI等,此时,通过采用分别对应的接口来作为接口,可同样实施。
控制器110是控制对多个盘194输入输出的装置,包含控制存储节点100整体的CPU120、用于连接于开关300(图1)上的网络控制器(下面也称为‘NWC’)130、网桥(bridge)140、控制光纤信道192的FC控制器(下面也称为‘FCC’)150和存储器160。存储器160存储CPU120执行的控制程序或控制数据,并且也被用作用于盘访问高速化的高速缓冲存储器。网桥140控制CPU120和存储器160之间的数据或程序传输、网络控制器130和存储器160之间的数据传输、和FC控制器150和存储器160之间的数据传输。另外,如图1所示,存储节点100内的控制器110经节点间控制器结合部102与其它存储节点100内的控制器110连接,但该连接构成如图3所示,在图2中省略图示。FC控制器150相当于本发明中的逻辑单元控制器。另外,控制器110也可包含用于存储控制程序或控制数据的存储器和用作高速缓冲存储器的存储器,来作为各个存储器。
图3是表示节点间控制器结合部102(图1)的构成的说明图。如图3所示,包含于各存储节点100内的控制器110中的网桥140具有开关142(下面也称为‘SW’)。各存储节点100的控制器110(CTLa、CTLb、CTLc)利用连接开关142之间的连接线104(下面称为‘节点间控制器连接线104’)彼此连接。节点间控制器结合部102由各控制器110内的开关142、和节点间控制器连接线104构成。
另外,在图3的实例中,节点间控制器连接线104分别由两个线的组构成。据此,由于即便节点间控制器连接线104的一条因故障不通也可使用另一条,所以可使可靠性提高。另外,通过将两条线内的一条用于上行专用,将另一条用于下行专用,可分割各自的使用频带,从而可使节点间控制器连接线104的通信性能提高。另外,也可由一条线来构成各个节点间控制器连接线104。另外,图3中虚线所示的连接线是当将来增设存储节点100时设置的节点间控制器连接线。
图4是表示包含于存储节点100中的逻辑单元190(图1)的构成一例的说明图。图4(a)中示出RAID(Redundant Arrays of Inexpensive Disks)组(下面也称为‘RG’)的构成一例。在图4(a)所示实例中,由包含于存储节点100中的三个盘194(图2)来构成RAID5型RAID组(RG),其条大小(stripe size)为S块。这里,所谓‘块’是指由SCSI协议标准定义的逻辑块。通常,多将512字节(byte)的盘扇区定义为一个逻辑块。另外,RAID的等级或块大小可任意设定。另外,用于构成RAID组的盘194的数量只要是两台或两台以上,可以是任意台。
就图4(a)所示的RAID组而言,作为RAID5型的构成实例,对每个S块分割一连串的数据,将分割后的数据(图4(a)中,表示为‘Di’(i为0大于等于的整数))分散配置在三个盘194中。另外,由存在于各个不同盘194内的三个存储区域构成条串,在条串中的两个存储区域中存储数据,在剩余的一个存储区域中,存储根据存储在其它两个存储区域中的数据、计算异或(exclusive OR)而生成的奇偶位数据(parity data)(图4(a)中表示为‘Pj’(j为0大于等于的整数))。
图4(b)中示出逻辑单元190的构成例。如图4(b)所示,在上述构成的RAID组中,构成两个逻辑单元190(LU0、LU1)。LU0是容量k块的逻辑单元190,LU1是容量n块的逻辑单元190。RAID组内的逻辑块地址(下面也称为‘LBA’)如图4(b)所示,是逻辑单元LU0为从0至k-1,逻辑单元LU1为从k至(k+n-1)。另外,若构筑逻辑单元190,则各逻辑单元190使用本地LBA(下面也称为‘Local LBA’),从主计算机200(图1)对每个逻辑单元190进行访问,各个逻辑单元190可如独立的盘那样动作。即,逻辑单元LU0的Local LBA从0开始,k-1为最终地址,逻辑单元LU1的LocalLBA同样从0开始,n-1为最终地址。
图5是表示包含于存储节点100的控制器110中的CPU120(图2)的构成一例的说明图。本实施例的CPU120包含两个核心122。即,本实施例的CPU120是多核心CPU。这里,核心122是CPU120中实际执行运算等处理的部分。如图1所示,本实施例的存储系统1000具备三个存储节点100,各存储节点100的控制器110内的CPU120分别包含两个核心122,所以在存储系统1000内共计存在6个核心122。另外,在本说明书和附图中,为了区别包含于一个CPU120中的两个核心122,向一个核心122的名称和符号末尾附加识别符‘p’,向另一个核心122的名称和符号末尾附加识别符‘q’。
图6是表示包含于存储节点100的控制器110中的FC控制器150(图2)的构成一例的说明图。本实施例的FC控制器150包含具有多个FCC门铃(doorbell)154的门铃寄存器152、CPU对应器156、和多个中断线(下面也称为‘INTF’)158。
FCC门铃154是为了CPU120的核心122(图5)与FC控制器150之间的通信而准备的区域。对FC控制器150准备分别与存在于存储系统1000(图1)内的多个核心122对应的FCC门铃154。多个核心122与FC门铃154的对应由CPU对应器设定。另外,未必由CPU对应器156来设定核心122与FC门铃154的对应,也可对FC控制器150准备存在于存储系统1000内的核心122的数个FCC门铃154,并固定地设定核心122与FC门铃154的对应。另外,在本说明书和附图中,为了区别各个FCC门铃154,向FCC门铃154的名称末尾附加带括号的序号(0大于等于的整数)。FCC门铃154相当于本发明中的第1通信区域。
为了从FC控制器150向CPU120的核心122(图5)发出中断请求,准备中断线158。在FC控制器150中,准备分别与存储系统1000(图1)内的多个核心122对应的中断线158。在本说明书和附图中,为了区别各个中断线158,向中断线158的名称末尾附加带括号的序号(0大于等于的整数)。
图7是表示包含于存储节点100的控制器110中的网络控制器130(图2)的构成一例的说明图。本实施例的网络控制器130包含具有多个NWC门铃134的门铃寄存器132、和多个中断线(下面也称为‘INTF’)138。
NWC门铃134是准备来CPU120的核心122(图5)与网络控制器130之间进行通信的区域。对网络控制器130准备分别与包含于控制器110内的CPU120中的两个核心122对应的NWC门铃134。另外,为了从网络控制器130向CPU120的核心122(图5)发出中断请求,准备中断线138。对网络控制器130准备分别与包含于控制器110内的CPU120中的两个核心122对应的中断线138。在本说明书和附图中,为了区别各个NWC门铃134和中断线138,向NWC门铃134和中断线138的名称末尾附加带括号的序号(0大于等于的整数)。NWC门铃134相当于本发明中的第2通信区域。
图8是表示包含于存储节点100的控制器110中的存储器160(图2)的构成一例的说明图。存储器160包含高速缓冲存储器区域162、控制数据区域164和控制程序区域166。
高速缓冲存储器区域162是构成盘高速缓冲存储器(下面也称为‘高速缓冲存储器’)的区域,即为了高速化从主计算机200(图1)进行盘访问,暂时保管应存储在盘194(图2)中的数据或从盘194读出的数据的拷贝。
控制数据区域164是存储CPU120(图2)执行控制程序时参照的各种数据等的区域。在控制数据区域164中,存储登录存储系统1000(图1)的构成信息的系统构成管理表171;登录存储节点100具有的逻辑单元190(图1)的构成信息的LU管理表172;登录作为对逻辑单元190设置的逻辑地址的目标名字(下面也称为‘Target’或‘目标’)的目标管理表173、和登录作为对逻辑单元190进行访问的访问源的逻辑地址的发起者名字(下面也称为‘Initiator’或‘发起者’)的发起者管理表174。
另外,作为目标名字或发起者名字,例如相当于使用iSCSI协议的系统中的iSCSI名字、FC系统中的WWN(World Wode Name)等。但是,若目标名字是在分配给访问目的地的整体(global)中唯一并且从制作到删除未变化的识别符,则不限于此,同样,若发起者名字也是在分配给访问源的整体(global)中唯一并且从制作到删除未变化的识别符,则不限于此。另外,有时将目标地址或发起者地址用作识别访问目的地或访问源的信息。作为目标地址,有使用FC协议的系统中的Destination ID等,作为发起者地址,有使用FC协议的系统中的Source ID等,但不用说,并不限于此。目标名字和发起者地址均为识别访问目的地的识别信息这一点不变,发起者名字和发起者地址均是识别访问源的识别信息这一点不变,所以可使用目标地址来代替目标名字,或使用发起者地址来代替发起者名字。另外,下面不区别目标名字与目标地址,为了方便而称为‘目标名字’。此外,发起者也一样。
在控制数据区域164(图8)中,还存储多个NWC邮件箱176、和多个FCC邮件箱178。这里,NWC邮件箱(下面也称为‘NWC MB’)176具有作为CPU120的核心122(图5)与网络控制器130(图2)的共有存储器区域的功能。在存储器160的控制数据区域164中,准备分别与包含于控制器110内的CPU120中的两个核心122对应的NWC邮件箱176。各NWC邮件箱176如图8所示,包含存储后述的指令的指令存储区域、和存储后述的状态的状态存储区域。另外,在本说明书和附图中,为了区别各个NWC邮件箱176,向NWC邮件箱176的名称末尾附加带括号的序号(0大于等于的整数)。NWC邮件箱176相当于本发明中的第2共用存储器区域。
另外,FCC邮件箱178(下面也称为‘FCC MB’)具有作为CPU120的核心122(图5)与FC控制器150(图2)的共有存储器区域的功能。在存储器160的控制数据区域164中,准备分别与包含该存储器160的控制器110内的核心122与存储系统1000(图1)内的多个FC控制器150的组合对应的FCC邮件箱178。即,存储节点100的控制器110中,不仅包含与自存储节点100内的FC控制器150对应、还包含与其它存储节点100内的FC控制器150对应的FCC邮件箱178。各FCC邮件箱178如图8所示,包含存储后述的指令的指令存储区域、和存储后述的状态的状态存储区域。另外,在本说明书和附图中,为了区别各个FCC邮件箱178,向FCC邮件箱178的名称末尾附加带括号的序号(0大于等于的整数)。FCC邮件箱178相当于本发明中的第1共用存储器区域。
控制程序区域166是存储CPU120(图2)执行的控制程序的区域。在控制程序区域166中存储作为构成执行控制程序用环境的基本程序的操作系统程序180;使用TCP/IP协议来经开关300(图1)发送接收数据的TCP/IP程序181;按iSCSI协议连接主计算机200与存储节点100(图1)之间的iSCSI控制程序182;当从作为发起者的主计算机200接收向作为iSCSI的目标的逻辑单元190(图1)的访问时、控制从主计算机200接收指令或接收到的指令的解释等目标处理的目标控制程序183;控制由存储节点100具备的多个盘194(图2)构成的RAID的RAID控制程序184;管理并控制高速缓冲存储器区域162中构成的盘高速缓冲存储器的高速缓冲存储器控制程序185;执行对单个盘194的指令生成等盘控制处理的盘控制程序186;控制FC控制器150(图2)并经由光纤信道192与盘194执行指令或数据等的发送接收的FC控制程序187;由多个盘194构成RAID、并由此构成作为逻辑存储区域的逻辑单元190的LU控制程序188;和根据iSCSI协议标准、在与名字服务器500之间执行名字管理用通信的通信程序189。
如上所述,在本实施例的数据处理系统10中,假设IP网络作为连接主计算机200与存储节点100的网络,同样,假设TCP/IP协议作为网络协议,假设作为块型I/O接口的iSCSI协议作为主计算机200与存储节点100之间的数据协议,但本发明不限于此。就数据处理系统10而言,在使用其它协议的情况下,在存储节点100内的存储器160的控制程序区域166中,存储对应于所用协议的规定程序。
图9是表示LU管理表172(图8)一例的说明图。图9中,示出存储在存储节点100a(图1)的存储器160上的控制数据区域164(图8)中的LU管理表172的内容。在存储节点100具有的LU管理表172中,记载包含于该存储节点100中的逻辑单元190的信息。
LU管理表172中,‘LU’栏示出逻辑单元190(图1)的序号。同样,‘RG’栏示出构筑逻辑单元190的RAID组(RG)的识别信息,‘Start RG LBA’栏表示构筑逻辑单元190的RG内的逻辑单元190的开头RG LBA(图4),‘LEN’栏表示逻辑单元190的容量(单位为块)。另外,‘Initiator’栏表示允许对逻辑单元190访问的发起者(例如对主计算机200设定的发起者)的发起者名字,‘Target’栏表示分配给逻辑单元190的目标名字。
通过LU管理表172可知,例如包含于存储节点100a中的逻辑单元190‘LUa0’(图1)存在于RAID组‘Rga0’中,开头RG LBA为0,容量为k块,允许访问的发起者是具有‘Init-a0’名字的发起者(例如主计算机200a(图1)),目标名字为‘Targ-a0’。另外,数据处理系统10内的其它LU管理表172的内容也与图9所示的内容一样。
这里,向一个逻辑单元190分配一个目标。另一方面,有时允许多个发起者对一个目标进行访问。若在LU管理表172的‘Initiator’栏中登录发起者名字,则目标控制程序183(图8)抑止从具有登录的发起者名字的发起者以外向逻辑单元190进行访问。在允许从多个发起者对一个逻辑单元190进行访问的情况下,对LU管理表172的‘Initiator’栏制作多个条目(entry),登录多个发起者名字。另外,在不对逻辑单元190设置访问限制的情况下,即在对全部发起者允许对逻辑单元190访问的情况下,在对应于该逻辑单元190的‘Initiator’栏中不登录名字(为NULL)。
另外,管理装置400具有统一LU管理表172的LU管理表,该LU管理表172是存储系统1000(图1)内的全部存储节点100具有的LU管理表172。
图10是表示目标管理表173(图8)一例的说明图。图10中示出存储在存储节点100a(图1)的存储器160上的控制数据区域164(图8)中的目标管理表173的一部分(关于逻辑单元190a0(图1)的部分)。在存储器节点100具有的目标管理表173中,记载对在该存储节点100中包含的逻辑单元190设定的目标信息。
就目标管理表173而言,‘Target’栏示出相同表条目管理的目标名字。同样,‘Initiator’栏表示允许对同一目标访问的发起者的名字,‘Entity’栏表示特定具有目标的装置实体的识别符,‘Portal’栏表示同一目标存在的入口,‘Portal Gr’栏表示同一入口所属的入口组。
这里,所谓入口是指存储节点100的网络控制器130(图2)或主计算机200的网络控制器(未图示)具备的、由物理端口的IP地址与TCP端口序号对构筑的逻辑端口。若相同的物理端口具备多个TCP端口,则配备多个入口。入口组是将多个入口作为一个集合体来用作单一通信路径的组。下面,在本说明书中,对入口组不谈及组名以上的内容。
通过目标管理表173可知,例如目标‘Targ-a0’存在于存储节点100a(Sna)的入口Ta0中,属于入口组TPGa0,允许对发起者‘Init-a0’进行访问。另外,数据处理系统10内的其它目标管理表的内容也与图10所示的内容一样。
图11是表示发起者管理表210(图1)一例的说明图。图11中示出主计算机200a(图1)具有的发起者管理表210a的内容。
发起者管理表210中,‘Initiator’栏示出同一表的条目管理的发起者名字。同样,‘Entity’栏表示特定具有发起者的装置实体的识别符,‘Portal’栏表示同一发起者存在的入口,‘Portal GR’栏表示同一入口所属的入口组。
通过入口管理表210可知,例如发起者‘Init-a0’存在于主计算机200a的入口Ia0中,属于入口组IPGa0。另外,数据处理系统10内的其它发起者管理表的内容也与图11所示的内容一样。
图12是表示名字服务器500(图1)的构成一例的说明图。名字服务器500包含控制名字服务器500整体的CPU520、用于连接于开关300上的网络控制器530、网桥540、和存储器560。网桥540控制CPU520和存储器560之间的数据和程序传输、或网络控制器530和存储器560之间的数据传输。存储器560存储CPU520执行的控制程序和控制数据。存储器560具有控制数据区域562和控制程序区域564。
存储器560的控制数据区域562是存储CPU520执行控制程序时参照的各种数据等的区域。在控制数据区域562中,存储登录iSCSI中的发起者和目标名称、和发起者与目标间的连接关系的名字管理表571。名字管理表571中包含存在于数据处理系统10内的目标管理表(图10)和发起者管理表(图11)。即,名字服务器500在使用名字管理表571一维管理数据处理系统10内的发起者的发起者管理表和目标的目标管理表的同时,管理发起者与目标的组。另外,名字服务器500保存有的与名字管理表571一样的表也存储在管理装置400中。
控制程序区域564(图12)是存储CPU520执行的控制程序的区域。在控制程序区域564中存储作为构成执行控制程序用环境的基本程序的操作系统程序580;使用TCP/IP协议来执行经开关300的数据发送接收的TCP/IP程序581;在管理连接于开关300上的iSCSI节点(主计算机200和存储节点100)的名字的同时、控制发起者与iSCSI节点间的对应关系的名字管理程序582;和根据iSCSI协议标准、执行各发起者(例如主计算机200)和目标(例如存储节点100)的名字管理用通信的通信程序583。
在本实施例中,假设iSCSI协议标准的iSNS(iSCSI Name Server)作为名字服务器500,但在实施本发明时,使用iSNS以外的名字服务器标准来构筑名字服务器也无妨。
图13是表示存储系统1000的制品形态的一例的说明图。图13的实例是所谓机架装配(rack mount)型的实例。在19英寸机架1100的最下段,设置开关300,在其上段,按存储节点100a、存储节点100b、存储节点100c的顺序,设置3个存储节点100。各存储节点100由控制器壳体1200、和盘壳体1300构成。在控制器壳体1200中,装填控制器110,在盘壳体1300中,装填盘194。另外,图13的盘壳体1300中用虚线包围的空间表示未装填盘194的空间。在存储节点100c的上段,设置用于增设存储节点的空间,即不装载控制器壳体1200或盘壳体1300的空间(加阴影表示),在更上段,设置名字服务器500与管理装置400。
图14是表示存储系统1000的制品形态的另一例的说明图。图14的实例是所谓刀片(blade)型的实例。在19英寸机架1100的最下段,设置开关300。在其上段,设置所有存储节点100共用的控制器壳体1200,在控制器壳体1200内,装填存储系统1000内的全部控制器110。另外,图14的控制器壳体1200中用虚线包围的空间表示用于增设控制器110的空间。在控制器壳体1200的上段,按存储节点100a用(1300a)、存储节点100b用(1300b)、存储节点100c用(1300c)的顺序,设置三个存储节点100的盘壳体1300,在各盘壳体1300内,装填盘194。另外,图14的盘壳体1300中用虚线包围的空间表示未装填盘194的空间。在存储节点100c用的盘壳体1300c的上段,设置用于增设盘壳体1300的空间,即不装载盘壳体1300的空间(加阴影表示),在更上段,设置名字服务器500与管理装置400。
A-2.主指令执行处理图15和图16是表示存储系统1000的存储节点100(图1)中的主指令执行处理流程的流程图。另外,图17和图18是表示存储节点100中的主指令执行处理概要的说明图。主指令执行处理是从主计算机200(图1)接收主指令的存储节点100根据主指令所执行的处理。这里,所谓主指令是指从具有发起者(参照图11)的主计算机200、将具有目标(参照图10)的存储节点100的逻辑单元190作为对象发出的指令。在主指令中,有存储在逻辑单元190中的数据用的读取指令、或将数据写入逻辑单元190中的写指令。
下面,以从主计算机200a(图1)向存储节点100a发出将逻辑单元190a0(LU a0)(图1)作为对象的主指令时的主指令执行处理为例来进行说明。另外,图15和图16中,在图的左侧示出网络控制器(NWC)130的处理,另外,在图的右侧示出FC控制器(FCC)150的处理,在图的中央示出CPU120的处理。另外,在图17和图18中,部分省略存储节点100a(图1)的内部构成。
这里,就存储节点100a(图17和图18)而言,在多个NWC邮件箱(NWCMB)176内,NWC邮件箱(0)对应于控制器110a(CTL a)内的CPU120的核心122p(核心p),NWC邮件箱(1)对应于核心122q(核心q)。同样,多个NWC门铃134内,NWC门铃(0)核心122p,NWC门铃(1)对应于核心122q。
另外,就存储节点100a(图17和图18)而言,多个FCC邮件箱(FCCMB)178内的FCC邮件箱(0)与控制器110a(CTL a)内的CPU120的核心122p和控制器110a内的FC控制器150的组合对应,FCC邮件箱(1)与控制器110a内的核心122q与控制器110a内的FC控制器150的组合对应。另外,多个FCC门铃154内,FCC门铃(0)对应于控制器110a的核心122p,FCC门铃(1)对应于控制器110a的核心122q。
下面,着眼于指令处理的流程来进行说明。另外,在主计算机200与控制器110之间和控制器110与盘194之间,执行数据的传输,但尽管该处理因指令的种类不同而传输方向变化,但指令处理与状态处理之间执行数据传输是相同的。另外,数据传输不经CPU120、而通过装载于网络控制器130和FC控制器150上的DMA控制器来实施。该数据传输方法与现有方法相同,所以省略说明。
在图15的步骤S110中,网络控制器130从主计算机200(图1)接收主指令(图17的(i))。该主指令的对象的逻辑单元190是逻辑单元190a0(LUa0)。
在步骤S120中,网络控制器130使用DMA(Direct Memory Access),将接收到的主指令传输到存储器160内的NWC邮件箱(NWC MB)176(图17的(ii))。这里,网络控制器130具有根据主指令的对象的逻辑单元190来分配执行与主指令对应的处理的CPU120的核心122(下面也称为‘担当CPU核心’)的功能。在图17和图18的实例中,设将逻辑单元190a0(LU a0)作为对象的主指令的担当CPU核心是核心122p(核心p)。此时,网络控制器130通过将接收到的主指令传输到作为与核心122p对应的NWC邮件箱176的NWC邮件箱(0),来向核心122p分配对应于主指令的处理。另外,在本实施例中,以指令请求块(下面也称为‘CRB’)的形式来传输主指令。
另外,在本实施例中,设对每个逻辑单元190设定一个核心122,作为担当CPU核心。另外,在本实施例中,仅具有担当CPU核心的控制器110可更新高速缓冲存储器等的管理信息或逻辑单元190的管理信息。其它控制器110虽然可对逻辑单元190进行访问,但此时必须询问具有担当CPU核心的控制器110,委托高速缓冲存储器的管理信息的更新或锁定等处理。
在步骤S130中,网络控制器130将传输到NWC邮件箱176的主指令的地址存储在NWC门铃134中(图17的(iii))。此时,所用的NWC门铃134是与作为主指令的担当CPU核心的核心122p对应的NWC门铃134(NWC门铃(0))。
在步骤S140中,网络控制器130向作为主指令的担当CPU核心的核心122p发出中断请求(图17的(iv))。在中断请求的发出中,使用对应于核心122p的中断线138(图7)。
在步骤S150中,CPU120的核心122p参照存储在NWC门铃134中的地址,取得存储在NWC邮件箱176中的主指令(图17的(v))。另外,核心122p通过执行RAID控制程序184(图8),执行取得的主指令的对象的逻辑单元190与盘194的变换(下面也称为‘RAID地址变换’)。之后,核心122p通过执行盘控制程序186(图8),根据主指令,生成作为对盘194的指令的盘指令。在盘指令中,例如包含表示指令种类的信息、或作为对象的盘194的识别符、LBA、传输大小、DMA列表等。在本实施例中,盘指令也按指令请求块(CRB)的形式生成。核心122p将生成的盘指令传输到存储器160内的FCC邮件箱178(图17的(vi))。此时,所用的FCC邮件箱178是与作为担当CPU核心的核心122p和连接于主指令的对象的逻辑单元190上的FC控制器150的组合对应的FCC邮件箱178(FCC邮件箱(0))。
在步骤S160中,核心122p将传输到FCC邮件箱178的盘指令的地址存储在FCC门铃154中(图17的(vii))。此时,所用的FCC门铃154是与作为担当CPU核心的核心122p对应的FCC门铃154(FCC门铃(0))。
在步骤S170中,FC控制器150参照存储在FCC门铃154中的地址,使用DMA取得存储在FCC邮件箱178中的盘指令(图17的(viii))。另外,FC控制器150根据取得的盘指令,执行对构成逻辑单元190的盘194的指令处理(图17的(ix))。
在以上说明的步骤S110至170中,完成按照从主计算机200发出的主指令的、对构成逻辑单元190的盘194的处理。之后,在步骤S180之后,将按照指令的对盘194的处理完成通知给主计算机200。此时使用的NWC邮件箱176、NWC门铃134、FCC邮件箱178、FCC门铃154与步骤S110至170中使用的一样。
在步骤S180中,FC控制器150以CRB形式生成盘指令结束状态,并传输到FCC邮件箱178(图18的(x))。此时,使用FCC邮件箱(0)。
在图16的步骤S190中,FC控制器150将存储在FCC邮件箱178中的盘指令结束状态的地址存储在FCC门铃154中(图18的(xi))。此时,使用FCC门铃(0)。
在步骤S200中,FC控制器150向核心122p发出中断请求(图18的(xii))。在中断请求的发出中,使用对应于核心122p的中断线158(图6)。
在步骤S210中,CPU120的核心122p参照存储在FCC门铃154中的地址,取得存储在FCC邮件箱178中的盘指令结束状态(图18的(xiii))。另外,核心122p根据盘指令结束状态,生成主指令结束状态(CRB形式),并传输到NWC邮件箱176(图18的(xiv))。此时,使用NWC邮件箱(0)。
在步骤S220中,CPU120的核心122p将传输到NWC邮件箱176的主指令结束状态的地址存储在NWC门铃134中(图18的(xv))。此时,使用NWC门铃(0)。
在步骤S230中,网络控制器130参照存储在NWC门铃134中的地址,使用DMA取得存储在NWC邮件箱176中的主指令结束状态(图18的(xvi))。另外,网络控制器130使用取得的主指令结束状态,执行对主计算机200的指令结束处理(图18的(xvii))。在步骤S180至S230中,完成对主计算机200的指令结束处理。
步骤S240之后的处理是网络控制器130向CPU120的核心122p通知对主计算机200的处理已完成的处理。在步骤S240中,网络控制器130向NWC邮件箱176传输结束状态。在步骤S250中,网络控制器130将传输到NWC邮件箱176的结束状态的地址存储在NWC门铃134中。在步骤S260中,网络控制器130向核心122p发出中断请求。在步骤S270中,CPU120的核心122p从NWC邮件箱176取得结束状态。由此,完成主指令执行处理。
A-3.控制器内担当CPU核心切换图19是表示控制器内担当CPU核心切换后的主指令执行处理概要的说明图。图19中,示出主指令执行处理内、对应于图17所示部分的处理。
所谓控制器内担当CPU核心切换是指将以某个逻辑单元190为对象的主指令的担当CPU核心从某个核心122变更为相同控制器110内的其它核心122。执行这种切换例如以分散存储节点100的控制器110内的核心122的负荷。例如用户参照显示于管理装置400(图1)的显示画面中的控制器110内的各核心122的负荷,执行控制器内担当CPU核心切换的执行指示。这点在后面描述。
图19的实例是将以逻辑单元190a0(LU a0)为对象的主指令的担当CPU核心从控制器110a(CTL a)的核心122p(核心p)变换为同一控制器110a的核心122q(核心q)的实例(参照图19的(0))。
这里,如上所述,在本实施例的存储节点100中,网络控制器130具有根据主指令的对象的逻辑单元190来分配主指令的担当CPU核心的功能。因此,通过变更网络控制器130的设定,可实现控制器内担当CPU核心切换。
具体而言,当网络控制器130接收以逻辑单元190a0为对象的主指令时,变更网络控制器130的设定,以将主指令传输到对应于核心122q的NWC邮件箱176(NWC邮件箱(1))。
之后的主指令执行处理与控制器内担当CPU核心切换前的处理(参照图15-18)一样执行。两者的区别仅在于,所使用的NWC邮件箱176、NWC门铃134、FCC邮件箱178、FCC门铃154、中断线138(图7)、中断线158(图6)对应于核心122p,还是对应于核心122q。即,如图19所示,在控制器内担当CPU核心切换后的主指令执行处理中,使用对应于核心122q的构成要素(NWC邮件箱(1)、NWC门铃(1)、FCC邮件箱(1)、FCC门铃(1))。另外,控制器内担当CPU核心切换后的主指令执行处理中的、对应于图18所示部分的处理(未图示)也一样。
如上所述,在本实施例的存储系统1000中的存储节点100中,通过变更网络控制器130的设定,可在控制器110内切换主指令的担当CPU核心。另外,切换后也可使用与切换前相同的序列、相同的盘处理、相同的网络控制器130、相同的FC控制器150来执行主指令执行处理。不必伴随主指令的担当CPU核心的切换来变更主计算机200与网络控制器130之间的路径、或FC控制器150与盘194之间的路径。因此,在本实施例的存储系统1000中,可容易地实现执行对应于来自主计算机的指令的处理的核心122的切换。
A-4.存储节点100的控制器110内的地址空间和存储器映射图
图20是原理性地表示存储节点100的控制器110内的地址空间的说明图。在图20的左侧,示出存储节点100a的控制器110a(图1)内的核心122p(核心p)的地址空间,在图20的右侧,示出相同控制器110a内的核心122q(核心q)的地址空间。
如图20所示,在核心122p的地址空间中,向地址‘A0’至‘A3’映射控制器110a的存储器160(图8)内的核心122p用的区域(下面也称为‘存储器ap’)。另外,向地址‘AIO0’至‘A4’映射IO地址区域(存储器映射的I/O)。
如图20所示,向核心122p的地址空间中的存储器ap的区域,映射控制程序区域、控制数据区域与高速缓冲存储器区域(参照图8)。向控制数据区域映射对应于核心122p的NWC邮件箱176(NWC邮件箱(0))、和对应于相同核心122p的FCC邮件箱178(FCC邮件箱(0))。
另外,向核心122p的地址空间中的IO地址区域中,映射对应于核心122p的NWC门铃134(NWC门铃(0))、和对应于相同核心122p的FCC门铃154(FCC门铃(0))。
与核心122p的地址空间一样,向图20右侧所示的核心122q的地址空间的地址‘A0’至‘A4’映射控制器110a的存储器160内的核心122q用区域(下面也称为‘存储器aq’)、和IO地址区域。映射到核心122p的地址空间的NWC邮件箱176、FCC邮件箱178、NWC门铃134、FCC门铃154对应于核心122q。
另外,向核心122p的地址空间的地址‘A4’至‘A5’映射核心122q的地址空间的地址‘A0’至‘A4’。同样,向核心122q的地址空间的地址‘A4’至‘A5’映射核心122p的地址空间的地址‘A0’至‘A4’。另外,其它存储节点100(存储节点100b等)的控制器110内的核心122p和核心122q的地址空间也与图20所示的地址空间一样。
图21是表示存储节点100的控制器110内的存储器映射图的说明图。图21中示出存储节点100a的控制器110a(图1)内的存储器160的存储器映射图。如图21所示,将控制器110a的存储器160(下面也称为‘存储器a’)侵害成核心122p用的存储器区域‘存储器ap’、与核心122q用的存储器区域‘存储器aq’。另外,其它存储节点100(存储节点100b等)的控制器110内的存储器160的存储器映射图也与图21所示的存储器映射图一样。
A-5.存储系统1000的地址空间和存储器映射图图22是原理性地表示存储系统1000(图1)的地址空间的说明图。在图22的左侧,示出从存储节点100a的控制器110a(图1)内的核心122p(核心p)看的存储系统1000的地址空间,在图22的右侧,示出从存储节点100b的控制器110b内的核心122q(核心q)看的存储系统1000的地址空间。
如图22所示,向从控制器110a的核心122p看的存储系统1000的地址空间中、段(segment)地址‘SA0’至‘SA1’映射控制器110a内的核心122p(核心p)的地址空间、和控制器110a的核心122q(核心q)的地址空间(参照图20)。
并且,向从核心122p看的存储系统1000的地址空间中、段地址‘SA1’至‘SA2’映射控制器110b(图1)的核心122p(核心p)和核心122q(核心q)的地址空间,向段地址‘SA2’至‘SA3’映射控制器110c(图1)的核心122p(核心p)和核心122q(核心q)的地址空间。段地址‘SA3’以下是存储节点100增设时用的预备区域。
这样,向从控制器110a的核心122p看的存储系统1000的地址空间,有规则地映射包含其它存储节点100的控制器110(控制器110b等)的、存储系统1000内的全部控制器110内的核心122的地址空间。通过利用节点间控制器结合部102来彼此连接存储系统1000内的所有控制器110,可实现这种映射。因此,控制器110a的核心122p可参照映射的所有空间。另外,映射中的地址变换由网桥140(图3)来进行。
图22右侧所示的从控制器110b的核心122q看的存储系统1000的地址空间与图22左侧所示的从控制器110a的核心122p看的地址空间一样。但是,映射的空间顺序不同。图22未示的从其它控制器110的其它核心122看的存储系统1000的地址空间也一样。
图23是表示存储系统1000(图1)的存储器映射图的说明图。图23示出从存储节点100a的控制器110a看的存储系统1000的存储器映射图。如图23所示,在从控制器110a看的存储器映射图中,除控制器110a内的存储器160的区域(存储器a)外,还映射存储系统1000内的其它控制器110的存储器160的区域(存储器b和存储器c)。即,控制器110a可将存储系统1000的所有控制器110内的存储器160的区域把握为单一的存储器空间。因此,控制器110a内的各核心122可对存储系统1000内的所有存储器空间进行访问。从存储系统1000的其它存储节点100的控制器110看的存储器映射图也一样。
A-6.节点间担当CPU核心切换在本实施例的存储系统1000(图1)中,由于各存储节点100的控制器110的各核心122(图5)具有图22和图23所示的地址空间和存储器映射图,所以可实现节点间担当CPU核心切换。所谓节点间担当CPU核心切换是指将以某个逻辑单元190为对象的主指令的担当CPU核心从某个核心122变更为包含于与包含该核心122的存储节点100不同的存储节点100中的核心122。通常情况下将某个逻辑单元190作为对象的主指令的担当CPU核心多是包含于包含该逻辑单元190的存储节点10中的CPU120的核心122。在这种情况下,通过进行节点间担当CPU核心切换,可将包含于与包含主指令的对象的逻辑单元190的存储节点100不同的存储节点100中的核心122设定成该主指令的担当CPU核心。即,CPU120的核心122可执行与将和自己所属的存储节点100不同的存储节点100内的逻辑单元190作为对象的主指令对应的处理。执行这种切换以例如分散存储节点100之间的负荷。例如用户参照管理装置400(图1)的显示画面中显示的存储系统1000内的各存储节点100的核心122的负荷,执行节点间担当CPU核心切换的执行指示。这点在后面描述。
图24是表示节点间担当CPU核心切换一例的说明图。图24中部分省略示出存储系统1000(图1)的存储节点100a和存储节点100b的内部构成。在图24的实例中,设在节点间担当CPU核心切换前,将存储节点100a内的逻辑单元190a0(LU a0)作为对象的主指令的担当CPU核心为存储节点100a的控制器110a内的CPU120的核心122p(核心p)。此时,存储节点100a内的核心122p使用与自己对应的NWC邮件箱176(NWC邮件箱(0))、NWC门铃134(NWC门铃(0))、FCC邮件箱178(FCC邮件箱(0))、FCC门铃154(FCC门铃(0))来执行主指令执行处理。
利用节点间担当CPU核心切换,将以逻辑单元190a0为对象的主指令的担当CPU核心变更为存储节点100b的控制器110b内的CPU120的核心122p(核心p)。这里,在图24的实例中,在控制器110b内,对应于核心122p的NWC邮件箱176是NWC邮件箱(0),对应于核心122p的NWC门铃134是NWC门铃(0)。另外,在控制器110b内,与核心122p与存储节点100a的控制器110a内的FC控制器150的组合对应的FCC邮件箱178是FCC邮件箱(2)。并且,就存储节点100a内的逻辑单元190a上连接的FC控制器150而言,与存储节点100b的控制器110b内的核心122p对应的FCC门铃154是FCC门铃(2)。存储节点100b的控制器110b内的核心122p在节点间担当CPU核心切换后,使用这些邮件箱和门铃,执行主指令执行处理。
另外,为了执行节点间担当CPU核心切换,必需向具有切点后担当CPU核心的存储节点100(存储节点100b)发出主指令。因此,当节点间担当CPU核心切换时,首先,变更主计算机200(图1)与存储节点100之间的访问路径。主计算机200与存储节点100之间的访问路径的变更如后所述。
另外,就具有节点间担当CPU核心切换后的担当CPU核心的存储节点100(存储节点100b)而言,网络控制器130必需向切点后的担当CPU核心(核心122p)分配以逻辑单元190a0为对象的主指令的处理。因此,设定网络控制器130,以使向核心122p分配以逻辑单元190a0为对象的主指令。
图25是原理性地表示节点间担当CPU核心切换后、从担当CPU核心(存储节点100b的控制器110b内的CPU120的核心122p)看的存储系统1000的地址空间的说明图。如图25所示,作为切换后的担当CPU核心的控制器110b的核心122p(核心p)可参照映射到控制器110b内的存储器160的核心122p用区域(表示为‘存储器bp’)的FCC邮件箱(2)。同样,控制器110b的核心122p也可参照映射到控制器110a内的核心122p用IO地址区域上的FCC门铃(2)。
另外,在本实施例的存储系统1000中,利用节点间控制器结合部102来彼此连接各存储节点100的控制器110(参照图1和图3)。因此,确保从具有切换后的担当CPU核心的控制器110b的CPU120、至存储节点100a的控制器110a内的存储器160和FC控制器150的数据访问路径。因此,控制器110b的CPU120的核心122p可经该访问路径对控制器110a内的存储器160和FC控制器150进行访问。
并且,准备控制器110a的FC控制器150内的FCC门铃(2)(图24),作为切换后的担当CPU核心、即控制器110b的核心122p专用,核心122p可占有使用。因此,不必FCC门铃154的排他控制。
据此,本实施例的存储系统1000可实现节点间担当CPU核心切换。
图26和图27是表示节点间担当CPU核心切换后的主指令执行处理流程的流程图。另外,图28和图29是表示节点间担当CPU核心切换后的主指令执行处理的概要的说明图。图28中示出主指令执行处理内、对应于图17所示部分的的处理,图29中示出对应于图18所示部分的处理。
如上所述,当节点间担当CPU核心切换时,由于变更主计算机200(图1)与存储节点100之间的访问路径,所以由存储节点100b的网络控制器130来接收以逻辑单元190a0为对象的主指令(图26的步骤S310、图28的(i))。
另外,存储节点100b执行网络控制器130的设定,以向核心122p分配以逻辑单元190a0为对象的主指令。因此,经对应于核心122p的NWC邮件箱176(NWC邮件箱(0)),由核心122p取得接收到的主指令(图26的步骤S320-S350,图28的(ii)-(v))。
取得主指令的核心122p执行RAID地址变换和盘指令生成(图26的步骤S350)。另外,在存储节点100b的控制器110b内的存储器160中,存储对逻辑单元190a0进行RAID地址变换用的信息(LU管理表(图9)等)。
核心122p将生成的盘指令传输到存储器160内的FCC邮件箱178(图26的步骤S350、图28的(vi))。此时的传输对象的FCC邮件箱178是与核心122p与连接地存储节点100a的逻辑单元190a0上的FC控制器150的组合对应的FCC邮件箱(2)。
核心122p将FCC邮件箱178中的盘指令存储地址存储在连接于存储节点100a的逻辑单元190a0上的FC控制器150内的FCC门铃154中(图26的步骤S360、图28的(vii))。此时所用的FCC门铃154是与存储节点100b的控制器110b内的核心122p对应的FCC门铃(2)。
连接于存储节点100a的逻辑单元190a0上的FC控制器150参照存储在FCC门铃(2)中的地址,从存储节点100b的FCC邮件箱(2)中取得盘指令(图26的步骤S370、图28的(viii)),执行盘指令处理(图26的步骤S370、图28的(ix))。
若盘指令处理结束,则存储节点100a的FC控制器150向存储节点100b的FCC邮件箱(2)传输盘指令结束状态(图26的步骤S380、图29的(x)),将该存储地址存储在自己具有的FCC门铃(2)中(图27的步骤S390、图29的(xi))。
并且,存储节点100a的FC控制器150向存储节点100b的核心122p发出中断请求(图27的步骤S400、图29的(xii))。这里,存储节点100a和存储节点100b的网桥140具有中断变换器(也称为‘INT变换器’)144。在从存储节点100a的FC控制器150对存储节点100b的核心122p的中断请求(中断信号)的传输路径中,由存储节点100a侧的中断变换器144执行向可通过中断请求的节点间控制器连接线104的数据包的变换、和由存储节点100b侧的中断变换器144执行的逆变换。
接收到中断请求的存储节点100b的控制器110b内的核心122p参照存储在存储节点100a的FCC门铃(2)中的地址,从存储节点100b的FCC门铃(2)中取得盘指令结束状态(图27的步骤S410、图29的(xiii))。之后,核心122p生成主指令结束状态,并传输给存储节点100b的NWC邮件箱(0)(图27的步骤S410、图29的(xiv)),将地址存储在NEW门铃(0)中(图27的步骤S420、图29的(xv))。
存储节点100b的控制器110b内的网络控制器130从NWC邮件箱(0)取得主指令结束状态(图27的步骤S430、图29的(xvi)),执行指令结束处理(图27的步骤S430、图29的(xvii)。之后,网络控制器130向CPU120通知处理完成(图27的步骤S440-S470)。
如上所述,在本实施例的存储系统1000中,可实现节点间担当CPU核心切换,即,将以某个逻辑单元190作为对象的主指令的担当CPU核心、从某个核心122变更为在与包含该核心122的存储节点100不同的存储节点100中包含的核心122。由此,可实现存储系统1000内的存储节点100的负荷分散。通过执行主计算机200与存储节点100之间的访问路径的变更、网络控制器130中的担当CPU核心的设定,可实现节点间担当CPU核心切换。不必将存储在逻辑单元190中的数据拷贝到其它存储节点100的逻辑单元190中。另外,也可在节点间担当CPU核心切换之后,使用与切换前相同的序列、相同的盘处理、相同的网络控制器130、相同的FC控制器150,执行主指令执行处理。不必伴随主指令的担当CPU核心的切换来变更FC控制器150与盘194之间的路径、或移动数据。因此,在本实施例的存储系统1000中,可容易实现执行对应于来自主计算机200的指令的处理的核心122的切换。
A-7.主计算机与存储节点间的访问路径变更如上所述,当节点间担当CPU核心切换时,必需变更主计算机200(图1)与存储节点100之间的访问路径。图30是表示主计算机200与存储节点100之间的访问路径变更处理的一例的说明图。图30中,仅提取显示数据处理系统10(图1)内、与访问路径变更关联的部分。在图30的实例中,进行访问路径的变更,使从主计算机200发出的、以逻辑单元190a0为对象的主指令不达到存储节点100a,而到达存储节点100b。
在访问路径变更前的状态下,主计算机200a具有发起者,该发起者作为发起者名字‘Init-a0’,登录在主计算机200具有的发起者管理表210a(参照图11)中。该发起者‘Init-a0’还被登录在名字服务器500具有的名字管理表571(图12)中。
另外,存储节点100a内的逻辑单元190a0(LU a0)作为目标名字‘Targ-a0’,登录在存储于存储节点100a的控制器110a的存储器160中的目标管理表173(图8和图10)中。目标管理表173中,登录‘Init-a0’,作为允许对‘Targ-a0’进行访问的发起者(参照图10)。该目标‘Targ-a0’还被登录在名字服务器500具有的名字管理表571(图12)中。
并且,在存储于存储节点100a的控制器110a的存储器的LU管理表(图8和图9)中,登录‘Targ-a0’,作为逻辑单元190a0(LU a0)的目标名字,登录‘Init-a0’,作为允许对逻辑单元190a0进行访问的发起者。
当变更访问路径时,首先执行目标‘Targ-a0’从存储节点100a的控制器110a至存储节点100b的控制器110b的继承(图30的(i))。由此,在存储于存储节点100b的控制器110b的存储器160的目标管理表173中,登录目标‘Targ-a0’和发起者‘Init-a0’的组。另外,从存储于存储节点100a的控制器110a的存储器160的目标管理表173中,删除目标‘Targ-a0’和发起者‘Init-a0’的组。
接下来,存储节点100a和存储节点100b向名字服务器500发送构成通知(图30的(ii))。接收该通知后,名字服务器500变更与保存有的名字管理表571(图12)内的目标‘Targ-a0’和发起者‘Init-a0’的组有关的信息。
之后,名字服务器500向正连接于存储系统1000上的各发起者(主计算机)发出构成变更通知(图30的(iii))。接收到构成变更通知的各发起者(主计算机)执行恢复,询问名字服务器500自己可访问的目标是否未变更(图30的(iv))。由此,主计算机200a把握对应于发起者‘Init-a0’的目标‘Targ-a0’移动到存储节点100b。
主计算机200a根据变更后的目标‘Targ-a0’的信息,确立与存储节点100b之间的新的iSCSI对话(session)。由此,完成主计算机200a与存储节点100之间的路径切换(图300的(v))。通过以上的处理,从主计算机200a发出的、以逻辑单元190a0(LU a0)为对象的主指令到达存储节点100b。
A-8.管理画面的一例图31是表示存储系统1000的管理装置400的管理画面410一例的说明图。在图31所示的管理画面410中,示出存储系统1000内的各逻辑单元190的担当CPU核心。例如,逻辑单元190‘LU b0’的担当CPU核心变为存储节点100b的核心p。用户通过管理画面410,可容易地把握存储系统1000内的各逻辑单元190的担当CPU核心。
另外,用户通过在参照管理画面410的同时执行管理装置400的操作,可执行上述控制器内担当CPU核心切换、或节点间担当CPU核心切换的执行指示。例如,用户通过将显示于管理画面410上的逻辑单元190‘LU a0’的图符从存储节点100a的核心p栏拖放到核心q栏(图31的(i)),可指示将逻辑单元190‘LU a0’的担当CPU核心从控制器110a内的核心p变更为核心q的控制器内担当CPU核心切换的执行。另外,用户通过将逻辑单元190‘LU a0’的图符从存储节点100a的核心p栏拖放到存储节点100b的核心p栏(图31的(ii)),可指示将逻辑单元190‘LU a0’的担当CPU核心从控制器110a内的核心p变更为存储节点100b内的核心p的节点间担当CPU核心切换的执行。存储系统1000根据这种来自用户的指示,执行上述控制器内担当CPU核心切换、或节点间担当CPU核心切换。
图32是表示存储系统1000的管理装置400的管理画面410另一例的说明图。在图32所示的管理画面410中,显示存储系统1000内的各存储节点100的运转状况。在管理画面410中,按从左到右的顺序,分别显示存储节点100a(SNa)、存储节点100b(SNb)、存储节点100c(SNc)、将来增设存储节点100d(SNd)的运转状况。在各存储节点100的运转状况显示中,上段示出CPU120的各核心122的运转率,下段示出各逻辑单元190的运转率。这里,就CPU120的核心122而言,算出运转率作为运转时间,该运转时间是从某个计测时间除去该计测时间中的空闲程序(idle routine)时间的时间。另外,就逻辑单元190而言,例如算出运转率,作为从主计算机200接收指令至向主计算机200发送指令完成报告的时间为运转时间。例如在每经过规定时间算出运转率,更新管理画面410的显示。另外,作为运转状况的显示项目,此外还可使用从主计算机200的访问次数、读取请求与写请求的比率、或传输长度等。利用管理画面410的显示,用户可把握存储系统1000内的存储节点100的运转状况(负荷大小)。因此,例如用户参照显示于管理画面410中的CPU120的核心122的负荷,可执行控制器内担当CPU核心切换或节点间担当CPU核心切换的执行指示。
A-9.第1实施例的应用第1实施例的存储系统1000除上述控制器内担当CPU核心切换或节点间担当CPU核心切换外,还可进行各种应用。图33是表示与存储系统1000中的投影像(shadow image)有关的应用一例的说明图。
所谓存储系统1000中的投影像(也称为‘物理拷贝’)是如下处理,即通过保持与从主计算机访问的逻辑单元190内的数据相同数据的其它逻辑单元190,确保数据的冗余性,或分离该拷贝的逻辑单元190,用于其它用作。在投影像中,准备与从主计算机访问的逻辑单元190耦合的其它逻辑单元190,在利用来自主计算机的写指令向逻辑单元190写入数据的情况下,在耦合(coupling)的其它逻辑单元190中也写入相同数据。本实施例的存储系统1000在执行这种投影像时,可实现负荷分散。
图33(a)中示出投影像中的控制器110内的CPU核心间的负荷分散一例。就投影像而言,由存储节点100a执行将包含于从主计算机接收到的写指令(write command)中的写数据(write data)存储在高速缓冲存储器区域中(图33(a)的(i))、将存储在高速缓冲存储器区域中的写数据写入逻辑单元(LU a0)(图33(a)的(ii))、和将写数据写入逻辑单元(LU a1)(图33(a)的(iii))。此时,图33(a)的(i)和(ii)处理由CPU核心p担当,图33(a)的(iii)处理由CPU核心q担当。据此,存储系统1000中的投影像可在控制器110内的核心间进行负荷分散。
图33(b)中示出投影像中的存储节点间的负荷分散一例。投影像中的处理与图33(a)所示的处理一样(图33(b)的(i)-(iii))。此时,图33(b)的(i)和(ii)处理由存储节点100a的核心p担当,图33(b)的(iii)处理由存储节点100b的核心p担当。据此,存储系统1000中的投影像可在存储节点100之间进行负荷分散。
另外,在图33(a)和(b)中,可通过在核心间进行联络来实现从(ii)处理至(iii)处理的移动。该联络可使用采用共用存储器或单个存储器的方法等公知方法来进行。另外,因为存储系统1000共用存储器映射图(参照图23),所以通过向指令列表中输入指令,也可实现移动。另外,各核心的处理分担也可作为与图33所示的分担不同的分担。
图34是表示关于存储系统1000中的投影像的应用另一例的说明图。图34的实例示出在投影像运用中执行数据的备份(backup)时的处理。所谓投影像运用中的数据备份是如下处理,即在投影像中解除(停止)两个逻辑单元190的耦合状态,使用存储在一个逻辑单元190内的数据,进行数据的备份。通过这种处理,存储系统1000在继续进行来自主计算机的指令处理的同时,执行数据的备份。在本实施例的存储系统1000中,当执行这种投影像运用中的数据备份时,可实现负荷分散。
图34(a)中示出投影像运用中的数据备份中的控制器110内的CPU核心间的负荷分散一例。在投影像运用中的数据备份执行时,存储节点100a执行将包含于从主计算机接收到的写指令中的写数据存储到高速缓冲存储器区域中(图34a的(i))、将存储在高速缓冲存储器区域中的写数据写入逻辑单元(LU a0)中(图34(a)的(ii))、从逻辑单元(LU a1)中向高速缓冲存储器区域读出数据(图34(a)的(iii))、和将读出到高速缓冲存储器区域的数据传输到备份对象(图34(a)的(iv))。此时,图34(a)的(i)和(ii)的处理由CPU核心p担当,图34(a)的(iii)和(iv)处理由CPU核心q担当。据此,在投影像运用中的数据备份中,可在控制器110内的核心之间进行负荷分散。
图34(b)中示出投影像运用中的数据备份中的存储节点间的负荷分散一例。投影像运用中的数据备份处理与图34(a)所示的处理一样(图34(b)的(i)-(iv))。此时,图34(b)的(i)和(ii)处理由存储节点100a的核心p担当,图34(b)的(iii)和(iv)处理由存储节点100b的核心p担当。据此,存储系统1000中的投影像运用中的数据备份中,可在存储节点100之间进行负荷分散。另外,各核心的处理分担也可作为与图34所示的分担不同的分担。
图35是表示关于存储系统1000中的快照的应用一例的说明图。所谓存储系统1000中的快照(也称为‘逻辑拷贝’或‘差分备份’)是指如下处理,即在将写数据(新数据)从主计算机写入逻辑单元190之前,通过将正存储在应写入新数据的逻辑单元190内的区域中的数据(旧数据)存储在其它场所中,保存、备份某个时刻下的逻辑单元190的数据图像。在快照中,准备对主计算机进行访问的逻辑单元190、和作为虚拟卷的其它逻辑单元190,在从主计算机接收写指令的情况下,首先,将旧数据读出到高速缓冲存储器区域中。之后,将新数据写入逻辑单元190,将旧数据写入虚拟卷中。在本实施例的存储系统1000中,当执行这种快照时,可实现负荷分散。
在图35(a)中,示出快照中控制器110内的CPU核心间的负荷分散一例。就快照而言,存储节点100a执行将包含于从主计算机接收到的写指令中的写数据(新数据)存储到高速缓冲存储器区域中(图35(a)的(i))、将旧数据写入高速缓冲存储器区域中(图35(a)的(ii))、将存储在高速缓冲存储器区域中的新数据写入逻辑单元(LU a0)(图35(a)的(iii))、和将存储在高速缓冲存储器区域中的旧数据写入逻辑单元(VLU a0)(图35(a)的(iv))。此时,图35(a)的(i)-(iii)的处理由CPU核心p担当,图35(a)的(iv)处理由CPU核心q担当。据此,在存储系统1000中的快照中,可在控制器110内的核心之间进行负荷分散。
图35(b)中示出快照中的存储节点间的负荷分散一例。快照中的处理与图35(a)所示的处理一样(图35(b)的(i)-(iv))。此时,图35(b)的(i)-(iii)处理由存储节点100a的核心p担当,图35(b)的(iv)处理由存储节点100b的核心p担当。据此,存储系统1000中的快照中,可在存储节点100之间进行负荷分散。
另外,图35中,(iii)处理与(iv)处理可并行执行。另外,图35的(ii)处理向(iv)处理的移动与图33的情况一样,可通过在核心间进行联络来实现。另外,各核心的处理分担也可作为与图35所示的分担不同的分担。
图36是表示关于存储系统1000中的远程拷贝的应用一例的说明图。所谓存储系统1000中的远程拷贝是指如下处理,即通过将存储与对主计算机进行访问的逻辑单元190内的数据相同数据的其它逻辑单元190保持在位于地理上远离的地点(远程地点)的存储系统1000内,实现数据的冗余性确保或事故恢复。在远程拷贝中,若接收来自主计算机的写数据,则在向逻辑单元190写入写数据的同时,向远程地点传输该写数据。在本实施例的存储系统1000中,当执行这种远程拷贝时,可实现负荷分散。
图36(a)中示出远程拷贝中的控制器110内的CPU核心间的负荷分散一例。就远程拷贝而言,由存储节点100a执行将包含于从主计算机接收到的写指令中的写数据存储在高速缓冲存储器区域中(图36(a)的(i))、将写数据写入逻辑单元190(LU a0)(图36(a)的(ii))、和将写数据传输到远程地点(图36(a)的(iii))。此时,图36(a)的(i)和(ii)处理由CPU核心p担当,图36(a)的(iii)处理由CPU核心q担当。据此,存储系统1000中的远程拷贝可在控制器110内的核心间进行负荷分散。
图36(b)中示出远程拷贝中的存储节点间的负荷分散一例。远程拷贝中的处理与图36(a)所示的处理一样(图36(b)的(i)-(iii))。此时,图36(b)的(i)和(ii)处理由存储节点100a的核心p担当,图36(b)的(iii)处理由存储节点100b的核心p担当。据此,存储系统1000中的远程拷贝可在存储节点100之间进行负荷分散。另外,各核心的处理分担也可作为与图36所示的分担不同的分担。
图37是表示关于存储系统1000中的存储节点100之间的镜像(mirroring)的应用一例的说明图。所谓存储节点100之间的镜像是在属于各不相同存储节点100的两个逻辑单元190之间、执行镜像的处理。在图37的实例中,在存储节点100a内的逻辑单元(LU a0)与存储节点100b内的逻辑单元(LU b0)之间进行镜像。在存储节点100之间的镜像中,执行将包含于从主计算机接收到的写指令中的写数据存储在高速缓冲存储器区域中(图37的(i))、将写数据写入逻辑单元(LU a0)(图37的(ii))、和将写数据写入逻辑单元(LUb0)(图37的(iii))。在本实施例的存储系统1000中,图37的(i)-(iii)处理由存储节点100a的核心p担当。另外,例如也可由存储节点100b的核心p执行(iii)处理,实现存储节点100之间的负荷分散。
图38是表示关于存储系统1000中的存储节点100之间RAID的应用一例的说明图。所谓存储节点100之间RAID是指在多个存储节点100之间构成RAID。在图38的实例中,由分别包含于存储节点100a、存储节点100b和存储节点100c中的共计3个盘194构成RAID,执行剥离(stripping)。就这种构成的存储系统1000而言,在接收来自主计算机的写指令的情况下,执行将包含于从主计算机接收到的写指令中的写数据(图38的D0和D1)存储在高速缓冲存储器区域中(图38的(i))、根据写数据生成奇偶位(图38的P0)(图38的(ii))、和将写数据和奇偶位存储到盘194中(图38的(iii)-(v))。在本实施例的存储系统1000中,图38的(i)-(v)处理可由存储节点100a的核心p执行。另外,例如也可由存储节点100b的核心执行(iv)处理,由存储节点100c的核心执行(v)处理,实现存储节点100之间的负荷分散。
另外,在本实施例的存储系统1000中,即便反复增设存储节点100,管理者也可通过单个系统图像来管理存储系统。因此,与以前要管理多台存储系统的情况相比,可大幅度降低存储系统的管理成本。
另外,在本实施例的存储系统1000中,可得到如下4个优点。第1,通过集合多台小规模低成本构成的存储节点100,可提供大规模、成本性能好的存储系统1000。第2,可根据容量或性能的扩大请求,以存储节点100为单位增设,可提供始终以最佳成本构成的可衡量的存储系统1000。第3,当伴随存储节点100的增减设来切换节点间担当CPU核心时,由于可实现透过主计算机200的应用程序的处理,所以在因寿命而必需交换存储节点100时,也不必停止运用,可实现超过存储节点100的寿命的长期数据保存。第4,通过存储节点100的组合,可实现从小规模到大规模、另外对应于各种应用程序的柔性系统结构,所以可减少制品开发时制品的种类(制品调试(lineup)数量)。
B.第2实施例图39是示意性地表示第2实施例的数据处理系统10的构成说明图。第2实施例的数据处理系统10与图1所示的第1实施例的数据处理系统10的不同之处在于,各存储节点100包含两个控制器110。另外,第2实施例的数据处理系统10与第1实施例的数据处理系统10的不同之处还在于存储系统1000包含两个开关300。
在第2实施例的存储系统1000中,各存储节点100包含两个控制器110,对控制器110而言,具有冗余性。另外,各控制器110被设定成属于两个系列内之一。这里,所谓系列是指控制器110的组,将两个系列称为‘x系列’和‘y系列’。
设定控制器110的系列,使一个存储节点100内的两个控制器110属于各不相同的序列。例如,设定系列,使存储节点100a内的两个控制器110a内的一个属于x系列,另一个属于y系列。存储节点100b和存储节点100c内的两个控制器110也同样设定。在本说明书和附图中,向属于x系列的控制器110的名称和符号末尾附加‘x’下标,向属于y系列的控制器110的名称和符号末尾附加‘y’下标。例如,将存储节点100a内属于x系列的控制器110表示为控制器110ax(CLT ax)。
如图39所示,彼此连接一个存储节点100内的两个控制器110。另外,一个存储节点100内的两个控制器110分别与该存储节点100内的全部逻辑单元190相连接。例如,存储节点100a内的两个控制器110(CTL ax和CTLay)分别与两个逻辑单元190(LUa0和LUa1)相连接。
另外,存储系统1000的各存储节点100内的控制器110内、属于相同系列的控制器110彼此经节点间控制器结合部102相互连接。即,利用节点间控制器结合部102,彼此连接各存储节点100具有的属于x系列的3个控制器110(CTL ax、CTL bx、CTL cx)。同样,利用节点间控制器结合部102,还彼此连接各存储节点100具有的属于y系列的3个控制器110(CTL ay、CTL by、CTL cy)。这些节点间控制器结合部102不经开关300,即不经控制器110与主计算机200之间的访问路径,连接控制器110之间。
存储系统1000内的两个开关300与各存储节点100具有的两个控制器110分别对应。即,一个开关300x(开关x)与包含于各存储节点100中的属于x系列的控制器110分别连接,另一开关300y(开关y)与包含于各存储节点100中的属于y系列的控制器110分别连接。另外,两个开关300还分别与主计算机200、管理装置400和名字服务器500连接。
图40是表示第2实施例中的节点间控制器结合部102的构成的说明图。第2实施例的节点间控制器结合部102与图3所示的第1实施例的节点间控制器结合部102一样。即,存储节点100的各控制器110内的网桥140具有开关(SW)142,属于同一系列的控制器110通过连接开关142之间的连接线104彼此连接。另外,在存储节点100内,利用连接两个控制器110内的开关142之间的连接线,彼此连接两个控制器110。
图41是原理性地表示第2实施例中的存储系统1000的地址空间的说明图。图41中,示出从存储节点100a的控制器110ax(图39)内的核心p(未图示)看的存储系统1000的地址空间。图41所示的第2实施例的地址空间与图22所示的第1实施例的地址空间一样。即,如图41所示,向从存储节点100a的控制器110ax的核心p看的存储系统1000的地址空间,规则地映射存储系统1000内的全部空间。这对从其它核心看的地址空间也一样。因此,包含于存储系统1000内的CPU核心可参照映射到地址空间的全部空间。
因此,在第2实施例的存储系统1000中,可实现第1实施例中说明的控制器内担当CPU核心切换、或节点间担当CPU核心切换。并且,在第2实施例的存储系统1000中,可实现在包含于相同存储节点100内的不同控制器110中的CPU核心之间执行担当CPU核心切换的节点内控制器间担当CPU核心切换。
C.变形例另外,本发明不限于上述实施例或实施方式,在不脱离其精神的范围内,可以各种方式实施,例如也可能是以下的变形。
C-1.变形例1上述各实施例中的节点间控制器结合部102(图1和图39)的构成(图3和图40)只是一例,也可将节点间控制器结合部102的构成形成为其它构成。图42是表示作为变形例的节点间控制器结合部102的构成的说明图。
在图42所示的变形例中,设置结合部开关106,结合部开关106通过连接线104与各控制器110的开关(SW)142连接。即,在图42所示的变形例中,节点间控制器结合部102由结合部开关106、和连接结合部开关106与开关142的连接线104构成。在图42所示的变形例中,可简化用于连接控制器110之间的构成。另外,在图42所示的变形例中,连接结合部开关106与开关142的连接线104由一条线构成,但也可由两条线的组来构成连接线104。
另外,图42中示出对应于图3所示第1实施例的节点间控制器结合部102的变形例,但图39所示第2实施例的节点间控制器结合部102也可同样变形。
图43是表示作为另一变形例的节点间控制器结合部102的构成的说明图。图43的变形例示出对应于图40所示第2实施例的节点间控制器结合部102的变形例。
在图43所示的变形例中,设置两个结合部开关106,节点间控制器结合部102相对每个系列,由结合部开关106、和连接结合部开关106与开关142的连接线104构成。并且,在图43所示的变形例中,两个结合部开关106由连接线105连接,经该连接线105,连接存储节点100内的两个控制器110。在图43所示的变形例中,可进一步简化用于连接控制器110之间的构成。另外,就图43所示的变形例而言,也可由两条线的组来构成各连接线。
C-2.变形例2
图44是表示作为变形例的存储节点100的构成的说明图。与上述各实施例中的存储节点100的构成(参照图2和图3)的不同之处在于存储节点100内的控制器110的构成。
在图44所示的变形例中,控制器110由控制器芯片(CTL芯片)112和存储器160构成。即,将控制器110内的存储器160以外的构成要素配置在一个芯片上。
在图44所示的变形例中,在控制器芯片112上配置CPU120、网络控制器130、网桥电路141、开关(SW)142、和FC控制器150。在控制器芯片112上,还配置各种电路(DMA电路114、奇偶位运算电路116、存储器控制电路168)。
C-3.变形例3上述各实施例中的主计算机200与存储节点100之间的访问路径变更方法(图30)仅为一例,也可使用其它方法。图45是表示主计算机200与存储节点100之间的访问路径的变更处理的变形例的说明图。在图45的变形例中,在存储节点100的控制器110之间,进行担当CPU核心的继承(图45的(i))。另外,主计算机200具有路径切换程序220,根据来自连接于主计算机200的管理装置400的指示,将路径切换到存储节点100(图45的(ii))。图45的变形例的方法可适用于利用FC协议或SAS协议的系统中。
图46是表示主计算机200与存储节点100之间的访问路径的变更处理的另一变形例的说明图。在图46的变形例中,开关300具有虚拟连接装置(virtualconnecting device)310。虚拟连接装置310具有虚拟端口,主计算机200的发起者与虚拟端口对应,同时,存储节点100的目标与虚拟端口对应。即,主计算机200的发起者与存储节点100的目标经虚拟连接装置310的虚拟端口对应。
伴随存储节点100的控制器110间的担当CPU核心的继承(图46的(i)),当移动目标时,虚拟连接装置310更新虚拟端口与目标的应对。由此,可不变更主计算机200的访问目的地(虚拟端口),执行主计算机200与存储节点100之间的路径切换(图46的(ii))。图46的变形例的方法在可适用于使用iSCSI协议的系统的同时,还可适用于利用伴随目标移动来变更目标名字(或WWN)的FC协议或SAS协议的系统。
C-4.变形例4上述各实施例的数据处理系统10(图1)的构成仅是一例,也可将数据处理系统10的构成形成其它构成。例如,就数据处理系统10而言,存储系统1000也可仅具备一个存储节点10。此时,可实现上述控制器内担当CPU核心切换。
另外,包含于存储系统1000中的存储节点100的控制器110内的CPU120(图5)也可仅具有一个核心122。此时,也可实现上述节点间担当CPU核心切换。
另外,作为数据处理系统10使用的协议,可采用各种协议。数据处理系统10的各构成要素可为根据采用的协议的构成。例如,上述各实施例的网络控制器130可构成为以太网(Ethernet)(登录商标)、iSCSI控制器、FC控制、SAS控制器等。另外,上述各实施例的FC控制器150可构成为FC控制器、SAS控制器、SAT控制器、SCSI控制器等。另外,作为存储节点100间的网络,可采用因特网、PCI-EXPRESS、InfiniBand、PCI/PCI-X、专用线等。另外,如图44所示,在将控制器110配置在一个芯片上的构成的情况下,为了使电路紧凑,最好采用SAS控制器来作为FC控制器150。另外,在将控制器110配置在一个芯片上的构成的情况下,作为存储节点100间的网络,最好采用作为串行(serial)线的PCI-EXPRESS或InfiniBand。
C-5.变形例5上述各实施例的主指令执行处理(图15和图16)的内容仅是一例,也可变更为其它内容。例如,未必从网络控制器130向CPU120发出中断请求(图15的步骤S140),或从FC控制器150向CPU120发出中断请求(图16的步骤S200),可通过查询来实现向CPU120的处理的移动。
权利要求
1.一种存储系统,其特征在于,具备多个存储节点,分别包含作为存储数据的逻辑存储区域的至少一个逻辑单元、和控制所述逻辑单元的至少一个控制器;和控制器间结合部,不经所述控制器与连接于所述存储系统上的主计算机之间的访问路径,来连接各不相同的所述存储节点中包含的多个所述控制器之间,所述存储节点的所述控制器包含具有至少一个CPU核心的CPU;网络控制器,经网络,从主计算机接收将所述存储系统内的多个所述逻辑单元内的一个作为对象的指令;逻辑单元控制器,连接在所述逻辑单元上,并且,控制所述逻辑单元中的数据的输入输出;和存储器,作为由所述CPU与所述逻辑单元控制器共用的存储器区域,具有与所述CPU内的所述CPU核心和所述存储系统内的多个所述逻辑单元控制器的组合分别对应的多个第1共用存储器区域,在所述多个存储节点内的第1存储节点中包含的所述网络控制器从主计算机接收到将所述多个存储节点内的第2存储节点中包含的逻辑单元作为对象的指令时,所述第1存储节点内的所述CPU核心通过执行对应于接收到的指令的处理,在与所述第1存储节点内的所述CPU核心和所述第2存储节点内的所述逻辑单元控制器的组合对应的所述第1存储节点内的所述第1共用存储器区域中,存储对与所述第2存储节点中包含的逻辑单元连接的所述逻辑单元控制器的指令,所述第2存储节点内的所述逻辑单元控制器经所述控制器间结合部,取得存储在所述第1存储节点内的所述第1共用存储器区域中的指令,并根据取得的指令,控制所述逻辑单元中的数据的输入输出。
2.根据权利要求1所述的存储系统,其特征在于,所述第1存储节点内的所述CPU包含多个所述CPU核心,所述第1存储节点内的所述存储器是由所述CPU与所述网络控制器共用的存储器区域,包含与所述多个CPU核心分别对应的多个第2共用存储器区域,所述第1存储节点内的所述网络控制器具有对应于接收到的指令对象的逻辑单元来设定执行与接收到的指令对应的处理的所述CPU核心、即担当CPU核心的功能,并且,在对应于所述担当CPU核心的所述第2共用存储器区域中,存储接收到的指令,所述担当CPU核心从所述第2共用存储器区域取得指令,执行对应于指令的处理。
3.根据权利要求2所述的存储系统,其特征在于,所述逻辑单元控制器包含与所述存储系统内的多个所述CPU核心分别对应的、作为所述CPU与所述逻辑单元控制器的通信用区域的第1通信区域,所述第1存储节点内的所述担当CPU核心,将表示在所述第1存储节点内的所述第1共用存储器区域中存储的指令的场所的场所信息,存储在与所述担当CPU核心对应的所述第2存储节点的所述逻辑单元控制器内的所述第1通信区域中,所述第2存储节点的所述逻辑单元控制器,参照存储在所述第1通信区域中的所述场所信息,从所述第1共用存储器区域中取得指令。
4.根据权利要求2所述的存储系统,其特征在于,所述网络控制器包含与多个所述CPU核心分别对应的、作为所述CPU与所述网络控制器的通信用区域的第2通信区域,所述第1存储节点内的所述网络控制器,将表示在所述第1存储节点内的所述第2共用存储器区域中存储的指令的场所的场所信息,存储在对应于所述担当CPU核心的所述第2通信区域中,所述担当CPU核心参照在所述第2通信区域中存储的所述场所信息,从所述第2共用存储器区域中取得指令。
5.根据权利要求2所述的存储系统,其特征在于,所述第1存储节点内的所述网络控制器,在将指令存储在所述第2共用存储器区域中后,向所述担当CPU核心发出中断请求,所述担当CPU核心在接收到所述中断请求时,从所述第2共用存储器区域取得指令。
6.根据权利要求2所述的存储系统,其特征在于,所述第2存储节点内的所述逻辑单元控制器,在按照所取得的指令进行的所述逻辑单元中的数据输入输出的控制结束时,经所述控制器间结合部,将表示处理结束的状态信息存储在与所述第1存储节点内的所述担当CPU核心对应的所述第1共用存储器区域中,所述担当CPU核心通过执行与存储在所述第1共用存储器区域中的状态信息对应的处理,将针对所述第1存储节点内的所述网络控制器的指令存储在与所述担当CPU核心对应的所述第2共用存储器区域中,所述第1存储节点内的所述网络控制器按照存储在所述第2共用存储器区域中的指令,执行与从主计算机接收到的指令结束有关的处理。
7.根据权利要求6所述的存储系统,其特征在于,所述第2存储系统内的所述逻辑单元控制器,在将状态信息存储在所述第1存储节点内的所述第1共用存储器区域中之后,向所述担当CPU核心发出中断请求,所述担当CPU核心在接收到所述中断请求时,从所述第1共用存储器区域取得状态信息。
8.根据权利要求2所述的存储系统,其特征在于,所述存储节点内的所述控制器包含与所述控制器间结合部连接的控制器开关,所述控制器间结合部包含连接所述控制器开关间的连接线。
9.根据权利要求2所述的存储系统,其特征在于,所述存储节点内的所述控制器包含与所述控制器间结合部连接的控制器开关,所述控制器间结合部包含与所述控制器开关连接的多个连接线、和与所述多个连接线分别连接的结合部开关。
10.根据权利要求2所述的存储系统,其特征在于,所述存储节点分别包含多个所述控制器,设定所述存储节点内的多个所述控制器的每一个,以使一个所述存储节点内的多个所述控制器不属于一个系列,而属于多个系列内的任意一个系列,所述控制器间结合部连接属于所述存储系统内的同一系列的多个所述控制器间。
11.根据权利要求10所述的存储系统,其特征在于,所述存储节点内的所述控制器包含与所述控制器间结合部连接的控制器开关,所述控制器间结合部包含每个系列共用的结合部开关;连接所述结合部开关和属于与所述结合部开关对应的系列的所述控制器内的所述控制器开关的连接线;和连接多个所述结合部开关间的连接线,包含在一个所述存储节点内的多个所述控制器,经连接所述结合部开关间的连接线,彼此连接。
12.根据权利要求2所述的存储系统,其特征在于,还具备具有显示部与操作部的管理装置,所述管理装置的显示部可显示所述存储系统内的多个所述逻辑单元与所述担当CPU核心的对应关系,所述网络控制器在通过用户操作所述管理装置的操作部来变更在所述管理装置的显示部中显示的所述对应关系的情况下,按照变更后的所述对应关系,执行所述担当CPU核心的设定。
13.根据权利要求2所述的存储系统,其特征在于,所述控制器的所述CPU、所述网络控制器、和所述逻辑单元控制器配置在一个芯片上。
14.一种存储系统,其特征在于,具备至少一个存储节点,所述存储节点包含作为存储数据的逻辑存储区域的至少一个逻辑单元;包含多个CPU核心的CPU;网络控制器,经网络从主计算机接收将所述逻辑单元作为对象的指令;逻辑单元控制器,连接于所述逻辑单元上,并且,控制所述逻辑单元中的数据的输入输出;和具有多个第1共用存储器区域和多个第2共用存储器区域的存储器,该第1共用存储器区域是由所述CPU与所述逻辑单元控制器共用的存储器区域,并与所述CPU的多个CPU核心分别对应,该第2共用存储器区域是由所述CPU与所述网络控制器共用的存储器区域,并与所述CPU的多个CPU核心分别对应,所述网络控制器具有根据接收的指令的对象逻辑单元来设定作为执行与从主计算机接收到的指令对应的处理的所述CPU核心、即担当CPU核心的功能,并且,将接收到的指令存储在与所述担当CPU核心对应的所述第2共用存储器区域中,所述担当CPU核心通过执行与存储在所述第2共用存储器区域中的指令对应的处理,将针对所述逻辑单元控制器的指令存储在与所述担当CPU核心对应的所述第1共用存储器区域中,所述逻辑单元控制器按照存储在所述第1共用存储器区域中的指令,控制所述逻辑单元中的数据的输入输出。
15.一种存储系统的控制方法,其特征在于,所述存储系统具备多个存储节点,分别包含作为存储数据的逻辑存储区域的至少一个逻辑单元、和控制所述逻辑单元的至少一个控制器;和控制器间结合部,不经所述控制器与连接于所述存储系统上的主计算机之间的访问路径,来连接各不相同的所述存储节点中包含的多个所述控制器间,所述存储节点的所述控制器包含具有至少一个CPU核心的CPU;网络控制器,经网络,从主计算机接收将所述存储系统内的多个所述逻辑单元内的一个作为对象的指令;逻辑单元控制器,连接在所述逻辑单元上,并且,控制所述逻辑单元中的数据的输入输出;和存储器,作为由所述CPU与所述逻辑单元控制器共用的存储器区域,具有与所述CPU内的所述CPU核心和所述存储系统内的多个所述逻辑单元控制器的组合分别对应的多个第1共用存储器区域,所述方法具备如下步骤(a)在所述多个存储节点内的第1存储节点中包含的所述网络控制器从主计算机接收将所述多个存储节点内的第2存储节点中包含的逻辑单元作为对象的指令时,所述第1存储节点内的所述CPU核心通过执行对应于接收到的指令的处理,在与所述第1存储节点内的所述CPU核心和所述第2存储节点内的所述逻辑单元控制器的组合对应的所述第1存储节点内的所述第1共用存储器区域中,存储针对与所述第2存储节点中包含的逻辑单元连接的所述逻辑单元控制器的指令;和(b)所述第2存储节点内的所述逻辑单元控制器,经所述控制器间结合部,取得在所述第1存储节点内的所述第1共用存储器区域中存储的指令,并按照所取得的指令,控制所述逻辑单元中的数据的输入输出。
全文摘要
就存储系统而言,可容易实现执行对应于指令的处理的处理装置切换。存储系统具备多个存储节点、和连接存储节点内控制器间的结合部。控制器内的存储器具有与CPU核心和逻辑单元控制器组合对应的多个共用存储器区域。在第1存储节点的网络控制器接收将第2存储节点的逻辑单元作为对象的指令时,第1存储节点的CPU核心将指令存储在对应于第2存储节点的逻辑单元控制器的共用存储器区域中。第2存储节点的逻辑单元控制器经结合部,取得存储在共用存储器区域中的指令。
文档编号G06F12/00GK1959618SQ20061005701
公开日2007年5月9日 申请日期2006年3月13日 优先权日2005年11月1日
发明者松并直人, 白银哲也, 西本哲, 志贺贤太, 岩见直子 申请人:株式会社日立制作所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1