CN110690986A - 存储系统、存储控制方法和存储控制设备 - Google Patents
存储系统、存储控制方法和存储控制设备 Download PDFInfo
- Publication number
- CN110690986A CN110690986A CN201910590334.1A CN201910590334A CN110690986A CN 110690986 A CN110690986 A CN 110690986A CN 201910590334 A CN201910590334 A CN 201910590334A CN 110690986 A CN110690986 A CN 110690986A
- Authority
- CN
- China
- Prior art keywords
- node
- task
- server node
- processing
- unit
- 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.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/04—Network management architectures or arrangements
- H04L41/046—Network management architectures or arrangements comprising network management agents or mobile agents therefor
-
- 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
- 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/2056—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 by mirroring
- G06F11/2064—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 by mirroring while ensuring consistency
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2053—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
- G06F11/2089—Redundant storage control functionality
- G06F11/2092—Techniques of failing over between control units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- 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
-
- 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/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- 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/0665—Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
-
- 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/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0813—Configuration setting characterised by the conditions triggering a change of settings
- H04L41/082—Configuration setting characterised by the conditions triggering a change of settings the condition being updates or upgrades of network functionality
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/085—Retrieval of network configuration; Tracking network configuration history
- H04L41/0859—Retrieval of network configuration; Tracking network configuration history by keeping history of different configuration generations or by rolling back to previous configuration versions
- H04L41/0863—Retrieval of network configuration; Tracking network configuration history by keeping history of different configuration generations or by rolling back to previous configuration versions by rolling back to previous configuration versions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0805—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
- H04L43/0817—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking functioning
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/10—Active monitoring, e.g. heartbeat, ping or trace-route
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- 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/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/065—Replication mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/02—Standardisation; Integration
- H04L41/0246—Exchanging or transporting network management information using the Internet; Embedding network management web servers in network elements; Web-services-based protocols
- H04L41/0266—Exchanging or transporting network management information using the Internet; Embedding network management web servers in network elements; Web-services-based protocols using meta-data, objects or commands for formatting management information, e.g. using eXtensible markup language [XML]
Abstract
本发明公开了一种存储系统、存储控制方法和存储控制设备。该存储系统包括:多个服务器节点,其包括第一服务器节点和与第一服务器节点配对的第二服务器节点;以及管理器节点,其被配置成管理多个服务器节点,其中,第一服务器节点被配置成响应于检测到第二服务器节点关闭而向管理器节点发送通知,并且所述通知指示第二服务器节点关闭,并且其中,管理器节点被配置成响应于接收到所述通知而执行与由第二服务器节点执行的第二处理相关的第一处理。
Description
技术领域
本文讨论的实施方式涉及存储控制技术。
背景技术
近年来,已知包括多个计算机节点(在下文中,被简称为节点)的软件定义存储(SDS)系统。
图13是示意性地示出了相关技术的SDS系统500的配置的图。在SDS系统500中,多个节点501-1到501-3(图13中的示例中的三个)经由网络503相互连接。分别为物理设备的存储设备502连接到节点501-1至501-3。
在多个节点501-1至501-3中,节点501-1用作管理其他节点501-2和501-3的管理器节点。节点501-2和501-3用作代理节点,其根据管理器节点501-1的控制执行处理。在下文中,管理器节点501-1可以由Mgr#1表示。代理节点501-2由Agt#2表示,代理节点501-3由Agt#3表示。
在下文中,作为表示代理节点的符号,当优选地指定多个代理节点中的一个时,使用符号501-2和501-3,但是当参考任何代理节点时,使用符号501。
来自用户的请求被输入到管理器节点501-1中,并且管理器节点501-1创建要由代理节点501-2和501-3执行的多个处理(命令)以实现用户的请求。
图14是举例说明关于来自相关技术的SDS系统500中的用户的请求的处理方法的图。在图14示出的示例中,示出了请求从用户创建镜像卷的情况的处理。
用户将创建镜像卷的请求输入到管理器节点501-1(参见符号S1)。管理器节点501-1响应于请求而创建多个(在图14中示出的示例中为五个)命令(创建Dev#2_1,创建Dev#2_2,创建Dev#3_1,创建Dev#3_2,并创建MirrorDev)(参见符号S2)。
在SDS系统500中,多个命令在代理节点501-2和501-3中作为用于创建镜像卷的一系列命令被执行。管理器节点501-1请求代理节点501-2和501-3处理所创建的命令(参见符号S3)。
在图14中示出的示例中,向Agt#2请求命令“创建Dev#2_1”和“创建Dev#2_2”的处理(参见符号S4)并且向Agt#3请求命令“创建Dev#3_1”、“创建Dev#3_2”以及“创建MirrorDev”的处理(参见符号S5)。
已经接收到请求的代理节点501-2和501-3中的每一个执行所请求的命令(处理)(参见符号S6和S7),并且对完成该命令的管理器节点501-1做出响应。管理器节点501-1确认从代理节点501-2和501-3中的每一个发送的响应(参见符号S8)。
例如,日本专利特开公布No.9-319633、日本专利特开公布No.2016-143248和日本专利特开公布No.2016-133976公开了相关技术。
发明内容
技术问题
在现有技术的SDS系统中,在多个代理节点501执行处理的同时代理节点501中的一个可以是关闭的。
例如,在图14中示出的示例中,考虑了在执行命令“创建MirrorDev”的代理节点501-3关闭的情况。
管理器节点501-1重复且连续地向关闭的代理节点501-3请求执行命令“创建MirrorDev”,并且在没有响应的情况下直到经过了预定时间检测到超时错误。
即使用户做出另一请求,管理器节点501-1也不会做出响应,直到检测到超时,从而使用户等待。
结果,管理器节点501-1继续无用地重试(请求执行命令“创建MirrorDev”),直到它可以与代理节点501-3建立连接为止。
在集群系统中,已知使用包括检测节点关闭的功能的集群软件,但集群软件可能无法知道节点关闭,直到它访问管理信息,并且它可能不会访问管理信息,直到超时结束。
问题的解决方案
根据实施方式的一方面,一种存储系统包括:多个服务器节点,其包括第一服务器节点和与第一服务器节点配对的第二服务器节点;以及管理器节点,其被配置成管理多个服务器节点,其中,第一服务器节点被配置成响应于检测到第二服务器节点关闭而向管理器节点发送通知,并且通知指示第二服务器节点关闭,并且其中,管理器节点被配置成响应于接收到通知而执行与由第二服务器节点执行的第二处理有关的第一处理。
技术效果
在一个方面中,实施方式旨在能够在代理节点关闭的情况下快速应对。
附图说明
图1是示意性地示出作为实施方式的示例的存储系统的硬件配置的图;
图2是举例说明作为实施方式的示例的存储系统中形成的逻辑设备的图;
图3是示出了作为实施方式的示例的存储系统的功能配置的图;
图4是举例说明作为实施方式的示例的存储系统中的工作管理信息的图;
图5A和图5B是举例说明作为实施方式的示例的存储系统中的任务的图;
图6是举例说明作为实施方式的示例的存储系统中的任务管理信息的表格;
图7是用于说明作为实施方式的示例的存储系统中的任务进度状态信息的转换的图;
图8是举例说明在现有技术的SDS系统的代理节点中创建临时文件的处理的图;
图9是举例说明作为实施方式的示例的存储系统中的非易失性信息管理信息的表格;
图10是用于说明作为实施方式的示例的存储系统中的每个节点的开始处的非易失性信息删除单元的处理的流程图;
图11是用于说明作为实施方式的示例的存储系统中的管理器节点的处理的流程图;
图12A和图12B是用于说明在作为实施方式的示例的存储系统中发生节点关闭时的处理的流程图;
图13是示意性地示出了现有技术的SDS系统的配置的图;以及
图14是举例说明关于来自现有技术的SDS系统中的用户的请求的处理方法的图。
具体实施方式
在下文中,将参照附图描述存储系统、存储控制设备和存储控制程序的实施方式。然而,下面描述的实施方式仅仅是示例,并不旨在排除在实施方式中未指定的各种修改和技术的应用。例如,在不脱离其范围的情况下,可以对实施方式进行各种修改和实现。每个附图不旨在仅包括附图中示出的配置要素,而是可以包括其他功能等。
图1是示意性地示出作为实施方式的示例的存储系统1的硬件配置的图。
存储系统1是SDS系统,该SDS系统包括控制存储的多个节点10-1至10-6(在图1中示出的示例中为6个)。
节点10-1至10-6经由网络30可通信地彼此连接。
网络30是例如局域网(LAN),并且在图1中示出的示例中,包括网络交换机31。节点10-1至10-6通过经由通信电缆连接至网络交换机31而分别可通信地相互连接。
在下文中,作为指示节点的符号,当优选地指定多个节点中的一个节点时,使用符号10-1至10-6,但是符号10用于指示任何节点。
在存储系统1中,多个节点10中的一个节点10用作管理器节点,而其他节点10用作代理节点。管理器节点是管理其他节点10(代理节点10)的指令节点,并向包括多个节点10的多节点配置的存储系统1中的其他节点10发出指令。代理节点根据从指令节点发出的指令执行处理。
在下文中,将描述节点10-1是管理器节点并且节点10-2至10-6是代理节点的示例。
在下文中,节点10-1可以是管理器节点10-1,并且节点10-1可以由Mgr#1表示。节点10-2至10-6可以是代理节点10-2至10-6,节点10-2至10-6可以由Agt#2至Agt#6表示。
当管理器节点10-1发生故障时,代理节点10中的一个接管管理器节点10的操作并且用作新的管理器节点10。
仅一堆磁盘(JBOD:物理设备)20-1连接到节点10-1和节点10-2,并且这些作为一个节点块(存储壳)被管理。类似地,JBOD 20-2连接到节点10-3和节点10-4,并且JBOD 20-3分别连接到节点10-5和节点10-6。
在下文中,作为指示JBOD的符号,当优选地指定多个JBOD中的一个时,使用符号20-1至20-3,但是当参考任何JBOD时,使用符号20。
JBOD 20是存储设备组,其中,作为物理设备的多个存储设备在逻辑上相连,并且被配置成使得各个存储设备的容量之和可以共同用作逻辑大容量存储器(逻辑设备)。
例如,使用硬盘驱动器(HDD)、固态驱动器(SSD)和存储级存储器(SCM)作为构成JBOD 20的存储设备。JBOD通过公知的方法来实现,因此将省略其详细描述。
在存储系统1中,一个节点10经由网络交换机31访问其他节点10,使得连接到其他节点10的JBOD 20可以被任意地访问。
由于两个节点10连接到每个JBOD 20,因此到每个JBOD 20的路径变得冗余。
在每个节点10中,可以形成使用JBOD 20的存储区域的逻辑设备。
每个节点10可以经由网络30访问其他节点10的逻辑设备。每个节点10还可以经由网络30访问其他节点10的逻辑设备的管理信息。每个节点10还可以经由网络30访问其他节点10的非易失性信息(储存器20a;稍后描述)。
图2是举例说明作为实施方式的示例的存储系统1中形成的逻辑设备的图。
在图2中示出的示例中,逻辑设备#2_1和#2_2连接到代理节点10-2(Agt#2),逻辑设备#3_1和#3_2连接到代理节点10-3(Agt#3)。
管理器节点10-1(Mgr#1)可以经由网络30访问代理节点10-2的逻辑设备#2_1和#2_2以及代理节点10-3的逻辑设备#3_1和#3_2。因此,管理器节点10-1可以参考并改变代理节点10-2的逻辑设备#2_1和#2_2以及代理节点10-3的逻辑设备#3_1和#3_2。
类似地,代理节点10-2可以经由网络30访问管理器节点10-1(Mgr#1)和代理节点10-3的逻辑设备#3_1和#3_2。代理节点10-3可以经由网络30访问管理器节点10-1(Mgr#1)和代理节点10-2的逻辑设备#2_1和#2_2。
每个节点10的逻辑设备的堆栈配置由多个不同命令构成和操作。
在被包括在存储系统1中的多个JBOD 20中,连接到管理器节点10-1的JBOD 20的存储区域的一部分被用作储存器20a。
储存器20a是非易失性存储区域(非易失性存储设备、存储单元),并且是存储并存留稍后描述的工作管理信息201、任务管理信息202和非易失性信息管理信息203的永久磁盘。储存器20a是除了管理器节点10-1之外还能够从多个其他代理节点10访问的外部存储设备。存储在储存器20a中的信息是用于实现持久性的信息,即,永久信息。通过将数据存储在储存器20a中来存留数据。
例如,每个节点10是具有服务器功能的计算机,并且包括CPU 11、存储器12、磁盘接口(I/F)13和网络接口14作为配置元件。这些配置元件11至14经由总线(未示出)构成彼此可通信。
在存储系统1中,每个代理节点10与另一个代理节点10形成高可用性(HA)对。
在HA对中,例如,在一个(搭档)代理节点10被停止的情况下,构成HA对的另一个代理节点10接管搭档的功能并且可以继续该功能以提供数据。
在下文中,构成HA对的节点10可以被称为HA对节点10或者被简称为对节点10。每个节点10提供JBOD 20的存储区域作为存储资源。
网络I/F 14是经由网络交换机31可通信地连接到其他节点10的通信接口,并且例如是局域网(LAN)接口或光纤通道(FC)接口。
存储器12是包括只读存储器(ROM)和随机存取存储器(RAM)的存储器。在存储器12的ROM中,写入用于作为OS或存储系统控制的软件程序以及用于该程序的数据。存储器12上的软件程序由CPU 11适当地读取和执行。存储器12的RAM被用作主存储器或工作存储器。在存储系统1中,存储器12不在多个节点10之间共享。
例如,稍后描述的工作管理信息201、任务管理信息202和非易失性信息管理信息203可以被存储在管理器节点10-1的存储器12的RAM的预定区域中。
例如,包括用于使节点10用作管理器节点10-1的多个命令的管理器节点控制程序(控制程序)被存储在连接到每个节点10的JBOD 20中。例如,从JBOD 20读取管理器节点控制程序并将其存储(展开)在存储器12的RAM中。
节点10可以包括输入设备(未示出)(例如,键盘或鼠标)以及输出设备(未示出)(例如,显示器或打印机)。
可以在每个节点10中设置存储设备,并且管理器节点控制程序或代理节点控制程序可以被存储在这些存储设备中。
CPU 11是包括控制单元(控制电路)、操作单元(操作电路)、高速缓冲存储器(寄存器组)等的处理设备(处理器),并且执行各种控制和操作。CPU 11通过执行存储在存储器12中的OS和程序来实现各种功能。
在节点10中,CPU 11执行管理器节点控制程序,使得节点10用作管理器节点10。
管理器节点10经由网络30将代理节点控制程序的执行模块发送到包括在存储系统1中的另一节点10(代理节点10)。例如,管理器节点10向每个代理节点10发送代理节点控制程序。
代理节点控制程序是包括用于使代理节点10的CPU 11实现作为任务处理单元121、响应单元122、倒回处理单元123、对节点监测单元124和非易失性信息删除单元106(参见图3)的功能的多个命令的程序。
例如,当稍后描述的管理器节点10的任务请求单元102将任务执行请求发送到另一节点10时,代理节点控制程序的执行模块被添加到任务执行请求。因此,代理节点控制程序不必被安装在每个代理节点10上,并且可以降低管理和操作所需的成本。
在代理节点10中,CPU 11执行代理节点控制程序,使得节点10用作代理节点10。
例如,以被记录在计算机可读记录介质(例如,软盘、CD(CD-ROM、CD-R、CD-RW等)、DVD(DVD-ROM、DVD-RAM、DVD-R、DVD+R、DVD-RW、DVD+RW、HD DVD等)、蓝光盘、磁盘、光盘或磁光盘的)上的形式提供上述管理器节点控制程序。计算机从记录介质读取程序,并将程序传送到内部存储设备或外部存储设备以使用该程序。例如,程序可以被记录在存储设备(记录介质)(例如,磁盘、光盘或磁光盘)中,也可以经由通信路径从存储设备提供至计算机。
图3是示出了作为实施方式的示例的存储系统1的功能配置的图。
在管理器节点10-1中,如图3中所示,CPU 11执行管理器节点控制程序,以实现作为任务创建单元101、任务请求单元102、倒回指令单元103、持久性处理单元104、任务处理状态管理单元105、节点关闭处理单元107和非易失性信息删除单元106的功能
在存储系统1中,从用户向管理器节点10-1输入对逻辑设备的请求。
任务创建单元101基于对从用户输入的对逻辑设备的请求来创建具有多个任务的工作。
在存储系统1中,针对从用户输入的每个请求创建工作。例如,管理器节点10-1通过工作单元接收处理。
在存储系统1中,针对一个工作执行多个任务。
该任务包括由节点10执行的一系列多个处理(命令)。该命令是对逻辑设备的操作的最小单元。为每个节点10创建任务,并且一个任务中包括的命令由同一节点10处理。例如,通过将用于处理一个工作的多个命令划分到每个主处理节点10中来构成任务。
在存储系统1中,由任务单元保证原子性。例如,在一个任务中,命令的执行顺序被确定,并且除非完成先前命令的处理,否则不开始下一个命令的处理。
任务创建单元101创建与工作相关的工作管理信息201。
图4是举例说明作为实施方式的示例的存储系统1中的工作管理信息201的图。
图4中举例说明的工作管理信息201包括用于识别工作的工作标识符(工作ID)以及用于识别构成工作的任务的任务标识符。
图4中举例说明的工作管理信息201指示了工作标识符(工作ID)是“工作#1”的工作,工作#1包括两个任务(任务#1和任务#2)。
任务创建单元101针对要创建的每个任务创建任务管理信息202(稍后参照图6描述)。
图5A和图5B是举例说明作为实施方式的示例的存储系统1中的任务的图,其中分别地,图5A举例说明任务#1和并且图5B举例说明任务#2。
如图5A和图5B中所示,任务包括多个命令。
例如,图5A中举例说明的任务#1包括命令“创建Dev#2_1”和“创建Dev#2_2”。例如,任务#1构建Dev#2_1和Dev#2_2。
图5B中举例说明的任务#2包括三个命令“创建Dev#3_1”、“创建Dev#3_2”和“创建MirrorDev”。例如,任务#2构建Dev#3_1和Dev#3_2,并且构建创建MirrorDev。
在任务#1中,以“创建Dev#2_1”和“创建Dev#2_2”的顺序执行上述命令,并且在任务#2中,以“创建Dev#3_1”、“创建Dev#3_2”和“创建MirrorDev”的顺序执行上述命令。在工作中,由任务单元保证原子性。
在图5A和图5B中,示出了唯一地指定任务的任务标识符(任务ID)、用于识别作为包括在任务中的命令的执行主体的节点10的节点识别信息(节点)以及指示任务的进度状态的任务进度状态信息(状态)。在图5A和图5B中,还示出了指示成功或失败的成功或失败信息(错误)。
这些信息被记录在任务管理信息202中并且被管理。
图6是举例说明作为实施方式的示例的存储系统1中的任务管理信息202的表格。
图6中举例说明的任务管理信息202对应于图5A和图5B中示出的任务#1和任务#2。
任务管理信息202是与任务有关的信息,并且通过将命令、完成状态和成功或失败(错误)与任务ID相关联来构成图6中举例说明的任务管理信息202。
任务ID是唯一地指定任务的任务标识符(任务ID)。在图6示出的示例中,任务ID“001”表示图5A中示出的任务#1,任务ID“002”表示图5B中示出的任务#2。
对于命令,列出了任务中包括的命令。在图6中示出的任务管理信息202中,仅示出了命令体,并且省略了参数和选项。
在发出对代理节点10执行倒回处理的指令的情况下,其中,稍后描述的倒回处理单元123(节点关闭处理单元107)执行任务失败,“回退”表示指示倒回处理的结果被设置在与任务对应的命令的列中。
完成状态是表示任务的进度状态的任务进度状态信息(状态)。作为任务进度状态信息,例如,设置表示处于未执行状态的“要完成”和表示处理完成的“已完成”中的一个。
例如,在从代理节点10接收到任务的完成通知或倒回处理的完成通知(稍后描述)的情况下,稍后描述的任务处理状态管理单元105将任务管理信息202的任务进度状态信息从“要完成”重写为“已完成”。
例如,在从稍后描述的倒回指令单元103向代理节点10发送倒回指令的情况下,任务处理状态管理单元105将任务管理信息202的任务进度状态信息从“已完成”重写为“要完成”。
在下文中,任务管理信息202中的完成状态(任务进度状态信息)可以被称为状态。
在图6中举例说明的任务管理信息202中,任务ID“001”的任务#1包括两个命令“创建”。由于完成状态(任务进度状态信息)是“已完成”,因此可以看出任务#1已经被完成。
另一方面,在图6中举例说明的任务管理信息202中,任务ID“002”的任务#2执行两个命令“创建”,然后执行“创建MirrorDev”。由于任务进度状态信息是“要完成”,因此可以看出任务#2处于未被代理节点10-3执行(未执行)的状态。
成功或失败(错误)是表示在执行包括在任务中的命令期间是否发生失败的信息。例如,在任务中包括的一个命令中发生命令执行失败的情况下,稍后描述的任务处理状态管理单元105在成功或失败(错误)中设置意味着发生失败的“真”。在任务中包括的一个命令中没有发生命令执行失败的情况下,在成功或失败(错误)中设置意味着没有发生失败的结果的“假”。
任务创建单元101可以在包括在存储系统1中的多个代理节点10中指定执行任务的多个代理节点10,并且关于指定的多个代理节点10创建相应的任务。可以通过使用各种方法(例如,通过使用各种方法优先选择多个代理节点10中具有低负载的代理节点10等)来指定执行任务的代理节点10。
由任务创建单元101创建的任务管理信息202被存储在存储器12的预定区域中。存储在存储器12中的任务管理信息202通过由稍后描述的持久性处理单元104存储在储存器20a中而被持久化。
任务管理信息202包括用于识别执行包括在任务中的命令的节点10的节点识别信息(节点)。
任务请求单元102将由任务创建单元101创建的任务发送到任务的主处理代理节点10的代理节点10,并请求其执行。
例如,任务请求单元102参考任务管理信息202,提取任务进度状态为“要完成”的任务,并将任务执行请求发送到由任务管理信息202的节点识别信息指定的代理节点10,从而请求执行任务。
用于为代理节点10的CPU 11实现作为任务处理单元121、响应单元122、倒回处理单元123、对节点监测单元124和非易失性信息删除单元106的功能的程序(用于代理节点的控制程序)的执行模块被添加到由任务请求单元102发送到每个代理节点10的任务执行请求。例如,任务请求单元102将代理节点控制程序发送到每个代理节点10。
在请求任务的代理节点10关闭的情况下,任务请求单元102使由节点关闭处理单元107选择的另一个代理节点10请求执行(重新执行)由已经关闭的节点10执行的任务。
例如,在倒回指令单元103从代理节点10接收到任务执行失败的结果的通知(失败通知)的情况下,倒回指令单元103使执行在与该任务相同的工作中包括的另一任务的代理节点10执行返回到执行任务之前的状态的处理(倒回处理、回退处理)。
例如,在关于图5A和图5B中举例说明的任务#1和任务#2从Agt#3通知任务#2的失败的情况下,倒回指令单元103指示作为在与任务#2相同的工作#1中包括的任务#1的执行主体的Agt#2执行倒回处理,以返回到任务#1被执行之前的状态。
倒回指令单元103将指示执行倒回处理的通知(倒回指令、回退指令)发送到代理节点10。
倒回处理意味着处理返回到在已经执行任务的代理节点10中执行任务之前的状态。
因此,为了实现倒回处理,在包括多个命令的任务中,期望每个命令都是可逆命令。
例如,在用于生成某事物的命令(生成系统命令)(例如,用于创建卷的命令)中,它可以通过删除通过执行命令生成的产品(例如,卷)来返回到执行命令之前的状态。如上所述,可以仅通过删除通过执行命令获得的产品使系统返回到执行命令之前的状态的命令被称为可逆命令。
例如,用于改变信息(例如,名称或属性信息)的命令(信息改变系统的命令)也可以通过重置(重写)改变之前的信息而返回到执行命令之前的状态。因此,信息改变系统的命令也对应于可逆命令。
在可逆命令中,处理可以通过执行删除通过执行命令获得的产品的处理(例如,删除或重写)来返回到执行命令之前的状态。
在存储系统1中,倒回处理单元123删除产品或重置可逆命令的信息,以实现倒回以返回到执行命令之前的状态。
另一方面,针对这些可逆命令,例如,即使命令被执行,也不生成用于删除卷等的命令(删除系统的命令),并且在存储器12等的数据丢失的情况下,没有证据表明它可以返回到原始状态。因此,难以返回到执行命令之前的状态。难以返回到执行命令之前的状态的命令(例如,删除系统的命令),被称为不可逆命令。
通过执行删除通过在执行之后执行命令而获得的产品的处理(例如,删除或重写)不可逆命令无法返回到执行命令之前的状态。
倒回指令单元103指示执行由可逆命令构成的任务的代理节点10执行倒回处理。
在任何代理节点10中发生功能停止(节点关闭)的情况下,倒回指令单元103使执行在与节点关闭的代理节点10中执行的任务相同的工作中包括的另一任务的代理节点10执行倒回处理。在下文中,节点关闭的代理节点10可以被称为关闭节点10。
响应于来自节点关闭处理单元107的指令,由于这种节点关闭的发生,倒回指令单元103进行倒回处理的执行。
持久性处理单元104执行将与任务相关的信息存储在储存器20a中的处理。例如,当管理器节点10-1从用户接收工作时,持久性处理单元104从存储器12中读取工作管理信息201和与工作有关的任务管理信息202,并将它们存储在储存器20a中。持久性处理单元104可以执行控制,以将非易失性信息管理信息203存储在储存器20a中。
持久性处理单元104存储和与储存器20a中的任务相关的代理节点10交互的处理的状态(例如,成功或失败)。因此,当管理器节点10崩溃时,新的管理器节点10可以通过参考储存器20a来接管处理。
例如,持久性处理单元104将从代理节点10发送的、用于报告任务的执行结果的响应(成功或失败)与任务的任务标识符相关联地存储在储存器20a中。
持久性处理单元104将与发送到代理节点10的倒回指令有关的信息与由倒回指令取消处理的任务的任务标识符相关联地存储在储存器20a中。
持久性处理单元104将从代理节点10发送的、指示对倒回指令的响应的内容(例如,任务的执行是成功还是失败)的信息与任务的任务标识符相关联地存储在储存器20a中。
当在代理节点10中配置工作的所有任务的执行结束时,期望持久性处理单元104从储存器20a删除与该工作相关的工作管理信息201和任务管理信息202。
任务处理状态管理单元105管理每个代理节点10中的任务进度状态。任务处理状态管理单元105基于从代理节点10发送的任务的处理完成通知来更新任务管理信息202的任务进度状态信息。
配置任务管理信息202的信息被展开(存储)在管理器节点10-1的存储器12中,并且任务处理状态管理单元105更新存储器12上的任务管理信息202等。
当从任何代理节点10执行对节点关闭通知时,任务处理状态管理单元105将向关闭节点10请求的任务视为NG,并将进度状态信息更新为NG。
在倒回指令单元103对代理节点10执行倒回指令的情况下,任务处理状态管理单元105根据指令将任务管理信息202的任务进度状态信息从完成状态(已完成)更新为未完成状态(要完成)。
存储器12上的任务管理信息202的配置数据通过持久性处理单元104存储在储存器20a中,并且被持久化。
图7是用于说明作为实施方式的示例的存储系统1中的任务进度状态信息的转变的图。
例如,在从代理节点10接收到任务的完成通知或者倒回处理的完成通知(稍后描述)的情况下,任务处理状态管理单元105将任务管理信息202的任务进度状态信息从“要完成”重写为“已完成”(参见图7中的符号P1)。
例如,在从倒回指令单元103向代理节点10发送倒回指令的情况下,任务处理状态管理单元105将任务管理信息202的任务进度状态信息从“已完成”重写为“要完成”(参见图7中的符号P2)。
在代理节点10中的一个处于节点关闭状态的情况下,节点关闭处理单元107针对节点关闭执行预定处理。
例如,节点关闭处理单元107使倒回指令单元103对代理节点10执行倒回处理,该代理节点10执行与在关闭节点10中执行的任务相同的工作中包括的另一任务。
节点关闭处理单元107从代理节点10中的一个检测(接收)通知HA对节点10关闭的异常处理(对节点关闭信息)。
当检测到对节点关闭通知时,节点关闭处理单元107确定在关闭节点10中正被执行的任务失败。节点关闭处理单元107选择与关闭节点10不同的代理节点10,并使所选择的代理节点10经由任务请求单元102执行(重新执行)在关闭节点10中执行的任务。
在管理器节点10-1中,网络接口14经由网络30接收对节点关闭通知。因此,网络接口14对应于接收对节点关闭通知的接收单元。
当存储系统1被启动时,非易失性信息删除单元106删除非易失性信息,例如,存储在执行该功能的节点10(在下文中,可以被称为功能节点10)中的不必要的临时文件。
在存储系统的节点中,可以创建临时文件并将其内部地用于配置管理等目的。
图8是举例说明在现有技术的存储系统(SDS系统)500的代理节点501中创建临时文件的处理的图。
用户将逻辑设备的请求(工作)输入到管理器节点501-1(参见符号S1)。
在图8中示出的示例中,示出了在从用户请求创建镜像卷的情况下的处理。
管理器节点501-1根据请求创建多个(在图8中示出的示例中为7个)命令(创建Dev#2_1、创建Dev#2_2、创建Dev#3_1、创建Dev#3_2、创建File#1、创建MirrorDev、以及移除File#1)(参见符号S2)。创建File#1是用于创建临时文件“File#1”的命令,移除File#1是用于删除临时文件“File#1”的命令。
这样的临时文件另外需要另一命令的执行结果(例如,诸如地址信息、数据大小或文件名称的信息),例如,以计算设备的大小,并且在期望再次使用另一处理中的结果的情况下被使用。
管理器节点501-1请求代理节点501-2和501-3处理所创建的命令(参见符号S3)。
在图8中示出的示例中,向Agt#2请求命令“创建Dev#2_1”和“创建Dev#2_2”的处理(参见符号S4),并向Agt#3请求命令“创建Dev#3_1”、“创建Dev#3_2”、“创建File#1”、“创建MirrorDev”以及“移除File#1”的处理(参见符号S5)。
接收到请求的代理节点501-2和501-3中的每一个执行各自被请求的命令(处理)(参见符号S6和S7)。
在代理节点501-3在执行命令创建MirrorDev期间关闭的情况下,即,在构建MirrorDev期间(参见符号S8),由于没有执行命令移除File#1,因此由代理节点501-3创建的临时文件File#1保留。
此后,重新启动关闭的代理节点501-3,或者不保留指示临时文件File#1被创建的信息、指示MirrorDev被构建的信息。因此,不删除临时文件File#1。如果继续留下这种不必要的临时文件(非易失性文件、非易失性信息和不必要的文件),则导致存储设备的区域耗尽等。
在存储系统1中,非易失性信息删除单元106参考非易失性信息管理信息203以删除这样的临时文件。
图9是举例说明作为实施方式的示例的存储系统1中的非易失性信息管理信息203的表格。
图9中示出的非易失性信息管理信息203使指示非易失性信息的存储位置的文件路径与作为指定节点10的识别信息的节点ID相关联。
在每个节点10中,当创建临时文件时,稍后描述的任务处理单元121将临时文件的存储位置(文件路径)与功能节点10的节点ID相关联地记录在非易失性信息管理信息203中。
非易失性信息管理信息203被存储在管理器节点10-1的储存器20a中,并且每个节点的非易失性信息删除单元106参考非易失性信息管理信息203,以便可以获得功能节点10中的非易失性信息的存储位置。
在非易失性信息管理信息203中,多个非易失性文件的存储位置可以与一个节点ID相关联。
当启动功能节点10时,非易失性信息删除单元106访问储存器20a的非易失性信息管理信息203,获取功能节点10的非易失性信息的存储位置,并且删除非易失性信息(不必要的文件)。
在代理节点10-2至10-6中,CPU 11执行代理节点控制程序(执行模块),使得如图3中所示,实现作为任务处理单元121、响应单元122、倒回处理单元123、对节点监测单元124和非易失性信息删除单元106的功能。
任务处理单元121执行从管理器节点10-1的任务请求单元102请求执行的任务。例如,任务请求单元102根据处理顺序来执行请求执行的任务中包括的多个命令。
在创建临时文件的情况下,任务处理单元121将临时文件的存储位置(文件路径)与功能节点10的节点ID相关联地记录在非易失性信息管理信息203中。
倒回处理单元123执行倒回处理以将功能节点10的状态返回到任务处理单元121执行任务之前的状态。
例如,在从管理器节点10-1的倒回指令单元103接收到用于指示执行倒回处理的倒回指令的情况下,倒回处理单元123执行倒回处理。
倒回处理单元123执行倒回处理以将由可逆命令执行的处理(执行结果)返回到执行前的状态。
例如,对于生成系统的命令(例如,卷创建),通过删除通过执行命令生成的产品(例如,卷)返回到执行命令之前的状态。对于用于改变信息(例如,名称或属性信息)的信息改变系统的命令,通过重置改变之前的信息返回到执行命令之前的状态。
当由任务处理单元121执行任务时,在任务处理单元121执行任务中包括的任何命令失败的情况下,倒回处理单元123可以执行倒回处理。
例如,在倒回处理单元123在执行包括在任务中的多个命令中的任何命令失败的情况下,倒回处理单元123取消执行任务的命令失败之前执行的所有命令的处理。例如,在执行命令失败之前执行的命令是设备的创建的情况下,倒回处理单元123删除所创建的设备,从而返回到执行命令之前的状态。
即使对于除了生成系统或信息改变系统之外的命令,例如,在通过执行诸如撤消或取消的指定命令而可以容易地返回到执行命令之前的状态的情况下,可以在这样的命令中执行倒回处理,或者可以通过各种修改来执行倒回处理。
例如,图5(b)中举例说明的任务(任务#2)要由代理节点10-3(Agt#3)执行,并且按这种顺序执行三个命令“创建Dev#3_1”、“创建Dev#3_2”和“创建MirrorDev”。
例如,在代理节点10-3(Agt#3)中,考虑了在该处理中执行命令“创建Dev#3_2”失败的示例,其中任务处理单元121执行任务(任务#2)。在这种情况下,在代理节点10-3(Agt#3)中,倒回处理单元123在命令“创建Dev#3_2”之前删除所有命令“创建Dev#3_1”的处理。因此,代理节点10-3(Agt#3)可以返回到执行任务(任务#2)之前的状态。
对于由不可逆命令执行的处理,即使从管理器节点10-1的倒回指令单元103接收到倒回指令,倒回处理单元123也忽略倒回处理而不执行倒回处理。
在任务处理单元121完成任务的处理的情况下,响应单元122向管理器节点10-1通知任务的处理完成。
响应单元122在任务中包括的所有命令的处理被任务处理单元121执行并且任务单元的处理完成的时候发送完成通知。例如,响应单元122不发送命令单元的处理完成通知,但是发送任务单元的处理完成通知。
当任务处理单元121进行任务的执行时,在任务处理单元121执行任务中包括的任何命令失败的情况下,响应单元122向管理器节点10-1通知执行任务失败。在这种情况下,期望响应单元122在由倒回处理单元123执行倒回处理之后向管理器节点10-1通知执行任务失败。
因此,响应单元122用作第一响应单元,其响应于指示任务中包括的所有一系列的多个处理(命令)的执行正常完成的第一通知。
在任务处理单元121执行不可逆命令失败的情况下,响应单元122抑制给管理器节点10-1的命令失败通知。因此,不执行向管理器节点10-1通知命令执行失败,因此,在管理器节点10-1中,命令执行被视为成功。
例如,在不可逆命令的执行失败的情况下,响应单元122使管理器节点10-1认为命令执行已经成功。如上所述,例如,不可逆命令是卷的删除。
即使对于不可逆命令而言处理失败,代理节点10仍然执行下一个处理,而不向管理器节点10通知失败的通知。响应单元122向管理器响应所有处理都已经成功。对于包括命令的任务,即使从管理器节点10接收到倒回处理的指令,也忽略该指令并且阻止倒回处理的执行。
即使在不涉及管理器节点10的情况下获得异常状态,一旦由代理节点10启动的处理也可以在成功状态或失败状态下被完成。
因此,在管理器节点10中,由于错误处理而等待是不必要的,并且可以减少管理器节点10的负荷。因为由于错误处理而导致的等待等是不必要的,因此管理器节点10可以执行另一个处理并且可以实现有效的处理。
在下文中,即使命令处理在代理节点10中失败,响应单元122也阻止向管理器节点10通知失败的通知,并且可以将命令执行已经成功的假设称为校正提交。
代理节点10中的命令处理的失败被单独记录在系统日志等中。因此,由于代理节点10的响应单元122没有向管理器节点10通知失败的通知,因此没有问题。
在存储系统1中,在管理器节点10在代理节点10执行处理时关闭的情况下,执行以下处理。
例如,当管理器节点10-1崩溃时,代理节点10中的一个变为新的管理器节点10(新管理器节点10)。
在管理器节点10中,如上所述,持久性处理单元104将与任务相关的代理节点10交互的处理的状态存储在储存器20a中。
新管理器节点10可以通过参考储存器20a来接管关闭的管理器节点10的处理。
即使在倒回指令单元103完成倒回处理的情况下,响应单元122也向管理器节点10-1响应完成通知。
因此,响应单元122用作第二响应单元,该第二响应单元在正常完成倒回处理的执行时响应于第二通知。
对节点监测单元124关于功能节点10监测对节点10。当检测到对节点10的节点关闭时,对节点监测单元124向管理器节点10通知对节点关闭。期望对节点关闭通知作为异常处理被执行。例如,对节点关闭通知可以包括节点关闭的节点10的节点ID和指示节点关闭发生的功能。在下文中,作为异常处理执行的对节点关闭通知可以被称为节点关闭异常。
可以通过使用各种公知的方法来实现对节点的节点关闭的检测,因此将省略对其的详细描述。
当启动存储系统1时,非易失性信息删除单元106删除非易失性信息(例如,存储在提供功能的节点10(在下文中,可以被称为功能节点10)中的不必要的临时文件)。
作为代理节点10中的非易失性信息删除单元106的功能类似于管理器节点10中的非易失性信息删除单元106的功能,因此将省略对其的详细描述。
首先,在作为如上所述配置的实施方式的示例的存储系统1中,当启动每个节点10时,将参考图10中示出的流程图(步骤A1至A5)来描述非易失性信息删除单元106的处理。在管理器节点10和代理节点10中的每一个中执行以下处理。
例如,当节点10通电时,在步骤A1中,非易失性信息删除单元106确认存储在储存器20a中的非易失性信息管理信息203。
在步骤A2中,针对与非易失性信息管理信息203中的功能节点10的节点ID相关联的所有非易失性文件,开始重复地执行控制直到步骤A5的循环处理。
在步骤A3中,非易失性信息删除单元106删除由与非易失性信息管理信息203中的功能节点10的节点ID相关联的文件路径指示的不必要的文件。
在步骤A4中,非易失性信息删除单元106从任务管理信息202中删除未完成的任务。
此后,控制进行到步骤A5。在步骤A5中,执行与步骤A2对应的循环结束处理。当完成与功能节点10的节点ID相关联的所有非易失性文件的处理时,本流程结束。
当启动节点10时,非易失性信息删除单元106执行不必要的文件的删除。因此,确保由非易失性信息管理信息203指示存储位置的非易失性文件处于未使用状态。例如,可以阻止对使用中的文件的错误删除,并且可以安全地删除非易失性文件。
接下来,将根据图11中示出的流程图(步骤B1至B15)来描述作为实施方式的示例的存储系统1中的管理器节点10-1的处理。
在步骤B1中,在管理器节点10-1中,任务创建单元101基于从用户输入的请求来创建工作和工作中包括的多个任务。任务处理单元121在工作管理信息201中注册(工作注册)与创建的工作有关的信息。任务创建单元101将与创建的任务有关的信息注册在任务管理信息202中。
在步骤B2中,任务请求单元102请求代理节点10处理多个创建的任务中的每个任务。任务请求单元102通过将请求处理的消息与任务一起发送到代理节点10来执行处理请求。
在步骤B3中,节点关闭处理单元107确认是否检测到(捕获)来自代理节点10中的一个的对节点关闭通知的异常处理。
在未捕获节点关闭的异常处理的情况下(参见步骤B3中的“否”路线),并且过程进行至步骤B4。
在步骤B4中,任务处理状态管理单元105从请求执行任务的代理节点10接收与请求执行的任务有关的响应通知消息(消息)。来自代理节点10的响应通知消息包括完成任务的处理的结果(OK)的通知、或者任务的处理失败的结果(NG)的通知。
在步骤B5中,任务处理状态管理单元105基于所接收的消息来更新任务管理信息202的成功或失败的信息(任务进度状态信息)。期望更新的任务管理信息202通过持久性处理单元104存储在储存器20a中并且被持久化。
在步骤B6中,任务处理状态管理单元105确认从代理节点10接收的响应通知消息是否是完成任务的处理的结果(OK)的通知。
作为确认的结果,在接收到的响应通知消息未通知处理完成(OK)的情况下(参见步骤B6的“否”路线),过程进行至步骤B7。
在步骤B7中,任务处理状态管理单元105更新任务管理信息202。例如,任务处理状态管理单元105将指示失败的值(假)注册到任务管理信息202的成功或失败的信息(任务进展状态信息)中。
任务处理状态管理单元105将指示倒回处理的结果的信息写入任务管理信息202中。期望更新的任务管理信息202通过持久性处理单元104存储在储存器20a中并且被持久化。
在步骤B8中,倒回指令单元103向代理节点10通知倒回指令。
这些步骤B7和B8的顺序不限于该示例。例如,可以交换步骤B7的处理和步骤B8的处理的顺序,或者可以并行执行步骤B7的处理和步骤B8的处理。此后,过程进行至步骤B10。
作为步骤B6中的确认的结果,在接收到的响应通知消息通知处理完成(OK)的情况下(参见步骤B6的“是”路线),过程进行至步骤B9。
在步骤B9中,任务处理状态管理单元105确认是否从在步骤B2中请求执行任务的所有代理节点10接收到响应完成消息。
作为确认的结果,在存在未接收到响应完成消息的代理节点10的情况下(参见步骤B9的“否”路线),过程返回到步骤B3。另一方面,在从所有代理节点10接收到响应完成消息的情况下(参见步骤B9的“是”路线),过程进行至步骤B10。
在步骤B10中,持久性处理单元104删除与完成了来自储存器20a的处理的工作#1相关的工作管理信息201和任务管理信息202。此后,该处理结束。
作为步骤B3中的确认的结果,在捕获节点关闭的异常处理的情况下(参见步骤B3的“是”路线),过程进行至步骤B11。
在步骤B11中,任务处理状态管理单元105确定向关闭节点10请求的任务是NG,并且在步骤B12中,写入任务管理信息202以将任务进度状态信息更新为NG。
任务处理状态管理单元105写入任务管理信息202,以将任务进度状态信息更新为指示针对与向关闭节点10请求的任务相关并且在步骤B13中被完成(处理成功)的任务的倒回指令的状态。
例如,任务处理状态管理单元105将完成状态(进度状态信息)改变为“要完成”,并且关于任务管理信息202中的任务,将完成状态改变为命令“回退”的发出状态。
此后,在步骤B14中,倒回指令单元103向已经执行与向关闭节点10请求的任务有关的任务的代理节点10发出倒回指令。
在步骤B15中,任务请求单元102选择未关闭的另一个代理节点10,指定所选择的代理节点10,并执行(重新执行)向关闭节点10请求的任务。此后,该过程返回到步骤B2。
接下来,将根据图12A和图12B中示出的流程图(步骤C1至C20)来描述当作为实施方式的示例的存储系统1中发生节点关闭时的处理。
同样在图12A和图12B中,示出了响应于来自用户的请求而创建镜像卷并且代理节点10-3(Agt#3)在执行任务(任务#2)的中途关闭的情况的示例。代理节点10-4(Agt#4)和代理节点10-3(Agt#3)构成HA对。例如,代理节点10-4(Agt#4)是代理节点10-3(Agt#3)的HA对节点10。
在任务管理信息202的初始状态下,将每个任务的完成状态设置为“要完成”,并且将成功或失败(错误)设置为“假”。
在管理器节点10-1(Mgr#1)中,开始镜像卷的创建处理。
在步骤C1中,在管理器节点10-1中,任务创建单元101创建包括任务#1和任务#2的工作(工作#1)(参见符号Q1和Q2)。持久性处理单元104将创建的工作和任务的信息存储在储存器20a中,并且对该信息进行持久化。
在步骤C2中,管理器节点10-1的任务请求单元102请求代理节点10-2(Agt#2)执行任务#1。
在代理节点10-2(Agt#2)中,任务处理单元121响应于该请求开始任务#1的处理。例如,在代理节点10-2(Agt#2)中,顺序地执行任务#1中包括的多个命令。
任务处理单元121将Dev#2_1和Dev#2_2构建为任务#1(步骤C9和C10),并且处理结束。当任务处理单元121完成任务#1的处理时,响应单元122将任务#1的处理的完成通知发送到管理器节点10-1。
在步骤C3中,管理器节点10-1的已经从代理节点10-2(Agt#2)的响应单元122接收到任务#1的处理完成通知任务处理状态管理单元105将任务管理信息202中的任务#1的完成状态(状态)设置为“已完成”。
管理器节点10-1的任务处理状态管理单元105将任务管理信息202中的任务#2的完成状态设置为“要完成”。在步骤C4中,管理器节点10-1的任务请求单元102请求代理节点10-3(Agt#3)执行任务#2。
任务处理单元121响应于代理节点10-3(Agt#3)中的请求而开始任务#2的处理。例如,在代理节点10-3(Agt#3)中,顺序地执行任务#2中包括的多个命令。
任务处理单元121构建Dev#3_1(步骤C11)并且然后构建Dev#3_2(步骤C12)作为任务#2。任务处理单元121创建File#1(步骤C13)。
此后,任务处理单元121开始构建MirrorDev,但是在其中途,代理节点10-3(Agt#3)关闭(参见符号P3)。
在步骤C14中,在作为代理节点10-3(Agt#3)的HA对节点10的代理节点10-4(Agt#4)中,对节点监测单元124检测代理节点10-3(Agt#3)的关闭。
在步骤C15中,代理节点10-4的对节点监测单元124向管理器节点10-1通知代理节点10-3(Agt#3)的关闭。此后,代理节点10-4中的处理结束。
在步骤C5中,管理器节点10-1从代理节点10-4(Agt#4)捕获节点关闭异常。如上所述,管理器节点10-1可以在检测到关于代理节点10-3的超时错误之前通过从代理节点10-4捕获节点关闭异常来确定任务的执行失败。
在步骤C6中,管理器节点10-1的任务处理状态管理单元105将任务管理信息202中的任务#2的成功或失败(错误)设置为“真”,以将任务#2设置为错误状态。
在管理器节点10-1中,倒回指令单元103执行除了由于发生节点关闭而被确定为已经失败的任务以外的任务的倒回。倒回指令单元103指定基于与向作为关闭节点10的代理节点10-3(Agt#3)请求的任务#2相同的工作而创建的任务#1。倒回指令单元103将任务管理信息202中的任务#1的状态设置为“要完成”,并将命令设置为“回退”。
在步骤C7中,管理器节点10-1的倒回指令单元103指示已执行任务#1的代理节点10-2执行任务#1的倒回处理。因此,开始代理节点10-2中的倒回处理。
在步骤C16中,代理节点10-2的倒回处理单元123删除Dev#2_2,然后在步骤C17中删除Dev#2_1。如上所述,期望当执行任务的倒回处理时,倒回处理单元123以与执行顺序相反的顺序删除包括在任务中的多个命令的执行结果。此后,代理节点10-2中的处理结束。
另一方面,在管理器节点10-1中,在步骤C8中,任务处理状态管理单元105在任务管理信息202中将任务#1的状态重写为“已完成”。
如上所述,当代理节点10-3在任务的执行期间关闭时,所请求的工作失败。
此后,管理器节点10-1的节点关闭处理单元107选择与关闭节点10不同的代理节点10,并使所选的代理节点10经由任务请求单元102执行(重新执行、重试)正在关闭节点10中被执行的任务。
当完成由关闭节点10执行的任务的重试时,任务处理状态管理单元105从任务管理信息202中删除与工作#1有关的任务。在管理器节点10-1中,持久性处理单元104从储存器20a中删除与工作#1有关的信息。管理器节点10-1向用户通知镜像卷的创建完成,并且该处理结束。
重新启动关闭的代理节点10-3。在步骤C18中,非易失性信息删除单元106参考储存器20a的非易失性信息管理信息203以掌握存在于功能节点10中的非易失性文件并获取存储位置。
在步骤C19中,非易失性信息删除单元106删除功能节点10中的非易失性文件。
在代理节点10-3中,从储存器20a中删除任务#2(步骤C20),然后执行用于启动设备的各种处理。
如上所述,在作为实施方式的示例的存储系统1中,在代理节点10中,当对节点监测单元124检测到HA对节点10关闭时,关于管理器节点10执行对节点关闭通知的异常处理。
在管理器节点10的节点关闭处理单元107中,可以通过在执行任务期间从代理节点10接收对节点关闭通知作为异常通知来确定现场任务的失败。例如,在管理器节点10中,可以在不等待检测到超时错误的情况下检测到任务的失败。因此,可以缩短对节点关闭的响应时间,并且可以降低用于执行不必要的重试的成本。降低节点关闭时不必要的通信处理的成本,并且可以加速处理在执行期间的切换过程。例如,在代理节点10关闭的情况下,可以及时地处理,并且可以减少代理节点10关闭时的响应时间和处理成本。
在发生节点关闭的节点10中,当启动节点10时,非易失性信息删除单元106参考非易失性信息管理信息203并掌握要删除的非易失性文件的存储位置。因此,可以删除节点10中的不必要的临时文件。因此,可以阻止磁盘耗尽和数据不一致的发生,并且可以提高可靠性。
当启动节点10时,非易失性信息删除单元106删除不必要的文件,从而确保由非易失性信息管理信息203指示的存储位置的非易失性文件处于未使用状态。例如,可以组织使用中的文件的错误删除,并且可以安全地删除非易失性文件。
非易失性信息管理信息203被存储在储存器20a中,以便每个节点10中的非易失性信息删除单元106参考非易失性信息管理信息203,并且可以容易地确认功能节点10中的非易失性文件。
所公开的技术不限于上述实施方式,并且在不脱离实施方式的主旨的情况下可以进行各种修改。实施方式的配置和处理中的每一个可以被适当地选择,或者可以被适当地组合。
例如,存储系统1中包括的节点10的数量不限于6个,而是可以设置5个或更少个或者7个或更多个节点10。
在上述实施方式中,管理器节点10-1(任务请求单元102)将代理节点控制程序的执行模块与任务执行请求一起发送到代理节点10-2至10-6,但是该配置不限于这些实施方式。
例如,用于使节点10用作代理节点10的代理节点控制程序被存储在存储设备(例如,JBOD 20)中,并且节点10从JBOD 20读取并执行代理节点控制程序,从而实现作为代理节点10的每个功能。
无论上述实施方式如何,在不脱离实施方式的范围的情况下,可以进行各种修改。
Claims (13)
1.一种存储系统,包括:
多个服务器节点,其包括第一服务器节点和与所述第一服务器节点配对的第二服务器节点;以及
管理器节点,其被配置成管理所述多个服务器节点,
其中,所述第一服务器节点被配置成响应于检测到所述第二服务器节点关闭而向所述管理器节点发送通知,并且所述通知指示所述第二服务器节点关闭,并且
其中,所述管理器节点被配置成响应于接收到所述通知而执行与由所述第二服务器节点执行的第二处理有关的第一处理。
2.根据权利要求1所述的存储系统,
其中,所述第一处理包括:指示除了所述第二服务器节点之外的服务器节点返回到在关于已由该服务器节点成功执行的一个或更多个处理的执行之前的状态,并且所述一个或更多个处理与所述第二处理相关。
3.根据权利要求1所述的存储系统,
其中,所述第一处理包括使除了所述第二服务器节点之外的服务器节点执行所述第二处理。
4.根据权利要求1所述的存储系统,
其中,所述第二服务器节点被配置成:当所述第二服务器节点在关闭之后重新启动时,参考指示通过执行所述第二处理而生成的非易失性信息的存储位置的管理信息来删除所述非易失性信息。
5.根据权利要求1所述的存储系统,
其中,所述通知在所述管理器节点通过超时检测到所述第二服务器节点的关闭之前被发送。
6.根据权利要求1所述的存储系统,
其中,所述第一服务器节点和所述第二服务器节点形成高可用性对。
7.一种存储控制方法,包括:
由第一服务器节点响应于检测到第二服务器节点关闭而向管理器节点发送通知,所述第二服务器节点与所述第一服务器节点配对,所述管理器节点被配置成管理包括所述第一服务器节点和所述第二服务器节点的多个服务器节点;以及
由所述管理器节点响应于接收到所述通知而执行与由所述第二服务器节点执行的第二处理有关的第一处理。
8.根据权利要求7所述的存储控制方法,
其中,所述第一处理包括:指示除了所述第二服务器节点之外的服务器节点返回到在关于已由该服务器节点成功执行的一个或更多个处理的执行之前的状态,并且所述一个或更多个处理与所述第二处理相关。
9.根据权利要求7所述的存储控制方法,
其中,所述第一处理包括:使除了所述第二服务器节点之外的服务器节点执行所述第二处理。
10.根据权利要求7所述的存储控制方法,还包括:
当所述第二服务器节点在关闭之后重新启动时,由所述第二服务器节点参考指示通过执行所述第二处理而生成的非易失性信息的存储位置的管理信息来删除所述非易失性信息。
11.根据权利要求7所述的存储控制方法,
其中,所述通知在所述管理器节点通过超时检测到所述第二服务器节点的关闭之前被发送。
12.根据权利要求7所述的存储控制方法,
其中,所述第一服务器节点和所述第二服务器节点形成高可用性对。
13.一种存储控制设备,包括:
处理器,其被配置成:
接收由第一服务器节点在所述第一服务器节点检测到第二服务器节点关闭时发送的通知,所述第二服务器节点与所述第一服务器节点配对,以及
响应于所接收的通知而执行与由所述第二服务器节点执行的第二处理相关的第一处理。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018-127599 | 2018-07-04 | ||
JP2018127599A JP6665892B2 (ja) | 2018-07-04 | 2018-07-04 | 情報処理システム,情報処理装置および制御プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110690986A true CN110690986A (zh) | 2020-01-14 |
Family
ID=69102082
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910590334.1A Pending CN110690986A (zh) | 2018-07-04 | 2019-07-02 | 存储系统、存储控制方法和存储控制设备 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20200012450A1 (zh) |
JP (1) | JP6665892B2 (zh) |
CN (1) | CN110690986A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112256497A (zh) * | 2020-10-28 | 2021-01-22 | 重庆紫光华山智安科技有限公司 | 一种通用的高可用服务实现方法、系统、介质及终端 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112738258A (zh) * | 2020-12-30 | 2021-04-30 | 北京浪潮数据技术有限公司 | 一种节点管理方法、装置、系统及计算机可读存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5459725A (en) * | 1994-03-22 | 1995-10-17 | International Business Machines Corporation | Reliable multicasting over spanning trees in packet communications networks |
CN101019376A (zh) * | 2004-10-29 | 2007-08-15 | 国际商业机器公司 | 使用服务器之间的直接通信监视节点配置中的服务器事件的方法和系统 |
CN102624911A (zh) * | 2012-03-14 | 2012-08-01 | 中山大学 | 一种基于集群的可视媒体存储系统 |
US20170270176A1 (en) * | 2010-12-23 | 2017-09-21 | Eliot Horowitz | System and method for determining consensus within a distributed database |
US20180095855A1 (en) * | 2016-09-30 | 2018-04-05 | Commvault Systems, Inc. | Heartbeat monitoring of virtual machines for initiating failover operations in a data storage management system, using ping monitoring of target virtual machines |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08329023A (ja) * | 1995-05-30 | 1996-12-13 | Shikoku Nippon Denki Software Kk | 並列電子計算機システム |
US5712971A (en) * | 1995-12-11 | 1998-01-27 | Ab Initio Software Corporation | Methods and systems for reconstructing the state of a computation |
JPH09319633A (ja) * | 1996-05-31 | 1997-12-12 | Nippon Telegr & Teleph Corp <Ntt> | 分散エージェントの実行制御方法 |
JP2002183832A (ja) * | 2000-12-18 | 2002-06-28 | Fuji Xerox Co Ltd | 画像出力システム |
JP2008107896A (ja) * | 2006-10-23 | 2008-05-08 | Nec Corp | 物理資源制御管理システム、物理資源制御管理方法および物理資源制御管理用プログラム |
JP2008217225A (ja) * | 2007-03-01 | 2008-09-18 | Hitachi Ltd | ブレードサーバシステム |
JP5471666B2 (ja) * | 2010-03-19 | 2014-04-16 | 富士通株式会社 | ネットワーク管理装置、ネットワーク管理方法及びネットワーク管理プログラム |
-
2018
- 2018-07-04 JP JP2018127599A patent/JP6665892B2/ja active Active
-
2019
- 2019-06-17 US US16/442,661 patent/US20200012450A1/en not_active Abandoned
- 2019-07-02 CN CN201910590334.1A patent/CN110690986A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5459725A (en) * | 1994-03-22 | 1995-10-17 | International Business Machines Corporation | Reliable multicasting over spanning trees in packet communications networks |
CN101019376A (zh) * | 2004-10-29 | 2007-08-15 | 国际商业机器公司 | 使用服务器之间的直接通信监视节点配置中的服务器事件的方法和系统 |
US20170270176A1 (en) * | 2010-12-23 | 2017-09-21 | Eliot Horowitz | System and method for determining consensus within a distributed database |
CN102624911A (zh) * | 2012-03-14 | 2012-08-01 | 中山大学 | 一种基于集群的可视媒体存储系统 |
US20180095855A1 (en) * | 2016-09-30 | 2018-04-05 | Commvault Systems, Inc. | Heartbeat monitoring of virtual machines for initiating failover operations in a data storage management system, using ping monitoring of target virtual machines |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112256497A (zh) * | 2020-10-28 | 2021-01-22 | 重庆紫光华山智安科技有限公司 | 一种通用的高可用服务实现方法、系统、介质及终端 |
CN112256497B (zh) * | 2020-10-28 | 2023-05-12 | 重庆紫光华山智安科技有限公司 | 一种通用的高可用服务实现方法、系统、介质及终端 |
Also Published As
Publication number | Publication date |
---|---|
JP2020008999A (ja) | 2020-01-16 |
JP6665892B2 (ja) | 2020-03-13 |
US20200012450A1 (en) | 2020-01-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8433947B2 (en) | Computer program, method, and apparatus for controlling data allocation | |
US10645152B2 (en) | Information processing apparatus and memory control method for managing connections with other information processing apparatuses | |
JP4796854B2 (ja) | 差分リモートコピーにおける中間ボリュームのデータ溢れ対策 | |
JP5412882B2 (ja) | 論理ボリューム構成情報提供プログラム、論理ボリューム構成情報提供方法、および論理ボリューム構成情報提供装置 | |
US8589649B2 (en) | Computer system and method of notifying error information of the computer system | |
US20100162035A1 (en) | Multipurpose Storage System Based Upon a Distributed Hashing Mechanism with Transactional Support and Failover Capability | |
EP3015998B1 (en) | Zoning balance subtask delivering method, apparatus and system | |
CN109325016B (zh) | 数据迁移方法、装置、介质及电子设备 | |
EP1873645A1 (en) | Storage system and data replication method | |
US7689790B2 (en) | Storage system, remote copy and management method therefor | |
JP5699852B2 (ja) | 情報処理装置、ストレージ制御方法およびプログラム | |
JP2005222110A (ja) | ストレージサブシステム | |
WO2016101486A1 (zh) | 一种故障修复方法、装置及计算机存储介质 | |
US9348711B2 (en) | Copy control apparatus and copy control method | |
CN110690986A (zh) | 存储系统、存储控制方法和存储控制设备 | |
JP4550648B2 (ja) | 計算機システム | |
JP2006260240A (ja) | 計算機システム及び記憶装置とコンピュータ・ソフトウエア並びにデータ移行方法 | |
US8667243B2 (en) | Storage apparatus, controller, and method of controlling controller | |
JP4808793B2 (ja) | 障害管理装置及びプログラム | |
JP5924117B2 (ja) | コンピュータ、データ格納方法、データ格納プログラム及び情報処理システム | |
US20190227890A1 (en) | Information processing apparatus, information processing system, and non-transitory computer-readable recording medium having stored therein control program | |
JP5490067B2 (ja) | 障害管理装置及びプログラム | |
JP5425146B2 (ja) | 障害管理装置及びプログラム | |
CN112905538A (zh) | 资源配置方法、系统、电子设备及存储介质 | |
JP6326898B2 (ja) | ストレージ装置、ストレージシステムおよびデータ配置方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20200114 |
|
WD01 | Invention patent application deemed withdrawn after publication |