CN111209096A - 信息处理设备和信息处理方法 - Google Patents
信息处理设备和信息处理方法 Download PDFInfo
- Publication number
- CN111209096A CN111209096A CN201911070678.6A CN201911070678A CN111209096A CN 111209096 A CN111209096 A CN 111209096A CN 201911070678 A CN201911070678 A CN 201911070678A CN 111209096 A CN111209096 A CN 111209096A
- Authority
- CN
- China
- Prior art keywords
- section
- rest
- processing
- backup management
- daemon
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0637—Permissions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F9/526—Mutual exclusion algorithms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
-
- 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/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- 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/062—Securing storage systems
- G06F3/0622—Securing storage systems in relation to access
-
- 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/0629—Configuration or reconfiguration of storage systems
- G06F3/0635—Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
-
- 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/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1438—Restarting or rejuvenating
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Human Computer Interaction (AREA)
- Computer Networks & Wireless Communication (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Hardware Redundancy (AREA)
Abstract
提供了一种信息处理设备和信息处理方法。信息处理设备包括存储器和处理器单元,该处理器单元用于:执行第一处理,以在执行第一处理的启动处理的同时生成通信中使用的控制数据并将控制数据以锁定状态存储在存储器中,响应于启动处理的完成或者启动处理的暂停来解除控制数据的锁定状态,以及响应于通信请求来与通信设备进行通信;以及执行第二处理,以基于控制数据确定是否建立了与第一处理的连接,当确定未建立与第一处理的连接时,根据存储器中的控制数据是否被锁定而从处理组中选择用于与第一处理进行连接的处理,以及在与第一处理进行连接的同时向第一处理发送通信请求。
Description
技术领域
本文所讨论的实施方式涉及信息处理技术。
背景技术
为了在应用程序的进程处理中实现与另一设备的通信,可以将用于通信处理的程序的处理(该处理在下文中将被描述为“通信处理”)与应用程序的处理分开执行。在这种情况下,响应于来自应用程序的处理的请求,通信处理执行与其他设备的通信。根据这样的配置,当需要基于新的通信系统的通信时,例如,通过安装用于执行支持该通信系统的新通信处理的程序,基于该通信系统的通信变得可行。
作为与此相关的技术,提出了以下文件服务器。该文件服务器包括输入/输出(I/O)代理守护进程,其通过代理来执行将I/O请求从文件服务器应用部发布至文件系统。
另外,关于处理的控制,提出了以下处理控制方法。在该处理控制方法中,通过以下方法避免了由于同时更新相同的数据所导致的数据破坏:在给定文件中写入处理的识别码,根据识别码的顺序执行待命状态的处理,以及在执行结束之后将处理的识别码从文件中删除。
例如,相关技术已经在日本特许公开专利公布第2013-196066号和日本特许公开专利公布第04-283838号中公开。
发明内容
在如上所述的实施执行通信处理的通信处理以及请求通信处理执行通信处理的处理(请求通信处理的处理在下文中将被描述为“请求处理”)的配置中,可能存在在请求处理启动的状态下开始通信处理的启动处理的情况。因此,当请求处理请求通信处理以执行通信处理时,通信处理的启动状态可以呈现多个状态,例如,在启动处理期间的状态、启动处理已经完成的状态、启动处理异常结束的状态等。期望请求处理侧在不引起错误的情况下,通过根据通信处理的启动状态来选择处理以继续进行处理。然而,很难选择这样的处理。
一方面,本文所讨论的实施方式的目的是:提供可以在请求执行通信的处理时根据该处理的启动状态来选择并执行处理的信息处理设备和信息处理程序。
根据实施方式的一方面,信息处理设备包括存储器和处理器单元,该处理器单元用于:执行第一处理,以在执行第一处理的启动处理的同时生成通信中使用的控制数据并将控制数据以锁定状态存储在存储器中,响应于启动处理的完成或者启动处理的暂停来解除控制数据的锁定状态,并且响应于通信请求来与通信设备进行通信;以及执行第二处理,以基于控制数据确定是否建立了与第一处理的连接,当确定未建立与第一处理的连接时,根据存储器中的控制数据是否被锁定而从处理组中选择用于与第一处理进行连接的处理,以及在与第一处理进行连接的同时向第一处理发送通信请求。
应当理解的是,前面的整体描述和以下的详细描述均为示例性的,并且旨在为所要求保护的发明提供进一步解释。根据所附描述、附图以及权利要求,本发明的其他优点和特点将变得明显。
附图说明
图1是示出了根据第一实施方式的信息处理系统的配置的示例和处理的示例的图;
图2是示出了根据第二实施方式的存储系统的配置的示例的图;
图3是示出了业务服务器的硬件配置的示例的图;
图4是示出了提供给业务服务器的基本处理功能的配置的示例的图;
图5是示出了关于与存储服务器进行通信的处理功能的配置的示例的图,该处理功能被提供给业务服务器;
图6是示出了第一比较示例中的备份管理部的通信处理过程的流程图的示例;
图7是示出了第一比较示例中的备份管理部和REST守护进程部的通信处理过程的顺序图的示例;
图8是示出了第二比较示例中的备份管理部和REST守护进程部的通信处理过程的顺序图的第一示例;
图9是示出了第二比较示例中的备份管理部和REST守护进程部的通信处理过程的顺序图的第二示例;
图10是示出了第二实施方式中的备份管理部和REST守护进程部的通信处理过程的顺序图的第一示例;
图11是示出了第二实施方式中的备份管理部和REST守护进程部的通信处理过程的顺序图的第二示例;
图12是示出了第二实施方式中的备份管理部的处理过程的流程图的示例(1);以及
图13是示出了第二实施方式中的备份管理部的处理过程的流程图的示例(2)。
具体实施方式
以下,将参考附图对本技术的实施方式进行描述。图1是示出了根据第一实施方式的信息处理系统的配置的示例以及处理的示例的图。图1中示出的信息处理系统包括信息处理设备10和通信目标设备20。在该信息处理系统中,在信息处理设备10与通信目标设备20之间执行通信。
信息处理设备10包括存储部11和处理部12。例如,存储部11是由提供给信息处理设备10的存储设备的存储区域(未示出)实现的。例如,处理部12的处理是由提供给信息处理设备10的处理器(未示出)通过执行给定程序实现的。
存储部11存储由处理部12生成的控制数据11a。控制数据11a是用于通信的数据。例如,控制数据11a包括当处理部12与通信目标设备20通信时所使用的通信端口的数量以及通信处理的识别号。
处理部12执行第一处理1和第二处理2。第一处理1是根据来自第二处理2的通信请求来执行与通信目标设备20通信的处理。第二处理2是通过向第一处理1发送通信请求以使得第一处理1和通信目标设备20进行通信的处理。由此,第二处理2可以通过使用第一处理1实现与通信目标设备20的通信。
第一处理1执行如下处理。处理部12开始启动第一处理1的处理(步骤S1a)。在执行启动处理的处理中,处理部12生成控制数据11a并将控制数据11a存储在存储部11中,并且锁定控制数据11a(步骤S1b)。假设启动处理在没有由于异常等而停止的情况下继续进行(步骤S1c中为“否”),并且启动处理已经完成。处理部12在启动处理完成解除放对控制数据11a的锁定(步骤S1e)。然后,处理部12开始与通信目标设备20的通信处理(步骤S1f)。在该通信处理中,处理部12根据来自第二处理2的通信请求与通信目标设备20进行通信。另外,当启动处理由于异常等中途停止并且因此无法正常完成时(步骤S1c中为“是”),处理部12解除对控制数据11a的锁定(步骤S1d)。
根据以上描述的第一处理1,在正常执行启动处理的同时,控制数据11a被锁定。另外,当启动处理正常完成时,控制数据11a的锁定被解除。此外,当启动处理由于异常等中途停止时,控制数据11a的锁定也会被解除。
另一方面,在第二处理2中,处理部12基本上基于控制数据11a耦合至第一处理1,并且在处于至第一处理的耦合建立的状态下向第一处理1发送通信请求。由此,第一处理1根据通信请求执行通信。
另外,在第二处理2中,处理部12基于控制数据11a以及指示控制数据11a是否被锁定的锁定状态,根据与第一处理1的耦合是成功还是失败来选择要针对第一处理1执行的处理,以便执行与通信目标设备20的通信。处理部12可以基于控制数据11a和锁定状态,根据与第一处理1的耦合的成功或失败来确定第一处理1的启动状态。因此,处理部12可以根据启动状态的确定的结果来选择并执行适当的处理。
例如,第二处理2执行如下处理。处理部12基于控制数据11a请求与第一处理1的耦合(步骤S2a)。当与第一处理1的耦合成功时(步骤S2b为“是”),处理部12向第一处理1发送通信请求(步骤S2c)。由此,第一处理1根据通信请求执行通信(步骤S1f)。
另一方面,当与第一处理1的耦合失败时(步骤S2b为“否”),处理部12确定控制数据11a的锁定状态(步骤S2d)。此处,在控制数据11a未被锁定时(步骤S2d为“否”),确定第一处理1的启动处理由于异常等中途停止。例如,这种状态对应于在第一处理1中执行步骤S1d的状态。在这种情况下,处理部12再次启动第一处理1(步骤S2e)。启动第一处理1的处理从而被再次启动(步骤S1a)。当启动处理正常完成时,处理部12在第二处理2中基于控制数据11a请求与第一处理1的耦合(步骤S2a),并且耦合成功(步骤S2b为“是”)。因此,可以使用第一处理1进行通信。
另外,在步骤S2d中当控制数据11a被锁定时,确定正在执行启动第一处理1的处理。例如,这种状态对应于在第一处理1中执行步骤S1b之后继续进行启动处理的状态。在这种情况下,处理部12被设置处于等待锁定被解除的等待状态,例如,等待启动处理完成(步骤S2f)。当启动第一处理1的处理正常完成时(步骤S1e),处理部12通过检测锁定解除来识别到启动处理已经完成,并且基于控制数据11a请求至第一处理1的耦合(步骤S2a)。当耦合成功时(步骤S2b为“是”),可以使用第一处理1进行通信。
因此,在第二处理2中,处理部12可以基于控制数据11a和锁定状态基于与第一处理1的耦合是成功还是失败从第一处理1的多个可能的状态中确定第一处理1的当前启动状态。在以上描述的示例中,处理部12可以确定第一处理1处于启动处理的中间的状态、启动处理完成的状态以及启动处理异常结束的状态中的一个。处理部12可以从而根据所确定的启动状态选择并执行处理。因此,第二处理2可以在不引起错误的情况下继续与通信目标设备20通信的处理。
以上所描述的信息处理设备10的处理在执行多个第二处理2并且多个第二处理2共享一个第一处理1的情况下尤其有效。例如,当第二处理2中的一个试图在第一处理1未启动的状态下执行通信时,该第二处理2启动第一处理1。另一方面,当第二处理2中的另一处理试图在第一处理1的启动开始之后执行通信时,第一处理1的启动状态可能呈现多个状态。例如,可能存在启动处理的中间的状态、启动处理完成的状态以及启动处理异常结束的状态。因此,其他处理可以在掌握第一处理1的启动状态后期望地选择接下来要执行的处理。
因此,在以下描述中,将示出作为第二实施方式的情况,在第二实施方式中执行多个第二处理2并且这些第二处理2共享一个第一处理1。
接下来,将对包括图1中示出的信息处理设备10的存储系统进行描述。图2是示出了根据第二实施方式的存储系统的配置示例的示意图。图2中示出的存储系统包括存储服务器110、存储设备120以及业务服务器200、200a和200b。顺便提及,业务服务器200、200a和200b均为图1中信息处理设备10的示例,并且存储服务器110是图1中通信目标设备20的示例。
存储器111被耦合至存储服务器110。存储器111包括一个或多个非易失性存储设备。存储服务器110用作对存储器111的访问进行控制的存储控制设备。假设在本实施方式中,存储服务器110使用包括在存储器111中的存储设备生成逻辑卷,并对逻辑卷的访问进行控制。
存储设备120包括控制模块121和存储器122。存储器122包括一个或多个非易失性存储设备。控制模块121是对存储器122的访问进行控制的存储控制设备。假设在本实施方式中,控制模块121使用包括在存储器122中的存储设备生成逻辑卷,并对逻辑卷的访问进行控制。
顺便提及,硬盘驱动器(HDD)和固态驱动器(SSD)可以被用作包括在存储器111和122中的非易失性存储设备。业务服务器200、200a和200b是执行给定业务处理的服务器计算机。另外,在业务进程的处理中,对通过使用存储器111生成的逻辑卷和通过使用存储器122生成的逻辑卷中的至少一个进行访问。业务服务器200、200a和200b可以经由存储服务器110对通过使用存储器111生成的逻辑卷进行访问。另外,业务服务器200、200a和200b可以经由控制模块121对通过使用存储器122生成的逻辑卷进行访问。
此处,存储设备120是用于存储器访问的专用设备。例如,经由存储区域网(SAN)进行存储设备120的控制模块121与业务服务器200、200a和200b之间的耦合。通过专门用于存储访问的通信系统执行存储设备120的控制模块121与业务服务器200、200a和200b之间的通信。
另一方面,存储服务器110通过在通用服务器计算机上安装应用程序来提供存储控制功能。例如,经由局域网(LAN)进行存储服务器110的控制模块121与业务服务器200、200a和200b之间的耦合。由通用通信系统使用Web应用程序编程接口(API)来执行存储服务器110与业务服务器200、200a和200b之间的通信。假设在本实施方式中,执行使用表述性状态传递(REST)API的通信作为这样的通信系统的示例。例如,将存储服务器110用作RESTAPI的服务器,并且将业务服务器200、200a和200b用作REST API的客户端。
图3示出了业务服务器的硬件配置示例的图。图3示出了业务服务器200、200a和200b中的业务服务器200。例如,业务服务器200实现为如图3所示的计算机。图3中示出的业务服务器200包括处理器201、随机存取存储器(RAM)202、HDD 203、图像处理设备204、输入接口(I/F)205、读取设备206以及通信接口(I/F)207。
处理器201总体控制整个业务服务器200。例如,处理器201是中央处理单元(CPU)、微处理单元(MPU)、数字信号处理器(DSP)、专用集成电路(ASIC)或者可编程逻辑设备(PLD)。另外,处理器201可以是CPU、MPU、DSP、ASIC以及PLD中的两个或更多个元件的组合。
RAM 202被用作业务服务器200的主存储设备。RAM 202临时存储操作系统(OS)程序和处理器201要执行的应用程序的至少一部分。RAM 202还存储处理器201处理所需的各种类型的数据。
HDD 203被用作业务服务器200的辅助存储设备。HDD 203存储OS程序、应用程序和各种类型的数据。顺便提及,其他类型的非易失性存储设备(例如,SSD等)也可以被用作辅助存储设备。
显示设备204a被耦接至图像处理设备204。图像处理设备204根据来自处理器201的指令在显示设备204a上显示图像。显示设备204a包括液晶显示器、有机电致发光(EL)显示器等。
输入设备205a被耦接至输入接口205。输入接口205将从输入设备205a输出的信号发送至处理器201。输入设备205a包括键盘、点击设备等。点击设备包括鼠标、触控面板、平板电脑、触摸板、追踪球等。
便携式记录介质206a被插入到读取设备206中并且被从读取设备206移除。读取设备206读取便携式记录介质206a上所记录的数据,并将数据发送至处理器201。便携式记录介质206a包括光盘、磁光盘、半导体存储器等。
通信接口207经由网络207a向另一设备发送数据并从另一设备接收数据。
业务服务器200的处理功能可以通过如上所描述的硬件配置实现。顺便提及,业务服务器200a和200b也可以实现为如图3的硬件配置的计算机。存储服务器110和控制模块121也可以实现为如图3的硬件配置的计算机。
接下来,将描述业务服务器200、200a和200b的处理。以下描述将对这些业务服务器中的业务服务器200进行描述。然而,业务服务器200a和200b也具有与业务服务器200的处理功能类似的处理功能,并且能够执行类似的处理。
首先,图4是示出了提供给业务服务器的基本处理功能的配置的示例的示意图。业务服务器200包括业务处理部210和备份管理部220和230。例如,业务处理部210和备份管理部220和230的处理是由业务服务器200所拥有的处理器210通过执行给定的应用程序而实现的。另外,管理员终端310和管理服务器320被耦合至业务服务器200。
业务处理部210执行给定的业务处理。在执行业务处理时,业务处理部210可以经由存储服务器110访问通过使用存储器111生成的逻辑卷。另外,在执行业务处理时,业务处理部210可以经由存储设备120的控制模块121访问通过使用存储器122生成的逻辑卷。
例如,业务处理部210是通过在业务服务器200上运行的虚拟机来实现的。根据由使用存储器111和122中的至少一个的逻辑卷(该逻辑卷将被描述为“低级卷”)实现的存储池对用于虚拟机的资源的逻辑卷(该逻辑卷将被描述为“高级卷”)进行分配并使用。这样的虚拟机的资源包括虚拟存储器、虚拟盘等。
备份管理部220和230的处理通过相应的各个应用程序实现。备份管理部220和230使存储服务器110和控制模块121针对逻辑卷执行各种类型的备份处理。这样的备份处理包括:将逻辑卷的所有数据或与之前的备份时间不同的数据复制到备份卷的处理、通过写时复制方法基于逐代地将逻辑卷的数据复制到备份卷的处理、将逻辑卷的数据实时复制到备份卷的复制处理等。
备份管理部220单独操作,并且根据来自管理员终端310的管理员的操作使存储服务器110和控制模块121执行备份处理。另外,备份管理部220可以针对以上描述的逻辑卷的低级卷来执行备份处理。例如,备份管理部220可以在与业务处理部210的处理不相关的级别作为上限的情况下管理逻辑卷备份处理。另外,备份管理部220还可以将分配给业务服务器220、220a和220b中的任何一个的低级卷指定为备份目标。
另一方面,备份管理部230使存储服务器110和控制模块121在管理服务器320拥有的备份管理部321的控制下执行备份处理。备份管理部321的处理是由用于备份管理的管理程序实现的。备份管理部230的处理是由与管理程序对应的代理程序实现的。另外,与备份管理部230的功能等同的功能也通过与管理程序对应的代理程序在业务服务器220a和220b中实现。管理服务器320的备份管理部321以综合性的方式管理与业务服务器220、220a和220b相关的备份处理。
例如,管理服务器320针对业务服务器220、220a和220b中的每一个存储操作管理信息。操作管理信息包括设置信息,设置信息指示分别被分配给业务服务器220、220a和220b的高级卷和低级卷。备份管理部321将高级卷和低级卷指定为用于业务服务器220、220a和220b的备份处理的目标,并给出执行备份处理的指令。
响应于来自备份管理部321的指令,业务服务器200的备份管理部230指示存储服务器110或者控制模块121针对特定的高级卷和特定的低级卷执行备份处理。从而,备份管理部230作为与管理服务器320的备份管理部321对应的代理传达执行备份处理的指令。
另外,与备份管理部220不同,备份管理部230可以使得备份处理在低级卷上执行,除此之外,还可以使得备份处理在高级卷上执行。例如,与备份管理部220相比,备份管理部230可以在直达与业务处理部210的处理相关联的较高级别上管理逻辑卷备份处理。然而,备份管理部230可以仅将被分配给业务服务器200的逻辑卷指定为备份目标。
在业务服务器200中,可以仅操作这样的备份管理部220和230中的一个,或者同时操作备份管理部220和230的两者。例如,在业务服务器200中,可以仅执行分别实现备份管理部220和230的处理的应用程序中的一个,或者同时执行两个应用程序。
如之前所描述的,存储设备120是用于存储访问的专用设备。例如,存储设备120经由SAN被耦合至业务服务器200,并且通过使用专门用于存储访问的通信系统执行与业务服务器200的通信。另一方面,存储服务器110是通用的服务器计算机。例如,存储服务器110经由LAN被耦合至业务服务器200,并且通过提供REST API执行与业务服务器200的通信。
假设在本实施方式中,除了与存储设备120进行通信的功能之外,还将与存储服务器110进行通信的功能新添加到业务服务器200中。因此,用于与用作REST API的服务器的存储服务器110进行通信的客户端功能被新添加到业务服务器200中。业务处理部210以及备份管理部220和230中的每一个通过使用REST API与存储服务器110进行通信。
在备份管理部220和230与存储服务器110之间发送和接收用于给出执行备份处理的指令的命令。另一方面,除了用于I/O执行指令的命令之外,还在业务处理部210与存储服务器110之间频繁地发送和接收实际数据。因此,与备份管理部220和230相比,将更多的用于与存储服务器110进行通信的资源(例如,处理器201和存储器的使用量、通信端口的数量和认证信息的条数等)分配给业务处理部210。
根据这样的约束,在备份管理部220与备份管理部230之间共享用于与存储服务器110进行通信的处理,如以下图5所示。
图5是示出了涉及与存储服务器进行通信的处理功能的配置的示例的图,该处理功能被提供给业务服务器。如图5所示,业务服务器200还包括存储部240和REST守护进程部250。顺便提及,REST守护进程部250的处理是图1中第一处理1的示例。在这种情况下,备份管理部220和230中的每一个的处理对应于图1中第二处理2的示例。
例如,存储部240是由提供给业务服务器200的存储设备(例如,RAM 202等)的存储区域实现的。存储部240存储备份管理部220和230经由REST守护进程部250与存储服务器110进行通信所需的信息。例如,存储部240存储处理辨识(PID)文件241。PID文件241描述了指示由REST守护进程部250执行的处理的处理ID、通信中使用的端口号等。PID文件241在启动REST守护进程部250时通过REST守护进程部250生成并被存储在存储部240中,并且在备份管理部220和230请求REST守护进程部250执行通讯时被参考。顺便提及,例如,存储PID文件241的位置是通过目录信息等预先确定的。
例如,REST守护进程部250的处理是由处理器201通过执行给定程序实现的。在本实施方式中,REST守护进程部250的处理是通过执行作为一种在后台执行的程序的守护进程程序来实现的。REST守护进程部250是这样的处理模块:其响应于来自备份管理部220和230的请求,通过代理使用REST API执行通信。REST守护进程部250响应于来自备份管理部220和230的请求向存储服务器110发送REST API请求。
REST守护进程部250在备份管理部220与备份管理部230之间进行共享。另外,REST守护进程部250使用一个通信端口与存储服务器110进行通信。从而,可以将在备份管理部220和230与存储服务器110之间的通信中所使用的通信端口的数量和认证信息的条数限制为仅一个,并且可以减小备份管理部220和230的通信处理负荷。因此,可以给业务处理部210与存储服务器110之间的通信分配更多的通信端口和更多条的认证信息。那么,可以减小备份管理部220和230与存储服务器110之间的通信使得业务处理部210与存储服务器110之间的通信性能降低的可能性。
REST守护进程部250由备份管理部220和230中的请求要执行的通信的一个(此处将该备份管理部描述为“请求者”)启动。在启动处理的处理中,REST守护进程部250生成PID文件241并将PID文件241存储在存储部240中。当启动处理完成时,REST守护进程部250响应于来自请求者的请求执行与请求者的进程间通信。当建立耦合时,REST守护进程部250响应于来自请求者的请求使用REST API执行与存储服务器110的通信。
在本实施方式中,REST守护进程部250包括启动控制部251和通信处理部252。在启动REST守护进程部250时,首先启动所述启动控制部251,然后启动控制部251执行启动控制处理。在启动控制处理中,启动控制部251启动通信处理部252,并且生成PID文件241并将PID文件241存储在存储部241中。PID文件241描述了指示由通信处理部252执行的处理的处理ID。在通信处理部252被启动控制部251启动时,通信处理部252使用REST API执行通信。
顺便提及,实际上,例如,通信处理部252的处理可以由守护进程程序实现,并且启动控制部251的处理可以由用于启动守护进程程序的启动控制程序实现,启动控制程序伴随着守护进程程序。
接下来,将参考图6至图9描述与经由REST守护进程部250与备份管理部220和230进行通信的过程有关的比较示例。然后,将对本实施方式中的通信过程进行描述。
首先,将参考图6和图7对与通信处理过程有关的第一比较示例进行描述。图6是示出了第一比较示例中的备份管理部的通信处理过程的流程图的示例。在下面,将备份管理部220的处理作为示例进行描述。然而,备份管理部230也可以经由REST守护进程部250通过类似的处理与存储服务器110进行通信。
备份管理部220从管理员终端310接收指示要由存储服务器110执行的处理的命令。所接收的命令主要是执行要由存储服务器110执行的备份处理的命令。当备份管理部220接收到命令时,备份管理部220执行如下处理。
备份管理部220(和备份管理部230)可以通过参考PID文件241使REST守护进程部250执行与存储服务器110的通信。因此,备份管理部220首先检查在存储部240中是否存在PID文件241(步骤S11)。
当存在PID文件241时(步骤S12:是),备份管理部220确定REST守护进程部250已经启动,并且向REST守护进程部250请求耦合(步骤S14)。例如,该耦合请求使用套接字(socket)请求进程间通信的耦合(套接字耦合)。另外,在请求耦合时,备份管理部220从PID文件241读取处理ID和端口号,并向REST守护进程部250通知处理ID和端口号。从而可以耦合至REST守护进程部250。
另一方面,当不存在PID文件241时(步骤S12:否),备份管理部220确定REST守护进程部250未启动,并且启动REST守护进程部250(步骤S13)。此时,REST守护进程部250在启动处理的处理中生成PID文件241并将PID文件241存储在存储部240中。之后,备份管理部220向REST守护进程部250请求耦合(步骤S14)。
接下来,当至REST守护进程部250的耦合(套接字耦合)建立时(步骤S15:是),备份管理部220向REST守护进程部250请求数据传输(步骤S17)。例如,请求REST守护进程部250发送指示要由存储服务器110执行的处理的命令。另外,也在数据传输请求时,向REST守护进程部250通知从PID文件241读取的处理ID和端口号。REST守护进程部250响应于数据传输请求生成REST API请求,并向存储服务器110发送REST API请求。从而,将请求传输的数据(命令)从备份管理部220发送至存储服务器110。当数据传输正常完成时,备份管理部220接收来自REST守护进程部250的完成通知,并将指示数据传输正常完成的响应信息发送至管理员终端310。
另外,当至REST守护进程部250的耦合失败时(步骤S15:否),备份管理部220再次启动REST守护进程部250(步骤S16)。与步骤S13的情况相同,REST守护进程部250在启动处理的处理中生成PID文件241并将PID文件241存储在存储部240中。之后,备份管理部220向REST守护进程部250请求耦合(步骤S14)。然后,当耦合建立时(步骤S15:是),备份管理部220向REST守护进程部250请求数据传输(步骤S17)。
如上所述,在第一比较示例中,备份管理部220可以经由REST守护进程部250与存储服务器110进行通信。REST守护进程部250的处理被作为后台处理执行。因此,向备份管理部220发送命令的用户侧(在这种情况下,是管理员终端310的管理员)没有意识到REST守护进程部250介入了与存储服务器110的通信。在备份管理部230经由REST守护进程部250与存储服务器110进行通信时,对于处理也是如此。
另外,备份管理部220可以基于PID文件241是存在还是缺失以及耦合到REST守护进程部250的必要性来确定是否已经启动REST守护进程部250。然后,当备份管理部220确定REST守护进程部250未启动时,备份管理部220可以通过启动REST守护进程部250来继续进行涉及与存储服务器110进行通信的处理。在备份管理部230经由REST守护进程部250与存储服务器110进行通信时,对于处理也是如此。
图7是示出了第一比较示例中的备份管理部和REST守护进程部的通信处理过程的顺序图的示例。假设在图7的示例中,执行备份处理的命令被从管理员终端310发送至备份管理部220。如前面所描述的,备份管理部220首先确定在存储部240中是否存在PID文件241。此处假设不存在PID文件241。在这种情况下,如图7所示,备份管理部220确定REST守护进程部250未启动,并且启动REST守护进程部250(步骤S21)。REST守护进程部250开始启动处理(步骤S22),并且在启动处理的处理中生成PID文件241并将PID文件241存储在存储部240中(步骤S23)。
实际上,启动控制部251首先被启动,然后启动控制部251的处理启动通信处理部252并生成PID文件241。那么,当所生成的PID文件241被存储在存储部240中并且通信处理部252的启动完成时,REST守护进程部250的启动处理完成(步骤S24)。因此,在以下的描述中,将从启动控制部251的启动处理的开始到通信处理部252的启动处理的完成的处理描述为“REST守护进程部250的启动处理”。
接下来,备份管理部220使用从PID文件241读取的处理ID和端口号向REST守护进程部250请求耦合(步骤S25)。当REST守护进程部250响应于耦合请求并且耦合建立时(步骤S26),备份管理部220向REST守护进程部250请求数据传输(步骤S27)。响应于数据传输请求,REST守护进程部250向存储服务器110发送REST API请求(步骤S28)。从而,将请求传输的数据发送至存储服务器110。顺便提及,尽管未示出,但是当数据传输正常完成时,备份管理部220接收来自REST守护进程部250的完成通知,并且向管理员终端310发送指示数据传输正常完成的响应信息。
如前面所描述的,可以在业务服务器200中同时操作备份管理部220和230两者。假设在图7中,在REST守护进程部250的启动处理期间,指示要由存储服务器110执行的处理的命令被从管理服务器320的备份管理部321发送至备份管理部230。
在这种情况下,备份管理部230首先检查在存储部240中是否存在PID文件241。假设已经通过步骤S23的处理生成了PID文件241,则备份管理部230因为存在PID文件241(步骤S31)而确定REST守护进程部250已经启动。然后,备份管理部230基于PID文件241向REST守护进程部250请求耦合(步骤S32)。
然而,当REST守护进程部250的启动处理尚未完成时,备份管理部230与REST守护进程部250的耦合失败。在这种情况下,备份管理部230确定REST守护进程部250未被操作,并且试图启动REST守护进程部250(步骤S33)。此时,REST守护进程部250正处于启动处理的中途,或者启动处理已经完成。因此,备份管理部230在启动REST守护进程部250时失败。在这种情况下,备份管理部230确定因为难以启动REST守护进程部250而难以进行数据传输,并且将指示出现错误的响应信息发送至管理服务器320的备份管理部321。
因此,当备份管理部220和230中的一个试图经由REST守护进程部250进行通信时,在根据来自备份管理部220和230中的另一个的请求执行REST守护进程部250的启动处理的情况下进行通信是困难的。此处,如前面所描述的,向备份管理部220和230发送命令的用户侧没有意识到REST守护进程部250介入了与存储服务器110的通信。因此,与备份管理部220和230自身中的错误相比,不期望引发由于如图7的示例中的REST守护进程部250的操作而导致错误。因此,期望存在能尽可能减小后者的错误的机制。
图7中出现的错误的原因是缺失如下机制:备份管理部220和230检查REST守护进程部250的启动处理是否完成。因此,在以下图8和图9中示出的第二比较示例中增加了如下机制:在REST守护进程部250执行启动处理的同时,在PID文件241中描述指示REST守护进程部250正在执行启动处理的信息。
图8是示出了第二比较示例中备份管理部和REST守护进程部的通信处理过程的顺序图的第一示例。图8示出了如图7的首先从管理员终端310向备份管理部220发送命令的情况。在图8中示出的步骤S41至S48中,步骤S41、S42以及S45至S48的处理分别与图7中示出的步骤S21、S22和S25至S28的处理类似。另一方面,步骤S43和S44的处理的一部分与步骤S23和S24的处理不同。
例如,备份管理部220确定在存储部240中不存在PID文件241并且REST守护进程部250未启动,并且备份管理部220启动REST守护进程部250(步骤S41)。REST守护进程部250开始启动处理(步骤S42),并且在启动处理的处理中生成PID文件241并将PID文件241存储在存储部240中(步骤S43)。然而,在步骤S43中,REST守护进程部250将指示“正在执行启动处理”的信息记录在所生成的PID文件241中。
REST守护进程部250的启动处理随后完成(步骤S44)。在步骤S44中,REST守护进程部250在更新PID文件241之后完成启动处理以便指示启动处理的完成。例如,将PID文件241中指示正在执行启动处理的信息擦除。
之后,如图7所示,备份管理部220使用从PID文件241读取的处理ID和端口号向REST守护进程部250请求耦合(步骤S45)。当REST守护进程部250响应于耦合请求并且耦合建立时(步骤S46),备份管理部220向REST守护进程部250请求数据传输(步骤S47)。响应于数据传输请求,REST守护进程部250向存储服务器110发送REST API请求(步骤S48)。从而,将请求传输的数据发送至存储服务器110。
同时,假设在REST守护进程部250的启动处理期间,指示要由存储服务器110执行的处理的命令被从管理服务器320的备份管理部321发送至备份管理部230。在这种情况下,备份管理部230首先检查在存储部240中是否存在PID文件241。假设已经通过步骤S43的处理生成PID文件241,则备份管理部230确定REST守护进程部250已经启动(步骤S51)。然后,备份管理部230基于PID文件241向REST守护进程部250请求耦合。
然而,当REST守护进程部250的启动处理尚未完成时,备份管理部230与REST守护进程部250耦合失败。然后,备份管理部230从PID文件241读取指示正在执行启动处理的信息,并基于该信息确定REST守护进程部250正在执行启动处理(步骤S53)。在这种情况下,备份管理部230处于等待REST守护进程部250启动的状态中。例如,备份管理部230在每个特定时间读取PID文件241,并确定REST守护进程部250的启动处理是否已经完成。
然后,在步骤S44中当备份管理部230检测到PID文件241被更新时,备份管理部230确定REST守护进程部250的启动处理已经完成(步骤S54)。备份管理部230使用从PID文件241读取的处理ID和端口号向REST守护进程部250请求耦合(步骤S55)。当REST守护进程部250响应于耦合请求并且耦合建立时(步骤S56),备份管理部230向REST守护进程部250请求数据传输(步骤S57)。响应于数据传输请求,REST守护进程部250向存储服务器110发送RESTAPI请求(步骤S58)。从而,将请求传输的数据发送至存储服务器110。
因此,在第二比较示例中,在备份管理部230试图经由REST守护进程部250进行通信时,即使在根据来自备份管理部220的请求执行REST守护进程部250的启动处理的情况下,备份管理部230也可以继续进行处理并完成通信。然而,如以下图9所示,当REST守护进程部250的启动处理异常结束而没有正确完成时,PID文件241保留其中记录有指示正在执行启动处理的信息。然后,由于保留的PID文件241,难以正常地执行备份管理部220和230中的一个的通信。
图9是示出了第二比较示例中备份管理部和REST守护进程部的通信处理过程的顺序图的第二示例。图9示出了如图8的首先从管理员终端310向备份管理部220发送命令的情况。
如图8所示,备份管理部220确定在存储部240中不存在PID文件241并且REST守护进程部250未启动,并且备份管理部220启动REST守护进程部250(步骤S61)。REST守护进程部250开始启动处理(步骤S62),并且在启动处理的处理中生成PID文件241并将PID文件241存储在存储部240中(步骤S63)。在步骤S63中,指示正在执行启动处理的信息被记录在所生成的PID文件241中。
假设在图9的示例中,REST守护进程部250的启动处理之后异常结束(步骤S64)。在这种情况下,保持记录有指示正在执行启动处理的信息的PID文件241保留在存储部240中。顺便提及,备份管理部220试图耦合至REST守护进程部250,但是至REST守护进程部250的耦合失败(步骤S65)。
同时,假设在REST守护进程部250异常结束之后,指示要由存储服务器110执行的处理的命令被从管理服务器320的备份管理部321发送至备份管理部230。备份管理部230确定在存储部240中是否存在PID文件241。由步骤S63的处理所生成的PID文件241保留。因此,备份管理部230确定REST守护进程部250已经启动(步骤S71)。然后,备份管理部230基于PID文件241向REST守护进程部250请求耦合。然而,由于REST守护进程部250异常结束,因此,备份管理部230耦合失败(步骤S72)。
然后,备份管理部230从PID文件241读取指示正在执行启动处理的信息,并基于该信息错误地确定REST守护进程部250正在执行启动处理(步骤S73)。然后,备份管理部230处于等待REST守护进程部250启动的状态(步骤S74)。备份管理部230被设置处于等待状态直至PID文件241被更新,以便指示没有执行启动处理。然而,由于REST守护进程部250异常结束,因此,该等待状态继续并且难以与存储服务器110进行通信。
因此,在第二比较示例中,在REST守护进程部250的启动处理异常结束时,存在如下可能性:备份管理部220和230基于保留的PID文件241错误地确定REST守护进程部250正在执行启动处理。在这样的情况下,难以正常地执行通信。
以下将对根据第二实施方式的业务服务器200的处理进行描述。
在第二实施方式中,PID文件241仅在REST守护进程部250的启动处理期间被锁定。锁定表示不允许更新PID文件241的状态。另外,PID文件241仅在REST守护进程部250进行操作的同时被锁定,并且PID文件241在REST守护进程部250的操作停止的状态下被解锁。
这样的锁定机制是通过使用锁定功能和锁定解除功能来执行的。锁定功能是锁定文件并且能够确定文件是否被锁定的功能。在文件未被锁定的状态下执行锁定功能时,文件被锁定。另一方面,在文件被锁定的状态下执行锁定功能时,做出指示文件被锁定的响应(例如,输出给定值)。另外,在执行锁定解除功能并且锁定文件的处理停止时,解除文件的锁定。“锁定文件的处理停止”的情况的示例包括处理异常结束的情况。
例如,这样的锁定机制可以通过如下的功能实现。在通过java(注册商标)程序实现REST守护进程部250的情况下,例如,“tryLock”可以被用作与锁定功能对应的方法,并且“release”可以被用作与锁定解除功能对应的方法。在这种情况下,实际上,与要锁定的文件不同的锁定文件与该文件关联地被创建,并且该锁定文件被锁定并被锁定解除。顺便提及,响应于“tryLock”方法和“release”方法的调用的锁定处理和锁定解除处理以及伴随锁定文件的处理的停止的锁定解除处理是由java执行模块(例如,java虚拟机)执行的。
在业务服务器200中,通过在REST守护进程部250的启动处理的处理中执行锁定功能将PID文件241锁定,并且在启动处理完成时,REST守护进程部250通过执行锁定解除功能来解除锁定。从而,当在REST守护进程部250的启动处理中出现异常并且REST守护进程部250异常结束时,锁定也会被解除。因此,PID文件241仅在REST守护进程部250的启动处理正常执行的同时被锁定。
因此,当存在PID文件241但是难以耦合至REST守护进程部250时,备份管理部220和230可以根据锁定是存在还是不存在来确定REST守护进程部250是处于启动处理的中间还是处于未操作的状态。然后,备份管理部220和230可以根据确定的结果选择接下来要执行的处理,从而使得处理继续正确地进行。
图10是示出了第二实施方式中备份管理部和REST守护进程部的通信处理过程的顺序图的第一示例。假设在图10的示例中,执行备份处理的命令被从管理员终端310发送至备份管理部220。备份管理部220首先确定在存储部240中是否存在PID文件241。此处假设不存在PID文件241,则备份管理部220确定REST守护进程部250未被启动,并且启动REST守护进程部250(步骤S81)。
REST守护进程部250开始启动处理(S82),在启动处理的处理中生成PID文件241并将PID文件241存储在存储部240中,并且锁定PID文件241(步骤S83)。在实际处理中,备份管理部220启动REST守护进程部250的启动控制部251。启动控制部251的处理生成PID文件241并将其锁定,并且启动通信处理部252。然后,通信处理部252的启动处理的完成使得REST守护进程部250的启动处理完成。另外,启动控制部251在REST守护进程部250的启动处理完成之前立即解除PID文件241的锁定(步骤S84)。
顺便提及,例如,PID文件241的锁定是由启动控制部251通过调用“tryLock”方法来执行的。例如,在这种情况下,PID文件241的锁定的解除是由启动控制部251通过调用“release”方法来执行的。
接下来,备份管理部220使用从PID文件241读取的处理ID和端口号向REST守护进程部250请求耦合(步骤S85)。此处假设REST守护进程部250的通信处理部252响应于耦合请求并且因此建立耦合(步骤S86)。顺便提及,在步骤S85中,例如,调用请求套接字耦合的功能,从而当在步骤S86中套接字耦合建立时能够进行进程间通信。在通过java程序实现REST守护进程部250的处理的情况下,“connect”方法被用作与该功能对应的方法。
当建立耦合时,备份管理部220向REST守护进程部250请求数据传输(步骤S87)。响应于数据传输请求,REST守护进程部250的通信处理部252向存储服务器110发送REST API请求(步骤S88)。从而,将请求传输的数据(在这种情况下,是请求要执行的备份处理的命令)发送至存储服务器110。顺便提及,尽管未示出,但是,当数据传输正常完成时,备份管理部220接收来自通信处理部252的完成通知,并将指示数据传输正常完成的响应信息发送至管理员终端310。
同时,在图10中,假设在REST守护进程部250的启动处理期间,指示要由存储服务器110执行的处理的命令被从管理服务器320的备份管理部321发送至备份管理部230。在这种情况下,备份管理部230首先检查在存储部240中是否存在PID文件241。此处假设已经通过步骤S83的处理生成PID文件241,则备份管理部230由于存在PID文件241而确定REST守护进程部250已经启动(步骤S91)。然后,备份管理部230基于PID文件241向REST守护进程部250请求耦合(步骤S92)。
然而,在图10的示例中,REST守护进程部250的启动处理未完成,并且因此备份管理部230与REST守护进程部250的耦合失败。在这种情况下,备份管理部230检查PID文件241是否被锁定(步骤S93)。在图10的示例中,备份管理部230确定PID文件241被锁定,并且备份管理部230被设置处于等待锁定解除的状态,例如,被设置处于等待REST守护进程部250的启动处理完成的状态。
在等待锁定解除的状态中,备份管理部230在每个特定时间检查PID文件241是否被锁定。然后,当检测到锁定通过步骤S84的处理被解除时(步骤S94),备份管理部230基于PID文件241再次向REST守护进程部250请求耦合(步骤S95)。由于REST守护进程部250的启动处理已经完成,因此REST守护进程部250的通信处理部252响应于耦合请求,并且从而建立耦合(步骤S96)。
备份管理部230向REST守护进程部250请求数据传输(步骤S97)。响应于数据传输请求,REST守护进程部250的通信处理部252向存储服务器110发送REST API请求(步骤S98)。从而,将请求传输的数据(在这种情况下,是请求要执行的备份处理的命令)发送至存储服务器110。顺便提及,尽管未示出,但是当数据传输正常完成时,备份管理部230接收来自通信处理部252的完成通知,并将指示数据传输正常完成的响应信息发送至管理服务器320的备份管理部321。
因此,当备份管理部230使用PID文件241与REST守护进程部250的耦合失败时,备份管理部230检测到PID文件241被锁定,并且可以因此正确地识别到REST守护进程部250的启动处理正在执行。由于这种识别,备份管理部230可以根据REST守护进程部250的当前状态执行正确的处理,所述正确的处理即等待锁定被解除的处理,例如,等待REST守护进程部250的启动处理完成的处理。
图11是示出了第二实施方式中备份管理部和REST守护进程部的通信处理过程的顺序图的第二示例。假设同样在图11的示例中,如图10,执行备份处理的命令被从管理员终端310发送至备份管理部220。图11中示出的步骤S101至S103的处理分别与图10中的步骤S81至S83的处理类似。例如,首先,备份管理部220确定在存储部240中不存在PID文件241,并且从而确定REST守护进程部250未启动,并且备份管理部220启动REST守护进程部250(步骤S101)。REST守护进程部250开始启动处理(步骤S102),在启动处理的处理中生成PID文件241并将PID文件241存储在存储部240中,并且锁定PID文件241(步骤S103)。
然而,假设在图11中,不同于图10,REST守护进程部250的启动处理异常结束(步骤S104)。在这种情况下,PID文件241的锁定被解除。例如,在这种状态下,未锁定的PID文件241保留其在存储部240中的原样。顺便提及,备份管理部220试图耦合至REST守护进程部250,但是至REST守护进程部250的耦合失败(步骤S105)。
同时,假设在图11的示例中,在REST守护进程部250异常结束之后,指示要由存储服务器110执行的处理被从管理服务器320的备份管理部321发送至备份管理部230。在这种情况下,备份管理部230首先检查在存储部240中是否存在PID文件241。在这种情况下,由于存在PID文件241,因此备份管理部230确定REST守护进程部250已经启动(步骤S111)。然后,备份管理部230基于PID文件241向REST守护进程部250请求耦合(步骤S112)。
然而,由于REST守护进程部250的启动处理异常结束,因此备份管理部230至REST守护进程部250的耦合失败。在这种情况下,备份管理部230检查PID文件241是否被锁定(步骤S113)。在图11的示例中,由于PID文件241未被锁定,因此备份管理部230确定在REST守护进程部250中出现了异常,并且启动REST守护进程部250(步骤S114)。
从而,REST守护进程部250再次开始启动处理(步骤S115),在启动处理的处理中生成PID文件241并将PID文件241存储在存储部240中,并且锁定PID文件241(步骤S116)。顺便提及,假设在步骤S115中,作为示例,REST守护进程部250的启动控制部251生成新的PID文件241,并利用所生成的PID文件241更新存储在存储部240中的PID文件241。即使是在任何条件下启动REST守护进程部250的启动处理时,都可以执行生成PID文件241的相同的处理。
之后,尽管未示出,但是当REST守护进程部250的启动处理正常完成时,PID文件241的锁定被解除。当备份管理部230检测到锁定被解除时,备份管理部230向REST守护进程部250请求耦合。备份管理部230可以在耦合建立时向存储服务器110发送数据。
因此,当备份管理部230使用PID文件241与REST守护进程部250的耦合失败时,备份管理部230检测到PID文件241未被锁定,并且可以从而正确地识别到在REST守护进程部250中出现了异常。由于这种识别,备份管理部230可以根据REST守护进程部250的当前状态执行正确的处理,所述正确的处理即启动REST守护进程部250的处理。
接下来,将参考流程图对备份管理部220和230的处理进行描述。
图12和图13是示出了第二实施方式中的备份管理部的处理过程的流程图的示例。顺便提及,图12和图13中示出的处理是由备份管理部220和230两者执行的。
[步骤S121]备份管理部检查在存储部240中是否存在PID文件241。
[步骤S122]当存储部240中存在PID文件241时,备份管理部执行步骤S124的处理。当不存在PID文件241时,备份管理部执行步骤S123的处理。
[步骤S123]备份管理部启动REST守护进程部250。例如,备份管理部启动REST守护进程部250的启动控制部251。从而执行REST守护进程部250的启动控制处理。启动控制处理生成PID文件241并将PID文件241存储在存储部240中,并且锁定PID文件241。另外,启动控制处理启动通信处理部252。当通信处理部252正常启动并且因此完成REST守护进程部250的启动处理时,PID文件241的锁定被解除。另外,在通信处理部252没有正常启动并且REST守护进程部250的启动处理异常结束时,PID文件241的锁定也被解除。
[步骤S124]备份管理部使用从PID文件241读取的处理ID和端口号向REST守护进程部250的通信处理部252请求耦合。
[步骤S125]当备份管理部成功建立与REST守护进程部250的耦合时,备份管理部执行步骤S128的处理。当备份管理部建立耦合失败时,备份管理部执行步骤S126的处理。
[步骤S126]备份管理部检查PID文件241的锁定状态。
[步骤S127]当PID文件241被锁定时,备份管理部执行图13中的步骤S131的处理。另一方面,当PID文件241未被锁定时,备份管理部将处理返回到先前步骤S123,并且启动REST守护进程部250。
[步骤S128]备份管理部使用从PID文件241读取的处理ID和端口号向REST守护进程部250的通信处理部252请求数据传输。响应于数据传输请求,通信处理部252向存储服务器110发送REST API请求。
以下将参考图13继续进行描述。
[步骤S131]备份管理部被设置处于等待状态达特定时间。
[步骤S132]备份管理部检查PID文件241的锁定状态。
[步骤S133]当PID文件241被锁定时,备份管理部将处理返回到先前步骤S131,并且被再次设置处于等待状态。另一方面,当PID文件241未被锁定时,例如,当备份管理部检测到锁定被解除时,备份管理部将处理返回到先前图12中的步骤S124,并且向REST守护进程部250请求耦合。
顺便提及,在通过以上描述的“tryLock”方法锁定PID文件241的情况下,由备份管理部通过调用“tryLock”方法执行步骤S126和S132中锁定状态的检查。当PID文件241被锁定时(步骤S127和S133中为“是”),返回指示PID文件241被锁定的给定值。另一方面,当PID文件241未被锁定时(步骤S127和S133中为“否”),通过调用“tryLock”方法锁定PID文件241。因此,备份管理部通过调用“release”方法来解除锁定,并且之后执行以下处理(分别执行步骤S123和S124)。
根据图12和图13的上述处理,备份管理部可以根据PID文件241是存在或缺失、是否能够耦合至REST守护进程部250以及PID文件241的锁定状态来执行与REST守护进程部250的状态对应的正确的后续处理。
例如,当备份管理部确定不存在PID文件241时(步骤S122为“否”),备份管理部可以正确地确定REST守护进程部250未启动(未执行启动处理)。在这种情况下,备份管理部可以通过启动REST守护进程部250来继续进行用于与存储服务器110进行通信的处理(步骤S123)。
另外,当存在PID文件241(步骤S122),但是难以耦合至REST守护进程部250(步骤S125为“否”)时,备份管理部检查PID文件241的锁定状态(步骤S126)。然后,当PID文件241未被锁定时(步骤S127为“否”),备份管理部可以正确地确定REST守护进程部250的启动处理异常结束。在这种情况下,备份管理部可以通过启动REST守护进程部250来继续进行用于与存储服务器110进行通信的处理(步骤S123)。
另外,当难以耦合至REST守护进程部250(步骤S125为“否”)并且PID文件241被锁定(步骤S127为“是”)时,备份管理部可以正确地确定REST守护进程部250的启动处理正在正常执行。在这种情况下,备份管理部被设置处于等待状态直至启动处理完成(步骤S131至S133)。然后,当备份管理部基于锁定解除(步骤S133为“否”)检测到启动处理完成时,备份管理部可以通过使用PID文件241耦合至REST守护进程部250(步骤S124)来继续用于与存储服务器110进行通信的处理。
顺便提及,当在备份管理部处于等待状态的同时REST守护进程部250的启动处理异常结束时,备份管理部检测到锁定解除(步骤S133为“否”),并且向REST守护进程部250请求耦合(步骤S124)。然而,备份管理部在建立耦合时失败。在这种情况下,备份管理部可以通过确定PID文件未被锁定(步骤S127为“否”)识别到REST守护进程部250的启动处理异常结束。备份管理部可以通过启动REST守护进程部250来继续用于与存储服务器110进行通信的处理(步骤S123)。
从而,备份管理部可以正确地识别REST守护进程部250的状态,并且基于识别结果来执行用于执行至存储服务器110的数据传输的正确的后续处理。因此,在备份管理部响应于来自用户侧的请求的处理期间,可以减小由于REST守护进程部250的操作所导致的错误发生的概率,而不是减小备份管理部自身的错误发生的概率。因此,在用户侧没有意识到REST守护进程部250介入了与存储服务器110的通信的情况下,可以稳定备份管理部的处理。然后,可以提高实现这样的备份管理部的应用程序的质量和便利性。
顺便提及,在上述第二实施方式中,示出了两个备份管理部220和230共享一个REST守护进程部250的情况。然而,例如,即使是在三个或者更多个备份管理部共享一个REST守护进程部250的情况下,针对备份管理部中的每一个足以执行与以上描述的备份管理部220和230的处理类似的处理。
另外,在前述的实施方式中的每一个中示出的设备(例如,信息处理设备10以及业务服务器200、200a和200b)的处理功能都可以通过计算机实现。在那种情况下,通过提供描述每个设备要拥有的功能的处理内容的程序并在计算机上执行该程序在计算机上实现上述处理功能。描述处理内容的程序可以被记录在计算机可读的记录介质上。计算机可读的记录介质包括磁存储设备、光盘、磁光记录介质、半导体存储器等。磁存储设备包括硬盘设备(HDD)、磁带等。光盘包括压缩碟片(CD)、数字多功能盘(DVD)、蓝光盘(BD)(注册商标)等。磁光记录介质包括磁光盘(MO)等。
在发布程序的情况下,例如,出售记录有程序的便携式记录介质(例如,DVD、CD等)。另外,可以将程序预先存储在服务器计算机的存储设备中,并且经由网络将程序从服务器计算机传输至另一计算机。
例如,执行程序的计算机将记录在便携式记录介质上的程序或者从服务器计算机传输的程序存储在计算机自身的存储设备中。然后,计算机从其自身的存储设备读取程序,并且根据程序执行处理。顺便提及,计算机还可以从便携式记录介质直接读取程序,并且根据程序执行处理。另外,每次经由网络将程序从所耦合的服务器计算机传输至计算机时,计算机可以根据所接收的程序顺序地执行处理。
Claims (9)
1.一种信息处理设备,包括:
存储器;以及
处理器单元,所述处理单元用于:
执行第一处理,以:
在执行所述第一处理的启动处理的同时,生成通信中使用的控制数据并且将所生成的控制数据以锁定状态存储在所述存储器中,
响应于所述启动处理的完成或者所述启动处理的暂停,解除存储在所述存储器中的所述控制数据的锁定状态,以及
在所述启动处理完成之后,响应于通信请求与通信设备进行通信;以及
执行第二处理,以:
基于所述控制数据确定是否建立了与所述第一处理的连接,
当确定未建立与所述第一处理的连接时,根据所述存储器中的所述控制数据是否被锁定而从处理组中选择用于与所述第一处理进行连接的处理,以及
基于所选择的处理,在与所述第一处理进行连接的同时向所述第一处理发送所述通信请求。
2.根据权利要求1所述的信息处理设备,其中,
在所述控制数据未被锁定时,所选择的处理是重启所述第一处理,并且
在所述控制数据被锁定时,所选择的处理是等待直至所述控制数据的锁定状态被解除。
3.根据权利要求1所述的信息处理设备,其中,
所述第二处理被配置成在确定建立了与所述第一处理的连接时向所述第一处理发送通信请求。
4.根据权利要求1所述的信息处理设备,其中,
所述处理器单元被配置成执行多个第二处理,
所述第一处理被所述多个第二处理共享,并且
所述多个第二处理中的每一个被配置成:
确定在所述存储器中是否存在所述控制数据,并且
当确定不存在所述控制数据时,使得所述第一处理执行所述第一处理的启动处理。
5.一种计算机实现的信息处理方法,包括:
执行第一处理,以:
在执行所述第一处理的启动处理的同时,生成通信中使用的控制数据并且将所生成的控制数据以锁定状态存储在存储器中,
响应于所述启动处理的完成或者所述启动处理的暂停,解除存储在所述存储器中的所述控制数据的锁定状态,以及
在所述启动处理完成之后,响应于通信请求与通信设备进行通信;以及
执行第二处理,以:
基于所述控制数据确定是否建立了与所述第一处理的连接,
当确定未建立与所述第一处理的连接时,根据所述存储器中的所述控制数据是否被锁定而从处理组中选择用于与所述第一处理进行连接的处理,以及
基于所选择的处理,在与所述第一处理进行连接的同时向所述第一处理发送通信请求。
6.根据权利要求5所述的信息处理方法,其中,
在所述控制数据未被锁定时,所选择的处理是重启所述第一处理,并且
在所述控制数据被锁定时,所选择的处理是等待直至所述控制数据的锁定状态被解除。
7.根据权利要求5所述的信息处理方法,其中,
所述第二处理被配置成在确定建立了与所述第一处理的连接时向所述第一处理发送通信请求。
8.根据权利要求5所述的信息处理方法,还包括:
执行另一第二处理,
其中,
所述第一处理被所述第二处理和所述另一第二处理二者共享,并且
所述第二处理和所述另一第二处理中的每一个被配置成:
确定在所述存储器中是否存在所述控制数据,并且
当确定不存在所述控制数据时,使得所述第一处理执行所述第一处理的启动处理。
9.一种存储能够由一个或更多个计算机执行的程序的非暂态计算机可读介质,所述程序包括:
用于执行第一处理的一个或更多个指令,所述第一处理被配置成:
在执行所述第一处理的启动处理的同时,生成通信中使用的控制数据并且将所生成的控制数据以锁定状态存储在存储器中,
响应于所述启动处理的完成或者所述启动处理的暂停,解除存储在所述存储器中的所述控制数据的锁定状态,以及
在所述启动处理完成之后,响应于通信请求与通信设备进行通信;以及
用于执行第二处理的一个或更多个指令,所述第二处理被配置成:
基于所述控制数据确定是否建立了与所述第一处理的连接,
当确定未建立与所述第一处理的连接时,根据所述存储器中的所述控制数据是否被锁定而从处理组中选择用于与所述第一处理进行连接的处理,以及
基于所选择的处理,在与所述第一处理进行连接的同时向所述第一处理发送通信请求。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018218380A JP7100260B2 (ja) | 2018-11-21 | 2018-11-21 | 情報処理装置および情報処理プログラム |
JP2018-218380 | 2018-11-21 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111209096A true CN111209096A (zh) | 2020-05-29 |
CN111209096B CN111209096B (zh) | 2023-09-29 |
Family
ID=70727590
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911070678.6A Active CN111209096B (zh) | 2018-11-21 | 2019-11-05 | 信息处理设备和信息处理方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10969981B2 (zh) |
JP (1) | JP7100260B2 (zh) |
CN (1) | CN111209096B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11961541B2 (en) * | 2022-02-24 | 2024-04-16 | Quantum Corporation | System and method for writing data to tape and reading data from tape using a restful interface |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101777020A (zh) * | 2009-12-25 | 2010-07-14 | 北京讯鸟软件有限公司 | 一种用于分布式程序的容错方法和系统 |
CN103441831A (zh) * | 2013-08-22 | 2013-12-11 | 焦点科技股份有限公司 | 一种双进程间的全双工通信及互保方法和系统 |
CN103476025A (zh) * | 2012-06-08 | 2013-12-25 | 中国电信股份有限公司 | 进程管理方法及系统、移动终端 |
CN104298563A (zh) * | 2014-10-13 | 2015-01-21 | 中国外汇交易中心 | 一种用于管理进程的方法及系统 |
CN104317605A (zh) * | 2014-11-18 | 2015-01-28 | 东方网力科技股份有限公司 | 一种组件运行方法及装置 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04283838A (ja) | 1991-03-13 | 1992-10-08 | Stanley Electric Co Ltd | プロセス制御方法 |
JP2642082B2 (ja) * | 1995-04-26 | 1997-08-20 | 中国日本電気ソフトウェア株式会社 | 通信プログラムの起動方法 |
JP2735514B2 (ja) * | 1995-07-27 | 1998-04-02 | 日本電気ソフトウェア株式会社 | プロセス状態管理方式 |
JP2000099101A (ja) | 1998-09-22 | 2000-04-07 | Toshiba Microelectronics Corp | デーモンプログラム管理システム |
US20010037435A1 (en) * | 2000-05-31 | 2001-11-01 | Van Doren Stephen R. | Distributed address mapping and routing table mechanism that supports flexible configuration and partitioning in a modular switch-based, shared-memory multiprocessor computer system |
JP5939377B2 (ja) | 2011-12-27 | 2016-06-22 | 株式会社リコー | 通信装置とプログラム |
JP5723812B2 (ja) | 2012-03-16 | 2015-05-27 | 株式会社 日立産業制御ソリューションズ | ファイルサーバ、データ入出力方法、i/oフックモジュールプログラム及びi/o代行デーモンプログラム |
US10204046B1 (en) * | 2015-11-19 | 2019-02-12 | Netronome Systems, Inc. | High-speed and memory-efficient flow cache for network flow processors |
JP6930139B2 (ja) | 2017-03-03 | 2021-09-01 | 日本電気株式会社 | 並列プロセス実行方法 |
-
2018
- 2018-11-21 JP JP2018218380A patent/JP7100260B2/ja active Active
-
2019
- 2019-10-16 US US16/654,064 patent/US10969981B2/en active Active
- 2019-11-05 CN CN201911070678.6A patent/CN111209096B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101777020A (zh) * | 2009-12-25 | 2010-07-14 | 北京讯鸟软件有限公司 | 一种用于分布式程序的容错方法和系统 |
CN103476025A (zh) * | 2012-06-08 | 2013-12-25 | 中国电信股份有限公司 | 进程管理方法及系统、移动终端 |
CN103441831A (zh) * | 2013-08-22 | 2013-12-11 | 焦点科技股份有限公司 | 一种双进程间的全双工通信及互保方法和系统 |
CN104298563A (zh) * | 2014-10-13 | 2015-01-21 | 中国外汇交易中心 | 一种用于管理进程的方法及系统 |
CN104317605A (zh) * | 2014-11-18 | 2015-01-28 | 东方网力科技股份有限公司 | 一种组件运行方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
JP2020086767A (ja) | 2020-06-04 |
CN111209096B (zh) | 2023-09-29 |
US20200159430A1 (en) | 2020-05-21 |
JP7100260B2 (ja) | 2022-07-13 |
US10969981B2 (en) | 2021-04-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6141189B2 (ja) | ファイルシステムにおける透過的なフェイルオーバーの提供 | |
US7127635B2 (en) | Method for correcting a program running on a computer system | |
US7392317B2 (en) | Systems and methods for migratable services | |
US6496942B1 (en) | Coordinating persistent status information with multiple file servers | |
US8665466B2 (en) | Image forming apparatus, program updating method and computer-readable storage medium | |
US20110258626A1 (en) | Notifying software components using a shared physical storage medium | |
US20170031602A1 (en) | Coordinated Upgrade of a Cluster Storage System | |
JP2007226400A (ja) | 計算機管理方法、計算機管理プログラム、実行サーバの構成を管理する待機サーバ及び計算機システム | |
JP2009205614A (ja) | ストレージシステムの制御方法、スイッチ装置およびストレージシステム | |
CN111209096B (zh) | 信息处理设备和信息处理方法 | |
US7996524B2 (en) | Controlling external communication of embedded device using proxy server | |
US7966516B2 (en) | Automatic JTA migration | |
EP1107119A2 (en) | Extending cluster membership and quorum determinations to intelligent storage systems | |
US20080320005A1 (en) | Relocating item in distributed storage system | |
US20080071729A1 (en) | Service providing system, computer which executes program providing service and repository service control program | |
US7219204B2 (en) | Dynamic, policy-based control of copy service precedence | |
JP4430456B2 (ja) | ネットワークストレージシステム,ユーザ管理サーバおよびユーザ管理サーバ用プログラム | |
JP7193732B2 (ja) | 管理装置、情報処理システムおよび管理プログラム | |
US11593347B2 (en) | Transient software error handling in a distributed system | |
US7627871B2 (en) | Instructing management support software of a first software component to set up a communication channel between the first software component and a second software component | |
CN118012565A (zh) | 支持优先级抢占和多部署形态的分布式选主方法及系统 | |
JPH11328130A (ja) | ネットワークジョブ実行システム | |
JP2003186563A (ja) | コンピュータ装置 | |
JP2008305223A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |