Storage device and migration verification method

The storage device and transfer verification method address the complexity of post-migration operation verification by using a transfer verification unit to ensure correct API transitions between old and new scripts, thereby facilitating effective operation verification.

JP2025086267APending Publication Date: 2025-06-06HITACHI VANTARA LTD
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
JP2023200208
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2023-11-27
Publication Date
2025-06-06

AI Technical Summary

Technical Problem

Existing technologies complicate post-migration operation verification due to changes in external specifications when migrating APIs from an old API to a new API in storage systems.

Method used

A storage device and transfer verification method that includes an old program, a new program, an operation control unit, and a transfer verification unit. The transfer verification unit determines correct transfer from the old script to the new script if the first command satisfies a predetermined matching condition relative to the second command.

Benefits of technology

Enables effective operation verification during API migration, ensuring seamless transition from old to new APIs without complicating the verification process.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025086267000001_ABST
    Figure 2025086267000001_ABST
Patent Text Reader

Abstract

To effectively perform operation verification when an interface is migrated.SOLUTION: In a storage system (100), a storage device 101 for performing data operations on a drive device in response to the execution of at least one script includes: an old program called and executed from a script before replacement among the scripts; a new program called and executed from a script after replacement among the scripts; an operation control unit (112) for controlling a first operation on the drive device in response to the execution of a first instruction corresponding to the request of the old program and controlling a second operation on the drive device in response to the execution of a second instruction corresponding to the request of the new program; and a migration verification unit (110) for determining that the migration from the script before replacement to the script after replacement is correctly performed when the first instruction satisfies a predetermined coincidence condition relative to the second instruction.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] The present invention relates to a storage device and a transfer verification method, and is suitable for application to a storage device, for example, a verification technology for when a script that uses an API is transferred between multiple APIs (Application Programming Interfaces) that the storage device provides to users. [Background technology]

[0002] In recent years, it has become common to automate the operation and management of storage systems using external applications. Accordingly, in order to make it easier for external applications to use the functions of the storage system, the API that the storage system has traditionally provided to external parties (hereinafter referred to as the "old API") may be migrated to a new, simple and easy-to-use API (hereinafter referred to as the "new API").

[0003] Generally, storage vendors who migrate APIs provided to the outside of a storage system from an old API to a new API provide a transition period so that users can smoothly switch from the old API environment to the new API environment. Here, the transition period is the period during which the old API and the new API are provided at the same time. During this period, users switch from applications that used the old API to operate and manage the storage system to applications that use the new API. Specifically, users find code in the old program that uses the old API to be migrated, and replace that code with new code that uses the new API while examining the external specifications of the old and new APIs. After that, operation verification is performed to see if the new program behaves as expected.

[0004] Because these tasks require a large number of steps for users, storage vendors need to provide various types of support to enable users to switch from old programs to new programs with minimal steps. In the technology disclosed in Patent Document 1, external specifications, i.e., interfaces, may also be improved to improve convenience when updating a storage system. [Prior art documents] [Patent documents]

[0005] [Patent Document 1] Patent Publication No. 2021-68067 Summary of the Invention [Problem to be solved by the invention]

[0006] However, with the technology disclosed in Patent Document 1, such interface changes tend to complicate post-migration operation verification due to changes in external specifications, making it difficult to effectively verify operation.

[0007] The present invention has been made in consideration of the above points, and aims to propose a storage device and a transfer verification method that can effectively perform operation verification when an interface is migrated. [Means for solving the problem]

[0008] In order to solve such problems, the present invention provides a storage device having at least one drive device capable of storing data, and which performs operations on the data on the drive device in accordance with the execution of at least one script, the storage device comprising: an old program which is called and executed from a script before replacement among the scripts; a new program which is called and executed from a script after replacement among the scripts; an operation control unit which controls a first operation on the drive device in accordance with the execution of a first command corresponding to a request of the old program, and controls a second operation on the drive device in accordance with the execution of a second command corresponding to a request of the new program; and a transfer verification unit which determines that transfer from the script before replacement to the script after replacement has been correctly performed if the first command satisfies a predetermined matching condition in relation to the second command.

[0009] In addition, in the present invention, there is provided a transfer verification method in a storage device that has at least one drive device capable of storing data and executes operations on the data on the drive device in accordance with execution of at least one script, the method including: an old program that is called and executed from a script before replacement among the scripts; a new program that is called and executed from a script after replacement among the scripts; an operation control unit that controls a first operation on the drive device in accordance with executing a first command corresponding to a request of the old program, and controls a second operation on the drive device in accordance with executing a second command corresponding to a request of the new program; and a transfer verification unit that determines that transfer from the script before replacement to the script after replacement has been correctly performed if the first command satisfies a predetermined matching condition in relation to the second command. Effect of the Invention

[0010] According to the present invention, it is possible to effectively carry out operation verification when an interface is migrated. [Brief description of the drawings]

[0011] [Figure 1] 2 is a software configuration diagram showing an example of a system configuration of a storage system including a storage device according to the first embodiment. FIG. [Diagram 2] 2 is a hardware configuration diagram showing an example of the system configuration of the storage system shown in FIG. 1. [Diagram 3] 2 is a diagram illustrating an example of a logical configuration of an IO module illustrated in FIG. 1; [Figure 4] 2 is a block diagram showing an example of a logical configuration of a management module shown in FIG. 1. [Diagram 5] 5 is a diagram illustrating an example of a log of an external API-A illustrated in FIG. 4. [Figure 6] FIG. 5 is a diagram showing an example of a log of a management program A shown in FIG. [Figure 7] 4 is a diagram illustrating an example of a log of an IO module illustrated in FIG. 3. [Figure 8] FIG. 5 is a diagram showing an example of a log of the old program shown in FIG. 4. [Figure 9] FIG. 5 is a diagram showing an example of a log of the new program shown in FIG. 4. [Figure 10] 11 is a flowchart illustrating an example of a procedure of a transfer verification process according to the first embodiment. [Figure 11] 11 is a flowchart illustrating an example of a procedure for a log collection process shown in FIG. [Figure 12] 11 is a flowchart showing an example of a procedure for creating log correspondence information of the old program shown in FIG. 10; [Figure 13] 11 is a flowchart showing an example of a procedure for an entry comparison process shown in FIG. [Figure 14] FIG. 11 is a diagram illustrating an example of a logical configuration of a management module according to a second embodiment. [Figure 15] FIG. 15 is a diagram illustrating an example of the predefined log mapping rules shown in FIG. 14. [Figure 16] FIG. 11 illustrates an example of a procedure of a transfer verification process according to the second embodiment; DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0012] Hereinafter, an embodiment of the present invention will be described in detail with reference to the drawings.

[0013] 1 is a software configuration diagram showing an example of the system configuration of a storage system 100 including a storage device 101 according to the first embodiment. Details of each component and each process will be described later.

[0014] The storage device 101 comprises at least one drive device capable of storing data described below, and executes operations on the data in the drive device in response to execution of at least one script. This storage system 100 comprises the storage device 101, at least one host 102, and at least one management terminal 103. The storage device 101, the host 102, and the management terminal 103 are connected to each other via an external network N1 so as to be able to communicate with each other.

[0015] The storage device 101 is a device that provides a storage area for reading and writing to the host 102, and includes at least one management module 104 and at least one IO module 105. The management module 104 and the IO module 105 are connected inside the storage device 101 via an internal network N2. In this embodiment, for the sake of simplicity of explanation, an example in which there is one management module 104 and one IO module 105 will be described unless otherwise necessary.

[0016] The management module 104 has an external API-A program 106 and an internal management program A 108 as examples of old programs that are called and executed from the script before replacement among the scripts, and an external API-B program 107 and an internal management program B 109 as examples of new programs that are called and executed from the script after replacement among the scripts. Note that, although the present embodiment illustrates a case where there are two old programs and two new programs as targets of transfer verification, this is not limiting, and there may be one of each.

[0017] The above-mentioned old program includes, for example, an external API-A program 106 as an example of a first device external management program called and executed from an old script before replacement among the scripts, and an internal management program A108 as an example of a first device internal management program called and executed from the external API-A program 106. Meanwhile, the above-mentioned new program includes, for example, an external API-B program 107 as an example of a second device external management program called and executed from a new script that replaces the old script among the scripts, and an internal management program B109 as an example of a second device internal management program called and executed from the external API-B program 107.

[0018] The management module 104 includes an external API-A program 106, an external API-B program 107, at least two internal management programs, a transfer verification program 110, and management information 111. The management module 104 is connected to a management terminal 103 via an external network N1.

[0019] The transfer verification program 110 is an example of a transfer verification unit, and when a first command for executing a first operation on a drive device in response to a request of the new program satisfies a predetermined matching condition in relation to a second command for executing a second operation on the drive device in response to a request of the new program, it determines that transfer from the pre-replacement script to the post-replacement script has been performed correctly.

[0020] When the management terminal 103 is not in a mode in which the new management script 116 can be executed (hereinafter referred to as the "new script execution mode"), the management terminal 103 can issue a request to the transfer verification processing unit 404 of the transfer verification program 110 to switch to a mode in which the old management script 115 can be executed (hereinafter referred to as the "old script execution mode"), and can terminate the old script execution mode as necessary. Also, when the management terminal 103 is not in the old script execution mode, the management terminal 103 can issue a request to the transfer verification processing unit 404 of the transfer verification program 110 to switch to the new script execution mode, and can terminate the new script execution mode as necessary.

[0021] When the management module 104 receives a configuration setting operation and an operation information collection operation issued from the management terminal 103 via the external API-A program 106 or the external API-B program 107, it relays the configuration setting operation and operation information collection operation to the internal management program, and when the internal management program receives a configuration setting operation and an operation information collection operation from various APIs of the external API-A program 106 and the external API-B program 107, it relays the configuration setting operation and operation information collection operation to the IO module 105 via the internal network. Note that although not described here, the management module 104 also has components other than those mentioned above, and these will be described in their entirety later with reference to FIG. 4, which will be described later.

[0022] The external API-A program 106 and the external API-B program 107 may each be, for example, an API for web applications such as a Representational State Transfer API (REST API) or a user interface such as a Command Line Interface (CLI).

[0023] The management information 111 includes log information A111A as an example of first operation log information corresponding to a first operation, and log information B111B as an example of second operation log information corresponding to a second operation. The management information 111 further includes third operation log information corresponding to the execution of a first command by the IO module control program 112 as an example of an operation control unit, and an IO module log 300 as an example of fourth operation log information corresponding to the execution of a second command by the IO module control program 112.

[0024] The IO module 105 is a module in the storage apparatus 101 that processes data read requests and data write requests sent from the host 102 to input and output data. The IO module 105 has an IO module control program 112, operation information 113, and configuration information 114.

[0025] The IO module control program 112 performs processing in response to a data read request and a data write request from the host 102. This IO module control program 112 is an example of an operation control unit, and controls a first operation on the drive device in response to executing a first command corresponding to a request of the above-mentioned old program, and controls a second operation on the drive device in response to executing a second command corresponding to a request of the above-mentioned new program.

[0026] In addition, the IO module control program 112 performs a process of transferring operation information 113 and configuration information 114 in response to a request from the management module 104. The IO module 105 also has components other than those described above, which will be described in their entirety below with reference to Fig. 3. The IO module 105 also performs processes other than those described above, which will be described in their entirety below with reference to Fig. 3.

[0027] The management terminal 103 has a management program for operationally managing the storage device 101. The management program is, for example, a script that uses an external API-A program 106 and an external API-B program 107. The management program communicates with the storage device 101 to request the storage device 101 to operate configuration settings and to request the storage device 101 to obtain operating information about the storage device 101, thereby monitoring the storage device 101.

[0028] The host 102 is a computer for executing installed programs to perform various business processes. The host 102 transmits at least one of a data read request and a data write request to the storage device 101 in response to a request from the running program.

[0029] The configuration of the storage system 100 has been described above, and next, an overview of an operation example of the storage system 100 will be described. Fig. 1 shows steps S1, S2, and S3 as a general processing procedure of the overall processing according to the first embodiment.

[0030] In step S1, the old management script 115 executes a series of programs for operationally managing the storage device 101, and in the process, sends a request for a configuration setting operation or an operational information collection operation to the external API-A program 106 as necessary.

[0031] The external API-A program 106, for example, communicates with the IO module control program 112 using the internal management program A108 to execute a configuration setting operation or an operational information collection operation. At this time, the external API-A program 106, the internal management program A108, and the IO module control program 112 issue execution logs (for example, log information A111A, log information B111B, and IO module log 300) for analyzing the functions executed by each of them.

[0032] Here, the internal management program used by the external API-A program 106 does not have to be the internal management program A 108 only, and other types of internal management programs may be used. Also, each API of the external API-A program 106 may use a different internal management program.

[0033] In step S2, the new management script 116 executes a series of programs for operationally managing the storage device 101, and in the process, sends a request for a configuration setting operation or an operational information collection operation to the external API-B program 107 as necessary.

[0034] The external API-B program 107, for example, communicates with the IO module control program 112 using the internal management program B 109 to execute a configuration setting operation or an operation information collection operation. At this time, the external API-B program 107, the internal management program B 109, and the IO module control program 112 each issue an execution log for analyzing the function executed by them.

[0035] Here, the internal management program used by the external API-B program 107 does not have to be the internal management program B 109 only, and other types of internal management programs may be used. Also, each API of the external API-B program 107 may use a different internal management program.

[0036] In step S3, the transfer verification program 110 verifies the logs issued in steps S1 and S2 to verify whether the old management script 115 and the new management script 116 correspond to the external API-A program 106 and the external API-B program 107 that they respectively use.

[0037] Fig. 2 is a hardware configuration diagram showing an example of the hardware configuration of the storage system 100 shown in Fig. 1. The storage system 100 includes a storage device 101, at least one host 102, and at least one management terminal 103.

[0038] The storage device 101 and the management terminal 103 are connected to an external network N1 and can communicate with each other via the external network N1. The external network N1 is configured by any communication line such as optical fiber, LTE (Long Term Evolution), 5G (fifth generation mobile communication system), or wireless LAN (Local Area Network), or a combination of these.

[0039] The management terminal 103 is a device that enables a user of the storage apparatus 101 to operate the storage apparatus 101. An example of the management terminal 103 is a laptop computer.

[0040] The host 102 is connected to the storage device 101 via a storage network N3. The storage network N3 may be configured as a storage area network (SAN) using a fiber channel (FC). Alternatively, the storage network N3 may be configured as an Internet small computer system interface (iSCSI) using Ethernet, InfiniBand, or the like.

[0041] The host 102 is a computer for executing installed programs to perform various business processes. The host 102 transmits a data read request or data write request to the storage device 101 in response to a request from the program being executed.

[0042] The storage device 101 includes at least one management module 104 and at least one IO module 105. The management module 104 and the IO module 105 are connected inside the storage device 101 via an internal network N2. The internal network N2 may be configured using Ethernet, PCI Express, InfiniBand, or the like.

[0043] The management module 104 comprises at least one CPU 200, at least one memory 201, at least one storage device 202, at least one management I / F (Interface) 203, and at least one internal I / F 204. These components are connected via a bus 205 that allows bidirectional communication.

[0044] The CPU 200 realizes various processes by executing various programs stored in the memory 201. The memory 201 stores various programs and information for controlling the management module 104. The memory 201 may be configured with a dynamic random access memory (DRAM).

[0045] The storage device 202 is a non-volatile storage device for storing an OS (Operating System) image and an operation log of the management module 104. Examples of the storage device include a hard disk drive (HDD) and a solid state drive (SSD).

[0046] The management I / F 203 is a network I / F for communicating with an external component that manages the storage apparatus 101. An example of an external component that manages the storage apparatus 101 operates on the management terminal 103. The management I / F 203 may include a NIC (Network Interface Card) compatible with Ethernet. Alternatively, the management I / F 203 may include any network interface device that complies with the communication standard of the external network N1.

[0047] The internal I / F 204 is a network interface for communicating with the IO module 105 or other management modules 104. The internal I / F 204 includes any network interface device that complies with the communication standard of the internal network N2.

[0048] The IO module 105 includes at least one CPU 206, at least one memory 207, at least one storage device 208, at least one internal I / F 209, at least one BE (Back End) I / F 210, at least one FE (Front End) I / F 211, and at least one drive 212. The CPU 206, the memory 207, the BEI / F 210, the FE / F 211, and the internal I / F 209 are connected via a bus 213 that allows mutual communication.

[0049] The CPU 206 realizes various processes by executing various programs stored in the memory 207. The memory 207 stores various programs and information for controlling the IO module 105. The memory 207 may be configured by a DRAM.

[0050] The internal I / F 209 is a network interface for communicating with the management module 104 and other IO modules 105. The internal I / F 209 includes any network interface device according to the communication standard of the internal network N2. In the illustrated example, the IO module 105 includes one internal I / F 209, but the IO module 105 may include an internal I / F and an internal network dedicated for communication between IO modules. In this case, the communication standard between the IO modules may be different from the communication standard between the IO module 105 and the management module 104.

[0051] The FEI / F 211 is a network interface for connecting the IO module 105 to the storage network N3 and the host 102. The FEI / F 211 comprises a network interface device that complies with the communication standard of the storage network N3.

[0052] The drive 212 is a device having a physical storage area, and is configured from a non-volatile storage device such as an HDD, SSD, SCM (Storage Class Memory), or optical disk. The drive 212 is connected to the BEI / F 210 by an interface such as SAS (Serial Attached SCSI), SATA (Serial Advanced Technology Attachment), or NVMe (Non-Volatile Memory Express). Although not shown, the BEI / F 210 of a plurality of IO modules 105 may be connected to one drive 212.

[0053] Although not shown, the IO module 105 may be configured not to simply write data to the drive 212, but to bundle multiple drives 212 and write data to a RAID group configured using a high-reliability technology such as RAID (Redundant Array of Independent Disks).

[0054] In addition to the above-mentioned functions, the storage device 101 may have other known functions as functions when a data write request or read request is made from the host 102. Hereinafter, explanations of the process flow and data structure related to these data input / output processes may be omitted, but the storage device 101 is assumed to have a configuration capable of appropriately performing data input / output of the omitted parts.

[0055] The storage device 208 is a non-volatile storage device for storing the OS image and log information of the IO module 105. Examples of the storage device 208 include an HDD and an SSD.

[0056] At least one of the host 102, the management module 104, and the IO module 105 is not limited to being a physical component, and may be configured using a virtualization technology such as a virtual machine or a container. The host 102, the management module 104, and the IO module 105 may be virtualized by the virtualization technology and configured in one physical device. In this case, a virtual switch may be used as the internal network N2.

[0057] Fig. 3 is a diagram showing an example of a logical configuration of the IO module 105 shown in Fig. 1. The memory 207 stores the IO module control program 112, configuration information 114, and operation information 113. The memory 207 can further store the IO module control program 112, a cache of the configuration information 114, a cache of the operation information 113, a portion of the data read and written by the host 102, and various other data other than those shown in the figure, but only those related to this embodiment are shown in the figure.

[0058] The IO module control program 112 is a program executed by the CPU 206 of the IO module 105 of the storage apparatus 101. The IO module control program 112 refers to or updates the operation information 113, configuration information 114, and IO module log 300 in accordance with processing. The IO control unit 301 is a program for providing a volume to the host 102 and processing a data input / output request for the volume. In addition, the IO control unit 301 performs processing such as transferring the configuration information 114 and operation information 113 stored in the memory 207 and the IO module log 300 stored in the storage device 208 in response to a request from the management module 104.

[0059] The operation information 113 is information indicating the operation status of the IO module 105, such as, for example, CPU utilization, IOPS (Input / Output per Second), and transfer speed. The IO module control program 112 updates the operation information 113 at appropriate timing, such as at regular time intervals or when a data read request or write request is made from the host 102.

[0060] The volume management information table 302 is a table that stores operation information of each volume. The pool operation information table 303 is a table that stores operation information of each pool. Although not shown, the memory may also store tables that store operation information of each component such as the host 102, the drive, the FE I / F, the BE I / F, and the internal ports.

[0061] The configuration information 114 is information relating to the configuration of the storage device 101. The configuration information 114 includes a volume configuration information table 304 and a pool configuration information table 305. The volume configuration information table 304 manages the definition of each volume, such as the volume ID (IDentifier) ​​and capacity. The pool configuration information table 305 manages the definition of each pool, such as the pool ID and capacity. For example, a user of the storage system 100 uses the management terminal 103 to instruct the storage device 101 to create or delete a volume.

[0062] The IO module control program 112 of the IO module receives this instruction via the management module 104 and performs appropriate processing, adding, deleting, and modifying entries in the configuration information as necessary.

[0063] Also, for example, a user of the storage system 100 uses the management terminal 103 to make a request to the storage device 101 to refer to configuration information. The IO module control program 112 accepts the request via the management module 104, and transfers the configuration information 114 in response to the request. Although not shown, a table for managing the configuration of various other components may be stored in the memory 207 as the configuration information 114.

[0064] The IO module log 300 is operation log information related to the IO module 105. As this operation log information, for example, a function name and a timestamp of its execution may be stored for a function of a program executed by the IO module 105. In addition, various other types of operation log information may be stored.

[0065] The log setting information 306 is information relating to the log level at which the IO module control program 112 outputs log information and configuration information of the output destination.

[0066] Fig. 4 is a block diagram showing an example of a logical configuration of the management module 104 shown in Fig. 1. The memory 201 stores an external API-A program 106, an external API-B program 107, at least two internal management programs 108 and 109, a transfer verification program 110, log correspondence information 400 of an old program, and log correspondence information 401 of a new program. Note that the memory 201 may further store management programs and management information other than those shown in the figure, but only those related to this embodiment are shown in the figure.

[0067] The external API-A program 106 and the external API-B program 107 are programs that respectively receive various configuration setting operations and operation information requests from the host 102. The external API-A program 106 and the external API-B program 107 may simply relay the various received requests to the internal management programs 108 and 109.

[0068] The internal management program may simply relay various requests received from the external API-A program 106 and the external API-B program 107 to the IO module control program 112. Alternatively, the external API-A program 106, the external API-B program 107, and the internal management program may execute any process when relaying the received various requests.

[0069] For example, the external API-A program 106, the external API-B program 107, and the internal management program may convert various received requests into at least one internal request used within the storage device 101, or convert the data structure in response.

[0070] The transfer verification program 110 is a program that creates log correspondence information 400 of the old program and log correspondence information 401 of the new program from various operation log information 402 in the storage device 202, and uses that information to verify whether the various APIs of the external API-A program 106 executed by the old management script 115 correspond to the various APIs of the external API-B program 107 executed by the new management script 116.

[0071] The transfer verification program 110 has a log management processing unit 403 and a transfer verification processing unit 404. The log management processing unit 403 communicates with the IO module control program 112 and executes a process of acquiring the IO module log 300 in the IO module in order to create the log correspondence information 400 of the old program and the log correspondence information 401 of the new program. The transfer verification processing unit 404 also executes a transfer verification process to determine whether various APIs of the external API-A program 106 executed by the old management script 115 correspond to various APIs of the external API-B program 107 executed by the new management script 116, using the log correspondence information 400 of the old program and the log correspondence information 401 of the new program.

[0072] The log correspondence information 400 of the old program is information that indicates the relationship between the operation logs of three programs: the external API-A program 106, the internal management program to which the external API-A program 106 relays various requests from the host 102, and the IO module control program 112 to which the internal management program relays those various requests.

[0073] For example, the log correspondence information 400 of the old program is a table that stores information correlating the name of a request received by the external API-A program 106 from the host 102, the name of the function executed by the internal management program A108 after the request is relayed to the internal management program A108, and the name of the function executed by the IO module control program 112 when the internal management program A108 relays the request from the external API-A program 106 to the IO module control program 112.

[0074] On the other hand, the log correspondence information 401 of the new program is information that indicates the relationship between the operation logs of the external API-B program 107, the internal management program to which the external API-B program 107 relays various requests from the host 102, and the IO module control program 112 to which the internal management program relays the various requests.

[0075] For example, the log correspondence information 401 of the new program is a table that stores information correlating the name of a request received by the external API-B program 107 from the host 102, the name of the function executed by the internal management program B 109 after the request is relayed to the internal management program B 109, and the name of the function executed by the IO module control program 112 when the internal management program B 109 relays the request from the external API-B program 107 to the IO module control program 112.

[0076] The storage device 202 stores, as operation log information, a log 405 of an external API-A, a log 406 of an external API-B, and logs of various internal management programs.

[0077] The external API-A log 405 is information related to the processing executed by the external API-A program 106 when the host 102 issues various configuration setting operations and operational information collection requests to the external API-A program 106 .

[0078] The external API-B log 406 is information related to the processing executed by the external API-B program 107 when the host 102 issues various configuration setting operations or operational information collection requests to the external API-B program 107 .

[0079] The logs of the various internal management programs contain information regarding the processing performed by the various internal management programs when the host 102 issues various configuration setting operations and operation information collection requests to the external API-A program 106 and the external API-B program 107, and these external API-A program 106 and external API-B program 107 relay the various requests to the various internal management programs.

[0080] Fig. 5 is a diagram showing an example of the external API-A log 405 shown in Fig. 4. Entries in the external API-A log 405 are created each time various APIs of the external API-A program 106 are executed.

[0081] The external API-A log 405 manages an ID 500, a time stamp 501, a log level 502, a user ID 503, a method 504, a URL (Uniform Resource Locator) 505, and a parameter 506. The external API-A log 405 manages log information related to calls to individual APIs of the external API-A program 106.

[0082] The timestamp 501 records information indicating the time when the API executed by the external API-A program 106 was called. The log level 502 records the log level of the log information output by the external API-A program 106 (for example, whether it is reference information or information that requires caution). The user ID 503 records the ID of the user who executed the API executed by the external API-A program 106.

[0083] The method 504 records the HTTP (Hypertext Transfer Protocol) method of the API executed by the external API-A program 106. The URL 505 records the URL of the API executed by the external API-A program 106. The parameters 506 record the query parameters of the API executed by the external API-A program 106 and the parameters in the request body.

[0084] Although not shown, the log 406 of the external API-B also contains information similar to the log 405 of the external API-A, which is created each time various APIs of the external API-B program 107 are executed. The log 405 of the external API-A described in this embodiment is merely an example. Various types of operation log information other than those described above may be added to the rows.

[0085] Fig. 6 is a diagram showing an example of the log 407 of the internal management program A shown in Fig. 4. An entry of the log 407 of the internal management program A is created, for example, each time various commands of the internal management program A108 are executed.

[0086] The log 407 of the internal management program A manages an ID 600, a time stamp 601, a log level 602, a user ID 603, an operation 604, a resource 605, and a parameter 606. The log 407 of the internal management program A manages log information related to the invocation of each command of the internal management program A 108.

[0087] Information indicating the time when the command executed by the internal management program A108 was called is recorded in the time stamp 601. The log level 602 records the log level of the log output by the internal management program A108.

[0088] A user ID 603 records the ID of the user who executed the command executed by the internal management program A108. An operation 604 records the type of operation (e.g., data update, deletion, addition, reading, or volume creation, deletion, addition) of the command executed by the internal management program A108. A resource 605 records the resource operated by the command executed by the internal management program A108.

[0089] Here, for example, if the resource is "Pools", then the pool configuration information table or pool operation information table is the target of operation, and in this embodiment, information that can identify the data that is the target of operation is called a "resource".

[0090] Parameters of the command executed by internal management program A 108 are recorded in parameter 606. Although not shown, log information of internal management program B 109 and various other internal management programs similar to log 407 of internal management program A is also created each time various commands of the various internal management programs are executed.

[0091] The log 407 of the internal management program A described in this embodiment is merely an example. Various types of operation log information other than those described above may be added to the row.

[0092] Fig. 7 is a diagram showing an example of the IO module log 300 shown in Fig. 3. An entry in the IO module log 300 is created, for example, each time various functions are executed by the IO module control program 112 to implement various configuration setting operations and operation information requests when the IO module control program 112 relays the configuration setting operations and operation information requests from various internal management programs.

[0093] The IO module log 300 manages, for example, an ID 700, a time stamp 701, and a function 702. The IO module log 300 manages log information relating to each function executed by the IO module control program 112.

[0094] In the time stamp 701, information indicating the time when the function executed by the IO module control program 112 was called is recorded. In the function 702, the function name of the function executed by the IO module control program 112 is recorded.

[0095] Here, in addition to the above-mentioned information, although not shown, the IO module log 300 may manage various kinds of information related to the execution of the IO module control program 112. In addition to the above-mentioned timing, the timing at which an entry in the IO module log 300 is created may change according to the log level of the IO module control program 112, for example.

[0096] The IO module log 300 described in this embodiment is merely an example. Various types of operation log information other than those described above may be added to the rows.

[0097] Fig. 8 is a diagram showing an example of the log correspondence information 400 of the old program shown in Fig. 4. The entries of the log correspondence information 400 of the old program are created while the transfer verification processing unit 404 is performing a process of creating the log correspondence information of the old program.

[0098] The log correspondence information 400 of the old program manages, for example, an ID 800, an external API 801, an internal management program 802, and an IO module function 803. The log correspondence information 400 of the old program manages the correspondence between various APIs, commands, and functions executed by the external API-A program 106, various internal management programs, and the IO module control program 112.

[0099] The external API 801 records information indicating the method, URL, and parameters of the external API-A program 106. The internal management program 802 records operations, resources, and parameters of various internal management programs. The IO module function 803 records various function names of the IO module control program 112.

[0100] In this embodiment, the external API 801, the internal management program 802, and the IO module function 803 correspond to each other in a 1:1:1 relationship, but this is merely an example. For example, when one external API is executed, two types of IO module functions can be executed.

[0101] Fig. 9 is a diagram showing an example of the log correspondence information 401 of the new program shown in Fig. 4. The entries of the log correspondence information 401 of the new program are created while the transfer verification processing unit 404 is performing a process of creating the log information of the new program.

[0102] The log correspondence information 401 of the new program manages, for example, an ID 900, an external API 901, an internal management program 902, and an IO module function 903. The log correspondence information 401 of the new program manages the correspondence between various APIs, commands, and functions executed by the external API-B program 107, various internal management programs, and the IO module control program 112.

[0103] The external API 901 records information indicating the method, URL, and parameters of the external API-B program 107. The internal management program 902 records operations, resources, and parameters of various internal management programs. The IO module function 903 records various function names of the IO module control program 112.

[0104] In this embodiment, the external API 901, the internal management program 902, and the IO module function 903 correspond to each other in a 1:1:1 manner, but this is merely an example. For example, when one external API is executed, two types of IO module functions can be executed.

[0105] The storage system 100 according to this embodiment has the above-mentioned configuration. Next, an example of the operation of the storage system 100 will be described with reference to FIGS.

[0106] 10 is a flowchart showing an example of the procedure of the transfer verification process according to the first embodiment. The transfer verification process is executed by the transfer verification program 110. First, the outline of the transfer verification process is explained. In this embodiment, an old script execution mode is provided as an example of a pre-replacement mode in which an old program is executed based on an old script (a script before replacement), and a new script execution mode is provided as an example of a post-replacement mode in which the new program is executed based on a new script (a script after replacement). The transfer verification program 110 switches between the old script execution mode and the new script execution mode to determine whether or not the transfer from the old script to the new script has been correctly performed. The following will explain this in more detail.

[0107] First, in step S1001, the transfer verification processing unit 404 of the transfer verification program 110 receives a request to switch to the old script execution mode from the management terminal 103. The transfer verification processing unit 404 records the time when the request to switch to the old script execution mode is received as a timestamp.

[0108] Step S1002 is a process of collecting logs of various APIs and internal processing programs. In step S1002, the transfer verification processing unit 404 executes the log collection process, specifically, the log collection process of FIG.

[0109] In step S1003, the transfer verification processing unit 404 switches to the old script execution mode. In step S1004, the transfer verification processing unit 404 performs the log correspondence information creation process of the old program in the old script execution mode, which will be described later with reference to FIG.

[0110] In step S1005, the transfer verification processing unit 404 receives a request to switch to the new script execution mode from the management terminal 103. The transfer verification processing unit 404 records the time when the request to switch to the new script execution mode is received as a timestamp.

[0111] Step S1006 is a process of collecting logs of various APIs and internal processing programs. In step S1006, the transfer verification processing unit 404 executes a log collection process in Fig. 11, which will be described later, in the new script execution mode.

[0112] In step S1007, the transfer verification processing unit 404 switches to the new script execution mode. In step S1008, the transfer verification processing unit 404 creates log correspondence information for the new program. In step S1008, the transfer verification processing unit 404 executes the log correspondence information creation process for the new program shown in FIG. 12, which will be described later.

[0113] Step S1009 is an entry comparison process. In step S1009, the transfer verification processing unit 404 executes the entry comparison process shown in FIG.

[0114] Fig. 11 is a diagram showing an example of the procedure of the log collection process shown in Fig. 10. The log collection process of Fig. 11 shows an example of a specific procedure of the log collection process when the old management script 115 is executed on the management terminal 103 and a request to obtain volume configuration information of the external API-A program 106 is executed.

[0115] In the illustrated example, the vertical processing on the left is executed by the external API-A program 106, the vertical processing in the center is executed by the internal management program A 108, and the vertical processing on the right is executed by the IO module control program 112.

[0116] In step S1101, the external API-A program 106 receives an API for acquiring volume configuration information from the management terminal 103. In step S1102, the external API-A program 106 requests the internal management program A 108 to acquire volume configuration information. Here, the external API-A program 106 may convert the received request into at least one internal request used within the storage apparatus 101, or may convert the data structure of the response.

[0117] In step S1103, the internal management program A108 receives a request to acquire volume configuration information from the external API-A program 106. In step S1104, the internal management program A108 requests the IO module control program 112 to acquire volume configuration information. Here, the internal management program A108 may convert the received request into at least one internal request used inside the storage apparatus 101, or convert the data structure to be responded to.

[0118] In step S1105, the IO module control program 112 receives a request to acquire volume configuration information from the internal management program A 108. In step S1106, the IO module control program 112 acquires an entry corresponding to the request to acquire the volume configuration information from the volume configuration information table 304.

[0119] In step S1107, the IO module control program 112 outputs log information by creating an entry in the IO module log 300 to notify the completion of acquisition of the volume configuration information.

[0120] In step S1108, the IO module control program 112 transmits the acquired volume configuration information to the internal management program A 108. Here, the IO module control program 112 may, for example, convert the data structure of the entries of the acquired volume configuration information.

[0121] In step S1109, the internal management program A108 receives the volume configuration information from the IO module control program 112. In step S1110, the internal management program A108 outputs log information by creating an entry in the internal management program A log 407 to notify the completion of acquisition of the volume configuration information.

[0122] In step S1111, the internal management program A108 transmits the acquired volume configuration information to the external API-A program 106. Here, the internal management program A108 may, for example, convert the data structure of the entry information of the acquired volume configuration information.

[0123] In step S1112, the external API-A program 106 receives the volume configuration information from the internal management program A 108. In step S1113, the external API-A program 106 outputs log information by creating an entry in the external API-A log 405 to notify the completion of acquisition of the volume configuration information.

[0124] In step S1114, the external API-A program 106 transmits the volume configuration information to the management terminal 103. The above is the process when the old management script 115 is executed on the management terminal 103.

[0125] 11 is merely an example, and the log output timing may be different from the above-described process. For example, the log may be output when the external API-A program 106, the internal management program A, and the IO module program receive a request to obtain configuration information.

[0126] On the other hand, when the new management script 116 is executed on the management terminal 103 and the new management script 116 executes various APIs of the external API-B program 107, although not shown in the figure, the external API-B program 107, the various internal management programs 108, 109, and the IO module control program 112 execute processing similar to the processing shown in FIG. 11.

[0127] Fig. 12 is a flowchart showing an example of a procedure for creating the log correspondence information of the old program (step S1004) shown in Fig. 10. The creation process is executed by the transfer verification program 110.

[0128] In step S1201, the transfer verification processing unit 404 of the transfer verification program 110 acquires various log information from the log 405 of the external API-A, the log information of the internal management program, and the IO module log 300. Here, the timestamps of the various log information are checked, and the timestamp recorded when switching to the old script execution mode and the timestamp recorded when switching to the new script execution mode are checked, and only the logs recorded between those times are extracted.

[0129] In step S1202, the transfer verification processing unit 404 sorts the extracted various log information in ascending order of timestamp, and repeats the process from step S1203 to step S1209 for each log until all logs have been processed.

[0130] In step S1203, the transfer verification processing unit 404 checks whether the information is the log information of the IO module 105. If the information is the log of the IO module 105, the transfer verification processing unit 404 executes step S1204, whereas if the information is not the log information of the IO module, the transfer verification processing unit 404 executes step S1205.

[0131] In step S1204, the transfer verification processing unit 404 adds function information in the log information of the IO module 105 to the IO module function in the current entry of the log correspondence information of the old program, and returns to step S1203 to execute this.

[0132] In step S1205, transfer verification processing unit 404 checks whether the log is for in-direction management program A. If it is the log for in-direction management program A, transfer verification processing unit 404 executes step S1206, whereas if it is not the log for in-direction management program A, it executes step S1207. Note that although only the case of in-direction management program A is shown here, this step executes similar processing for various in-direction management programs. Processing other than that for in-direction management program A is omitted in the figure.

[0133] In step S1206, the transfer verification processing unit 404 adds information on the operation, resource, and parameter of the log of the internal management program A to the Internal API of the current entry of the log correspondence information of the old program, and returns to step S1205 to execute this.

[0134] In step S1207, the transfer verification processing unit 404 checks whether the log is the external API-A log 405. If the log is the external API-A log 405, the transfer verification processing unit 404 executes step S1208, whereas if the log is not the external API-A log 405, the transfer verification processing unit 404 returns to step S1209 and executes it.

[0135] In step S1208, the transfer verification processing unit 404 adds the method, URL and parameter information of the log 405 of the external API-A to the external API of the current entry in the log correspondence information of the old program, and returns to step S1207 to execute this.

[0136] In step S1209, the transfer verification processing unit 404 increments the additional entry of the log correspondence information of the old program. When the transfer verification processing unit 404 finishes executing the processes from step S1203 to step S1209 for all the logs extracted in step S1202, the transfer verification processing unit 404 ends the process of creating the log correspondence information of the old program.

[0137] On the other hand, the process of creating the log correspondence information of the new program is almost the same as the process of creating the log correspondence information of the old program shown in Fig. 12. That is, when extracting the log in step S1201, the transfer verification program 110 checks the timestamps of various log information, checks the timestamp recorded when switching to the new script execution mode and the timestamp recorded when switching to the new script execution mode, and extracts only the log information recorded at the time between them. After that, the transfer verification program 110 replaces the external API-A program 106 with the external API-B program 107 in the flowchart shown in Fig. 12, and replaces the internal management program A with the internal management program B, and executes the same process as in Fig. 12.

[0138] 12 is merely an example, and a method for comparing the timestamps of each piece of log information may be adopted for a different method for outputting various pieces of log information. For example, when the external API-A program 106, the internal management program A 108, and the IO module 105 output logs at the timing of receiving a request for acquiring configuration information, the processes of steps S1203, S1204, S1205, S1206, S1207, and S1208 may be executed in the order of steps S1207, S1208, S1205, S1206, S1203, and S1204. In addition, steps S1203 to S1208 may be interchanged in any order.

[0139] Fig. 13 is a diagram showing an example of the procedure of the entry comparison process shown in Fig. 10. In step S1301, the transfer verification processing unit 404 acquires log information from the log correspondence information 400 of the old program and the log correspondence information 401 of the new program.

[0140] In step S1302, the transfer verification processing unit 404 executes steps S1303 and S1305 for each line of entries in the log correspondence information 400 of the old program and the log correspondence information 401 of the new program, until the log correspondence information of the new program and the log correspondence information of the old program have been processed.

[0141] In step S1303, the transfer verification processing unit 404 checks whether the IO module functions of the entry in the log correspondence information 400 of the old program and the entry in the log correspondence information 401 of the new program are equal, for example. That is, when the first command, which is an example of an entry in the log correspondence information 401 of the new program, matches the second command as the above-mentioned predetermined matching condition, the transfer verification processing unit 404 determines that the transfer from the old script, which is an example of an entry in the log correspondence information 400 of the old program, to the new script has been correctly performed. If the two entries are equal, the transfer verification processing unit 404 executes step S1302, whereas if the two entries are not equal, the transfer verification processing unit 404 executes step S1305.

[0142] In step S1305, the transfer verification processing unit 404 notifies the management terminal 103 used by the user that a transfer error has occurred. That is, when the first command does not satisfy a predetermined matching condition in relation to the second command, the transfer verification program 110 notifies that a transfer error has occurred as an example of an error.

[0143] When the transfer verification processing unit 404 executes the above-mentioned steps S1303 and S1305 for all the entries in the log correspondence information 400 of the old program and the log correspondence information 401 of the new program, the entry comparison process ends.

[0144] As described above, the storage device 101 according to the present embodiment includes at least one drive device capable of storing data described later, and executes operations on the data on the drive device in response to execution of at least one script. The storage device 101 includes an old program (e.g., an external API-A program 106, an internal management program A 108) that is called from an old script among the scripts and executed, a new program (e.g., an external API-B program 107, an internal management program B 109) that is called from a new script among the scripts and executed, an IO module control program 112 that controls a first operation on the drive 212 in response to execution of a first command (function) corresponding to a request from the old program, and controls a second operation (function) on the drive 212 in response to execution of a second command corresponding to a request from the new program, and a transfer verification program 110 that determines that transfer from the old script to the new script has been correctly performed when the first command satisfies a predetermined matching condition in relation to the second command.

[0145] In this way, operation verification regarding the transition when the interface is migrated from the old program to the new program can be effectively performed.

[0146] In this embodiment, the transfer verification processing unit 404 determines that transfer from the old script, which is an example of an entry in the log correspondence information 400 of the old program, to the new script has been correctly performed when the first command, which is an example of an entry in the log correspondence information 401 of the new program, matches the second command, as the above-mentioned predetermined matching condition. In this way, by appropriately setting the predetermined matching condition, it is possible to effectively perform operation verification as to whether or not transfer from the old script to the new script has been correctly performed in the management terminal 103 so as to meet the predetermined matching condition.

[0147] In this embodiment, an old script execution mode is provided as an example of a pre-replacement mode in which the old program is executed based on an old script, and a new script execution mode is provided as an example of a post-replacement mode in which the new program is executed based on a new script, and the transfer verification program 110 switches between the old script execution mode and the new script execution mode to determine whether or not the transfer from the old script to the new script has been correctly performed. In this way, the transfer verification program 110 can switch between the modes to determine whether or not the transfer from the old script to the new script has been correctly performed.

[0148] In this embodiment, the old program includes an external API-A program 106 as an example of a first external management program called from the old script before replacement and executed, and an internal management program A108 as an example of a first internal management program called from the external API-A program 106. The new program includes an external API-B program 107 as an example of a second external management program called from the new script that replaces the old script and executed, and an internal management program B109 as an example of a second internal management program called from the external API-B program 107. In this way, it is possible to perform a transfer verification as to whether the transfer was correctly performed for both the external and internal management programs described above.

[0149] In this embodiment, the management information 111 includes log information A111A as an example of the first operation log information corresponding to the first operation described above, and log information B111B as an example of the second operation log information corresponding to the second operation described above. Furthermore, the management information 111 includes third operation log information corresponding to the execution of a first command by the IO module control program 112 as an example of an operation control unit, and an IO module log 300 described later as an example of fourth operation log information corresponding to the execution of a second command by the IO module control program 112. In this way, by using these log information, it is possible to accurately perform transfer verification as to whether the transfer has been performed correctly.

[0150] In this embodiment, when the first command does not satisfy a predetermined matching condition in relation to the second command, the transfer verification program 110 notifies a transfer error as an example of an error. In this way, it is possible to reliably recognize from the outside that the transfer from the old script to the new script has failed in the management terminal 103.

[0151] (2) Second embodiment The storage system according to the second embodiment has almost the same configuration and operation as the storage system 100 according to the first embodiment, so a description of the similar configuration and operation will be omitted and the following description will focus on the differences.

[0152] 14 is a diagram showing an example of a logical configuration of the management module 104 according to the second embodiment. The second embodiment is different from the first embodiment in that a predefined log mapping rule 1400 is stored in the storage device 202 of the management module 104.

[0153] In the first embodiment described above, in step S1303 shown in FIG. 13, the transfer verification processing unit 404 determines that the transfer has been performed correctly only if the IO module function that is one of the entries in the log correspondence information 401 of the new program matches the IO module function that is one of the entries in the log correspondence information 400 of the old program. However, in the second embodiment, even if the two entries are not identical, they are determined to be identical as long as they are within a predetermined range predefined in the predefined log mapping rule 1400, and the transfer between the old and new APIs is considered to have been performed correctly.

[0154] That is, in the predefined log mapping rule 1400, even when it is not possible to determine whether the transfer has been performed correctly or in error by simply comparing the IO module functions of the entries in the log correspondence information 401 of the new program and the entries in the log correspondence information 400 of the old program in step S1303 (see FIG. 13) in the first embodiment described above, at least one additional rule entry is predefined for a case in which it is acceptable to determine that the transfer between the old and new APIs has been performed correctly.

[0155] In this embodiment, the predefined log mapping rule 1400 is an example of a rule management unit, and at least one rule is predefined as a predetermined matching condition regarding a range in which the above-mentioned third operation log information and the IO module log 300 as an example of the fourth operation log information are presumed to match. Here, at least one rule is predefined in the predefined log mapping rule 1400.

[0156] Fig. 15 is a diagram showing an example of the predefined log mapping rule 1400 shown in Fig. 14. An entry of the predefined log mapping rule 1400 is created, for example, when a user inputs information from the management terminal 103 and the transfer verification processing unit 404 receives the information from the management terminal 103 and creates an entry.

[0157] The predefined log mapping rules 1400 manage an external API-A program column 1501, an internal management program A column 1502, an IO module function A column 1503, an external API-B program column 1504, an internal management program B column 1505, and an IO module function B column 1506. The predefined log mapping rules 1400 manage mapping rules regarding the identity of various external APIs, various internal management programs, and IO module functions.

[0158] The predefined log mapping rule 1400 manages, for example, a first command which is a function corresponding to a request of the old program described above (for example, “GET...” in the external API-A program column 1501 and “add snapshotA” in the internal management program A column 1502), a second command which is a function corresponding to a request of the new program described above (for example, “GET...” in the external API-B program column 1504 and “add snapshotB” in the internal management program B column 1505), as well as a first operation corresponding to the first command (for example, “setSnapshotA” in the IO module function A column 1503), and a second operation corresponding to the second command (for example, “setSnapshotB” in the IO module function B column 1506).

[0159] This mapping rule indicates a rule that allows the user to predefine exceptional rules in which the success or failure of transfer cannot be determined by simply comparing only the IO module functions in the flowchart of the transfer verification process shown in Figure 16 described later.

[0160] In the external API-A 1501, the method and URL of the external API-A program 106 are recorded. In the internal API-A 1502, the operation and resources of the internal management program A are recorded.

[0161] In the IO module function A1503, the function name of the IO module function executed by the IO module control program 112 in the storage device 101 when the above-mentioned external API-A is called is recorded.

[0162] In the external API-B 1504, the method and URL of the external API-A program 106 are recorded. In the internal API-B 1505, the operation and resources of the internal management program B are recorded. In the IO module function B 1506, the function name of the IO module function executed by the IO module control program 112 in the storage device 101 when the above-mentioned external API-B is called is recorded.

[0163] Although not shown in the figure, the predefined log mapping rule 1400 may be a mapping rule other than the mapping rule described above, as long as the predefined log mapping rule 1400 is information that can determine whether the transfer was performed correctly in the flowchart of FIG. 16.

[0164] Furthermore, in this embodiment, the predetermined matching conditions are not limited to those described above, and may be a combination of any of the columns shown in FIG.

[0165] Fig. 16 is a diagram showing an example of a flowchart S1300 of the transfer verification process of the second embodiment. In the flowchart shown in Fig. 16, the processes denoted by the same reference numerals as those in the flowchart shown in Fig. 13 in the above-mentioned first embodiment are almost the same as the processes shown in Fig. 13.

[0166] In step S1301, the transfer verification processing unit 404 acquires log information from the log correspondence information 400 of the old program and the log correspondence information 401 of the new program.

[0167] In step S1302, the transfer verification processing unit 404 executes the processes of steps S1303 to S1305 for each line of entries in the log correspondence information 400 of the old program and each line of entries in the log correspondence information 401 of the new program, until all of the log correspondence information 401 of the new program and the log correspondence information 400 of the old program have been processed.

[0168] In step S1303, the transfer verification processing unit 404 compares an IO module function (hereinafter simply referred to as an "entry") which is one of the entries in the log correspondence information 401 of the new program with an IO module function (hereinafter simply referred to as an "entry") which is one of the entries in the log correspondence information 400 of the old program, and checks whether the two entries are equal. If the two entries are equal, the transfer verification processing unit 404 executes step S1302. Note that the processing up to this point is the same as in the first embodiment. On the other hand, if the two entries are not equal, the transfer verification processing unit 404 executes step S1304.

[0169] In step S1304, the transfer verification processing unit 404 checks whether the entry in the log correspondence information 401 of the new program and the entry in the log correspondence information 400 of the old program are equal in accordance with a rule previously set as an entry in the predefined log mapping rule 1400. If the transfer verification processing unit 404 determines that the two entries are considered equal in accordance with the rule in the predefined log mapping rule 1400, it executes step S1302, whereas if it does not determine that the two entries are considered equal, it executes step S1305.

[0170] In step S1305, similarly to the first embodiment described above, the transfer verification processing unit 404 notifies the management terminal 103 that a transfer error has occurred.

[0171] When the transfer verification processing unit 404 executes steps S1303 to S1305 for all entries in the log correspondence information 400 of the old program and the log correspondence information 401 of the new program, the entry comparison process ends.

[0172] In this embodiment, the predefined log mapping rule 1400 is an example of a rule management unit, and at least one rule is predefined as a predetermined matching condition regarding a range in which the above-mentioned third operation log information and the IO module log 300 as an example of the fourth operation log information are assumed to match. For example, such a range may be acceptable as a function of Snapshot A or Snapshot B. In this way, by appropriately setting the predetermined matching condition, it is possible to determine whether or not the switch from the old script to the new script has been correctly performed, not only in the case where the first command matches the second command, but also with a wide range of tolerance.

[0173] In this embodiment, at least one rule is defined in advance in the predefined log mapping rules 1400. In this way, if a desired rule is defined in advance in the predefined log mapping rules 1400, it is possible to determine whether or not the switch from the old script to the new script has been correctly performed with a wide tolerance range.

[0174] In this embodiment, the predefined log mapping rule 1400 manages, for example, a first command corresponding to a request of the above-mentioned old program (for example, “GET...” in the external API-A program column 1501 and “add snapshotA” in the internal management program A column 1502), a second command corresponding to a request of the above-mentioned new program (for example, “GET...” in the external API-B program column 1504 and “add snapshotB” in the internal management program B column 1505), as well as a first operation corresponding to the first command (for example, “setSnapshotA” in the IO module function A column 1503), and a second operation corresponding to the second command (for example, “setSnapshotB” in the IO module function B column 1506).

[0175] The present invention is not limited to the above-described embodiment, and includes various modified examples and equivalent configurations within the spirit of the appended claims. For example, the above-described embodiment has been described in detail to clearly explain the present invention, and the present invention is not necessarily limited to those having all of the described configurations. In addition, each element described in parallel in this embodiment may be in a form in which at least one of the elements is connected in series to the other elements. [Industrial Applicability]

[0176] The present invention can be applied to a storage device related to a verification technique when a script that uses a plurality of APIs that the storage device provides to users is switched between the APIs. [Explanation of symbols]

[0177] 100...storage system, 101...storage device, 103...management terminal, 104...management module, 105...IO module, 106...external API-A program, 107...external API-B program, 108...internal management program A, 109...internal management program, 110...transfer verification program, 111...management information, 112...IO module control program, 113...operation information, 114...configuration information, 403...log management information, 404...transfer verification processing unit

Claims

1. A storage device comprising at least one drive device capable of storing data, and executing an operation of the data on the drive device in response to execution of at least one script, An old program that is called and executed from a script before replacement among the scripts; a new program that is called and executed from a replaced one of the scripts; an operation control unit that controls a first operation on the drive device in response to executing a first command corresponding to a request of the old program, and controls a second operation on the drive device in response to executing a second command corresponding to a request of the new program; a transfer verification unit that determines that transfer from the pre-replacement script to the post-replacement script has been correctly performed when the first command satisfies a predetermined matching condition in relation to the second command; A storage device comprising:

2. The transfer verification unit is When the first command and the second command match as the predetermined match condition, it is determined that the switch from the pre-replacement script to the post-replacement script has been correctly performed.

2. The storage device according to claim 1.

3. a pre-replacement mode in which the old program is executed based on the pre-replacement script; a post-replacement mode in which the new program is executed based on the post-replacement script; The transfer verification unit is Switching between the pre-replacement mode and the post-replacement mode, It is determined whether or not the switch from the pre-replacement script to the post-replacement script has been correctly performed.

2. The storage device according to claim 1.

4. The old program is a first external management program that is called and executed by a script before replacement among the scripts; a first internal management program that is called and executed by the first external management program; Including, The new program: a second external management program that is called and executed from a script after replacement that is replaced from the script before replacement among the scripts; a second internal management program that is called and executed by the second external management program; 2. The storage device according to claim 1, further comprising:

5. management information including first operation log information corresponding to the first operation, second operation log information corresponding to the second operation, third operation log information corresponding to the execution of the first command by the operation control unit, and fourth operation log information corresponding to the execution of the second command by the operation control unit; 2. The storage device according to claim 1.

6. a rule management unit in which at least one rule is defined in advance regarding a range in which the third operation log information and the fourth operation log information are assumed to match as the predetermined matching condition; The transfer verification unit is Even if the third operation log information does not match the fourth operation log information, it is presumed that the third operation log information matches the fourth operation log information.

6. The storage device according to claim 5.

7. The transfer verification unit is If the first instruction does not satisfy the predetermined matching condition in relation to the second instruction, an error is notified.

2. The storage device according to claim 1.

8. The at least one rule is defined in advance in the rule management unit.

7. The storage device according to claim 6.

9. The rule management unit Manage the first command corresponding to a request of the old program, the second command corresponding to a request of the new program, the first operation corresponding to the first command, and the second operation corresponding to the second command.

7. The storage device according to claim 6.

10. 1. A method for verifying transfer in a storage device, comprising: at least one drive device capable of storing data; and executing an operation of the data on the drive device in response to execution of at least one script, comprising: An old program that is called and executed from a script before replacement among the scripts; a new program that is called and executed from a replaced one of the scripts; an operation control unit that controls a first operation on the drive device in response to executing a first command corresponding to a request of the old program, and controls a second operation on the drive device in response to executing a second command corresponding to a request of the new program; a transfer verification unit that determines that transfer from the pre-replacement script to the post-replacement script has been correctly performed when the first command satisfies a predetermined matching condition in relation to the second command; A method for verifying transfer, comprising:

Citation Information

Patent Citations

  • Mapping rule generation support device and method

    JP2021068067A