掌桥专利:专业的专利平台
掌桥专利
首页

存储控制系统以及方法

文献发布时间:2023-06-19 09:44:49


存储控制系统以及方法

技术领域

本发明涉及由多个存储节点构成的节点组的存储控制。

背景技术

各通用计算机执行SDS(Software Defined Storage)软件,由此成为存储节点,作为结果,存在构建作为节点组(换言之,为多节点存储系统)的一个例子的SDS系统的情况。

SDS系统是存储系统的一个例子。作为避免存储系统的写入性能降低的技术,例如,公知有专利文献1所公开的技术。专利文献1所公开的系统针对作为条分条(stripping)的单位的块(chunk),基于写入访问对象的块的分配源的记忆介质的写入数据量,将写入访问对象的块变更为其他的记忆介质的块。根据专利文献1,变更写入目的地的块,由此能够实现避免写入性能的降低。

现有技术文献

专利文献

专利文献1:日本特开2017-199043号公报

发明内容

SDS系统的构成例如如以下那样。此外,在以下的说明中,将“存储节点”简称为“节点”。

在这样的SDS系统中,若作为被冗余化的数据的写入目的地的二个以上的记忆设备的转发速度不同,则写入请求的结束的响应取决于转发速度最慢的记忆设备。因此,优选该二个以上的记忆设备的转发速度相同。

但是,存在节点与记忆设备之间的转发速度和节点与记忆设备之间的连接状况对应地决定的情况,作为结果,存在与记忆设备的规格上的转发速度不同的情况。因此,难以维持写入目的地的二个以上的记忆设备的转发速度相同。

这样的问题针对SDS系统以外的节点组(多节点存储系统)也可能存在。

至少一个节点对基于与多个节点连接的多个记忆设备的多个块(多个逻辑记忆区域)进行管理。对写入请求进行处理的节点向成为构成分配给写入目的地所属的写入目的地区域的块组的二个以上的块的基础的二个以上的记忆设备写入被冗余化的数据,在针对该二个以上的记忆设备的写入结束的情况下,进行写入请求的结束的响应。块组由基于与二个以上的节点连接的二个以上的记忆设备的二个以上的块构成。各节点针对与该节点连接的每个记忆设备,根据包含表示在该节点与该记忆设备之间的链路建立中决定的转发速度的信息且通过该节点的OS(操作系统:Operating System)取得的设备结构信息,确定该记忆设备的转发速度。针对各块关联了由连接有成为该块的基础的记忆设备的节点确定的转发速度。上述至少一个节点针对各块组,将构成该块组的二个以上的块维持为关联了相同的转发速度的二个以上的块。

本发明能够避免节点组的写入性能的降低。

上述以外的课题、结构以及效果根据用于实施发明的方式的以下的说明而明确。

附图说明

图1表示本发明的一个实施方式的系统整体的结构。

图2表示驱动器连接处理的概要。

图3表示池扩展处理的概要。

图4表示管理表组的结构的一部分。

图5表示管理表组的结构的剩余部分。

图6表示写处理的概要。

图7表示块与块组的关系的一个例子。

图8表示等级组、块、块组的关系的一个例子。

图9表示从驱动器连接至块组编制的处理的流程。

图10表示块组的重构处理的概要。

图11表示块组的重构处理的流程。

图12表示面向管理者的信息的显示的一个例子。

附图标记的说明

100-节点组;110-存储控制系统。

具体实施方式

在以下的说明中,“接口装置”也可以是一个以上的通信接口设备。一个以上的通信接口设备可以是一个以上的同种的通信接口设备(例如一个以上的NIC(NetworkInterface Card:网络接口卡)),也可以是二个以上的不同种类的通信接口设备(例如NIC与HBA(Host Bus Adapter:主机总线适配器))。

另外,在以下的说明中,“存储器”是作为一个以上的记忆设备的一个例子的一个以上的存储器设备,典型地,也可以是主记忆设备。存储器中的至少一个存储器设备可以是易失性存储器设备,也可以是非易失性存储器设备。

另外,在以下的说明中,“持续记忆装置”也可以是作为一个以上的记忆设备的一个例子的一个以上的持续记忆设备。持续记忆设备典型地可以是非易失性的记忆设备(例如辅助记忆设备),具体而言,例如也可以是HDD(Hard Disk Drive)、SSD(Solid StateDrive)、NVMe(Non-Volatile Memory Express)驱动器或者SCM(Storage Class Memory)。

另外,在以下的说明中,“记忆装置”也可以是存储器与持续记忆装置的至少是存储器。

另外,在以下的说明中,“处理器”也可以是一个以上的处理器设备。至少一个处理器设备典型地也可以是CPU(Central Processing Unit)那样的微处理器设备,但也可以是GPU(Graphics Processing Unit)那样的其他种类的处理器设备。至少一个处理器设备可以是单核,也可以是多核。至少一个处理器设备也可以是处理器核。至少一个处理器设备也可以是进行处理的一部分或者全部的硬件电路(例如FPGA(Field-Programmable GateArray)或者ASIC(Application Specific Integrated Circuit))之类的广义的处理器设备。

另外,在以下的说明中,存在利用“xxx表”之类的表现,对针对输入而获得输出的信息进行说明的情况,但该信息可以是任意的构造的数据(例如,可以是构造化数据,也可以是非构造化数据),也可以是产生针对输入的输出的神经网络那样的学习模型。因此,能够将“xxx表”称为“xxx信息”。另外,在以下的说明中,各表的结构是一个例子,一个表可以分割为二个以上的表,二个以上的表的全部或者一部分也可以是一个表。

另外,在以下的说明中,存在利用“kkk部”的表现对功能进行说明的情况,但功能可以通过处理器执行一个以上的计算机程序而实现,也可以通过一个以上的硬件电路(例如FPGA或者ASIC)而实现,也可以通过它们的组合而实现。在通过处理器执行程序由此实现功能的情况下,也可以适当地使用记忆装置以及/或者接口装置等进行所决定的处理,因此功能可以为处理器的至少一部分。将功能作为主语进行了说明的处理也可以作为处理器或者具有该处理器的装置进行的处理。程序也可以从程序源进行安装。程序源例如也可以是程序分发计算机或者计算机能够读取的记录介质(例如非暂时的记录介质)。各功能的说明为一个例子,也可以将多个功能汇聚成一个功能或将一个功能分割成多个功能。

另外,在以下的说明中,“存储系统”包含具备分别具有记忆装置的多个存储节点的多节点构成的节点组(例如分散系统)。各存储节点可以具备一个以上的RAID(RedundantArray of Independent(or Inexpensive)Disks)组,但典型地,也可以是通用的计算机。一个以上的计算机分别执行预定的软件,由此也可以将该一个以上的计算机构建为SDx(Software-Defined anything)。作为SDx,例如能够采用SDS(Software Defined Storage)或者SDDC(Software-defined Datacenter)。例如,也可以通过一个以上的通用的计算机分别执行具有存储功能的软件,由此构建作为SDS的存储系统。另外,一个存储节点也可以执行作为主计算机的虚拟的计算机与作为存储系统的控制器的虚拟的计算机。

另外,在以下的说明中,存在在不区别同种的要素而进行说明的情况下,使用参照附图标记中的共用附图标记,在区别同种的要素而进行说明的情况下,使用参照附图标记的情况。例如,存在在不特别地区别驱动器而进行说明的情况下,记载为“驱动器10”,在区别各个驱动器而进行说明的情况下,如“驱动器10A1”、“驱动器10A2”那样进行记载,或如“驱动器10A”、“驱动器10B”那样进行记载的情况。

另外,在以下的说明中,关于驱动器与节点之间的连接,对于逻辑性的连接称为“链路”。

以下,对一个实施方式详细地进行说明。

图1是表示本实施方式的系统整体的结构的图。

存在由多个节点20(例如,节点20A~20C)构成的节点组(多节点存储系统)100。在各节点(存储节点)20连接有一个以上的驱动器10。例如,在节点20A连接有驱动器10A1以及10A2,在节点20B连接有驱动器10B1以及10B2,在节点20C连接有驱动器10C1以及10C2。驱动器10是持续记忆设备的一个例子。各驱动器10与任一个节点20连接,而不与二个以上的节点20连接。

多个节点20对共用的池30进行管理。池30由基于与多个节点20连接的多个驱动器10的多个块(多个逻辑记忆区域)的至少一部分的块构成。池30也可以存在多个。

多个节点20提供一个以上的卷(column)40(例如,卷40A~40C)。卷40由作为指定了该卷40的I/O(Input/Output)请求的发行源的一个例子的主系统50识别。主系统50经由网络29向节点组100发行写入请求。在写入请求中,指定写入目的地(例如,卷ID以及LBA(Logical Block Address))。主系统50也可以是一个以上的物理或者虚拟的主计算机。主系统50也可以代替节点组100外,而是在至少一个节点20内被执行的虚拟的计算机。各卷40与池30关联。卷40例如也可以是由多个虚拟区域(虚拟的记忆区域)构成且依据容量虚拟化技术(典型地为Thin Provisioning)的卷。

各节点20能够经由网络28与该节点20以外的各节点20进行通信。例如,各节点20也可以在与该节点20不同的节点20具有由接收到的写入请求指定的写入目的地所属的卷40的所有权的情况下,将该写入请求经由网络28向该不同的节点20转发。网络28也可以是将各节点20与主系统50连接的网络(例如,前端的网络)29,但如图示那样,也可以是不连接主系统50的网络(例如,后端的网络)。

各节点20具有FE-I/F(前端接口设备)21、驱动器I/F(驱动器接口设备)22、BE-I/F(后端接口设备)25、记忆器23以及与这些连接的处理器24。FE-I/F21、驱动器I/F22以及BE-I/F25是接口装置的一个例子。FE-I/F21经由网络29与主系统50连接。在驱动器I/F22连接有驱动器10。在BE-I/F22经由网络28连接有该节点20以外的各节点20。记忆器23存储程序组231(多个程序)与管理表组232(多个管理表)。程序组231由处理器24执行。程序组231包含OS(Operating System)与存储控制程序(例如SDS软件)。存储控制程序由处理器24执行,由此实现存储控制部70。管理表组232的至少一部分也可以在节点20之间同步。

由多个节点20分别实现的多个存储控制部70(例如,存储控制部70A~70C)构成存储控制系统110。接受写入请求的节点20的存储控制部70对该写入请求进行处理。该节点20可以不经由任意的节点20而接收写入请求,该节点20具有由该写入请求指定的写入目的地所属的卷40的所有权,因此也可以从任一个节点20接收(也可以接受写入请求的转发)。该存储控制部70从池30向由接收到的写入请求指定的写入目的地所属的写入目的地区域(写入目的地的虚拟区域)分配块。后面说明包含块的分配的写处理的细节。

图1的节点组100也可以由一个以上的簇(cluster)构成。各簇也可以由二个以上的节点20构成。各簇也可以包含激活的节点与在激活的节点停止时代替激活的节点而起动的备用的节点。

另外,在节点组100的至少一个节点20也可以经由网络27连接有管理系统81。管理系统81也可以是一个以上的计算机。在管理系统81执行预定的程序,由此也可以在管理系统81实现管理部88。管理部88也可以管理节点组100。网络27也可以是网络29。管理部88也可以代替管理系统81,而在任一个节点20中具备。

图2表示驱动器连接处理的概要。

存储控制部70包含I/O处理部71与控制处理部72。

I/O处理部71进行根据I/O(Input/Output)要求的I/O。

控制处理部72在节点20之间进行池管理。控制处理部72包含REST(Representational State Transfer)服务器部721、簇控制部722以及节点控制部723。REST服务器部721从主系统50或者管理系统81接受池扩展的指示。簇控制部722对在节点20之间共享的池30进行管理。节点控制部723检测与节点20连接的驱动器10。

当在节点20连接有驱动器10的情况下,进行以下的驱动器连接处理。

首先,在节点20中未图示的驱动程序(被连接的驱动器10的驱动程序)与连接在节点20的驱动器10之间,进行链路建立用的通信(驱动程序也可以包含于OS95)。在该通信中,在驱动程序与驱动器10之间决定驱动器10的转发速度。例如,选择能够选择的多个转发速度中与驱动器10的状况等对应的转发速度。在链路建立中被决定的转发速度是最大转发速度那样的固定的转发速度。例如,在链路建立后,以所决定的转发速度以下的速度,在节点20与驱动器10之间进行通信。

表示被决定的转发速度的信息包含于驱动器10的驱动器结构信息。驱动器结构信息除了转发速度之外,还包含表示驱动器10的种类(例如规格)以及容量的信息。OS95对作为包含驱动器结构信息的文件的结构文件11进行管理。

节点控制部723周期性地检查OS95管理的区域中的预定的区域12(例如,存储被连接的驱动器10的结构文件11的区域(例如,目录))。在检测到新的结构文件11的情况下,节点控制部723从OS95(OS95管理的预定的区域12)取得新的结构文件11,并将取得的结构文件11向簇控制部722交付。

簇控制部722根据从由节点控制部723交付的结构文件11,将该结构文件11所含的驱动器结构信息的至少一部分登记于管理表组232。由此,基于所连接的驱动器10的逻辑空间13在节点20之间被共享。

以上的驱动器连接处理在所连接的每个驱动器10中进行,作为结果,所连接的各驱动器10与每个驱动器10的转发速度在节点20之间被共享。此外,在图2中,驱动器10a、10b以及10c与结构文件11a、11b以及11c分别对应,结构文件11a、11b以及11c与逻辑空间13a、13b以及13c分别对应。

图3表示池扩展处理的概要。

REST服务器部721在从主系统50或者管理系统81接受到池扩展的指示的情况下,向簇控制部722指示池扩展。响应该指示,通过簇控制部722,进行以下的池扩展处理。

即,簇控制部722参照管理表组232,判断有无未分割的逻辑空间13(未分割成二个以上的块14的逻辑空间13)。簇控制部722若存在未分割的逻辑空间13,则将该逻辑空间13分割成一个以上的块14,将该一个以上的块14中的至少一部分追加到池30。块14的容量为预定的容量。块14的容量也可以为可变,但在本实施方式中为固定。块14的容量也可以因池30不同而不同。未包含于池30的块14例如也可以被管理为空块14。根据图3的例子,池30中包含构成逻辑空间13a的块14a1以及14a2、构成逻辑空间13b的块14b1以及14b2、构成逻辑空间13c的块14c1以及14c2。

此外,池扩展处理也可以在没有来自主系统50或者管理系统81的指示时自动地开始。例如,也可以在簇控制部722检测到在节点20新连接有驱动器10的情况下(具体而言,为从节点控制部723接受新的结构文件11的情况下),进行池扩展处理。另外,例如,也可以在没有来自主系统50的I/O请求等、节点20的负荷较小的情况下,进行池扩展处理。

图4以及图5表示管理表组232的结构。

管理表组232包含:节点管理表401、池管理表402、等级组(rank group)管理表403、块组管理表404、块管理表405以及驱动器管理表406。

节点管理表401是Node_ID501的一览表。Node_ID501表示节点20的ID。

池管理表402是Pool_ID511的一览表。Pool_ID511表示池30的ID。

等级组管理表403在每个等级组具有记录。各记录包含RankGroup_ID521、Pool_ID522、Count523(计数值523)之类的信息。以一个等级组为例(在该段中为“对象等级组”)。RankGroup_ID521表示对象等级组的ID。Pool_ID522表示对象等级组所属的池30的ID。Count523表示属于对象等级组的块组(或者块14)的数量。此外,“等级组”是关联了相同的转发速度的块14所属的组。换句话说,若与块14关联的转发速度不同,则该块所属的等级组不同。

块组管理表404在每个块组具有记录。各记录包含ChunkGroup_ID531、Chunk1_ID532、Chunk533、Status534以及Allocation535(分配地535)之类的信息。以一个块组为例(在该段中为“对象块组”)。ChunkGroup_ID531表示对象块组的ID。Chunk1_ID532表示对象块组所属的二个块14中的第1块14的ID。Chunk2_ID532表示对象块组所属的二个块14中的第2块14的ID。Status534表示对象块组的状态(Status)(例如,对象块组(或者,对象块组中的第1块14)是否结束向任一个卷40的分配)。Allocation535在将对象块组向任一个卷40分配的情况下,表示对象块组的分割目的地(例如,卷ID与LBA)。此外,“块组”是基于与不同的二个节点20连接的二个驱动器10的二个块14的组。在本实施方式中,构成块组的块14为二个,但基于与不同的三个以上的节点20连接的三个以上的驱动器10的三个以上的块14(例如,构成由三个以上的驱动器10构成的RAID组的条带(stripe)的三个以上的块14)也可以构成一个块组。

块管理表405在每个块具有记录。各记录包含Chunk_ID541、Drive_ID542、Node_ID543、RankGroup_ID544以及Capacity545(容量545)之类的信息。以一个块14为例(在该段中为“对象块14”)。Chunk_ID541表示对象块14的ID。Drive_ID542表示成为对象块14的基础的驱动器10的ID。Node_ID543表示连接有成为对象块14的基础的驱动器10的节点20的ID。RankGroup_ID544表示对象块14所属的等级组的ID。Capacity545表示对象块14的容量。

驱动器管理表406针对每个驱动器10具有记录。各记录包含Drive_ID551、Node_ID552、Type553(类型553)、LinkRate554(链路速率554)、Lane555以及Status556之类的信息。以一个驱动器10为例(在该段中为“对象驱动器10”)。Drive_ID551表示对象驱动器10的ID。Node_ID552表示连接有对象驱动器10的节点20的ID。Type553表示对象驱动器10的种类(规格)。LinkRate554表示对象驱动器10的每1线路(Lane)的链路速率(速度)。Lane555表示对象驱动器10与节点20之间的线路的数量。Status556表示对象驱动器10的状态(例如,基于对象驱动器10的逻辑空间13是否已结束向二个以上的块14的分割)。

在对象驱动器10与驱动程序(OS95)之间的链路建立用的通信中决定对象驱动器10的链路速率。对象驱动器10的转发速度依据LinkRate554与Lane555。Lane555例如在对象驱动器10为NVMe驱动器的情况下有效。

以上是包含于管理表组232的表的一个例子。虽未图示,但管理表组232也可以包含卷管理表。卷管理表也可以按照每个卷40,针对各虚拟区域,包含表示LBA范围与块14是否已结束分配的信息。

图6表示写处理的概要。

针对卷40,例如在编制该卷40时,分配一个以上的块组。例如,在块14的容量为100GB的情况下,由二个块14构成的块组的容量为200GB。但是,数据被复制(二重化)地写入块组,因此能够写入块组的数据的容量为100GB。因此,在卷40的容量为200GB的情况下,分配二个未分配的块组(例如,Allocation535的值为“-”的块组)。

节点20A从主系统50接收到指定卷40A中的LBA的写入请求。另外,节点20A具有卷40A的所有权。

节点20A的存储控制部70A将附随于写入请求的数据复制。存储控制部70A参照块组管理表404,确定分配于由写入请求指定的LBA所属的写入目的地区域的块组。

被确定的块组由基于驱动器10A1的块14A1与基于驱动器10B1的块14B1构成。存储控制部70A将复制后的数据写入构成被确定的块组的块14A1以及14B1。即,数据被分别写入驱动器10A1以及10B1。

存储控制部70A在针对块14A1以及14B1(驱动器10A1以及10B1)的写入结束的情况下,将写入请求的结束作为响应发送给作为写入请求的发送源的主系统50。

此外,写处理也可以由存储控制部70中的I/O处理部71进行。

图7表示块与块组的关系的一个例子。

多个块14中的至少一部分的块14构成多个块组701。各块组701由基于与二个节点20连接的二个驱动器10的二个块14构成。块组701若由与相同的节点20连接的二个块14构成,则在该节点20因故障等原因而停止的情况下(例如,在该节点20从激活成为备用的状态的情况下),针对任意的块14均使I/O变得不可。

另外,与一个节点20连接的二个以上的驱动器10的转发速度不限定于相同。即使与节点20连接的全部的驱动器10为相同供应商、相同容量以及相同种类的驱动器10,即,即使为转发速度(例如,最大转发速度)在规格上相同的驱动器10,也存在节点20与驱动器10之间的转发速度不同的情况。原因是,在节点20与驱动器10之间的链路建立用的通信中所决定的转发速度可能因节点20与驱动器10之间的通信状况等而不同。例如,如图7例示的那样,存在在节点20A连接有转发速度为“12Gbps”的驱动器10A1与转发速度为“6Gbps”的驱动器10A2的情况。相同地,存在在节点20B也连接有转发速度为“12Gbps”的驱动器10B1与转发速度为“6Gbps”的驱动器10B2的情况。更具体而言,存在下述的例子。

在这样的环境中,若为成为被复制的数据的写入目的地的二个块14、基于不同的转发速度的二个驱动器10的块,则导致写入的性能取决于转发速度较慢的驱动器10。

因此,在本实施方式中,如上所述,在各节点20中,存储控制部70针对与该节点20连接的每个驱动器10,根据包含表示在该节点20与该驱动器10之间被决定的转发速度的信息且通过OS95取得的设备结构信息,确定该驱动器10的转发速度,使该转发速度与基于该驱动器10的块14关联。而且,至少一个节点20(例如主要的节点20)中的存储控制部70通过关联了相同的转发速度的二个块14构成一个块组701。不存在一个块14包含于不同的块组701的情况。根据图7的例子,作为结果,如下述那样。

由此,保证成为被复制的数据的写入目的地的二个块14的转发速度相同,因此,能够避免因转发速度不同导致的写性能降低(针对写入请求的响应的延迟)。此外,对于构成块组701的二个块14而言,不但转发速度相同,成为基础的二个驱动器10的驱动器种类也可以相同。另外,针对全部的块组701,块数也可以不相同。构成块组701的块14的数量也可以因冗余化的程度(level)而不同。例如,应用RAID5的块组701也可以由基于三个以上的NVMe驱动器的三个以上的块构成。

图8表示等级组86、块14、块组701的关系的一个例子。

针对成为构成池30的块14的基础的驱动器10而决定的转发速度为“12Gbps”与“6Gbps”的任一个。在该情况下,作为等级组86,存在基于转发速度“12Gbps”的驱动器10的块14所属的等级组86A与基于转发速度“6Gbps”的驱动器10的块14所属的等级组86B。根据图7所例示的结构,如图8所例示的结构那样。即,基于驱动器10A1的块14A11以及14A12与基于驱动器10B1的块14B11以及14B12属于等级组86A。基于驱动器10A2的块14A21以及14A22与基于驱动器10B2的块14B21以及14B22属于等级组86B。另外,如果在节点20B连接有驱动器10B3,将节点20B与驱动器10B3之间的转发速度决定为“12Gbps”,则基于驱动器10B3的块14B31被追加到等级组86A。此外,被追加的块14B31是不构成任意的块组701的预备块。预备块也无法向任意的卷40进行分配。块14B31为任一个块组701的构成要素的情况下,成为能够向卷40分配的块。

图9表示从驱动器连接至块组编制的处理的流程。

在任一个节点20连接有一个以上的驱动器10(S11)。OS95将与所连接的一个以上的驱动器10分别对应的一个以上的结构文件11追加到预定的区域12(参照图2)。节点控制部723从预定的区域12取得被追加的一个以上的结构文件11,并将取得的一个以上的结构文件11交付于簇控制部722。

簇控制部722针对所连接的一个以上的驱动器10(从节点控制部723接受的一个以上的结构文件11)的每一个,从结构文件11取得驱动器结构信息(S12),并将取得的驱动器结构信息登记于管理表组232。由此,针对每个驱动器10,在驱动器管理表406追加记录。记录中的信息553~555是包含于驱动器结构信息的信息,信息551、552以及556是由簇控制部722决定的信息。

之后,簇控制部722进行池扩展处理(S14)。具体而言,簇控制部722将基于所连接的上述一个以上的驱动器10的一个以上的逻辑空间13(参照图2以及图3)的每一个分割成多个块14(S21),将关于各块14的信息登记于管理表组232(S22)。由此,针对每个块14,在块管理表405追加记录。作为结果,针对各块14关联成为该块14的基础的驱动器10的转发速度。具体而言,针对各块14登记Drive_ID542,针对与Drive_ID542一致的Drive_ID551关联有表示转发速度的信息554以及555。

最后,簇控制部722编制多个块组701(S15)。各块组701由转发速度相同的二个块14构成。此外,针对成为块组701的构成要素的各块14,将Status534更新成表示构成块组701的构成要素的值。未形成块组701的构成要素的块14也可以被管理为预备的块14。

此外,“转发速度相同”不局限于转发速度完全一致,也可以包含转发速度在允许范围(视为相同的范围)内不同的情况。

图10表示块组701的重构处理的概要。

存在驱动器10的链路被暂时切断并再建立的情况。链路的再建立可以响应来自主系统50或者管理系统81的明示的指示而进行,也可以以向驱动器10的数据转发的失败为契机自动地进行。在链路的再建立中,也在驱动器10与节点20之间决定驱动器10的转发速度。所决定的转发速度操作与针对该驱动器10在前一次的链路建立中被决定的转发速度不同,换句话说,驱动器10的转发速度存在在中途变化的情况。

因此,作为结果,在至少一个块组701中,存在与二个块14关联的转发速度不同的情况。例如,在图8所例示的结构中,在驱动器10A2的转发速度从“6Gbps”向“12Gbps”变化的情况下,与基于驱动器10A2的块14A21以及14A22的每一个关联的转发速度也从“6Gbps”向“12Gbps”变化。

图10表示的例子是着眼于块14A22的例子。与块14A22关联的转发速度成为“12Gbps”,因此如图10所示那样,块14A22所属的等级组86从等级组86B向等级组86A变化。

若保持原样,则在块组701D中,块14B22的转发速度与块14A22的转发速度不同。因此,针对块组701D的写入的性能降低。

因此,在本实施方式中,节点20B的存储控制部70B找到转发速度“12Gbps”的空块14B31,使转发速度“6Gbps”的块14B22内的数据迁移至该块14B31。然后,存储控制部70B将块组701D的构成要素从迁移源的块14B22变更成迁移目的地的块14B31。这样,构成块组701D的二个块14A21以及14B31的转发速度被维持为相同。作为结果,能够避免针对块组701D的写入的性能降低。

此外,根据图10表示的例子,虽着眼于块14A22,但针对块14A21也进行相同的处理。

图11表示块组701的重构处理的流程。图11表示的重构处理也可以由节点组100中的一个节点20(例如,主要的节点)进行,但在本实施方式中,能够由各节点20执行。以节点20A为例。周期性地进行重构处理。

节点20A的节点控制部723针对节点20A的预定的区域(存储驱动器10A2的结构文件的区域)的每个结构文件,检查该结构文件内的驱动器结构信息表示的转发速度是否与驱动器管理表406内的转发速度不同(S31)。若针对任意的驱动器10也未检测出转发速度的变化(S32:否),则重构处理结束。

以下,如图10所例示那样,在节点20A与驱动器10A2之间进行链路的再建立,作为其结果,驱动器10A2的最新的转发速度(结构文件内的驱动器结构信息表示的转发速度)与针对驱动器10A2登记于驱动器管理表406的转发速度不同。

在检测到驱动器10A2的转发速度的变化的情况下(S32:是),节点20A的簇控制部722变更驱动器10A2的转发速度(信息554以及555)(S33)。以下,与图10相同,以块14A22为例。

节点20A的簇控制部722根据节点20A的管理表组232判断是否存在关联了与变更后的转发速度相同的转发速度的空块(S35)。这里言及的空块是与和变更后的转发速度相同的转发速度关联的Drive_ID551相一致的Drive_ID542所对应的Status534为意味着空的值的块。空块例如也可以如以下那样寻找。

假设找到了空块14B31。在该情况下(S35:是),进行数据迁移(S36)。例如,节点20A的簇控制部722对管理空块14B31的节点20B的簇控制部722指示将数据从块14B22向空块14B31迁移。响应该指示,节点20B的簇控制部722将数据从块14B22向空块14B31迁移,使迁移结束返回节点20A的簇控制部722。

在S36后,节点20A的簇控制部722重构包含块14A22的块组701D(S37)。具体而言,节点20A的簇控制部722在块组701D中包含迁移目的地的块14B31来代替迁移源的块14B22。更具体而言,节点20A的簇控制部722将块组701D的Chunk1_ID532或者Chunk2_ID533从迁移源的块14B22的ID变更成迁移目的地的块14B31的ID。

假设未找到关联了与变更后的转发速度相同的转发速度的空块。在该情况下(S35:否),保持构成块组701D的二个块的转发速度不同的状态。因此,节点20A的簇控制部722(或者,管理系统81中的管理部88)输出表示存在驱动器的性能降低的可能性的警报(S38)。

根据以上的重构处理,节点控制部723周期性地检查由OS95取得的各结构文件,由此即使驱动程序与驱动器10之间的转发速度在中途变化,也能够检测该转发速度的变更。而且,针对包含基于转发速度变化的驱动器10A2的块14A22的块组701D内的块14B22(基于转发速度无变化的驱动器10B2的块14B22),寻找出与块14A22的变更后的转发速度相同的转发速度的空块14B31。使数据从块14B22向该空块14B31迁移。之后,迁移目的地的块14B31代替块14B22,而成为块组701D的构成要素。这样,即使驱动器10A2的转发速度在中途变化,也能够将构成块组701D的二个块的转发速度维持为相同。

作为维持使构成块组701D的二个块的转发速度为相同的方法,也能够考虑即使驱动器10A2的转发速度变快,也根据变更前的转发速度进行节点20A与驱动器10A2之间的数据转发的方法,但节点20A与驱动器10A2之间的数据转发的速度无法由OS95上的存储控制部70进行控制。即,在节点20A与驱动器10A2之间,根据变更后的转发速度进行数据转发。因此,使转发速度未变化的一方的块14B22内的数据向与变更后的转发速度相同的转发速度的块迁移,并将块组的构成要素从迁移源的块代替为迁移目的地的块,由此能够将构成块组701D的二个块的转发速度维持为相同。

图12表示面向管理者的信息的显示的一个例子。

作为面向管理者的信息的一个例子的信息120包含警报信息125与通知信息126。信息120显示于显示设备。作为与节点组100连接的计算机的一个例子的管理系统81可以具有显示设备,与管理系统81连接的计算机也可以具有显示设备。信息120由对象节点20(至少一个节点的一个例子)中的存储控制部70,或者管理系统81(与对象节点20通信的系统的一个例子)中的管理部88生成并显示。在图12的说明中,“对象节点”可以是节点组100中的主要的节点,也可以是节点组100中的、检测了信息120表示的状况的节点。

警报信息125是在未找到关联了与变更后的转发速度相同的转发速度的空块的情况下,由对象节点20中的存储控制部70,或者管理系统81中的管理部88生成的信息,且是表示存在性能降低的可能性的信息。警报信息125例如包含产生性能降低的可能性的日期时间与表示产生性能降低的可能性的事件的名称的信息。管理者(用户的一个例子)观察警报信息125,由此能够知晓产生性能降低的可能性。此外,存储控制部70或者管理部88也可以响应管理者进行的预定的操作,生成并显示作为警报信息125的详细的警报详细信息121。警报详细信息121包含与变更后的转发速度相同的转发速度的驱动器10的追加的提示。由此,管理者能够为了避免性能降低的可能性而知晓应该做什么。

通知信息126是表示检测到的状况中的与预定的条件相应的状况的信息。管理者观察通知信息126,由此能够知晓产生与预定的条件相应的状况。存储控制部70或者管理部88也可以响应管理者进行的预定的操作,生成并显示作为通知信息126的详细的通知详细信息122。作为“与预定的条件相应的状况”的一个例子,存在转发速度提高。作为转发速度提高的事例的例子,例如存在下述例子。

以上,对本发明的一个实施方式进行了说明,但本发明不限定于该实施方式,不言而喻能够在不脱离其主旨的范围内进行各种变更。

例如,存在驱动器10A1的转发速度变化为较慢的转发速度(换言之,转发速度恶化)的情况。在上述的情况下,例如,若参照图10来说,则将包含基于驱动器10A1的块14A11的块组701A内的块14B11内的数据向与相同较慢的转发速度关联的空块迁移,将块组701A内的块14B11变更为该空块。

另外,取代将一个以上的块组在编制卷40时分配给卷40的整个区域,也可以与写入请求的接收对应地动态分配块组。例如,在节点20接收指定了卷40中的写入目的地的写入请求,且不向该写入目的地分配块组的情况下,节点20也可以向该写入目的地所属的写入目的地区域分配未分配的块组。

相关技术
  • 联合收割机控制系统、联合收割机控制程序、存储有联合收割机控制程序的存储介质、联合收割机控制方法、收获机控制系统、收获机控制程序、存储有收获机控制程序的存储介质、收获机控制方法
  • 求得被测变量的时间曲线的方法、预测系统、致动器控制系统、训练致动器控制系统的方法、训练系统、计算机程序和机器可读的存储介质
技术分类

06120112288724