Management system and error code management method for storage device
The management system addresses the complexity of error handling in hybrid cloud storage by converting unique error information across different storage device models into a common format, thereby simplifying error handling and reducing costs.
Patent Information
- Application Number
- JP2023194559
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2023-11-15
- Publication Date
- 2025-05-27
AI Technical Summary
In hybrid cloud storage management, the diverse APIs used across different models result in varying error responses, leading to increased complexity and costs for infrastructure administrators due to the need for extensive knowledge and handling of numerous error types.
A management system that converts unique error information from different storage device models into a common error format using correspondence information, facilitating unified error handling and reducing the complexity for API users.
The system reduces the types of error information handled by API users, simplifying error handling and lowering educational and implementation costs in hybrid cloud storage management.
Smart Images

Figure 2025081063000001_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to a management system for a storage device and an error code management method.
Background Art
[0002] In the storage market, the use of so-called hybrid cloud storage, in which on-premises storage equipment owned by customers is used in cooperation with storage services on a public cloud, is increasing.
[0003] In the management of hybrid cloud storage, multiple sites, models, and services are subject to management. At this time, for each model, the APIs (Application Programming Interfaces) used for management operations differ in the functions provided by the APIs, the presence, meaning, and effects of parameters.
[0004] When an infrastructure administrator manages hybrid cloud storage in a unified manner, it is necessary to grasp the specifications of these multiple model APIs, which requires extensive knowledge of storage devices, resulting in high education costs and implementation costs. In particular, the API responses at the time of errors have large differences in specifications for each model and API, and furthermore, the types of errors number in the hundreds or thousands, so error handling is particularly costly.
[0005] As a prior art of a method for uniformly handling errors in different APIs, there is Patent Document 1. The prior art disclosed in Patent Document 1 realizes unified error handling by converting the schema of the API error response into a common schema.
Prior Art Documents
Patent Documents
[0006]
Patent Document 1
Summary of the Invention
Problems to be Solved by the Invention
[0007] However, in the prior art disclosed in Patent Document 1, only by sharing the schema, the content of the error (error code, error message, etc.) is not unified and still remains different among different models.
[0008] The present invention has been made in consideration of the above circumstances, and aims to reduce the types of error information in responses returned by APIs of multiple models and facilitate the handling by API users in hybrid cloud storage management.
Means for Solving the Problems
[0009] According to one aspect of the present invention, there is provided a management system for managing a storage device that provides an API (Application Programming Interface) for operating a plurality of storage devices. The management system includes a processor and a storage unit. The storage unit holds correspondence information indicating a correspondence relationship between unique error information representing error information in a unique format for each model of the storage device and common error information representing error information in a common format among models of the storage device. The processor calls and executes the API on the storage device in response to a call request from a terminal. When the unique error information is responded from the API to the call request, the processor converts the unique error information into the common error information based on the correspondence information and responds the converted common error information to the terminal.
Effects of the Invention
[0010] According to the present invention, in hybrid cloud storage management, the types of error information in responses returned by APIs of multiple models can be reduced, and the handling by API users can be facilitated.
Brief Description of the Drawings
[0011]
Figure 1
Figure 2
Figure 3
Figure 4
Figure 5
Figure 6
Figure 7
Figure 8
Figure 9
Figure 10
Figure 11
Figure 12
Mode for Carrying Out the Invention
[0012] In the following description, "CPU (Central Processing Unit)" is an example of one or more processor devices. At least one processor device is typically not limited to a CPU, but may be other types of processor devices such as a GPU (Graphics Processing Unit). At least one processor device may be single-core or multi-core. At least one processor device may be a processor core.
[0013] At least one processor device may be a circuit that is an aggregate of gate arrays in a hardware description language for performing part or all of the processing. The circuit is a processor device in a broad sense such as, for example, an FPGA (Field-Programmable Gate Array), a CPLD (Complex Programmable Logic Device), or an ASIC (Application Specific Integrated Circuit).
[0014] Also, in the following description, when describing the processing mainly with the "yyy program", in this case, the program is executed by the CPU to realize the processing function of the "yyy functional unit" and becomes the execution entity of the processing. The processing function may be realized by one or more computer programs being executed by a processor, or may be realized by one or more hardware circuits (for example, an FPGA or an ASIC), or may be realized by a combination thereof.
[0015] When the function is realized by the program being executed by the processor, since the defined processing is performed while appropriately using a storage device and / or an interface device, etc., the function may be regarded as at least part of the processor. The processing described with the functional unit as the subject may also be the processing performed by the processor or a device having the processor.
[0016] The program may be installed from a program source. The program source may be, for example, a program distribution computer or a computer-readable recording medium (for example, a non-transitory recording medium). The description of each function is an example, and a plurality of functions may be combined into one function, or one function may be divided into a plurality of functions. The "yyy functional unit" may also be called the "yyy unit".
[0017] Also, in the following description, when describing without distinguishing between elements of the same kind, common reference signs among the reference signs are used, and when describing while distinguishing between elements of the same kind, reference signs may be used.
[0018] [Embodiment 1] (Configuration of Hybrid Cloud Storage System 100 According to Embodiment 1) FIG. 1 is a diagram showing the configuration of a hybrid cloud storage system 100 according to Embodiment 1. The hybrid cloud storage system 100 includes a host API processing computer 110, storage devices 140a (Storage Device A) and 140b (Storage Device B), and an infrastructure administrator 150. The infrastructure administrator 150 manages the storage devices 140a and 140b via the host API processing computer 110.
[0019] The host API processing computer 110 is an example of a management system and is a computer that provides a host API for managing the storage devices 140a and 140b. The host API processing computer 110 has a host API processing unit 120.
[0020] The host API processing unit 120 is a processing unit that provides a host API. It receives a host API call (call request) 160 from the infrastructure administrator 150 and issues a lower-level API call 161 to the storage devices 140a and 140b. The host API processing unit 120 includes an error response conversion unit 121. When the host API is called, the host API processing unit 120 makes a lower-level API call 161 according to the models of the corresponding storage devices 140a and 140b.
[0021] When the lower-level API processing units 141a and 141b of the storage devices 140a and 140b respond with an error response 162, the error response conversion unit 121 uses an error conversion table 131 and error hierarchy structure information 132 to convert it into a host API response 163. The error response 162 is an example of specific error information. The host API response 163 is an example of common error information.
[0022] Then, the error response conversion unit 121 returns the upper-level API response 163 to the infrastructure administrator 150. The proprietary error information is error information (error message) in a proprietary format for each model of the storage device 140. The common error information is error information (error message) in a common format among the models of the storage device 140.
[0023] Note that the infrastructure administrator 150 does not directly communicate with the upper-level API processing computer 110. Actually, the infrastructure administrator 150 calls the upper-level API to the upper-level API processing computer 110 through another computer possessed by the infrastructure administrator 150. However, here, for the sake of convenience, it is expressed that the "infrastructure administrator 150" is the subject of the call.
[0024] The error conversion table creation unit 130 creates an error conversion table 131 and error hierarchy structure information 132. The error conversion table creation unit 130 includes an API execution log 133 and a manual API specification 134. The error conversion table creation unit 130 classifies the error codes specific to each model into an error code group 135 with the same meaning and an error code group 136 having a hierarchical structure using the API execution log 133 and the manual API specification 134. From this classification, the error conversion table 131 and the error hierarchy structure information 132 are created. The error conversion table 131 is an example of correspondence information indicating the correspondence relationship between the proprietary error information and the common error information. The API execution log 133 is an example of a log related to the proprietary error information.
[0025] The storage devices 140a and 140b are computers for storing data. The lower-level API processing units 141a and 141b provide an API for changing the settings of the storage devices 140a and 140b, and perform settings according to the lower-level API call 161. The API execution logs 142a and 142b are lists of the histories of the lower-level API calls called in the past.
[0026] FIG. 1 shows an example in which when the infrastructure administrator 150 instructs the volume expansion of the storage device 140a (storage device A) in the upper-level API call 160, an error response 162 (error code: 1234) is returned from the storage device 140a. In this example, the error response 162 is converted by the error response conversion unit 121 into an upper-level API response 163 "Error>Volume Error>Volume Busy>Volume Locked" (error because the volume is locked).
[0027] Hereinafter, the individual elements and the processing flow constituting the hybrid cloud storage system 100 will be described in detail.
[0028] (Configuration of the upper-level API processing computer 110 according to Embodiment 1) FIG. 2 is a diagram showing the configuration of the upper-level API processing computer 110 according to Embodiment 1.
[0029] The upper-level API processing computer 110 includes a CPU 210, a memory 220, and a network interface 240. The CPU 210 determines the operation of the upper-level API processing computer 110 according to various programs stored in the memory 220. The memory 220 is an example of a storage unit.
[0030] Hereinafter, the expression that a program performs an operation means that the CPU 210 operates according to various programs.
[0031] The memory 220 stores a high-level API processing program 221, an error response conversion program 222, an error conversion table creation program 223, and an identical error group extraction program 224. The memory 220 also stores an error hierarchy determination program 225, an error generation program 226, and a log collection program 227. The memory 220 further stores an error conversion table 232, error hierarchy structure information 233, a manual API specification 234, an API execution log 235, and device configuration information log 236. The error conversion table 232 is an example of correspondence information indicating the correspondence between unique error information and common error information.
[0032] The high-level API processing program 221 is a program that provides a high-level API to the infrastructure administrator 150 and calls a low-level API in response to a high-level API call. The error response conversion program 222 is a program that converts the error information included in the response of the low-level API into common error information of the high-level API while referring to the error conversion table 232 and the error hierarchy structure information 233, and returns it to the caller of the high-level API.
[0033] The error conversion table creation program 223 is a program that creates the error conversion table 232 and the error hierarchy structure information 233.
[0034] The error conversion table creation program 223 internally has an identical error group extraction program 224, an error hierarchy determination program 225, and an error generation program 226. The identical error group extraction program 224 refers to the API execution log 235 or the manual API specification 234 and extracts those having the same meaning among a plurality of different error information. The error hierarchy determination program 225 refers to the manual API specification 234, the API execution log 235, and the device configuration information log 236, determines the hierarchy structure in a plurality of error information, and creates the error hierarchy structure information 233.
[0035] The log collection program 227 is a program that collects the API execution logs and device configuration information logs held by each storage device as the API execution logs 235 and device configuration information logs 236 in the upper-level API processing computer.
[0036] The manual API specification 234 is described in natural language or a structured format regarding the specifications of the lower-level API. The API execution logs 235 are a collection of the API execution logs 142a, 142b held by each storage device 140a, 140b. The device configuration information logs 236 hold the configuration information of the storage device 140 in chronological order. The phrase hierarchy structure dictionary 237 is a dictionary that represents the inclusion relationship of natural language expressions as a hierarchical structure. The phrase hierarchy structure dictionary 237 is used in Embodiment 2.
[0037] The network interface 240 is used when communicating with other computers. For communication, protocols such as TCP / IP (Transmission Control Protocol / Internet Protocol) and HTTP (HyperText Transfer Protocol) built on top of TCP / IP can be used. For example, for receiving upper-level APIs and issuing lower-level APIs, a REST (Representational State Transfer) API using HTTP can be used.
[0038] All the programs and data held by the upper-level API processing computer 110 may not be arranged in a single computer but may be distributed among multiple computers. For example, the upper-level API processing program 221 and the error conversion table creation program 223 may operate on separate computers. In this case, the error conversion table 232 and error hierarchy structure information 233 created by the error conversion table creation program 223 may be copied between computers and used by the upper-level API processing program 221 in other computers.
[0039] The error conversion table 232, the error hierarchy structure information 233, the API execution log 235, the manual API specification 234, and the API execution log 235 may be stored in a location other than the memory 220 and accessible from the programs held by the upper API processing computer 110. For example, they may be stored in a non-volatile storage medium such as a hard disk, SSD (Solid State Drive), or DVD (Digital Versatile Disc), or may be stored in a database constructed on another computer.
[0040] (Configuration of the storage device 140 according to Embodiment 1) FIG. 3 is a diagram showing the configuration of the storage device 140 according to Embodiment 1. The storage device 140 is a device that stores and processes data in accordance with requests from other computers. The behavior of the storage device 140 is changed by the lower-level API.
[0041] The storage device 140 includes a CPU 310, a memory 320, a storage medium 330, a network interface 340, and an external storage interface 350. The CPU 310 determines the operation of the storage device 140 in accordance with various programs stored in the memory 320.
[0042] The memory 320 stores a lower-level API processing program 321, a storage system program 322, a log transmission program 323, an API execution log 324, and a device configuration information log 325.
[0043] The lower-level API processing program 321 is a program that receives calls to the lower-level API and changes the behavior of the storage system program 322 according to the values of the parameters during the call. The storage system program 322 is a program that stores and processes data according to the requests of other computers. The log transmission program 323 is a program that transmits the API execution log 324 and the device configuration information log 325 to the upper-level API processing computer 110. The API execution log 324 is data that holds the execution history of past lower-level API calls, and is data that records pairs of the called API and the responses thereto in chronological order. The device configuration information log 325 is data that records the configuration, settings, and error status of the storage device 140 in chronological order.
[0044] The API execution log 324 and the device configuration information log 325 may be stored in a location other than the memory 320 as long as they are accessible from each program held in the memory 320. For example, they may be stored in a part of the storage medium 330, or may be stored in a database constructed on another computer.
[0045] The storage medium 330 is a device that stores data instructed to be saved from other computers. Examples of the storage medium 330 include non-volatile storage media such as hard disks, SSDs (Solid State Drives), and DVDs (Digital Versatile Discs).
[0046] The network interface 340 is used when communicating with other computers, similar to the network interface 240.
[0047] The external storage interface 350 is used for other computers to issue instructions for data storage and processing and to transmit and receive target data. Examples of the external storage interface 350 include HBAs (Host Bus Adaptors) corresponding to optical fibers and SCSI (Small Computer System Interface) Target Devices.
[0048] (Example of error response of lower-level API according to Embodiment 1) FIG. 4 is a diagram showing an example of an error response of a lower-level API according to Embodiment 1.
[0049] Error codes 410a, 410b, 410c, 410d are information included in the response returned by the lower-level API processing unit 141 at the time of error. It is information returned when the lower-level API processing unit 141 cannot complete an API call due to an abnormality in the storage device 140 or the like.
[0050] Each of error codes 410a, 410b, 410c, 410d includes at least error codes 411a, 411b, 411c, 411d and meanings 412a, 412b, 412c, 412d. Error codes 411a, 411b, 411c, 411d are codes indicating the cause and situation when an API call cannot be completed, and take integer values or character strings. In a single lower-level API, error codes 411a, 411b, 411c, 411d are unique. Meanings 412a, 412b, 412c, 412d are descriptions of the meanings of the errors indicated by error codes 411a, 411b, 411c, 411d in natural language or structured documents (such as HTML, XML).
[0051] Generally, meanings 412a, 412b, 412c, 412d may or may not be included in the error information in the API response. For example, the meanings corresponding to the error codes may be described in the manual of the storage device or the specification document of the API.
[0052] Error codes 410a, 410b, 410c, 410d may have information other than error codes 411a, 411b, 411c, 411d and meanings 412a, 412b, 412c, 412d. For example, supplementary information such as the time, device, location, parameters, etc. when the error occurred may be added.
[0053] (Example of error conversion table according to Embodiment 1) FIG. 5 is a diagram showing an example of an error conversion table according to Embodiment 1.
[0054] The error conversion table 500 is a table that lists, for each error code, as items, the lower-level API type 510, the source error code 511, the destination error code 512, and the meaning 513. The error conversion table 500 describes entries 520, 521, 522, 523, 524 as examples of error codes.
[0055] The lower-level API type 510 stores information that can uniquely identify the type of the lower-level API that each entry targets. This information can be in the form of a string, a numerical value, etc. The source error code 511 stores the error code in the lower-level API corresponding to the lower-level API type 510. Therefore, the format of the source error code 511 varies depending on the type of the lower-level API.
[0056] Entries 520, 521 indicate the lower-level API type corresponding to "StorageX", and the source error code 511 takes an integer value. Entry 522 indicates the lower-level API type corresponding to "StorageY", and the source error code 511 takes an uppercase English word starting with "ER_". Entries 523, 524 indicate the lower-level API type corresponding to "StorageZ", and the source error code 511 takes a format in which a plurality of English words are concatenated.
[0057] The destination error code 512 indicates the common error code that the error response conversion program 222 returns as the return value of the upper-level API when it receives error information corresponding to the lower-level API type 510 and the source error code 511 as the return value of the lower-level API. The meaning 513 stores the meaning of the error code stored in the destination error code 512 in a form that is easy for people and computers, such as natural language or structured documents, to understand.
[0058] In each entry, the combination of the lower-level API type 510 and the source error code 511 appears only once. On the other hand, the destination error codes 512 may match among multiple entries. However, in that case, the meanings 513 must also be the same.
[0059] (Example of error hierarchy structure representation according to Embodiment 1) FIG. 6 is a diagram showing an example of an error hierarchy structure representation according to Embodiment 1.
[0060] The error hierarchy structure example 600 represents all the error codes used in the upper-level API in a single tree structure based on the inclusion relationship of meanings. In the error hierarchy structure example 600, for the error codes 610, 620, 621, 630, 631, 640, 641, 650, 651, the inclusion relationship is shown by connecting arrows from the upper-level errors to the lower-level errors.
[0061] For example, the error code 610 (Error: General error) includes the error codes 620 (StorageError: Error of storage device), 621 (NetworkError: Network error), etc. The error code 620 (StorageError: Error of storage device) includes the error codes 630 (VolumeError: Volume error), 631 (ControllerError: Storage controller error), etc. The error code 630 (VolumeError: Volume error) includes the error codes 640 (VolumeBusy: Volume is in use), 641 (VolumeSizeError: Error related to volume size), etc. The error code 640 (VolumeBusy: Volume is in use) includes the error codes 650 (VolumeBlockade: Volume is blocked), 651 (VolumeLocked: Volume is locked), etc.
[0062] (Error conversion table and hierarchy structure creation process according to Embodiment 1) FIG. 7 is a flowchart showing the error conversion table and hierarchy structure creation process according to Embodiment 1.
[0063] The error conversion table and hierarchy creation flow 700 is a flow executed by the error conversion table creation program 223 of the upper API processing computer 110. The error conversion table and hierarchy creation flow 700 can be executed at any timing. It may be executed before the upper API processing computer 110 starts accepting the upper API by the upper API processing program 221, or may be executed while the upper API processing program 221 is operating. As an example of executing the error conversion table and hierarchy creation flow 700 while the upper API processing program 221 is operating, there are cases where the types of storage devices 140 handled by the upper API processing program 221 increase, or the specifications of the lower API are changed.
[0064] First, in step S710, the error generation program 226 makes calls to the lower API that cause the same error for a plurality of storage devices 140. For example, specifying a character string with a length not allowed by the lower API as a parameter, specifying a capacity exceeding the capacity of the storage medium 330 of the storage device 140 as a parameter, and the like. The error generation program 226 may perform operations other than those on the storage device 140 and cause an error.
[0065] For example, the network settings of the hybrid cloud storage system 100 may be changed so that the network interface 340 of the storage device 140 does not operate normally, and a lower API that operates the network interface 340 may be called. In step S710, record in the API execution log 235 both what error occurred and the execution log of the lower API call, so that the error that occurred can be compared with the error information returned by the lower API. Note that step S710 may be cancelled.
[0066] Next, in step S720, the error conversion table creation program 223 communicates with the log transmission program 323 of the storage device 140, collects the API execution logs 324 of each storage device 140, and aggregates them as the API execution logs 235 of the upper-level API processing computer 110. The API execution logs collected in step S720 may be the logs of the lower-level API calls called in step S710, or the logs of the lower-level API calls separately called during the operation of the storage device 140.
[0067] Next, in steps S730, S740, and S750, the same error group extraction program 224 generates the error conversion table 232. Also, in steps S760, S770, and S780, the error hierarchy determination program 225 generates the error hierarchy structure information 233. The generation of the error conversion table 232 and the error hierarchy structure information 233 can be performed in parallel.
[0068] In step S730, the same error group extraction program 224 classifies the error codes using the logs of each lower-level API included in the API execution log 235, so that error codes with the same meaning are in the same classification. Also, the same error group extraction program 224 assigns a common error code to the error code group with the same meaning. For example, error codes 410a and 410c both indicate that the volume is blocked with meanings 412a and 412c, respectively, and are made to be in the same classification. Also, "VolumeBlockade" indicating the blockade of the volume is assigned as the common error code. This classification enables the acquisition of error information in combination with the errors that occurred in the API execution log 235 if it is the lower-level API call performed in step S710, so that the error codes included in the error information group with the same occurred error can be in the same classification.
[0069] For the lower-level API calls made in processes other than step S710, the API execution log 324 and the device configuration information log 325 may be compared and classified. For example, assume that there is a record in the device configuration information log 325 indicating that the volume was blocked, and there is a record in the API execution log 324 that error information was returned for a lower-level API call that operates the volume before and after that. In this case, it can be determined that the error code in the error information is related to the volume blockage.
[0070] Next, in step S740, the same error group extraction program 224 generates a description of the meaning for the common error code determined in step S730. The "description of the meaning of the common error code" can be generated by extracting the explanatory text regarding the error code of the lower-level API to which the common error code is assigned, using the manual API specification 234. Alternatively, when the error message is included in the error information, it can be generated by extracting the error message corresponding to the error code of the lower-level API. The manual API specification 234 is an example of a specific document. The "explanatory text regarding the error code of the lower-level API" is an example of the "string related to the unique error information for each storage device".
[0071] Next, in step S750, the same error group extraction program 224 outputs the error conversion table 500 based on the contents of steps S730 and S740. The error conversion table 500 is an example of the correspondence information indicating the correspondence between the unique error information and the common error information.
[0072] When the error conversion table creation program 223 outputs each entry of the error conversion table 500, it stores the type of the lower-level API in the lower-level API type 510 and the error code of the lower-level API in the source error code for conversion 511. Also, the error conversion table creation program 223 stores the common error code assigned in step S730 corresponding to the lower-level API type 510 and the source error code for conversion 511 in the destination error code 512. Further, the error conversion table creation program 223 stores the text extracted in step S740 corresponding to the common error code in the meaning 513.
[0073] For example, entry 520 shows the output when, in step S730, the common error code "VolumeLocked" is assigned to the error code "1234" in the lower-level API of the model corresponding to "StorageX". Also, entry 520 shows the output when, in step S740, it is found that the meaning of the error code "1234" is "the volume is locked".
[0074] On the other hand, in step S760, the error hierarchy determination program 225 checks the API execution log 324 and extracts cases where the same error code is returned for different errors. This is done by comparing the error codes between the lower-level APIs. For example, in the model corresponding to "StorageX", two error codes, 411c and 411d, are responded for two errors, and in the model corresponding to "StorageZ", the same error code, 411b, is responded for both errors. At this time, the error code 411b corresponds to the case where the same error code is responded for different errors.
[0075] Next, in step S770, the error hierarchy determination program 225 formulates an inclusion relationship from the group of error codes extracted in step S760. Since the error code 411b is the error code used in both of the two errors for which the error codes 411c and 411d are responded in other models, it can be determined that the error code 411b includes the error codes 411c and 411d. Actually, the meaning of "the volume is busy" for 412b includes the meanings of "the volume is blocked" for 412c and "the volume is locked" for 412c. This inclusion relationship between the errors may form a hierarchical structure with multiple inclusion relationships.
[0076] Next, in step S780, the error hierarchy determination program 225 outputs the inclusion relationship formulated in step S770 as the error hierarchy structure information 600.
[0077] (API Call and Error Response Conversion Process According to Embodiment 1) FIG. 8 is a flowchart showing API call and error response conversion processing according to Embodiment 1. The API call and error response conversion flow 800 shows the flow from when the upper-level API is called by the infrastructure administrator 150 until the response is obtained.
[0078] First, in step S810, the infrastructure administrator 150 makes an upper-level API call to the upper-level API processing computer 110. Next, in step S820, the upper-level API processing program 221 of the upper-level API processing computer 110 receives the upper-level API call.
[0079] Next, in step S830, the upper-level API processing program 221 converts it into a lower-level API call according to the model of the storage device at the call destination and sends the lower-level API call to the storage device 140. Next, in step S840, the storage device 140 performs processing (such as changing the configuration information of the storage device) according to the lower-level API call. If an error occurs during that time, the lower-level API processing program 321 responds with error information to the lower-level API call.
[0080] Next, in step S850, the upper-level API processing program 221 converts the error information of the lower-level API call responded from the lower-level API processing program 321. Specifically, the upper-level API processing program 221 searches for an entry in the error conversion table 232 where the lower-level API type called by the upper-level API processing program 221 and the error code in the error information match the lower-level API type 510 and the source error code 511. Then, the error code in the error information is converted into the destination error code 512, and further, the meaning 513 is assigned to the error information.
[0081] For example, consider the case where the lower-level API type is "StorageX" and the error code is "1234". In this case, since the lower-level API type 510 and the source error code 511 of the entry 520 match, the error code of the error information is converted to "VolumeLocked", and the meaning "The volume is locked" is assigned.
[0082] Next, in step S860, the upper API processing program 221 refers to the error hierarchy structure information 233, assigns the common error code of the upper hierarchy in the error information as the common error code, and responds. Also, with reference to the error conversion table 232, the meaning corresponding to the common error code of the upper hierarchy may be assigned.
[0083] For example, when the error code of the error information is "VolumeLocked", according to the error hierarchy structure information example 500, the error code 651 (VolumeLocked) has the error codes 640, 630, 620, and 610 above it. Therefore, the error code "Error>StorageError>VolumeError>VolumeBusy>VolumeLocked" obtained by arranging each error code in order can be assigned to the error information.
[0084] Next, in step S870, the infrastructure administrator 150 receives the response of the upper API processing program 221 in step S860. When step S870 ends, the API call / error response conversion flow 800 ends.
[0085] According to this embodiment, since the upper API processing unit 120 converts the error code to be responded, there are two advantages for the infrastructure administrator 150. The first is that the error codes in multiple storage models are converted into a single common error code, so that the types of error codes responded to the infrastructure administrator 150 are reduced. As a result, when the infrastructure administrator 150 considers the response to the error code, the effort is reduced.
[0086] Second, since the upper API processing unit 120 responds with the hierarchy of error codes, the infrastructure administrator 150 can determine whether to consider detailed error codes individually. When the infrastructure administrator 150 wants to analyze the cause of an error in detail and resolve it, they can check the most detailed error code at the lowest level. On the other hand, when only a general error (e.g., whether it is a hardware failure or a parameter problem) needs to be grasped, checking the error code at the upper level is sufficient, and the number of error codes to be considered is reduced.
[0087] [Embodiment 2] In Embodiment 2, a method different from that in Embodiment 1 is shown for creating the error conversion table 232 and the error hierarchy structure information 233.
[0088] (Conversion Table and Hierarchy Structure Creation Process According to Embodiment 2) FIG. 9 is a flowchart showing the conversion table and hierarchy structure creation process according to Embodiment 2.
[0089] The error conversion table and hierarchy structure creation flow 900 is a flow in which step S730 in the error conversion table and hierarchy structure creation flow 700 is replaced with step S930, and steps S760 to S770 are replaced with steps S960, S965, and S970. Hereinafter, only the differences between the error conversion table and hierarchy structure creation flow 900 and the error conversion table and hierarchy structure creation flow 700 will be described.
[0090] In step S930, the same error group extraction program 224 classifies the error codes in the same way as in step S730 so that error codes with the same meaning fall into the same classification. Also, a common error code is assigned to the group of error codes with the same meaning. However, the classification method is different from that in step S730.
[0091] That is, in step S930, the meanings 412a, 412b, 412c, and 412d of the error codes are used. The same error group extraction program 224 refers to the manual API specification 234 or the error information and lists all pairs of error codes and meanings. Among these pairs of error codes and meanings, those with similar meanings are assigned a common error code as the same classification.
[0092] For example, the meaning 412a of error code 410a, "Volume is blocked", and the meaning 412c of error code 410c, "Volume is being blocked", are partly different as strings but have the same meaning, and a shared error code can be assigned. For the determination of semantic similarity, common methods in natural language processing can be applied. As an example, there is a method of evaluating the number of matching characters in the meaning by scores such as the edit distance or BLEU (BiLingual Evaluation Understudy). In another example, a thesaurus can be prepared in advance, and meanings containing terms that are synonyms of each other may be judged to have the same meaning. In yet another example, words or sentences describing the meaning can be replaced with distributed representations, and the similarity between the distributed representations can be calculated.
[0093] In step S960 of the error conversion table - hierarchical structure creation flow 900, the error hierarchy determination program 225 creates a phrase - hierarchical structure dictionary 237.
[0094] The phrase - hierarchical structure dictionary 237 created in step S960 may use those widely used in academic fields etc. (e.g., https: / / wordnet.princeton.edu / ) or may be created by the creator of the upper - level API. As shown by phrases 1040, 1050, 1051, the inclusion relationship of phrases may hold only for specific objects, and such an inclusion relationship may be created by someone with knowledge of storage devices.
[0095] Next, in step S965, the error hierarchy determination program 225 extracts the description of the error code of the lower-level API from the manual API specification 234. Alternatively, the error hierarchy determination program 225 obtains, for example, a description of the meaning of the error code in natural language from the error message included in the error information.
[0096] Next, in step S970, the error hierarchy determination program 225 collates the phrases in the meaning of the above-described error code with the phrase hierarchy structure dictionary 237. Then, the error hierarchy determination program 225 defines an error code group using phrases that are in a hierarchical relationship as an error code having an inclusion relationship equivalent to the inclusion relationship of the phrases. For example, the error code 410b has the meaning 412b (volume is busy). Busy corresponds to the phrase 1020 in the phrase hierarchy structure dictionary example 1000 and includes the phrases 1030 (blocked) and 1031 (locked). Therefore, it can be determined that the error codes 410c and 410d having the meanings 412c (volume is blocked) or 412d (volume is locked) are included in the error code 410b.
[0097] (Effect of Embodiment 2) According to this embodiment, an error conversion table and error hierarchy structure information can be created from the manual, API specification, and error information, and the same effects as those of Embodiment 1 can be obtained.
[0098] (Modification Example of Embodiment 2) The procedure for creating the error conversion table and error hierarchy structure information of this embodiment can be executed independently of Embodiment 1. Therefore, it is also possible to combine the error conversion table and error hierarchy structure information created in Embodiment 1 and this embodiment to create higher-quality error conversion table and error hierarchy structure information. For example, when it is not possible to create an error conversion table or error hierarchy structure information by one of the methods of Embodiment 1 or 2, it is conceivable to create it by the other method.
[0099] For example, in Embodiment 1, error codes that are difficult to occur on the actual machine (e.g., errors with difficult occurrence conditions that occur only at specific timings, errors that require physical failures of the device, etc.) cannot be covered, but since Embodiment 2 does not involve actual machine operations, it can be covered. Conversely, since the terms used vary for each model, there may be cases where Embodiment 1 can handle error codes for which synonym determination cannot be correctly performed in Embodiment 2.
[0100] Furthermore, when the products of Embodiment 1 and Embodiment 2 are at least partially different, it is also conceivable to use one of the more suitable products according to some criteria. For example, a person with knowledge of storage compares the products of the two embodiments and incorporates the product that feels natural.
[0101] That is, based on the error conversion table 232 created in Embodiment 1 and / or Embodiment 2, the unique error information can be converted into common error information. Also, based on the error hierarchy structure information 233 created in Embodiment 1 and / or Embodiment 2, for the common error information obtained by converting the unique error information, common error information at a higher hierarchy of the common error information can be added and a response can be made to the terminal of the infrastructure manager 150. By doing so, the accuracy of the information in the error conversion table 232 and the error hierarchy structure information 233 can be further improved, and thus the conversion accuracy from unique error information to common error information and the information accuracy of the added common error information at a higher hierarchy can be improved.
[0102] (Example of the phrase hierarchy structure dictionary 237 for error message terms according to Embodiment 2) FIG. 10 is a diagram showing an example of the phrase hierarchy structure dictionary 237 for error message terms according to Embodiment 2. In the phrase hierarchy structure dictionary example 1000, phrases 1010, 1020, 1030, 1031, 1032, 1040, 1050, and 1051 are described.
[0103] The inclusion relationship of the frames corresponding to each statement indicates the inclusion relationship of the meanings of the statements. Also, this inclusion relationship has a hierarchical structure. Statement 1020 (busy) and statement 1040 (illegal) are part of statement 1010 (abnormal), and statements 1030 (blocked), 1031 (locked), 1032 (in use for multiple purposes) are part of statement 1020 (busy). Also, statements 1030 (blocked), 1031 (locked), 1032 (in use for multiple purposes) are part of statement 1020 (busy). There may be a hierarchical structure that is only valid for a specific target. Statements 1050 (unspecified), 1051 (out of range) are part of statement 1040 (illegal), but this inclusion relationship holds only when each statement is used for a parameter.
[0104] [Embodiment 3] In Embodiments 1 and 2, the error codes were classified as a hierarchical structure, but other classification methods may be used. As another classification method, there is a method of attaching tags to error codes according to the meaning of the error codes. Tags are words or phrases that express the location or cause where an error occurred. Even if the infrastructure administrator 150 does not understand the meanings of a large number of error codes, the administrator can grasp the outline of the error based on the tags attached to the error codes. For example, meaning 412c (volume is blocked) indicates that there is an abnormality in the volume and its content is blocked. Therefore, tags such as "volume" and "blocked" can be attached to error code 410c. Similarly, tags such as "volume" and "busy" can be attached to error code 410b, and tags such as "volume" and "locked" can be attached to error code 410d.
[0105] In this embodiment, in step S860 of the API call / error response conversion flow 800 (FIG. 8), instead of assigning a higher-level error code, tags corresponding to the error information are assigned and responded.
[0106] (Error conversion table / tag information assignment process according to Embodiment 3) FIG. 11 is a flowchart showing the error conversion table / tag information assignment process according to Embodiment 3.
[0107] Among the error conversion table and tag information addition flow 1100, the steps related to creating the error conversion table 500 are equivalent to those in the error conversion table and hierarchical structure creation flow 900 in Embodiment 2. In this embodiment, steps S1110, S1120, and S1130, which are processes specific to the error conversion table and tag information addition flow 1100, will be described.
[0108] In step S1110, the error hierarchy determination program 225 extracts terms or expressions with high occurrence frequencies from the meaning of the error codes expressed in natural language obtained in step S965 and uses these as tags. As this procedure, for example, the sentences indicating the meaning of the error codes can be morphologically analyzed to count the occurrence frequencies, and nouns and adjectives with high frequencies can be extracted. As a result, the terms "volume", "blocked", "busy", and "locked" mentioned above become tags.
[0109] Next, in step S1120, for each error code, if there are terms serving as tags or their synonyms in the explanatory text of the error code, the error hierarchy determination program 225 assigns tags to the error codes.
[0110] Following step S740 or S1120, in step S1130, the same error group extraction program 224 outputs the error conversion table 500. In this embodiment, in addition to the content of the error conversion table 500 in Embodiments 1 and 2, the tag information assigned in step S1120 is added to the error conversion table 500.
[0111] (API Call and Error Response Conversion Processing According to Embodiment 3) FIG. 12 is a flowchart showing the API call and error response conversion processing according to Embodiment 3.
[0112] The API call and error response conversion flow 1200 executes step S1210 instead of steps S850 and S860 in the API call and error response conversion flow 800.
[0113] In step S1210, the upper-layer API processing program 221 converts the error information of the responded lower-layer API call. At this time, tag information corresponding to the error code created in step S1120 is added to the converted error information.
[0114] In this embodiment, the infrastructure administrator 150 can grasp a general error classification such as "volume" and "blocked" by referring to the tags of the error information during the response of the upper-layer API. It is expected that the types of these tags are fewer than the number of error codes, and the number of error codes that the infrastructure administrator needs to consider is reduced.
[0115] As described above, the embodiments according to the present disclosure have been described in detail. However, the present disclosure is not limited to the above-described embodiments, and various modifications can be made without departing from the gist thereof. For example, the above-described embodiments have been described in detail for easy understanding of the present invention, and are not necessarily limited to those having all the configurations described. Also, for a part of the configurations of the above-described embodiments, addition, deletion, or replacement with other configurations is possible.
[0116] Also, each of the above-described configurations, functional units, processing units, etc. may be realized in hardware by designing a part or all of them, for example, in an integrated circuit. Also, each of the above-described configurations, functions, etc. may be realized in software by a processor interpreting and executing a program for realizing each function. Information such as a program, table, file, etc. for realizing each function can be placed in a storage device such as a memory, HDD, SSD, an IC card, an SD card, a recording medium such as a DVD.
[0117] Also, in each of the above-described figures, control lines and information lines show those considered necessary for explanation, and do not necessarily show all the control lines and information lines in implementation. For example, it may be considered that almost all the configurations are actually connected to each other.
[0118] Also, the above-described processing functions and data arrangement forms are merely examples. The processing functions and data arrangement forms can be changed to an optimal arrangement form from viewpoints such as the performance of hardware and software, processing efficiency, communication efficiency, etc.
Description of Signs
[0119] 100: Hybrid cloud storage system, 110: Upper API processing computer, 210: CPU, 220: Memory, 232: Error conversion table, 233: Error hierarchy structure information, 235: API execution log, 236: Device configuration information log, 237: Phrase hierarchy structure dictionary, 310: CPU, 320: Memory, 324: API execution log, 325: Device configuration information log, 500: Error conversion table.
Claims
1. A storage device management system that provides an API (Application Programming Interface) for operating a plurality of storage devices, wherein the management system has a processor and a storage unit, and the storage unit holds correspondence information indicating a correspondence relationship between unique error information representing error information in a unique format for each model of the storage device and common error information representing error information in a common format among models of the storage device, and the processor calls and executes the API on the storage device in response to a call request from a terminal, when the unique error information is responded from the API to the call request, converts the unique error information into the common error information based on the correspondence information, and responds the converted common error information to the terminal A management system characterized by the above.
2. The management system according to claim 1, wherein the processor saves a log related to the unique error information responded from the API to the call request in the storage unit, extracts the unique error information for each of the plurality of storage devices responded from the API to the same call request from the log, and generates the correspondence information by associating the same common error information with the extracted unique error information for each of the storage devices A management system characterized by the above.
3. The management system according to claim 1, wherein the processor extracts the meaning of the common error information from a character string related to the unique error information for each of the storage devices in a specific document, and generates the correspondence information by associating the extracted meaning with the unique error information A management system characterized by the above.
4. The management system according to claim 1, wherein the processor performs natural language processing on a character string related to the unique error information in a specific document to determine the similarity of the meaning of the unique error information, and generates the correspondence information by associating the same common error information with a plurality of the unique error information whose meanings are similar A management system characterized by the above.
5. The management system according to claim 1, wherein the storage unit holds hierarchical structure information representing a hierarchical structure of the common error information, and the processor Based on the hierarchical structure information, for the common error information obtained by converting the specific error information, add the common error information at the upper layer of the common error information and respond to the terminal. A management system characterized by the above.
6. The management system according to claim 5, wherein the processor saves the log related to the specific error information responded from the API for the call request in the storage unit, extracts a plurality of the specific error information for each of the plurality of storage devices responded from the API for a plurality of the call requests from the log, identifies an inclusion relationship in which one piece of the specific error information includes the other piece of the specific error information based on the plurality of the extracted specific error information, generates the hierarchical structure information based on the hierarchical structure of the specific error information based on the inclusion relationship. A management system characterized by the above.
7. The management system according to claim 6, wherein the processor extracts the meaning of a plurality of the specific error information extracted from the log, identifies an inclusion relationship in which one piece of the specific error information includes the other piece of the specific error information based on the extracted meaning, generates the hierarchical structure information based on the hierarchical structure of the specific error information based on the inclusion relationship. A management system characterized by the above.
8. The management system according to claim 1, wherein the processor extracts the meaning of a plurality of the specific error information responded from the API for a plurality of the call requests for the plurality of storage devices, creates tag information from the parts of speech with high appearance frequencies in the meaning, adds the tag information to the common error information obtained by converting the specific error information and responds to the terminal. A management system characterized by the above.
9. The management system according to claim 1, wherein the processor saves the log related to the specific error information responded from the API for the call request in the storage unit, extracts the specific error information for each of the plurality of storage devices responded from the API for the same call request from the log, and associates the same common error information with the extracted specific error information for each of the storage devices to generate first correspondence information as the correspondence information. Natural language process the string related to the specific error information in a specific document to extract the meaning of the specific error information, determine the similarity of the meaning, and associate the same common error information with a plurality of the specific error information with similar meanings to generate second correspondence information as the correspondence information. Based on the first correspondence information and the second correspondence information, convert the specific error information into the common error information. A management system characterized by the above.
10. The management system according to claim 5, wherein The processor Stores in the storage unit the log related to the specific error information responded from the API to the call request. Extracts a plurality of the specific error information for each of the plurality of storage devices responded from the API of the plurality of storage devices for a plurality of the call requests from the log, determines an inclusion relationship in which one piece of the specific error information includes the other piece of the specific error information based on the extracted plurality of the specific error information, and generates first hierarchical structure information as the hierarchical structure information based on the hierarchical structure of the specific error information based on the inclusion relationship. Natural language process the string related to the specific error information for each of the plurality of storage devices responded from the API of the plurality of storage devices for a plurality of the call requests to extract the meaning of the specific error information, determines an inclusion relationship in which one piece of the specific error information includes the other piece of the specific error information based on the similarity of the meaning, and generates second hierarchical structure information as the hierarchical structure information based on the hierarchical structure of the specific error information based on the inclusion relationship. Based on the first hierarchical structure information and the second hierarchical structure information, assign the common error information at the upper hierarchy of the common error information to the common error information obtained by converting the specific error information and respond to the terminal. A management system characterized by the above.
11. An error code management method for a storage device executed by a management system of a storage device that provides an API (Application Programming Interface) for operating a plurality of storage devices, wherein The management system includes a processor and a storage unit. The storage unit Holds correspondence information indicating a correspondence relationship between specific error information representing error information in a specific format for each model of the storage device and common error information representing error information in a common format between models of the storage device. The processor calls and executes the API on the storage device in response to a call request from the terminal, when the unique error information is responded from the API to the call request, converts the unique error information into the common error information based on the corresponding information, and responds the converted common error information to the terminal An error code management method characterized by having each process.
Citation Information
Patent Citations
Error handling in a cloud based hybrid application integration
US10558514B2