Storage system and command execution method
The integration of GUI and CUI operation units with data conversion and splitting mechanisms enhances command input and execution reliability and efficiency in storage systems.
Patent Information
- Application Number
- JP2024067710
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-04-18
- Publication Date
- 2025-10-30
AI Technical Summary
Existing storage systems with both GUI and CUI operation units require separate software installations, leading to poor operability.
A storage system with integrated GUI and CUI operation units, including a conversion processing unit to convert text input into a specific format, and a division processing unit to split data if it exceeds a threshold size, ensuring reliable and accurate command execution.
Improves operability by allowing seamless command input and execution, even with long commands, without data garbling, and optimizes resource allocation.
Smart Images

Figure 2025164006000001_ABST
Abstract
Description
[Technical Field]
[0001] The present invention is suitable for application to a storage system and a command execution method relating to a technique for improving operability when entering a command. [Background technology]
[0002] In an information processing system, in order to execute a command for a certain operation, there is an operation unit (hereinafter referred to as a "first operation unit") that uses a so-called GUI (Graphical User Interface) to input a command by operating a graphically displayed object using, for example, a browser, as well as an operation unit (hereinafter referred to as a "second operation unit") that uses a CUI (Character User Interface) to input a command by text. There is provided an information processing system that simultaneously provides a first operation unit and a second operation unit, and links these operation units to complement the input of a command or display the corresponding command execution result (for example, see Patent Document 1 and Patent Document 2). [Prior art documents] [Patent documents]
[0003] [Patent Document 1] Japanese Patent Application Laid-Open No. 2007-114935 [Patent Document 2] Japanese Patent Application Laid-Open No. 2010-43924 Summary of the Invention [Problem to be solved by the invention]
[0004] However, in the technologies described in Patent Documents 1 and 2, the first operation unit using a GUI and the second operation unit using a CUI are independent of each other, so it is necessary to install and start the software that provides these operation units on a computer, which results in poor operability.
[0005] The present invention has been made in consideration of the above points, and aims to propose a storage system and a command execution method that improves the operability for inputting commands and can reliably and accurately execute input commands. [Means for solving the problem]
[0006] In order to solve this problem, the present invention provides a storage system comprising a drive device for storing data, a controller for controlling the drive device, and a control device for issuing commands to the controller for controlling the drive device, wherein the control device comprises a first operation unit for accepting the commands via a graphic user interface, and a second operation unit integrated with the graphic user interface for accepting the commands by text input, the second operation unit comprising a conversion processing unit for converting the character string of the input command into data in a specific base to produce data in a specific format, and a division processing unit for determining whether the data in the specific format exceeds a predetermined threshold size, and if it is determined that the data in the specific format exceeds the predetermined threshold size, dividing the data in the specific format into a plurality of unit data of the specific format each having a predetermined size, and the controller comprises a command processing unit for restoring the command from a plurality of unit data of the specific format.
[0007] Furthermore, in the present invention, a command execution method in a storage system comprising a drive device for storing data, a controller for controlling the drive device, and a control device for issuing commands to the controller for controlling the drive device, includes a command receiving step in the control device, using a first operation unit to enable the command to be accepted through a graphic user interface, and using a second operation unit to enable the command to be accepted by text data input using the graphic user interface while integrating with the first operation unit; a conversion step in which a conversion processing unit converts the character string of the input command into data in a specific base to generate data in a specific format; a division step in which a division processing unit determines whether the data in the specific format exceeds a predetermined threshold size, and if it is determined that the data in the specific format exceeds the predetermined threshold size, divides the data in the specific format into a plurality of unit data of the specific format each having a predetermined size; and a restoration step in which a command processing unit in the controller restores the command from the plurality of unit data of the specific format. [Effects of the Invention]
[0008] According to the present invention, the operability for inputting commands is improved, and the input commands can be executed reliably and accurately. [Brief explanation of the drawings]
[0009] [Figure 1] 1 is a system configuration diagram showing an example of the configuration of a storage system according to an embodiment of the present invention. [Figure 2] FIG. 2 is a block diagram showing an example of the configuration of a command console shown in FIG. [Figure 3] FIG. 10 is a diagram illustrating an example of processing contents of a conversion processing unit of the command console. [Figure 4] 2 is a block diagram showing an example of the configuration of a web adapter shown in FIG. 1. FIG. [Figure 5]10 is a timing chart showing an example of a command execution method of the storage system according to the embodiment. DETAILED DESCRIPTION OF THE INVENTION
[0010] Hereinafter, an embodiment of the present invention will be described in detail with reference to the drawings. (1. Storage system configuration) Fig. 1 is a system configuration diagram showing an example of the configuration of a storage system 1 according to this embodiment. Fig. 2 is a block diagram showing an example of the configuration of the command console 202 shown in Fig. 1. Fig. 3 is a diagram showing an example of the processing content of the conversion processing unit 202A of the command console 202. Fig. 4 is a block diagram showing an example of the configuration of the web adapter 112 shown in Fig. 1. Note that the arrows shown in each diagram are examples of the flow of commands and data, and commands and data may be exchanged in a direction different from that shown by the arrow.
[0011] The storage system 1 includes a storage device 100 and a client computer 200. As shown in Fig. 1, the storage system 1 includes the storage device 100 having a drive device 141 that stores data and a disk controller (hereinafter abbreviated as "controller", but may also be referred to as "DKC") 103 that controls reading and writing of data from and to the drive device 141, and a client computer (hereinafter abbreviated as "client") 200 as an example of a control device that issues commands to control the storage device 100. The controller 103 is a device configured from a group of components with various functions, such as a control device for the drive device 141, a processor, a cooling fan, and a power supply. The client 200 and the storage device 100 are connected to a communication network, for example, the Internet.
[0012] The controller 103 is a device for controlling and managing the storage apparatus 100, and comprises a first controller 101-1 (corresponding to "CTL1" in the figure) and a second controller 101-2 (corresponding to "CTL2" in the figure). When one of the first controller 101-1 and the second controller 101-2 is blocked, the other controller executes its function instead. Since the first controller 101-1 and the second controller 101-2 have similar configurations and functions, only the first controller 101-1 will be described below. Note that in the illustrated example, the detailed configuration of the second controller 101-2 is omitted from the illustration.
[0013] For example, a browser using a GUI (Graphical User Interface) is running on the client 200. The client 200 is operable on a browser 220 and includes a GUI operation unit 201 and a command console 202. That is, both the GUI operation unit 201 and the command console 202 are started on the browser 220 using the GUI. The client 200 executes the functions of the browser 220 by loading corresponding programs using a built-in processor (not shown).
[0014] The GUI operation unit 201 is an example of a first operation unit and accepts commands via a GUI. The command console 202 is an example of a second operation unit and, as a management user interface, is integrated with the GUI operation unit 201 using a GUI, and accepts commands by inputting text data from an input device (not shown) such as a keyboard, mouse, card reader, or touch panel. Details of the command console 202 will be described later.
[0015] The first controller 101-1 includes an SMC (Storage Management Controller) 102-1. The SMC 102-1 is a processor for running management software, which will be described later. The SMC 102-1 includes an ESM (Embedded Storage Manager) 110, which is the main body of the management software. The ESM 110 includes a relay server 111, a web adapter 112, an SSH server 113, various management tools 114, and a drive manager 115. The SMC 101A executes the functions of the management software by loading the corresponding programs.
[0016] The relay server 111 is an example of a relay unit, and relays data between the command console 202 and the web adapter 112. That is, the relay server 111 relays data communication using, for example, WSS (WebSocket over SSL / TLS) as a protocol between the relay server 111 and the command console 202 of the browser 220 of the client 200. The relay server 111 relays data between the relay server 111 and the web adapter 112 using, for example, WebSocket communication.
[0017] In this embodiment, the command console 202 and the storage device 100 perform data communication using, for example, WSS as a protocol.
[0018] The web adapter 112 exchanges data and commands with the SSH server 113, for example, via an SSH (Secure Shell) connection. The web adapter 112 has a conversion processing unit 112A and a division processing unit 112B, as shown in Fig. 4. The conversion processing unit 112A and the division processing unit 112B will be described in detail later.
[0019] The relay server 111 relays data communication between the GUI operation unit 201 of the client 200 and various management tools 114 using, for example, HTTP (Hypertext Transfer Protocol) / HTTPS (Hypertext Transfer Protocol Secure) as a protocol.
[0020] As shown in FIG. 2, the command console 202 described above includes a conversion processor 202A and a division processor 202B. When a command is input from the client 200 to the storage device 100, the conversion processor 202A converts (HEX-encodes) the input command character string (e.g., "ABC") into hexadecimal data, which is an example of a specific base system, as shown in FIG. 3, and sets the hexadecimal data (e.g., "414243") as a value in JSON (JavaScript (registered trademark) Object Notation) format, which is an example of a specific format. The JSON-format command data (message) at the time of input can be, for example, {type: "stdin", value, "414243"}}. Note that the JSON format is just one example. The command console 202 recognizes command data as UTF (Unicode Transformation Format)-8 and performs data communication with the storage device 100. However, the input command character string is transmitted as hexadecimal data due to the JSON-format command data described above.
[0021] Splitting processing unit 202B determines whether the JSON format command data exceeds a predetermined threshold size (for example, 8192 bytes). If splitting processing unit 202B determines that the JSON format command data exceeds the predetermined threshold size (for example, 8192 bytes), splitting processing unit 202B splits the JSON format command data into JSON format unit command data of the predetermined size (for example, 8192 bytes) and transmits the split data to web adapter 112 via relay server 111. In other words, the input command character string is converted into hexadecimal data and splits it so that the multiple JSON format command data to be generated are each within the predetermined size, and JSON format unit command data is generated for each of the split data.
[0022] If it is determined that the JSON format command data does not exceed the predetermined threshold size, the division processing unit 202B transmits the JSON format command data as is to the web adapter 112 via the relay server 111 without dividing it.
[0023] When outputting result data from the storage apparatus 100 to the client 200, the conversion processor 202A converts the JSON-formatted command data, including hexadecimal-converted command execution result data specified as the value of the JSON-formatted Value (hereinafter referred to as "JSON-formatted result data"), into the UTF-16 character code. The command console 202 displays the results based on the JSON-formatted result data on a display device (not shown), for example, using the browser 220. The division processor 202B also restores JSON-formatted result data from multiple pieces of JSON-formatted command execution result data, or receives JSON-formatted result data as is.
[0024] The web adapter 112 is an example of a command processing unit, and includes a conversion processing unit 112A and a division processing unit 112B as shown in FIG.
[0025] When a command is input from client 200 to storage device 100, conversion processing unit 112A converts JSON format result data in JSON format command data received from relay server 11 into byte string data and sends it to SSH server 113. For example, as shown in Fig. 3, conversion processing unit 112A converts hexadecimal data (e.g., "414243") converted by conversion processing unit 202A of command console 202 into a byte string data format (e.g., "41 42 43") and outputs it to SSH server 113. Furthermore, division processing unit 202B restores JSON format result data from a plurality of JSON format unit command data, or receives JSON format command data as is.
[0026] When outputting result data from the storage device 100 to the client 200, the conversion processing unit 112A generates command result data character strings received from the SSH server 113 decoded into a specific base (for example, hexadecimal), and further generates JSON-formatted command data including this as JSON-formatted result data. The division processing unit 112B also determines whether the JSON-formatted command data exceeds a predetermined threshold size (for example, 8192 bytes), and if it determines that it does, divides the JSON-formatted command data into multiple JSON-formatted unit result data each of the predetermined size (for example, 8192 bytes), and transmits them to the relay server 111. As with the division processing unit 202B of the command console 202, in this case too, the data obtained by converting the input command character string into hexadecimal is divided so that the multiple JSON-formatted command data to be generated are each within the predetermined size, and unit command data in JSON format is generated for each of the divided data.
[0027] If it is determined that the JSON format command data does not exceed the predetermined threshold size, the division processing unit 112B transmits the JSON format result data as is to the command console 202 via the relay server 111 without dividing it.
[0028] 1 is an example of a drive operation unit, and causes a drive manager 115, which is an example of a drive control unit, to perform an operation on the drive device 141 based on the restored command. The drive manager 115 has a function of executing functions executable by the storage device 100 based on commands.
[0029] The drive device 141 is stored in the drive box 104, and is, for example, an SSD (Solid State Drive) or an HDD (Hard Disk Drive). The drive manager 115 controls the disk controller main (corresponding to "DKCMAIN" in the figure) 121 to perform operations on the drive device 141. The disk controller main 121 is a microprogram that runs on the controller 103 (corresponding to "DKC" in the figure), which is the core of the storage device 100. The first controller 101-1 is equipped with a CPU 120-1, which is a processor for operating and setting the drive device 141, and the CPU 120-1 executes the functions of the disk controller main 121 by loading the microprogram.
[0030] (2. Command execution method using storage system) The storage system 1 according to this embodiment has the above configuration. Next, an example of a command execution method using the storage system 1 will be explained.
[0031] 5 is a timing chart showing an example of a command execution method using the storage system 1 according to this embodiment. This command execution method mainly has two types of command execution methods: input and output. In the following description, "input" refers to the case where a command is input from the client 200 to the storage device 100, and "output" refers to the case where result data is output from the storage device 100 to the client 200.
[0032] (2-1. When entering data) First, an outline of how a command is executed when it is entered will be explained. In the client 200, first, the GUI operation unit 201 enables commands to be accepted by, for example, the GUI of the browser 220. Furthermore, in the client 200, the command console 202 enables commands to be accepted by inputting text data using the GUI of the browser 220.
[0033] Here, the GUI operation unit 201 and the command console 202 are integrated in the above-mentioned GUI-based browser 220. Therefore, for example, commands to be input to perform predetermined operations on the drive device 141 can be input not only via GUI using the GUI operation unit 201, but also via text using the command console 202. In this way, the command input interface is integrated, providing good operability for the user who inputs commands.
[0034] In step S1, a command for manipulating data in the drive device 141 is input to the command console 202. The character code of the command string is UTF-16.
[0035] In step S2, the conversion processing unit 202A in the command console 202 converts the input command string (e.g., UTF-16) into, for example, hexadecimal data, and sets the hexadecimal data as, for example, a value in JSON format (referred to as "command data in JSON format").
[0036] In step S2, the splitting processing unit 202B in the command console 202 determines whether the JSON format command data exceeds a predetermined threshold size (e.g., 8192 bytes), and if it determines that the JSON format command data exceeds the predetermined threshold size, splits the JSON format command data into JSON format unit command data of a predetermined size (e.g., 8192 bytes).
[0037] In step S2, if the division processing unit 202B in the command console 202 determines that the JSON format command data does not exceed a predetermined threshold size, the web adapter 112 does not divide the JSON format command data.
[0038] The command console 202 transmits the JSON format command data, which may or may not have been divided as described above, to the relay server 111 .
[0039] In step S3, the relay server 111 relays the command data in JSON format received from the command console 202 to the web adapter 112.
[0040] In step S4, splitting processing unit 112B in web adapter 112 receives the split multiple JSON format unit command data (or unsplit JSON format unit command data), restores JSON format command data from the multiple JSON format unit command data, and obtains the command string from the JSON format value command data.
[0041] In step S5, in the first controller 101, the SSH server 113 as an example of a drive operation unit causes the drive manager 115 as an example of a drive control unit to execute an operation on the drive device 141 based on the restored command.
[0042] In step S6, the SSH server 113 receives, via the drive manager 115, result data that is output in response to the operation performed on the drive device 141 by the drive manager 115 based on the restored command.
[0043] (2-2. Output) In step S7, the SSH server 113 sends result data indicating the result of the execution by the drive manager 115 to the web adapter 112.
[0044] In step S8, conversion processing unit 112A in web adapter 112 decodes the result data received from SSH server 113 into hexadecimal numbers and converts the decoded result data into result data specified in the value of the JSON format (hereinafter referred to as "result data in JSON format"). Furthermore, in step S8, if splitting processing unit 112B in web adapter 112 determines that the result data in JSON format exceeds a predetermined threshold size (for example, 8192 bytes), it splits the result data in JSON format into unit result data in JSON format of each predetermined size (for example, 8192 bytes).
[0045] On the other hand, in step S8, if the splitting processing unit 112B in the web adapter 112 determines that the JSON format result data does not exceed the predetermined threshold size, it does not split the JSON format result data into unit result data in JSON format of each predetermined size, but leaves it as JSON format result data of the same size.
[0046] In step S9, the web adapter 112 transmits the result data in JSON format, either divided as described above or as is, to the relay server 111. In step S10, the relay server 111 relays the result data in JSON format received from the web adapter 112 to the command console 202.
[0047] In step S11, the command console 202 converts the string specified as the value of the JSON format result data received from the relay server 111 from UTF-8 to UTF-16, and passes the converted string to the browser 220.
[0048] In step S13, the browser displays the results of the operation performed by the drive manager 115 on the drive device 141 based on the converted character string described above.
[0049] The storage system 1 according to this embodiment includes a drive device 141 for storing data, a first controller 101 for controlling the drive device 141, and a client 200 as a control device for issuing commands to control the drive device 141. The client 200 includes a GUI operation unit 201 for receiving commands via a graphic user interface, and a command console 202 integrated with the graphic user interface for receiving commands via text data input. The command console 202 includes a conversion processing unit 202A for converting an input command character string into hexadecimal data to generate JSON-formatted data, and a division processing unit 202B for determining whether the JSON-formatted data exceeds a predetermined threshold size (e.g., 8192 bytes) and, if it is determined that the JSON-formatted data exceeds the predetermined threshold size, for dividing the JSON-formatted data into a plurality of unit data of the specific format, each of which has a predetermined size (e.g., 8192 bytes). The first controller 101 also includes a web adapter 112 for restoring commands from a plurality of JSON-formatted unit data.
[0050] In this way, the command console 202 can be integrated into the GUI operation unit 201, improving the operability for inputting commands, and even if a command is long, the command can be executed reliably and accurately without being garbled midway through the command path.
[0051] In this embodiment, if the division processing unit 202B determines that the JSON format data does not exceed a predetermined threshold size (for example, 8192 bytes), it transmits the JSON format data as is to the command console 202. In this way, processing is not performed on JSON format command data of a size that does not require division, and resources can be allocated to other processes, allowing the overall system to operate efficiently and quickly.
[0052] In this embodiment, both the GUI operation unit 201 and the command console 202 are started on a browser 220 that uses a graphic user interface. This facilitates environment setting, and even if the command console 202 is integrated with the GUI operation unit 201 on the browser 220, the command can be executed reliably and accurately without being garbled, even if the command entered from the command console 202 is long.
[0053] In the storage system 1 according to this embodiment, in the first controller 101, the SSH server 113 includes a drive device 141 that transmits result data indicating the execution results of a command executed by the first controller 101, and the web adapter 112 converts the result data received from the SSH server 113 into JSON-formatted result data, and if it determines that the JSON-formatted result data exceeds a predetermined threshold size, divides the JSON-formatted result data into JSON-formatted unit result data of a predetermined size (for example, 8,192 bytes), and in the command console 202, the division processing unit 202B restores the JSON-formatted result data from the multiple JSON-formatted unit result data. In this way, even if the result data obtained by executing a command is long, the result data will not be garbled along the way, and the command can be executed reliably and accurately.
[0054] In this embodiment, the command console 202 displays the results based on the result data in JSON format on the display device. In this way, the data does not become garbled along the way as described above, so the results based on the result data can be reliably and accurately displayed on the display device.
[0055] In this embodiment, if the web adapter 112 determines that the JSON formatted result data does not exceed a predetermined threshold size (e.g., 8192 bytes), it sends the JSON formatted result data as is to the command console 202. In this way, if the JSON formatted result data does not exceed the predetermined threshold size, it is possible to quickly display results based on the result data on the display device by omitting some processing.
[0056] In this embodiment, the first controller 101 includes a relay server 111 that relays data between the command console 202 and the web adapter 112. In this way, the presence of the relay server 111 reduces the burden on the surrounding processing units required to relay commands and result data, allowing the surrounding processing units to operate at a higher speed.
[0057] In this embodiment, the command console 202 operates as a part of the graphic user interface of the browser 220. In this way, the command console 202 is integrated into the browser 220, thereby improving operability.
[0058] In this embodiment, the command console 202 and the storage device 100 communicate data using a protocol such as WSS (WebSocket over SSL / TLS), and the storage device 100 and the drive device 141 communicate data using an SSD (Solid State Drive) transmission protocol.
[0059] The present invention is not limited to the above-described embodiments, and includes various modifications and equivalent configurations within the spirit and scope of the appended claims. For example, the above-described embodiments have been described in detail to clearly explain the present invention, and the present invention is not necessarily limited to those including all of the described configurations. Furthermore, the elements described in parallel in the present embodiment may be configured such that at least one of the elements is connected in series to the other elements. [Industrial Applicability]
[0060] The present invention can be applied to, for example, a storage system relating to a technique for improving operability when entering commands. [Explanation of symbols]
[0061] 1...storage system, 100...storage device, 101-1...first controller, 101-2...second controller, 103...controller, 104...drive box, 111...relay server, 112...web adapter, 113...SSH server, 115...drive manager, 140...drive device, 202A...conversion processing unit, 202B...division processing unit
Claims
1. A storage system comprising a drive device for storing data, a controller for controlling the drive device, and a control device for issuing a command to the controller for controlling the drive device, The control device a first operation unit that accepts the command through a graphic user interface; a second operation unit integrated with the graphic user interface and configured to accept the command by text data input; The second operation unit is a conversion processing unit that converts the input character string of the command into data in a specific radix to generate data in a specific format; a division processing unit that determines whether the data in the specific format exceeds a predetermined threshold size, and when it is determined that the data in the specific format exceeds the predetermined threshold size, divides the data in the specific format into a plurality of unit data of the specific format each having a predetermined size; The controller a command processing unit that restores the command from a plurality of unit data of the specific format; A storage system comprising:
2. The division processing unit If it is determined that the data in the specific format does not exceed a predetermined threshold size, the data in the specific format is transmitted as is without being divided.
2. The storage system according to claim 1.
3. The first operating unit and the second operating unit are The graphic user interface is launched in a browser.
2. The storage system according to claim 1.
4. In the controller, a drive operation unit that transmits result data representing the execution result of the command executed by the controller; The command processing unit converting the result data into result data of the specific format, and when it is determined that the result data of the specific format exceeds the predetermined threshold size, dividing the result data of the specific format into unit result data of the specific format for each predetermined size; In the command console, The division processing unit restores the result data of the specific format from a plurality of unit result data of the specific format.
2. The storage system according to claim 1.
5. The second operation unit is Displaying the results based on the result data in the specific format on a display device 5. The storage system according to claim 4.
6. The command processing unit If it is determined that the result data in the specific format does not exceed a predetermined threshold size, the result data in the specific format is transmitted as is.
5. The storage system according to claim 4.
7. The controller a relay unit that relays data between the second operation unit and the command processing unit; 2. The storage system according to claim 1.
8. The second operation unit operates as a part of a graphic user interface of a browser.
2. The storage system according to claim 1.
9. the second operation unit and the storage device perform data communication using WSS (WebSocket over SSL / TLS) as a protocol; The storage device and the drive device communicate data using an SSD (Solid State Drive) transmission protocol.
2. The storage system according to claim 1.
10. A command execution method in a storage system comprising a drive device for storing data, a controller for controlling the drive device, and a control device for issuing a command to the controller for controlling the drive device, a command receiving step of using a first operation unit in the control device to enable the command to be received through a graphic user interface, and using a second operation unit to enable the command to be received by inputting text data using the graphic user interface while integrating with the first operation unit; a conversion step in which a conversion processing unit converts the input character string of the command into data in a specific radix to generate data in a specific format; a dividing step in which a dividing processing unit determines whether the data in the specific format exceeds a predetermined threshold size, and, if it determines that the data in the specific format exceeds the predetermined threshold size, divides the data in the specific format into a plurality of unit data in the specific format, each having a predetermined size; a restoring step in which a command processing unit in the controller restores the command from a plurality of unit data of the specific format; A command execution method comprising:
Citation Information
Patent Citations
GUI / CUI cooperation system, method therefor and program therefor
JP2007114935A
Semiconductor tester
JP2010043924A