CN109597774B - Method, device and equipment for controlling functions of storage equipment - Google Patents

Method, device and equipment for controlling functions of storage equipment Download PDF

Info

Publication number
CN109597774B
CN109597774B CN201710923304.9A CN201710923304A CN109597774B CN 109597774 B CN109597774 B CN 109597774B CN 201710923304 A CN201710923304 A CN 201710923304A CN 109597774 B CN109597774 B CN 109597774B
Authority
CN
China
Prior art keywords
processed
storage device
server
identifier
processing request
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201710923304.9A
Other languages
Chinese (zh)
Other versions
CN109597774A (en
Inventor
刘先刚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201710923304.9A priority Critical patent/CN109597774B/en
Publication of CN109597774A publication Critical patent/CN109597774A/en
Application granted granted Critical
Publication of CN109597774B publication Critical patent/CN109597774B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/102Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

The embodiment of the application discloses a method, a device and equipment for controlling functions of storage equipment, and relates to the technical field of storage, wherein the method comprises the following steps: the server receives a first processing request sent by the client, and determines storage equipment for storing the object to be processed according to the identifier of the object to be processed contained in the first processing request. The server inquires and sends an operation list to the client, wherein the operation list comprises a function identifier for performing function operation on the object to be processed by the storage device; the server receives a second processing request sent by the client, wherein the second processing request comprises a function identifier for the client to receive the function operation of the object to be processed, which is input by the user according to the operation list and is carried out by the storage device; the server sends the second processing request to the storage device. Because the type of the function identification, namely the type of the function of the storage device, does not need to be distinguished, the compatibility of the server is good, and the capability of centralized server admission management is favorably improved.

Description

Method, device and equipment for controlling functions of storage equipment
Technical Field
The embodiment of the application relates to the technical field of storage, in particular to a method, a device and equipment for controlling functions of storage equipment.
Background
At present, a data center or a cloud data center of an enterprise is composed of a plurality of sets of storage devices, and the storage devices may be from different manufacturers, belong to different device types, and have different functional characteristics. There are two ways to control the functions of such multiple storage devices: one is a control method of "independent management", that is, a dedicated control device is used to perform control management for each function of the storage device. The control mode occupies more control equipment and is complex to operate. The other is a control mode of 'centralized admission management', namely, unified control equipment is adopted to carry out unified control management on the functions of a plurality of storage equipment.
As shown in fig. 1a, a conventional control system having a "centralized storage management" control method includes a client 11, a control device 12, and a plurality of storage devices 13. The control device 12 is configured to send an operation request sent by the client 11 to any one of the storage devices 13 having an operation function for processing the operation request. Among them, the control device 12 stores therein a plurality of Application Programming Interface (API) processes. The dedicated API process is used to find any storage device 13 that has operational functionality for handling the operation request. The process of sending the operation request to any storage device 13 having the operation function for processing the operation request is that the client 11 receives an operation command input by a user and then generates the operation request, wherein the operation request includes an identifier of an operation type, and the identifier of the operation type uniquely identifies an operation function. The client 11 sends the operation request to the control device 12. The control device 12 searches for a dedicated API process corresponding to the operation type according to the identifier of the operation type. The control device 12 calls a driver process of any storage device 13 having an operation function for processing the operation request according to a dedicated API process corresponding to the operation type, converts the operation request into a request conforming to the interface format of any storage device 13 according to the driver process, then sends the converted request to any storage device 13, and executes the operation request by any storage device 13.
It can be seen that if a different function needs to be added to any existing storage device in the control system, a dedicated API process corresponding to the function needs to be added to the control device 12, and if a function identical to that of another storage device needs to be added to any existing storage device in the control system, the dedicated API process in the control device 12 needs to be modified, so as to ensure that the scheduling process and the driving process of the storage device 13 having the newly added operation function for processing the operation request can be invoked according to the dedicated API process. Due to the fact that manufacturers of the storage devices are many, the models of the storage devices are also many, and the types of functions of the storage devices are particularly many. To centralize and manage these various functions, the control device 12 needs to add many dedicated API processes, and the development of new logic codes is quite labor intensive.
Disclosure of Invention
The embodiment of the application provides a method, a device and equipment for controlling functions of a storage device, and can solve the problem that in an existing centralized storage management control system, if a function is added to the storage device, a special API (application program interface) needs to be newly added or modified, and the workload for developing logic codes is extremely large.
In order to achieve the above purpose, the embodiment of the present application adopts the following technical solutions:
in a first aspect, a method for controlling functions of a storage device is provided, including: the server receives a first processing request sent by the client, and determines storage equipment for storing the object to be processed according to the identifier of the object to be processed contained in the first processing request. The server inquires and sends an operation list to the client, wherein the operation list comprises a function identifier for performing function operation on the object to be processed by the storage device; the server receives a second processing request sent by the client, wherein the second processing request comprises a function identifier for the client to receive the function operation of the object to be processed, which is input by the user according to the operation list and is carried out by the storage device; the server sends the second processing request to the storage device. Because the type of the function identification, namely the type of the function of the storage device, does not need to be distinguished, the compatibility of the server is good, and the capability of centralized server admission management is favorably improved.
The object to be processed may be any object stored on the storage device. The storage device has the storage modes of file storage, block storage, object storage and the like, and correspondingly, the object type of the object to be processed can be any one of a file, a volume and an object.
It should be noted that the to-be-processed object and the operation list have a corresponding relationship, that is, the to-be-processed object is different, and the operation list may be different. For example: the types of the objects to be processed are different, and the operation lists may also be different. The operation list may be different depending on the storage device storing the object to be processed.
Optionally, in a possible implementation manner of the present application, the server pre-stores a correspondence between the identifier of the storage device and the identifier of the drive process of the storage device, and a correspondence between the identifier of the object to be processed and the operation list. Then, the server may call the API process, search, according to the table of the object to be processed, the identifier of the drive process of the storage device corresponding to the identifier of the object to be processed, and determine the drive process corresponding to the object to be processed. And the server searches an operation list corresponding to the object to be processed according to the identifier of the object to be processed through a driving process.
In the existing control method of "centralized management", if a storage device operates an object to be processed, a new object (hereinafter referred to as a new object) is created. When a new object is created, the adopted interface information is standard interface information defined by a user according to a special API process corresponding to the operation type in the control equipment, and the standard interface information is applicable to all storage equipment managed by the control equipment. In other words, the interface information for a certain type of operation of these storage devices is identical. These storage devices may have different functional characteristics, and if the functional characteristics of the object to be processed are more than those defined by the standard interface information, some of the functional characteristics of the object to be processed may be lost by the new object.
In the control method according to the embodiment of the present application, when a new object is created, the interface information that is adopted is the interface information that is required by the type object on the storage device and is queried by the server, that is, the interface information includes all the functional characteristics of the object to be processed, and then the new object has all the functional characteristics of the object to be processed.
Optionally, in a possible implementation manner of the present application, if the object type to which the object to be processed belongs is a file, the function operation performed on the object to be processed includes: expanding space, setting quota, deleting again, compressing, snapshotting, creating subdirectories, creating copying, sharing, setting subdirectory quota, and setting subdirectory migration; if the object type of the object to be processed is volume, the function operation performed on the object to be processed includes: the method comprises the steps of hierarchical storage, consistency group, integrated backup, creation of a copy volume and deletion of a volume, wherein if the object type of an object to be processed is an object, functional operations performed on the object to be processed comprise object migration, object backup and object compression.
Optionally, in a possible implementation manner of the present application, the operation list further includes: the storage equipment requires interface information input by a user when performing function operation on an object to be processed; the second processing request further includes: the client receives interface information input by a user when the storage device input by the user performs function operation on the object to be processed.
In a second aspect, an apparatus for storing device functions is provided, including: the device comprises a receiving unit, a processing unit and a processing unit, wherein the receiving unit is used for receiving a first processing request sent by a client, and the first processing request comprises an identifier of an object to be processed; the processing unit is used for searching the identifier of the storage device according to the identifier of the object to be processed, and determining the storage device for storing the object to be processed, wherein the device stores the corresponding relation between the identifier of the object to be processed and the identifier of the storage device; the processing unit is further configured to query an operation list, where the operation list includes a function identifier for performing a function operation on the object to be processed by the storage device; a sending unit, configured to send the operation list to the client; the receiving unit is further configured to receive a second processing request sent by the client, where the second processing request includes the function identifier, which is input by the client according to the operation list, of the storage device, where the function identifier is used by the client to perform function operation on the object to be processed; the sending unit is further configured to send the second processing request to the storage device.
Optionally, in a possible implementation manner of the present application, the apparatus further includes a storage unit, configured to pre-store a correspondence between an identifier of the storage device and an identifier of a driving process of the storage device, and a correspondence between an identifier of the object to be processed and the operation list; the processing unit is further configured to call an Application Programming Interface (API) process, search, according to the identifier of the object to be processed, an identifier of a drive process of the storage device corresponding to the identifier of the object to be processed, and determine the drive process corresponding to the object to be processed; the processing unit is further configured to search the operation list corresponding to the object to be processed according to the identifier of the object to be processed through the driver process.
Optionally, in a possible implementation manner of the present application, if the object type to which the to-be-processed object belongs is a file, the performing, on the to-be-processed object, a function operation includes: expanding space, setting quota, deleting again, compressing, snapshotting, creating subdirectories, creating copying, sharing, setting subdirectory quota, and setting subdirectory migration; if the object type to which the object to be processed belongs is a volume, the functional operation performed on the object to be processed includes: the method comprises the steps of hierarchical storage, consistency group, integrated backup, creation of a copy volume and deletion of a volume, wherein if the object type of the object to be processed is an object, the functional operation performed on the object to be processed comprises object migration, object backup and object compression.
Optionally, in a possible implementation manner of the present application, the operation list further includes: interface information which is required to be input by a user when the storage equipment performs functional operation on the object to be processed; the second processing request further comprises: and the client receives interface information input by the user when the storage equipment performs function operation on the object to be processed, wherein the interface information is input by the user.
In a third aspect, a server for controlling functions of a storage device is provided, comprising one or more processors, a memory, and a communication interface; the memory, the communication interface, and the one or more processors; the memory is used for storing computer program code comprising instructions which, when executed by the one or more processors, cause the server to perform the method of controlling storage device functions of the first aspect and its various possible implementations.
In a fourth aspect, a computer-readable storage medium is provided, in which instructions are stored, which, when executed on a server, cause the server to perform the method for controlling functions of a storage device according to the first aspect and its various possible implementations.
In a fifth aspect, there is provided a computer program product comprising instructions which, when run on a server, cause the server to perform the method of controlling storage device functions of the first aspect and its various possible implementations.
Drawings
FIG. 1a is a schematic structural diagram of a control system with a "centralized nanotube" control scheme in the prior art;
FIG. 1b is a schematic structural diagram of a system for controlling functions of a storage device according to an embodiment of the present disclosure;
fig. 1c is a schematic structural diagram of a server according to an embodiment of the present application;
fig. 2 is a schematic flowchart of a method for controlling functions of a storage device according to an embodiment of the present disclosure;
fig. 3 is a schematic flowchart of a method for controlling functions of a storage device according to an embodiment of the present application;
fig. 4 is a schematic structural diagram of another server provided in the embodiment of the present application.
Detailed Description
The technical solutions in the embodiments of the present application will be clearly described below with reference to the drawings in the embodiments of the present application.
Fig. 1b shows a schematic structural diagram of a control system for storage device functions according to an embodiment of the present application, which includes a client 21, a server 22, and a plurality of storage devices 23, where the client 21 is connected to the server 22, and the server 22 is connected to the plurality of storage devices 23.
The client 21 is configured to receive an operation command input by a user, where the operation command is to require the storage device 23 to operate a certain object (referred to as a to-be-processed object) stored thereon. The client 21 converts the received operation command into a processing request, and transmits the processing request to the server 22. For example: if the client 21 and the server 22 are connected via the internet, the client 21 converts an operation command of a user into a processing request in a HyperText Transfer Protocol (HTTP) format, and transmits the processing request to the server 22 via the internet.
In addition, the client 21 may also receive interface information related to an operation command input by a user, where the interface information includes parameter values and the like for performing functional operations on the object to be processed, which need to be input by the user. For example: if the operation command is to create a remote copy for the object to be processed, the interface information of the operation may include a destination address of the remote copy, a name of the file after the remote copy, a rate of the remote copy, and the like.
The server 22 is configured to receive the processing request sent by the client 21, and call an API process to send the processing request to the storage device 23, so that the storage device 23 operates the object to be processed. The server 22 may be composed of one or more computers, specifically, one or more physical machines, or one or more virtual machines. The server 22 may also share a physical machine with the client 21, logically independent of each other. The embodiments of the present application are not limited.
The server 22 is installed with an API process program and a plurality of driver process programs, and these program modules are connected in communication, for example, through a message middleware. The API process program may be configured to receive a processing request sent by a client, convert the processing request into a request in a format that meets the internal processing requirement of the server, and further trigger a subsequent process in the server. The API process is also used to send the server-processed request to the client, etc. The driving process is mainly used for accessing the server to the storage device to realize the communication between the server and the storage device. Specifically, the driver may be configured to convert the request processed by the server into a request conforming to the interface format of the storage device, and send the request to the storage device, and may also be configured to receive a message returned by the storage device to the server, and the like. The message middleware is also a software program, which is software based on distributed processing and is used for realizing the communication function among various process programs in the server. These program codes are stored on the memory of the server 22, which may be a disk, hard disk, or the like. The program codes may be stored in the memory of one computer or may be stored in the memories of a plurality of computers. The embodiments of the present application are not limited thereto.
In addition, the server 22 may further include a database for storing data for running the respective process programs, and the respective process programs may call the data from each other through the database. The database can also be used for storing a corresponding relation table of the object to be processed and the storage device, a corresponding relation table of the storage device and the driving process and the like. It should be noted that the correspondence table between the object to be processed and the storage device and the correspondence table for storing the storage device and the driving process may also be stored in a database of a third party, which is not limited in the embodiment of the present application.
The plurality of Storage devices 23 are used to store raw data, and the way of storing raw data is File Storage (File Storage), Object Storage (Object Storage), Block Storage (Block Storage), and the like. Accordingly, the storage objects stored on the storage device 23 include files, volumes, objects, and the like. One of the plurality of storage devices 23 may store one type of storage object, or may store a plurality of types of storage objects. The Storage device 23 may be any one of a Storage Area Network (SAN) device, a Network Attached Storage (NAS) device, a Direct-Attached Storage (DAS) of an open system, and a tape library device. The plurality of storage devices 23 may be the same device or different devices, and the embodiment of the present application is not limited thereto.
Referring to fig. 1c, fig. 1c is a schematic structural diagram of a server 22 according to an embodiment of the present disclosure. As shown in fig. 1c, the server 22 provided in the embodiment of the present application includes: a communication interface 31, a communication interface 32 and a control module 33. The communication interface 31 and the communication interface 32 are connected to a control module 33, respectively. In the server 22, a communication interface 31 is used for communication with the client, and a communication interface 32 is used for communication with the storage device 23. Communication interface 31 and communication interface 32 communicate via a communication network, such as an ethernet, a Wireless Local Area Network (WLAN), or the like.
As shown in fig. 1c, the control module 33 comprises a processor 331 and a memory 332. The processor 331 is coupled to the memory 332. The communication interface 31, the communication interface 32, the processor 331, and the memory 332 may be connected by a system bus 34. The memory 332 may be separate and coupled to the processor 331 via the system bus 34. The memory 332 may also be integrated with the processor 331.
The processor 331 is configured to receive a first processing request sent by the client 21, and query a storage device storing an object to be processed according to an identifier of the object to be processed in the first processing request. The processor 331 is configured to query the operation list and send the queried operation list to the client 21. The processor 331 is further configured to receive a second processing request sent by the client 21, and send the second processing request to the storage device 23.
The memory 332 is used for temporarily storing information received by the server 22. The memory 332 is also used for storing software programs and application modules, and the processor 331 executes various functional applications and data processing of the server 22 by operating the software programs and application modules stored in the memory 332.
The memory 332 mainly includes a program storage area 3321. The storage program area 3321 may store an operating system, an API process, a scheduling process, a driver process, a database, and the like.
Processor 331 may be any computing device and may be a general purpose Central Processing Unit (CPU), microprocessor, programmable controller, Application-Specific Integrated Circuit (ASIC), or one or more Integrated circuits configured to control the execution of programs according to the above schemes. The processor 331 is the control center of the server 22. The processor 331 is connected to various portions of the server 22 using various interfaces and lines, and performs various functions of the server 22 and processes data by running or executing software programs and/or application modules stored in the memory 332, thereby integrally monitoring the server 22. In a specific implementation, the processor may include one or more CPUs, for example, the processor in fig. 1c includes CPU 0 and CPU 1.
The Memory 332 may include Volatile Memory (Volatile Memory), such as Random-Access Memory (RAM); the Memory 332 may also include non-volatile Memory (non-volatile Memory), such as Read-Only Memory (ROM), Flash Memory (Flash Memory), a Hard Disk Drive (HDD), a Solid-State Drive (SSD), a magnetic Disk storage medium or other magnetic storage device, or any other medium that can be used to carry or store desired program code in the form of instructions or data structures and that can be accessed by a network device, but is not limited to such.
The system bus 34 may be a Peripheral Component Interconnect (PCI) bus, an Extended Industry Standard Architecture (EISA) bus, or the like.
The system bus 34 may be divided into an address bus, a data bus, a control bus, and the like. For clarity of illustration in the embodiments of the present application, the various buses are illustrated in FIG. 1c as system bus 34.
The following describes in detail a control method for a storage device function according to an embodiment of the present application, with reference to the schematic structural diagram of the control system for a storage device shown in fig. 1b and the schematic structural diagram of the server 22 shown in fig. 1 c.
As shown in fig. 2, in the method for controlling a function of a storage device provided in the embodiment of the present application, steps 102, 103, 104, and 106 may be executed by the server 22 in fig. 1b or fig. 1c, and specifically may be executed by the control module 33 in fig. 1c, and steps 101 and 105 may be executed by the client 21 in fig. 1b, and specifically include:
101. the client sends a first processing request to the server.
Wherein the first processing request comprises an identification of the object to be processed. The object to be processed may be any object stored on the storage device. The storage device has the storage modes of file storage, block storage, object storage and the like, and correspondingly, the object type of the object to be processed can be any one of a file, a volume and an object.
Specifically, when the user needs to operate the object to be processed, the user clicks an icon of the object to be processed on a control page of the client, or selects the object to be processed in another manner. The client converts the operation of the user into a first processing request and sends the first processing request to the server. For example: if the client and the server are in communication connection via the internet, the client converts an operation command of a user into a processing request in a HyperText Transfer Protocol (HTTP) format and transmits the processing request to the server.
It should be noted that, if the client and the server share one physical machine or virtual machine, the server directly receives an operation command input by a user, and converts the operation command into the first processing request, which is not limited in the embodiment of the present application.
102. And the server determines the storage equipment for storing the object to be processed according to the identifier of the object to be processed.
Specifically, the server may store in advance a correspondence between an identifier of the object to be processed and an identifier of the storage device. Then, after receiving the first processing request, the server searches the identifier of the storage device corresponding to the identifier of the object to be processed from the database according to the identifier of the object to be processed, and confirms that the storage device corresponding to the identifier of the storage device is the storage device storing the object to be processed.
The database may be a database of the server itself or a database of a third party. The embodiments of the present application are not limited.
103. The server queries the operation list.
Specifically, the server stores a correspondence between an identifier of the storage device and an identifier of the drive process, and a correspondence between an identifier of the object to be processed and the operation list. And storing the corresponding relation between the identifier of the object to be processed and the operation list in a driving process of a storage device for storing the object to be processed. Therefore, the server may call the API process, and determine the driver process corresponding to the object to be processed according to the identifier of the object to be processed and the identifier of the driver process corresponding to the storage device corresponding to the found identifier of the storage device. And the server searches an operation list corresponding to the object to be processed according to the identifier of the object to be processed through a driving process. The operation list comprises a function identifier of the storage device for operating the object to be processed, and the function identifier is a function characteristic of the storage device capable of operating the object to be processed.
It should be noted that the to-be-processed object and the operation list have a corresponding relationship, that is, the to-be-processed object is different, and the operation list may be different. For example: the types of the objects to be processed are different, and the operation lists may also be different. The operation list may be different depending on the storage device storing the object to be processed.
For example, the storage device may store a plurality of objects of different types, and the server may set different operation function identifiers for each object of different types and store the operation function identifiers of each object of different types on the driver process. For example: the functional identification that the storage device arranged by the server can operate the file is as follows: expanding space, setting quota, deleting again, compressing, snapshooting, creating subdirectory, creating copy, sharing, setting subdirectory quota, setting subdirectory migration and the like, wherein the functional identification of the storage device capable of operating volumes is as follows: the method comprises the following steps of hierarchical storage, consistency group, integrated backup, creation of a copy volume, deletion of a volume and the like, wherein the functional identifiers of the storage device which can operate objects are as follows: migrated objects, backed up objects, compressed objects, etc. It can be seen that for several objects of different types, the operation lists of these objects may not be the same even if stored on the same storage device. In addition, the multiple storage devices controlled by the server may be of different manufacturers or different models, and therefore, the multiple storage devices are likely to have different functional characteristics. It can be seen that the operation lists corresponding to several objects of the same type may be different if the objects are stored on different storage devices.
Optionally, the server may also obtain, from the determined driving process, interface information that is required to be input by the user for each function identifier of the object to be processed. The interface information includes parameter values and the like required to be input by the user, for example: if the function identifier is to create a copy, the interface information input by the user required to create the copy may include: the address of the destination storage device of the copy, the name of the file after the copy, the rate parameter of the copy, etc. If the function identifier is a snapshot, the interface information input by the user required by the snapshot may include the cycle of the snapshot, the number of retained snapshots, and the like.
104. The server sends the operation list to the client.
105. The client sends a second processing request to the server.
And the second processing request comprises a function identifier which is input by the client and used for operating the object to be processed.
Specifically, after receiving the operation list sent by the server, the client displays the operation list to the user through an image interface such as a selection box, so that the user can select and operate the function identifier of the object to be processed. If the server further sends the interface information that each function identifier in the operation list requires the user to input to the client, the client may further display the interface information to the user in a graphical interface, such as an input box, so that the user can input the corresponding interface information. After the user selects the function identifier for operating the object to be processed and inputs the interface information, the client converts the operations of the user into a second processing request and sends the second processing request to the server. It should be noted that the second processing request may be one or more messages, that is, the client may convert a command that the user selects to operate the function identifier conversion of the object to be processed into one request message, convert a command that the user inputs interface information into another one or more request messages, or convert the two commands into one request message, which is not limited in the embodiment of the present application.
106. The server sends the second processing request to the storage device.
Specifically, after receiving a second processing request sent by the client, the server converts the second processing request into a request in an interface format meeting the requirements of the storage device, and sends the request to the storage device, so that the storage device operates the object to be processed.
The existing control method of the concentrated nano tube comprises the following steps: the client sends a processing request to the control device, wherein the processing request comprises an identification of the object to be processed and an identification of the operation type. The control device calls the special API process corresponding to the operation type identifier to receive the processing request, then calls the scheduling process and the driving process, and sends the processing request to the storage device. It can be seen that if a different function needs to be added to any existing storage device in the control system, a dedicated API process corresponding to the function needs to be added to the control device, and if a function identical to that of another storage device needs to be added to any existing storage device in the control system, the dedicated API process in the control device needs to be modified, so as to ensure that the scheduling process and the driving process of the storage device having the added operation function for processing the operation request can be invoked according to the dedicated API process. Due to the fact that manufacturers of the storage devices are many, the models of the storage devices are also many, and the types of functions of the storage devices are particularly many. If centralized management is performed on these different functions, a lot of special API processes need to be added to the control device, and the workload of developing new logic codes is considerable.
The method for controlling the functions of the storage device in the embodiment of the application comprises the following steps: the client sends a first processing request to the server, wherein the first processing request comprises the identification of the object to be processed. And the server determines the storage equipment for storing the object to be processed according to the identifier of the object to be processed. And the server inquires an operation list and sends the operation list to the client, wherein the operation list comprises the function identification of the determined storage device for operating the object to be processed. And the server receives a second processing request sent by the client, wherein the second processing request comprises a function identifier which is input by the client and used for operating the object to be processed. And the server sends the second processing request to the storage device so that the storage device operates the object to be processed. In the method of the embodiment of the application, the type of the function identifier, namely the type of the function of the storage device, is not distinguished. Then, if a different function needs to be added to any existing storage device in the control system, a new dedicated API process is not required. If a function which is the same as that of other storage devices needs to be added to any existing storage device in the control system, the special API process in the server does not need to be modified any more. Therefore, the control method of the embodiment of the application does not need to additionally develop new logic codes, the compatibility of the server is good, and the centralized server hosting capability is favorably improved.
Further, an embodiment of the present application further provides a method for controlling functions of a storage device, as shown in fig. 3, wherein the steps 202 and 209 and 211 can be executed by the server 22 in fig. 1b or fig. 1c, and specifically can be executed by the control module 33 in fig. 1c, and the steps 201 and 206 and 208 can be executed by the client 21 in fig. 1b, and specifically include:
201. the client sends a first processing request to the server.
Wherein the first processing request comprises an identification of the object to be processed, which is used for indicating the object which the user wants to operate.
202. The server receives a first processing request sent by the client.
Specifically, the server needs to call an API process to receive the first processing request. If the communication protocol between the server and the client is different from the communication protocol inside the server, the server also needs to call an API process to convert the format of the first processing request. For example: if the client and the server are in communication connection through the internet, the first processing request sent by the client and received by the server may be in an HTTP format. If the server internal communication uses an Advanced Message Queuing Protocol (AMQP), the server needs to convert the received first processing request in the HTTP format into a request in the AMQP format.
The API process called by the server may be one or more general-purpose interface processes, but the same control logic code is used. In other words, the one or more universal interface processes are the same and can receive processing requests of any type of operation.
203. The server searches the storage device for storing the object to be processed from the database.
Specifically, the server searches the storage device storing the object to be processed from the database of the server itself or the database of the third party through the API process. The database stores in advance the correspondence between the object to be processed and the storage device storing the object to be processed.
It should be noted that, in the control system of the embodiment of the present application, each storage device corresponds to one or more driver processes in the server. The driving process is used for the server to access the storage device, convert the processing request received by the server into a message in an interface format meeting the requirement of the storage device, and send the message to the storage device.
204. And the server inquires an operation list of the object to be processed.
The operation list may further include interface information that each function identifier in the operation list requires user input.
Specifically, the server stores a correspondence between an identifier of the storage device and an identifier of the drive process, and a correspondence between an identifier of the object to be processed and the operation list. And storing the corresponding relation between the identifier of the object to be processed and the operation list in a driving process of a storage device for storing the object to be processed. Therefore, the server may call the API process, and determine the driver process corresponding to the object to be processed according to the identifier of the object to be processed and the identifier of the driver process corresponding to the storage device corresponding to the found identifier of the storage device. And the server searches an operation list corresponding to the object to be processed according to the identifier of the object to be processed through a driving process.
205. The server sends the operation list to the client.
Specifically, the server performs format conversion on the queried operation list through the API process and sends the converted operation list to the client.
206. And the client displays the received operation list.
Specifically, the client converts the received operation list into an image interface and displays the image interface to the user. For example: the function identifier can be displayed to the user in the form of a pull-down menu, and the interface information which requires the user to input for each function identifier in the operation list can be displayed to the user in the form of an input box. The embodiment of the present application does not limit the specific form of display.
207. And the client receives an operation command input by the user and converts the operation command into a second processing request.
Specifically, the client receives an operation function identifier selected by the user from the operation list and the input interface information corresponding to the operation function identifier, converts the operation commands into a second processing request, and sends the second processing request to the server.
208. The client sends a second processing request to the server.
The second processing request comprises a function identifier which is input by the client and used for operating the object to be processed, and also comprises interface information which is input by the user and corresponds to the function identifier. For example: if the function identifier for operating the to-be-processed object input by the user is to create the remote copy of the file a, the second processing request includes the identifier for operating the to-be-processed object as the identifier for creating the remote copy, the function identifier for operating the to-be-processed object is to create the remote copy, and the interface information corresponding to the function identifier input by the user may include a copy destination address.
209. And the server inquires a driving process corresponding to the storage device for storing the object to be processed according to the identifier of the object to be processed.
Step 203 can be referred to in this step, and details are not repeated here.
210. And the server determines whether the scheduling process needs to be called or not according to the interface information in the second processing request. If the scheduling process needs to be invoked, step 210a is performed. If the scheduling process does not need to be invoked, step 211 is executed.
Specifically, the server may determine, through the API process, whether the scheduling process needs to be invoked according to the second processing request. For example: if the interface information corresponding to the operation function identifier input by the user contains a destination address, the server needs to invoke a scheduling process for determining the identifier of the destination storage device corresponding to the destination address, so that the server can use the identifier of the destination storage device when invoking the driving process. If the interface information corresponding to the operation function identifier input by the user does not contain the destination address, the server does not need to call the scheduling process.
For example, suppose the object to be processed is a file a, and the file a is stored in the storage device M. In the first case: if the second processing request is to query the file A, the server queries the information of the file A from the database and calls the API process to reply to the client, and at the moment, the server does not need to call the scheduling process. In the second case: if the second processing request is to delete the file a, the server searches the storage device, i.e., the storage device M, storing the file a from the database, directly calls the drive process of the storage device M, sends the second processing request to the storage device M, and deletes the file a from the storage device M, where the scheduling process is not required. In the third case: if the second processing request is to create a remote copy of the file a, the interface information that needs to be input by the user has a destination address of the remote copy, and at this time, the server needs to invoke a scheduling process for determining an identifier of a destination storage device corresponding to the destination address, so that the server uses the identifier of the destination storage device when invoking the driver process.
It should also be noted that step 210 may be executed after, before, or simultaneously with step 209, and the execution order of steps 209 and 210 is not limited in the embodiments of the present application.
210a, the server first calls the scheduling process so that the server uses the running result of the scheduling process when calling the driver process, then schedules the driver process, and sends the second processing request to the storage device.
Specifically, when the server calls the scheduling process, the server executes a corresponding algorithm according to the service logic corresponding to the function identifier in the second processing request. Wherein the scheduling process comprises a plurality of scheduling algorithms, for example: a region scheduling algorithm, a resource pool scheduling algorithm, a characteristic screening scheduling algorithm and the like.
For example, assuming the second processing request is a request to create a remote copy of file a, the server looks up storage device M from the database. Assume that the interface information input by the user includes: the destination address of the copy, the name of the file system after the copy, the copy rate parameter, etc. The business logic corresponding to the remote copy operation is assumed to comprise: the method comprises the steps of screening out different-place storage equipment, screening out storage equipment with a creation function, and finally screening out storage equipment with capacity meeting conditions to serve as target storage equipment for remote copying. Then, the server executes a regional algorithm to screen out the different-place storage equipment; then executing a characteristic screening and scheduling algorithm to screen out the storage equipment with the creating function; and finally, executing a capacity algorithm, screening out the storage equipment with the capacity meeting the condition, and finally determining the storage equipment N as the destination address of the remote copy file A. And after the execution of the scheduling algorithm is finished, the server calls a driving process to convert the format of the second processing request and the identifier of the target storage device and then sends the second processing request and the identifier of the target storage device to the storage device A, and the storage device A executes the remote copying operation.
211. And the server sends the second processing request to the storage device through the driving process.
Optionally, after the storage device operates the object to be processed, the server calls the driver process and the API process to reply the execution result of the storage device to the client. Shown at 212 and 214.
In the existing control method of "centralized management", if a storage device operates an object to be processed, a new object (hereinafter referred to as a new object) is created. When a new object is created, the adopted interface information is standard interface information defined by a user according to a special API process corresponding to the operation type in the control equipment, and the standard interface information is applicable to all storage equipment managed by the control equipment. In other words, the interface information for a certain type of operation of these storage devices is identical. These storage devices may have different functional characteristics, and if the functional characteristics of the object to be processed are more than those defined by the standard interface information, some of the functional characteristics of the object to be processed may be lost by the new object.
In the control method according to the embodiment of the present application, when a new object is created, the interface information that is adopted is the interface information that is required by the type object on the storage device and is queried by the server, that is, the interface information includes all the functional characteristics of the object to be processed, and then the new object has all the functional characteristics of the object to be processed.
The above-mentioned scheme provided by the embodiment of the present application is introduced mainly from the perspective of interaction between network elements. It is understood that the server includes hardware structures and/or software modules for performing the respective functions in order to implement the above-described functions. Those of skill in the art would readily appreciate that the various illustrative elements and algorithm steps described in connection with the embodiments disclosed herein may be implemented as hardware or combinations of hardware and computer software. Whether a function is performed as hardware or computer software drives hardware depends upon the particular application and design constraints imposed on the solution. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present application.
In the embodiment of the present application, the server may be divided into the functional modules according to the above method example, for example, each functional module may be divided corresponding to each function, or two or more functions may be integrated into one processing module. The integrated module can be realized in a hardware mode, and can also be realized in a software functional module mode. It should be noted that, in the embodiment of the present application, the division of the module is schematic, and is only one logic function division, and there may be another division manner in actual implementation.
Fig. 4 shows a schematic diagram of a possible structure of the server 22 according to the above embodiment, in the case of dividing the functional modules according to the respective functions, where the server 22 includes: a receiving unit 41, a processing unit 42 and a transmitting unit 43. The receiving unit 41 is configured to support the server to execute the processes 101 and 105 in fig. 2, and the processes 201, 208, and 212 in fig. 3; the processing unit 42 is configured to support the server to execute the processes 102 and 103 in fig. 2, the processes 203, 204, 209 and 210 in fig. 3; the sending unit 43 is configured to instruct the server to execute the processes 104 and 106 in fig. 2 and the processes 205, 211, and 214 in fig. 3. The server 22 may further include a storage unit 44 for storing a correspondence relationship between the identification of the object to be processed and the identification of the drive process of the storage device, and program codes and data and the like required for the server to execute the respective steps. All relevant contents of each step related to the above method embodiment may be referred to the functional description of the corresponding functional module, and are not described herein again.
The Processing Unit 42 may be a Processor or a controller, and may be, for example, a Central Processing Unit (CPU), a general purpose Processor, a Digital Signal Processor (DSP), an Application-Specific Integrated Circuit (ASIC), a Field Programmable Gate Array (FPGA) or other Programmable logic device, a transistor logic device, a hardware component, or any combination thereof. Which may implement or perform the various illustrative logical blocks, modules, and circuits described in connection with the disclosure. The processor may also be a combination of computing functions, e.g., comprising one or more microprocessors, DSPs, and microprocessors, among others. The receiving unit 41 and the transmitting unit 43 may be integrated together and may be a transceiver, a transceiving circuit or a communication interface, etc. The storage unit 44 may be a memory.
When the processing unit 42 is a processor, the receiving unit 41 and the sending unit 43 are integrated together, and are transceivers, and the storage unit 44 is a memory, the server according to the embodiment of the present application may be the server shown in fig. 1 c.
Another embodiment of the present application further provides a computer-readable storage medium, in which instructions are stored, and when the instructions are executed on the server 22, the server 22 executes step 101 and step 106 in the control method for the storage device function shown in fig. 2.
In another embodiment of the present application, there is also provided a computer program product comprising computer executable instructions stored in a computer readable storage medium; the computer executable instructions may be read by at least one processor of the server 22 from a computer readable storage medium, and the execution of the computer executable instructions by the at least one processor causes the server 22 to perform step 101 and step 106 of the method for controlling the functions of the storage device shown in fig. 2.
The steps of a method or algorithm described in connection with the disclosure herein may be embodied in hardware or in software instructions executed by a processor. The software instructions may be comprised of corresponding software modules that may be stored in Random Access Memory (RAM), flash Memory, Read Only Memory (ROM), Erasable Programmable ROM (EPROM), Electrically Erasable Programmable ROM (EEPROM), registers, a hard disk, a removable disk, a compact disc Read Only Memory (CD-ROM), or any other form of storage medium known in the art. An exemplary storage medium is coupled to the processor such the processor can read information from, and write information to, the storage medium. Of course, the storage medium may also be integral to the processor. The processor and the storage medium may reside in an ASIC. Additionally, the ASIC may reside in a core network interface device. Of course, the processor and the storage medium may reside as discrete components in a core network interface device.
Those skilled in the art will recognize that in one or more of the examples described above, the functions described herein may be implemented in hardware, software, firmware, or any combination thereof. When implemented in software, the functions may be stored on or transmitted over as one or more instructions or code on a computer-readable medium. Computer-readable media includes both computer storage media and communication media including any medium that facilitates transfer of a computer program from one place to another. A storage media may be any available media that can be accessed by a general purpose or special purpose computer.
The above-mentioned embodiments further explain the objects, technical solutions and advantages of the present application in detail.

Claims (10)

1. A method for controlling functions of a storage device is applied to a server, and the method comprises the following steps:
the server receives a first processing request sent by a client, wherein the first processing request comprises an identifier of an object to be processed;
the server searches the identification of the storage device according to the identification of the object to be processed, and determines the storage device for storing the object to be processed, wherein the server stores the corresponding relation between the identification of the object to be processed and the identification of the storage device;
the server inquires an operation list, wherein the operation list comprises a function identifier of the storage device for performing function operation on the object to be processed;
the server sends the operation list to the client;
the server receives a second processing request sent by the client, wherein the second processing request comprises the function identifier, input by the client according to the operation list, of the storage device, for performing function operation on the object to be processed;
the server sends the second processing request to the storage device.
2. The method according to claim 1, wherein the server stores a correspondence between an identifier of the storage device and an identifier of a driver process of the storage device, and a correspondence between an identifier of the object to be processed and the operation list;
the server query operation list includes:
the server calls an Application Programming Interface (API) process, searches the identification of the driving process of the storage device corresponding to the identification of the storage device according to the identification of the object to be processed, and determines the driving process corresponding to the object to be processed;
and the server searches the operation list corresponding to the object to be processed according to the identifier of the object to be processed through the driving process.
3. The method according to claim 2, wherein if the object type to which the object to be processed belongs is a file, the functional operation performed on the object to be processed comprises: expanding space, setting quota, deleting again, compressing, snapshotting, creating subdirectories, creating copying, sharing, setting subdirectory quota, and setting subdirectory migration; if the object type to which the object to be processed belongs is a volume, the functional operation performed on the object to be processed includes: the method comprises the steps of hierarchical storage, consistency group, integrated backup, creation of a copy volume and deletion of a volume, wherein if the object type of the object to be processed is an object, the functional operation performed on the object to be processed comprises object migration, object backup and object compression.
4. The method according to any of claims 1-3, wherein the operation list further comprises: interface information which is required to be input by a user when the storage equipment performs functional operation on the object to be processed;
the second processing request further comprises: and the client receives interface information input by the user when the storage equipment performs function operation on the object to be processed, wherein the interface information is input by the user.
5. An apparatus for controlling functions of a storage device, comprising:
the device comprises a receiving unit, a processing unit and a processing unit, wherein the receiving unit is used for receiving a first processing request sent by a client, and the first processing request comprises an identifier of an object to be processed;
the processing unit is used for searching the identifier of the storage device according to the identifier of the object to be processed, and determining the storage device for storing the object to be processed, wherein the device stores the corresponding relation between the identifier of the object to be processed and the identifier of the storage device;
the processing unit is further configured to query an operation list, where the operation list includes a function identifier for performing a function operation on the object to be processed by the storage device;
a sending unit, configured to send the operation list to the client;
the receiving unit is further configured to receive a second processing request sent by the client, where the second processing request includes the function identifier, which is input by the client according to the operation list, of the storage device, where the function identifier is used by the client to perform function operation on the object to be processed;
the sending unit is further configured to send the second processing request to the storage device.
6. The apparatus according to claim 5, further comprising a storage unit, configured to store a correspondence between an identifier of the storage device and an identifier of a driver process of the storage device, and a correspondence between an identifier of the object to be processed and the operation list;
the processing unit is further configured to call an Application Programming Interface (API) process, search, according to the identifier of the object to be processed, an identifier of a drive process of the storage device corresponding to the identifier of the object to be processed, and determine the drive process corresponding to the object to be processed;
the processing unit is further configured to search the operation list corresponding to the object to be processed according to the identifier of the object to be processed through the driver process.
7. The apparatus according to claim 6, wherein if the object type to which the object to be processed belongs is a file, the performing the function operation on the object to be processed comprises: expanding space, setting quota, deleting again, compressing, snapshotting, creating subdirectories, creating copying, sharing, setting subdirectory quota, and setting subdirectory migration; if the object type to which the object to be processed belongs is a volume, the functional operation performed on the object to be processed includes: the method comprises the steps of hierarchical storage, consistency group, integrated backup, creation of a copy volume and deletion of a volume, wherein if the object type of the object to be processed is an object, the functional operation performed on the object to be processed comprises object migration, object backup and object compression.
8. The apparatus of any of claims 5-7, wherein the operation list further comprises: interface information which is required to be input by a user when the storage equipment performs functional operation on the object to be processed;
the second processing request further comprises: and the client receives interface information input by the user when the storage equipment performs function operation on the object to be processed, wherein the interface information is input by the user.
9. A server for controlling functions of a storage device, the server comprising: a processor, a memory, a communication interface;
the memory, the communication interface and one or more of the processors; the memory is used for storing computer program code comprising instructions which, when executed by the processor, cause the server to perform the method of controlling the functionality of the storage device of any of claims 1-4.
10. A computer-readable storage medium having instructions stored therein, which when run on a server, cause the server to perform a method of controlling storage device functions according to any one of claims 1-4.
CN201710923304.9A 2017-09-30 2017-09-30 Method, device and equipment for controlling functions of storage equipment Active CN109597774B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710923304.9A CN109597774B (en) 2017-09-30 2017-09-30 Method, device and equipment for controlling functions of storage equipment

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710923304.9A CN109597774B (en) 2017-09-30 2017-09-30 Method, device and equipment for controlling functions of storage equipment

Publications (2)

Publication Number Publication Date
CN109597774A CN109597774A (en) 2019-04-09
CN109597774B true CN109597774B (en) 2020-12-15

Family

ID=65955642

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710923304.9A Active CN109597774B (en) 2017-09-30 2017-09-30 Method, device and equipment for controlling functions of storage equipment

Country Status (1)

Country Link
CN (1) CN109597774B (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115134321A (en) * 2021-03-12 2022-09-30 华为技术有限公司 Message processing method and device

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1655129A (en) * 2005-02-25 2005-08-17 清华大学 Universal method for dynamical management of storage resource under Windows platform
US7206905B2 (en) * 2001-08-06 2007-04-17 Hitachi, Ltd. Storage system and method of configuring the storage system
CN102333103A (en) * 2010-07-12 2012-01-25 戴元顺 Cloud storage system
CN104184826A (en) * 2014-09-05 2014-12-03 浪潮(北京)电子信息产业有限公司 Multi-data-center storage environment managing method and system
CN105830040A (en) * 2013-12-20 2016-08-03 拉姆伯斯公司 A memory appliance for accessing memory
CN105975214A (en) * 2011-08-26 2016-09-28 威睿公司 Configuring object storage system for input/output operations
CN106814975A (en) * 2017-01-20 2017-06-09 郑州云海信息技术有限公司 A kind of memory management method and its system for polymorphic type storage device

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7206905B2 (en) * 2001-08-06 2007-04-17 Hitachi, Ltd. Storage system and method of configuring the storage system
CN1655129A (en) * 2005-02-25 2005-08-17 清华大学 Universal method for dynamical management of storage resource under Windows platform
CN102333103A (en) * 2010-07-12 2012-01-25 戴元顺 Cloud storage system
CN105975214A (en) * 2011-08-26 2016-09-28 威睿公司 Configuring object storage system for input/output operations
CN105830040A (en) * 2013-12-20 2016-08-03 拉姆伯斯公司 A memory appliance for accessing memory
CN104184826A (en) * 2014-09-05 2014-12-03 浪潮(北京)电子信息产业有限公司 Multi-data-center storage environment managing method and system
CN106814975A (en) * 2017-01-20 2017-06-09 郑州云海信息技术有限公司 A kind of memory management method and its system for polymorphic type storage device

Also Published As

Publication number Publication date
CN109597774A (en) 2019-04-09

Similar Documents

Publication Publication Date Title
US11467755B2 (en) Method and system for enabling agentless backup and restore operations on a container orchestration platform
US9069465B2 (en) Computer system, management method of computer resource and program
CN107992355B (en) Method and device for deploying application software and virtual machine
US20100185587A1 (en) Data movement with reduced service outage
US11249788B2 (en) Cloud management platform, and virtual machine management method and system
JP2015506507A (en) Snapshot of shared volume with consistency between applications
KR20110128846A (en) Programming model for synchronizing browser caches across devices and web services
US10599622B2 (en) Implementing storage volumes over multiple tiers
US11991094B2 (en) Metadata driven static determination of controller availability
WO2021139224A1 (en) Method and apparatus for file backup in cloud scenario, and medium and electronic device
US10620871B1 (en) Storage scheme for a distributed storage system
US10877684B2 (en) Changing a distributed storage volume from non-replicated to replicated
EP3731097A1 (en) System and method for accelerated data access
US20210055938A1 (en) Hydration in virtual machines
US10845997B2 (en) Job manager for deploying a bundled application
US11237761B2 (en) Management of multiple physical function nonvolatile memory devices
CN109597774B (en) Method, device and equipment for controlling functions of storage equipment
JP2017538237A (en) Method, apparatus, and system for displaying virtual machine names
JP6418419B2 (en) Method and apparatus for hard disk to execute application code
CN114328007B (en) Container backup and restoration method, device and medium thereof
US11693578B2 (en) Method and system for handoff with portable storage devices
US11520650B2 (en) Performing root cause analysis in a multi-role application
US20220261188A1 (en) Pass-through command queues for unmodified storage drivers
EP3591531A2 (en) Instant restore and instant access of hyper-v vms and applications running inside vms using data domain boostfs
CN117311627A (en) Container rolling thermal expansion system, method and medium

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant