Software deployment method and electronic device
Patent Information
- Application Number
- CN202610147764.6
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2026-02-02
- Publication Date
- 2026-10-16
- Estimated Expiration
- 2046-02-02
AI Technical Summary
在大规模集群中,此过程耗时耗力、极易出错,导致部署效率低下
Smart Images

Figure CN121614150B_ABST
Abstract
Description
Technical Field
[0001] This application relates to the fields of storage technology and software deployment technology, and more specifically to a software deployment method and an electronic device. Background Technology
[0002] In enterprise storage environments, multiple communication links are typically configured between hosts and storage systems to achieve high availability and load balancing. Multipathing software is usually deployed on the host side; its core function is to uniformly manage these communication links, enabling automatic failover and traffic balancing, ensuring business continuity and storage access performance.
[0003] Currently, deploying multipath software typically requires manually installing a deployment program that is strictly compatible with the operating system version on each host. In large-scale clusters, this process is time-consuming, labor-intensive, and prone to errors, resulting in low deployment efficiency. Summary of the Invention
[0004] In view of the above problems, this application provides a software deployment method and an electronic device.
[0005] According to a first aspect of this application, a software deployment method is provided, applied to a storage system, comprising: in response to receiving a deployment instruction from a target host, obtaining host information of the target host and software version information of multipath software currently deployed on the target host from the deployment instruction, wherein the multipath software is used to select a communication link for interaction between the target host and the storage system; if the software version information indicates that the multipath software deployed on the target host is a version to be updated, determining a target deployment program matching the target host based on the host information and sending the target deployment program to the target host, wherein the target deployment program is used to deploy a predetermined version of the multipath software on the target host; logging into the target host based on the host information and controlling the target host to run the target deployment program to deploy the predetermined version of the multipath software on the target host.
[0006] A second aspect of this application provides a software deployment method applied to a host, wherein multiple communication links are established between the host and a storage system, and the storage system is used to provide storage space for the host. The method includes: periodically querying host information and software version information of currently deployed multipath software; generating deployment instructions based on the host information and the software version information; and sending the deployment instructions to the storage system to deploy the latest version of the multipath software using the storage system.
[0007] A third aspect of this application provides a software deployment apparatus for a storage system, comprising: an acquisition module, configured to, in response to receiving a deployment instruction from a target host, acquire host information of the target host and software version information of multipath software currently deployed on the target host from the deployment instruction, wherein the multipath software is used to select a communication link for interaction between the target host and the storage system; a determination module, configured to, based on the host information, determine a target deployment program matching the target host and send the target deployment program to the target host when the software version information indicates that the multipath software deployed on the target host is a version to be updated, wherein the target deployment program is used to deploy a predetermined version of the multipath software on the target host; and a deployment module, configured to, based on the host information, log in to the target host and control the target host to run the target deployment program to deploy the predetermined version of the multipath software on the target host.
[0008] The fourth aspect of this application provides a software deployment apparatus for a host computer, wherein multiple communication links are established between the host computer and a storage system, and the storage system provides storage space for the host computer. The apparatus includes: a query module for periodically querying host information and software version information of currently deployed multipath software; a generation module for generating deployment instructions based on the host information and software version information; and a sending module for sending deployment instructions to the storage system so as to deploy the latest version of the multipath software using the storage system.
[0009] A fifth aspect of this application provides an electronic device comprising: one or more processors; and a memory for storing one or more computer programs, wherein the one or more processors execute the one or more computer programs to implement the steps of the method described above.
[0010] A sixth aspect of this application also provides a computer-readable storage medium having a computer program or instructions stored thereon, which, when executed by a processor, implement the steps of the above-described method.
[0011] A seventh aspect of this application also provides a computer program product, including a computer program or instructions that, when executed by a processor, implement the steps of the above-described method. Attached Figure Description
[0012] The above-mentioned contents, other objects, features and advantages of this application will become clearer from the following description of embodiments of this application with reference to the accompanying drawings.
[0013] Figure 1 The diagram illustrates an application scenario of a software deployment method and an electronic device according to embodiments of this application.
[0014] Figure 2 A flowchart illustrating a software deployment method applied to a storage system according to an embodiment of this application is shown.
[0015] Figure 3 A schematic diagram of storage multipath according to an embodiment of this application is shown.
[0016] Figure 4 A flowchart of the execution target deployment procedure according to an embodiment of this application is shown.
[0017] Figure 5 A flowchart illustrating the deployment of multipath software according to an embodiment of this application is shown.
[0018] Figure 6 A flowchart illustrating a software deployment method applied to a host according to an embodiment of this application is shown.
[0019] Figure 7 A flowchart illustrating the sending of deployment instructions according to an embodiment of this application is shown.
[0020] Figure 8 A schematic diagram of storage multipath after setting the target volume according to an embodiment of this application is shown.
[0021] Figure 9 A structural block diagram of a software deployment apparatus for a storage system according to an embodiment of this application is shown.
[0022] Figure 10 A structural block diagram of a software deployment apparatus for a host according to an embodiment of this application is shown.
[0023] Figure 11 A block diagram of an electronic device suitable for implementing a software deployment method according to an embodiment of this application is shown. Detailed Implementation
[0024] The embodiments of this application will now be described with reference to the accompanying drawings. However, it should be understood that these descriptions are exemplary only and are not intended to limit the scope of this application. In the following detailed description, numerous specific details are set forth to provide a thorough understanding of the embodiments of this application for ease of explanation. However, it will be apparent that one or more embodiments may be implemented without these specific details. Furthermore, descriptions of well-known structures and technologies are omitted in the following description to avoid unnecessarily obscuring the concepts of this application.
[0025] The terminology used herein is for the purpose of describing particular embodiments only and is not intended to limit the scope of this application. The terms “comprising,” “including,” etc., as used herein indicate the presence of the stated features, steps, operations, and / or components, but do not exclude the presence or addition of one or more other features, steps, operations, or components.
[0026] All terms used herein (including technical and scientific terms) have the meanings commonly understood by those skilled in the art, unless otherwise defined. It should be noted that the terms used herein are to be interpreted in a manner consistent with the context of this specification, and not in an idealized or overly rigid way.
[0027] When using expressions such as "at least one of A, B and C", they should generally be interpreted in accordance with the meaning that is commonly understood by those skilled in the art (e.g., "a system having at least one of A, B and C" should include, but is not limited to, a system having A alone, a system having B alone, a system having C alone, a system having A and B, a system having A and C, a system having B and C, and / or a system having A, B and C, etc.).
[0028] Traditional vendor-developed multipathing software, while designed to work with corresponding storage systems, is often released and evolved separately from the storage system. This is because the software is installed on the host side, managing paths there, and host client operating systems and versions vary widely. Customers must manually install the corresponding multipathing package on the host side, selecting the appropriate version based on their operating system. When a newer version of the multipathing software is released, users must actively identify the client and system versions requiring upgrades and manually obtain the corresponding multipathing package. However, enterprise-level storage systems are increasingly capable of supporting thousands or more host clients simultaneously. With a large number of host clients, manually identifying all system versions and installing or upgrading the multipathing software on each client becomes a daunting task requiring significant manpower and time, and is also prone to probabilistic errors.
[0029] Embodiments of this application provide a software deployment method applied to a storage system, comprising: responding to receiving a deployment instruction from a target host, obtaining host information of the target host and software version information of multipath software currently deployed on the target host from the deployment instruction, wherein the multipath software is used to select a communication link for interaction between the target host and the storage system; if the software version information indicates that the multipath software deployed on the target host is a version to be updated, determining a target deployment program matching the target host based on the host information and sending the target deployment program to the target host, wherein the target deployment program is used to deploy a predetermined version of the multipath software on the target host; logging into the target host based on the host information and controlling the target host to run the target deployment program to deploy the predetermined version of the multipath software on the target host.
[0030] The embodiments of this application use a client / server model for the host and storage system. After the host installs the multipath software, it automatically and periodically reports host information and the version information of the deployed multipath software to the storage server. This allows the storage system to be aware of the multipath version on the host. If no reported information is received, it indicates that the host has not installed the self-developed multipath software. The storage system stores and maintains the deployment program of the latest version of the multipath software used with the current storage system. This program can be used to compare with the versions already installed on each host to determine which hosts need to install or upgrade the multipath software. The corresponding deployment program is then sent to the host whose multipath software needs to be updated. By logging into the host, the system controls the deployment of the latest version of the multipath software, achieving automated deployment and unified management of the multipath software and improving the deployment efficiency.
[0031] Figure 1 The diagram illustrates an application scenario of a software deployment method and an electronic device according to embodiments of this application.
[0032] like Figure 1 As shown, the application scenario according to this embodiment may include a first host 101, a second host 102, a third host 103, a network 104, and a storage system 105. The network 104 serves as a medium for providing communication links between the first host 101, the second host 102, the third host 103, and the storage system 105. The first host 101, the second host 102, and the third host 103 each have multiple communication links with the storage system 105. The network 104 may include various connection types, such as wired or wireless communication links, or fiber optic cables, etc.
[0033] Users can interact with the first host 101, the second host 102, and the third host 103 using terminal devices to receive or send messages, etc. Various communication client applications can be deployed on the terminal devices, such as shopping applications, web browser applications, search applications, instant messaging tools, email clients, social media platform software, etc. (for example only). Terminal devices can be various electronic devices with displays and web browsing capabilities, including but not limited to smartphones, tablets, laptops, and desktop computers.
[0034] The first host 101, the second host 102, and the third host 103 can be servers that provide various services, such as a backend management server that supports websites browsed by users using their terminal devices (this is just an example). The backend management server can analyze and process data such as received user requests, and feed back the processing results (such as web pages, information, or data obtained or generated according to user requests) to the terminal device.
[0035] Storage system 105 can provide storage space for the first host 101, the second host 102, and the third host 103. For example, it can store the processing results generated from analyzing data such as user requests.
[0036] It should be noted that the software deployment method provided in this application embodiment can generally be executed by the storage system 105. Accordingly, the software deployment apparatus provided in this application embodiment can generally be disposed in the storage system 105.
[0037] It should be understood that Figure 1 The number of first hosts, second hosts, third hosts, networks, and storage systems shown is merely illustrative. Depending on implementation needs, any number of first hosts, second hosts, third hosts, networks, and storage systems can be included.
[0038] The following will be based on Figure 1 The described scene, through Figures 2-5 The software deployment method of the application embodiments will be described in detail.
[0039] Figure 2 A flowchart illustrating a software deployment method applied to a storage system according to an embodiment of this application is shown.
[0040] like Figure 2 As shown, the software deployment method of this embodiment includes operations S210 to S230.
[0041] In operation S210, in response to receiving a deployment instruction from the target host, the host information of the target host and the software version information of the multipath software currently deployed on the target host are obtained from the deployment instruction.
[0042] In operation S220, if the software version information indicates that the multipath software deployed on the target host is a version to be updated, the target deployment program that matches the target host is determined based on the host information and the target deployment program is sent to the target host.
[0043] In operation S230, the target host is logged in based on the host information, and the target host is controlled to run the target deployment program in order to deploy a predetermined version of multipath software on the target host.
[0044] A storage system may be used by multiple hosts, and user business software services on the hosts can access data using volumes provided by the storage system. To ensure the continuity and reliability of data access for user business software services, multiple communication links are typically configured between each host and the storage system. Multipathing software deployed on the hosts is used to select the communication link for interaction between the host and the storage system, so that it can automatically switch to another communication link if one communication link fails.
[0045] In embodiments of this application, the storage system may store a deployment program for a predetermined version, such as the latest version, of multipath software. The target deployment program is used to deploy the predetermined version of the multipath software on a target host. The target host can periodically send deployment instructions to the storage system through the deployed multipath software, reporting host information and the software version information of the multipath software, so that the storage system can send the deployment program for the latest version of the multipath software to the target host. In one example, host information may include a host identifier, host operating system information, etc., and software version information may include a software version number.
[0046] Upon receiving a deployment instruction, the storage system can identify the software version information to determine whether the multipath software deployed on the target host is the intended version, such as the latest version. For example, it can compare the version number of the latest version with the software version number in the software version information. If the version number of the latest version differs from the software version number, it is determined that the multipath software deployed on the target host is the version to be updated.
[0047] If the software version information indicates that the multipath software deployed on the target host is an updated version, then the multipath software deployed on the target host needs to be updated. Since different hosts have different hardware and software configurations, the appropriate deployment programs for each host also differ. Therefore, it is necessary to determine the appropriate target deployment program for the target host based on the host information.
[0048] Once the target deployment program is identified, it can be sent to the target host. In some embodiments, the target deployment program can be remotely pushed to the target host using host information via a network protocol such as Secure Shell (SSH).
[0049] After the target deployment program is pushed to the target host, the target host can remotely log in via SSH to control the target host to run the target deployment program and achieve version upgrades of multi-path software on the target host.
[0050] According to embodiments of this disclosure, by using the host and storage system in a client / server mode, the target host automatically reports host information and the version information of the deployed multipath software to the storage system, enabling the storage system to be aware of the version of the multipath software on the target host. Furthermore, by storing and maintaining the deployment program for the latest version of the multipath software compatible with the current storage system in the storage system, the target deployment program matching the target host is sent to the target host, and the deployment of the latest version of the multipath software is controlled by logging into the target host, thus achieving automated deployment and unified management of the multipath software and improving the deployment efficiency of the multipath software.
[0051] Figure 3 A schematic diagram of storage multipath according to an embodiment of this application is shown.
[0052] like Figure 3 As shown, the storage multipath scenario includes a storage system, multiple switches, and multiple hosts. The switches include switch A and switch B, and the hosts include host A, ..., host N. Host A deploys business application software services and multipath software, and can identify volumes 1 and 2 mapped from the storage system. Host N deploys business application software services and multipath software, and can identify volumes N1 and N2 mapped from the storage system.
[0053] like Figure 3 As shown, the storage system includes controller 1, controller 2, host bus adapter-A, host bus adapter-B, port A, port B, port C, and port D. The host can access the storage space of the storage system via controller 1 through port A or port B and host bus adapter-A, or via controller 2 through port C or port D and host bus adapter-2.
[0054] like Figure 3 As shown, the storage space of the storage system is divided into multiple volumes, such as volume 1, volume 2, ..., volume N1, volume N2, etc. Figure 3 As shown, host A includes host bus adapter-1 and multiple ports such as port 1 and port 2, and host N includes host bus adapter-2 and multiple ports such as port 3 and port 4. Thus, each host can access the storage system through multiple communication links.
[0055] According to an embodiment of this application, when the software version information indicates that the multipath software deployed on the target host is a version to be updated, determining the target deployment program matching the target host based on the host information includes: querying the software version record information of the target host in the host record information database based on the host identifier in the host information; verifying the software version information using the software version record information to obtain a first verification result; if the first verification result indicates that the software version information is the same as the software version record information, verifying the version of the currently deployed multipath software on the target host using the software version information and the software version information of a predetermined version to obtain a second verification result; if the second verification result indicates that the multipath software deployed on the target host is a version to be updated, determining the deployment program matching the operating system information as the target deployment program based on the operating system information of the target host indicated in the host information and according to the mapping relationship between the operating system information and the deployment program.
[0056] In embodiments of this application, the storage system may have a host record information database, which may store the host identifier of each host and the software version record information of the multipath software. The software version record information may be the software version number of the multipath software deployed on the target host after its most recent upgrade.
[0057] The host record database can store the host identifier and software version record information of each host. After receiving a deployment command, the storage system can use the software version record information of the target host recorded in the host record database to verify the software version information actively reported by the target host, so as to ensure the accuracy of the software version information reported by the target host.
[0058] For example, the software version log information records that the software version of the multipath software deployed on the target host is V1, but the software version information actively reported by the target host indicates that the software version of the multipath software deployed on the target host is V2. In this case, there is a discrepancy between the software version information and the software version log information, which can determine that the first verification result is unsuccessful, interrupting the subsequent software deployment process, and requiring storage system administrators to verify the software version.
[0059] If the software version information matches the software version record information, it indicates that the software version information reported by the target host is accurate, and the subsequent deployment process can proceed. At this point, the software version information can be compared with the predetermined software version information to verify the version of the multipath software currently deployed on the target host, obtaining a second verification result.
[0060] If the software version information is the same as the predetermined software version information, it can be determined that the second verification result indicates that the multipath software deployed on the target host is the version to be updated, and it is necessary to further determine the target deployment program that is compatible with the target host. Otherwise, it can be determined that the multipath software deployed on the target host is the latest version and does not need to be updated.
[0061] When determining the target deployment program that is compatible with the target host, the operating system information of the target host, such as the operating system type and operating system version, can be obtained from the host information in order to obtain the corresponding target deployment program.
[0062] According to embodiments of this application, by verifying software version information in the host record database, the accuracy of information reported by the target host can be ensured, avoiding software deployment errors caused by incorrect information. Simultaneously, by utilizing the mapping relationship between operating system information and deployment programs to determine the target deployment program, it can be guaranteed that hosts of different operating system types and versions can obtain the appropriate deployment program, improving the accuracy of software deployment and thus increasing deployment efficiency.
[0063] According to an embodiment of this application, the software deployment method further includes: in response to the successful deployment of a predetermined version of multipath software on the target host, querying the target host record information in the host record information database based on the host identifier; updating the host record information using the host information if there is a difference between the host record information and the host information; and updating the software version record information using the version information of the predetermined version.
[0064] After successfully deploying the pre-defined version of the multipath software, the target host information in the host record database can be updated accordingly, such as host record information and software version record information, so that the host record database stores the latest information for each host. In a specific example, the storage system can also display a host management interface, which can display the host record information and software version information for each host, so that storage system administrators can view the latest information of all hosts from the storage system side, improving operational efficiency.
[0065] To ensure the storage system maintains up-to-date host record information and software version record information, the software version record information can be updated using predefined version information. Similarly, if there are discrepancies between the host record information and the host information, the host record information can be updated using the original host information. The updated host record information can be identical to the original host information, including host identifiers and operating system information. Host identifiers may include, for example, the host name and unique host serial number, while operating system information may include, for example, operating system type and version information.
[0066] In some embodiments, the host record information may also include the host port number. The host port number can be determined based on the host link information when the target host sends the deployment command. For example, when the target host sends the deployment command through a Fibre Channel (FC) link, the World Wide Port Name (WWPN) of the FC link can be determined as the host port number. When the target host sends the deployment command through an Internet Small Computer System Interface (iSCSI) link, the iSCSI Qualified Name (iQN) of the iSCSI link can be determined as the host port number.
[0067] According to the embodiments of this application, after a predetermined version of multipath software has been successfully deployed on the target host, the host record information and software version record information stored in the host record information database are updated, so that the information stored in the host record information database is always consistent with the actual situation of the target host, providing an accurate data foundation for software deployment and operation and maintenance management, thereby improving deployment efficiency.
[0068] According to embodiments of this disclosure, the software deployment method further includes: in response to a new host instruction, obtaining new host information from the new host instruction; searching in a host record information database based on the new host identifier in the new host information to obtain search results; if the search results indicate that no information about the new host is recorded in the host record information database, recording the new host information in the host record information database; and sending a deployment program corresponding to the new host to the new host based on the new host information to deploy a predetermined version of multipath software on the new host.
[0069] In the embodiments of this application, since the deployment command is sent by the multipath software, it is impossible for a newly added host that has not yet deployed the multipath software to send a deployment command including host information and software version information to the storage system. Therefore, the process of deploying a predetermined version of the multipath software on the newly added host can be triggered by actively adding a host in the storage system.
[0070] The corresponding terminal of the storage system can display a new host interface. Storage system administrators can enter the host information, such as the host identifier, in this interface. After the administrator enters the new host information, the terminal can send a new host command to the storage system, so that the storage system can record the relevant information of the new host in the host record database according to the command.
[0071] To further ensure the accuracy of the host record information database, after receiving new host information, the storage system does not directly store the new host information as the host record information of the new host. Instead, it first uses the new host information identifier to search in the host record information database. Only after ensuring that the host record information database records the information of the new host will the new host information be recorded in the host record information database.
[0072] After obtaining the new host information, the storage system can use the new host information to determine the deployment program corresponding to the new host, send it to the new host, remotely log in to the new host using SSH, and control the new host to execute the deployment program to deploy the predetermined version of multipath software on the new host.
[0073] According to the embodiments of this application, by setting up new host information in the storage system, the sending and execution process of the corresponding deployment program is automatically triggered, thereby completing the deployment of the predetermined version of multipath software on the new host. Through the automated deployment process, the multipath software is deployed quickly and accurately on the new host, improving the overall software deployment flexibility and management efficiency.
[0074] According to an embodiment of this application, logging into a target host based on host information includes: querying the authentication information of the target host in a host record information database based on the host identifier; displaying an information input interface if no authentication information of the target host is found; obtaining the input target authentication information in response to an input operation on the input box, and storing the target authentication information in the host record information database in association with the host identifier; and logging into the target host using the target authentication information.
[0075] In the embodiments of this application, the host record database also stores the host's authentication information, such as the host's address, user identifier, and password. Therefore, the storage system can use the user identifier, password, and address in the host record database to remotely log in to the target host via SSH to control the deployment of a predetermined version of multipath software on the target host.
[0076] Since the target host's authentication information may not be recorded in the host record database, the storage system cannot log in to the target host. Therefore, an information input interface can be displayed, which includes input boxes for entering the target host's authentication information. For example, the information input interface may include two input boxes: the first input box is for entering the target host's user identifier, and the second input box is for entering the target host's password, in order to obtain the target host's complete authentication information.
[0077] After obtaining the target authentication information, the target authentication information can be associated with the host identifier and stored in the host record information database so that when performing multipath software updates on the target host, the target authentication information can be directly obtained from the host record information database.
[0078] According to embodiments of this application, by storing host authentication information in a host record database, the storage system can directly retrieve the required authentication information from the host record database when subsequently needing to log in to the target host for software deployment or updates, eliminating the need for manual input again. This simplifies the login process and improves deployment efficiency. Furthermore, for newly added or unconfigured hosts without recorded authentication information, an information input interface guides the user to input the information, and the entered target authentication information is associated with and stored with the host identifier. This ensures system security while enhancing system flexibility and adaptability.
[0079] Figure 4A flowchart of the execution target deployment procedure according to an embodiment of this application is shown.
[0080] like Figure 4 As shown, the execution of the target deployment procedure includes operations S410~S460.
[0081] Operating S410, begin.
[0082] When operating S420, the target deployment program is determined based on the operating system type and version.
[0083] When operating S430, the target deployment program is sent to the target host based on the authentication information of the target host.
[0084] When operating the S440, log in to the target host based on the authentication information.
[0085] Using the S450, the target deployment program is executed remotely on the target host.
[0086] Operation S460, end.
[0087] Figure 5 A flowchart illustrating the deployment of multipath software according to an embodiment of this application is shown.
[0088] like Figure 5 As shown, deploying multipath software includes operations S510 to S550.
[0089] Operating S510, begin.
[0090] In operation S520, determine whether host information and software version information of the target host have been received. If host information and software version information of the target host have been received, execute operation S530; otherwise, execute operation S540.
[0091] In operation S530, determine whether the target host information exists in the host record information database. If the target host information exists in the host record information database, execute operation S550; otherwise, execute operation S540.
[0092] When operating S540, record the information of the newly added host in the host record information database.
[0093] In operation S550, determine whether the software version is the pre-determined version. If the software version is the pre-determined version, execute operation S590; otherwise, execute operation S560.
[0094] In operation S560, determine whether the target host's authentication information exists in the host record information database. If the target host's authentication information exists in the host record information database, execute operation S580; otherwise, execute operation S570.
[0095] When operating the S570, target authentication information is obtained through the information input interface.
[0096] When operating the S580, remote login is used to perform installation or upgrade.
[0097] Operation S590, end.
[0098] According to an embodiment of this application, sending a target deployment program to a target host based on host information includes: determining multiple available communication links from multiple communication links set up between the storage system and the target host based on the host information; determining a target communication link from the multiple available communication links based on the load status information of each available communication link; and sending the target deployment program to the target host through the target communication link.
[0099] Since multiple communication links are set up between the target host and the storage system, when sending the target deployment program to the target host, an available and idle target communication link can be selected from multiple communication links to send the target deployment program, so as to avoid the target deployment program from failing to be sent or affecting the data transmission of business data.
[0100] In the embodiments of this application, when screening multiple communication links, multiple available communication links can be determined first to ensure the successful transmission of the target deployment program. Then, based on the load status information of each available communication link, the available communication link with the lowest load is determined as the target communication link. This ensures the transmission efficiency of the target deployment program while reducing the impact of the target deployment program transmission process on business data transmission.
[0101] In some embodiments, the storage system may also use the target authentication information to establish an SSH connection with the target host in order to log in to and control the target host.
[0102] According to embodiments of this application, by determining an available and low-load target communication link from among multiple communication links between the target host and the storage system, when the target deployment program is sent to the target host using the target communication link, not only can the transmission efficiency of the target deployment program be improved, but the impact on business data transmission can also be reduced.
[0103] According to an embodiment of this application, the software deployment method further includes: converting a predetermined storage space of a storage system into a target volume according to a small computer interface protocol; and mapping the target volume to multiple hosts so that the multiple hosts can identify the target volume.
[0104] In the embodiments of this application, a target volume can be used to transmit deployment instructions, which include the identification information of the target volume. The target volume is a volume used for data communication, such as an in-band channel volume. It is a special storage volume in the storage system that is different from the data volume that provides storage space for users. The channel volume device type is an unknown device type in the SCSI protocol. Therefore, after the storage and the host are connected through a physical link (FC or iSCSI), the channel volume device can be automatically discovered by the host, but it will not be used as a disk device and cannot be used for data reading and writing.
[0105] Before deploying multipath software using a storage system, the intended storage space of the storage system can be converted to an unknown device type in the SCSI protocol according to the Small Computer Interface Protocol (SCIP), thus obtaining the target volume. If the storage system determines that the received instruction contains the target volume's identification information, it can directly identify the instruction as a deployment instruction for multipath software.
[0106] In some embodiments, since the communication link typically only supports the host sending data flow commands to the storage system and cannot directly send management flow commands, deployment commands can be implemented using data flow commands configured for the target volume, such as using the SCSI mode select10 command to encapsulate host information and software version information to obtain deployment commands.
[0107] According to embodiments of this application, by converting a predetermined storage space of a storage system into a target volume of a specific device type and mapping it to multiple hosts, efficient transmission of deployment instructions is achieved, thereby improving deployment efficiency.
[0108] According to an embodiment of this application, controlling a target host to run a target deployment program includes: backing up the multipath software currently deployed on the target host to obtain a multipath software image; if no confirmation information is received from the target host through the target volume within a preset time, logging into the target host and performing a rollback operation using the multipath software image.
[0109] According to the embodiments of this application, by backing up the deployed multipath software, in the event of upgrade or installation failure, the backup multipath software image can be used for rollback, which can ensure that a usable multipath software version always exists on the target host, and avoid the situation where the system cannot operate normally due to upgrade or installation failure.
[0110] Figure 6 A flowchart illustrating a software deployment method applied to a host according to an embodiment of this application is shown.
[0111] like Figure 6 As shown, the software deployment method includes operations S610 to S630.
[0112] When operating the S610, periodically query host information and the software version information of the currently deployed multipath software.
[0113] When operating the S620, deployment instructions are generated based on host information and software version information.
[0114] When operating the S630, a deployment command is sent to the storage system to deploy a predetermined version of the multipath software using the storage system.
[0115] For hosts with deployed multipathing software, the multipathing software periodically retrieves host information by calling relevant operating system interface functions or commands on the host side. For example, on Linux systems, it uses the system version configuration file " / etc / os-release" to parse and obtain the operating system type and version; it calls the `hostname` command to obtain the hostname; and it calls the `dmidecode -t 1` command to parse and obtain the host's unique serial number using the `Serial Number` command. For instance, host information and software version information can be queried every five minutes.
[0116] Furthermore, multipath software can also obtain the target volume's identification information by calling operating system interface functions or commands on the host side. For example, on a Linux system, the identification information of the target volume can be obtained by parsing the unknown device type identified by the command lsscsi -g | grep “no dev”.
[0117] When sending a deployment command, the target volume can be opened using the target volume's identification information, and a SCSI mode select10 command can be sent to it to send the deployment command to the storage system. This will report host information and software version information to the storage system, triggering the storage system's software deployment process and deploying the predetermined version of multipath software on the host.
[0118] According to embodiments of this application, the host can periodically send host information and software version information to the storage system, which can promptly trigger the deployment process of multipath software, ensuring that the latest version of multipath software is always running on the host, and significantly improving the overall deployment efficiency.
[0119] Figure 7 A flowchart illustrating the sending of deployment instructions according to an embodiment of this application is shown.
[0120] like Figure 7 As shown, sending deployment instructions includes operations S710 to S750.
[0121] Operating S710, begin.
[0122] When operating the S720, use multipath software to query host information and software version information.
[0123] When operating the S730, use multipath software to determine the target volume.
[0124] When operating the S740, using multipath software, deployment instructions, including host information and software version information, are sent to the storage system via the target volume.
[0125] Operation of S750 has ended.
[0126] According to an embodiment of this application, the software deployment method further includes: in response to receiving a data query request, using multipath software, determining a target communication link for processing the data query request from multiple communication links based on the availability status information and load status information of each communication link; using the target communication link, sending the data query request to the storage system, and receiving query result data returned by the storage system.
[0127] Because there are multiple communication links between the host and the storage system, the host uses deployed multipath software to determine the target communication link for processing data query requests in order to achieve load balancing and fault redundancy.
[0128] In one instance, multipath software can obtain the availability and load status information of each communication link. It can first select an available communication link from multiple communication links, and then determine the available communication link with the lowest load as the target communication link.
[0129] Accordingly, after processing the data query request and obtaining the query result data, the storage system can send the query result data to the host through the target communication link, so that the host can return the query result data to the terminal that initiated the data query request.
[0130] According to embodiments of this application, by determining the target communication link for processing data query requests from multiple communication links based on the availability and load status information of each communication link, the successful transmission of data query requests is guaranteed, load balancing is ensured, and the overall data query efficiency is improved.
[0131] Figure 8 A schematic diagram of storage multipath after setting the target volume according to an embodiment of this application is shown.
[0132] like Figure 8 As shown, a target volume is configured in the storage system. Taking host A as an example, host A can recognize the target volume and can use the target volume to send deployment commands to the storage system.
[0133] Based on the above-described software deployment method for storage systems, this application also provides a software deployment apparatus for storage systems. The following will be combined with... Figure 9 The device is described in detail.
[0134] Figure 9 A structural block diagram of a software deployment apparatus for a storage system according to an embodiment of this application is shown.
[0135] like Figure 9 As shown, the software deployment apparatus 900 applied to the storage system in this embodiment includes an acquisition module 910, a determination module 920, and a deployment module 930.
[0136] The acquisition module 910 is used to, in response to receiving a deployment instruction from the target host, acquire the host information of the target host and the software version information of the multipath software currently deployed on the target host, wherein the multipath software is used to select the communication link for interaction between the target host and the storage system. In one embodiment, the acquisition module 910 may be used to perform the operation S210 described above, which will not be repeated here.
[0137] The determining module 920, when the software version information indicates that the multipath software deployed on the target host is a version to be updated, determines a target deployment program matching the target host based on the host information and sends the target deployment program to the target host. The target deployment program is used to deploy a predetermined version of the multipath software on the target host. In one embodiment, the determining module 920 can be used to perform the operation S220 described above, which will not be repeated here.
[0138] The deployment module 930 is used to log in to the target host based on the host information and control the target host to run the target deployment program, so as to deploy a predetermined version of multipath software on the target host. In one embodiment, the deployment module 930 can be used to perform the operation S230 described above, which will not be repeated here.
[0139] According to an embodiment of this application, the determination module 920 includes a query submodule, a first verification submodule, a second verification submodule, and a determination submodule.
[0140] The query submodule is used to query the software version record information of a target host in the host record information database based on the host identifier in the host information.
[0141] The first verification submodule is used to verify the software version information using the software version record information, and obtain the first verification result.
[0142] The second verification submodule is used to perform version verification on the multipath software currently deployed on the target host, using the software version information and the software version record information, when the software version information in the first verification result is the same as the software version record information, and to obtain the second verification result.
[0143] When the determination submodule is used to determine that the multipath software deployed on the target host is the version to be updated, based on the operating system information of the target host indicated in the host information, and according to the mapping relationship between the operating system information and the deployment program, the deployment program that matches the operating system information is the target deployment program.
[0144] According to an embodiment of this application, the software deployment apparatus 900 applied to a storage system further includes a record query module, a record update module, and a version update module.
[0145] The record query module is used to query the target host record information in the host record information database based on the host identifier in response to the successful deployment of the predetermined version of multipath software on the target host.
[0146] The record update module is used to update the host record information using the host information when there are discrepancies between the host record information and the host information.
[0147] The version update module is used to update the software version record information using the version information of the predefined version.
[0148] According to an embodiment of this application, the software deployment apparatus 900 applied to a storage system further includes a new acquisition module, a new retrieval module, a new record module, and a new deployment module.
[0149] The newly added acquisition module is used to respond to the new host command and obtain the new host information from the new host command.
[0150] The newly added search module is used to search the host record information database based on the newly added host identifier in the newly added host information and obtain the search results.
[0151] The Add Record module is used to add information about a new host to the host record information database when the search results do not contain information about the new host.
[0152] The new deployment module is used to send the deployment program corresponding to the new host to the new host based on the new host information, so as to deploy the predetermined version of multipath software on the new host.
[0153] According to an embodiment of this application, the deployment module 930 includes an authentication query submodule, an authentication display submodule, an authentication input submodule, and a login submodule.
[0154] The authentication query submodule is used to query the authentication information of a target host in the host record information database based on the host identifier.
[0155] The authentication display submodule is used to display an information input interface when no authentication information for the target host is found. The information input interface includes an input box for entering the authentication information of the target host.
[0156] The authentication input submodule is used to respond to input operations on the input box, obtain the target authentication information of the input, and associate the target authentication information with the host identifier and store it in the host record information database.
[0157] The login submodule is used to log in to the target host using the target's authentication information.
[0158] According to an embodiment of this application, the determination module 920 includes an availability determination submodule, a target determination submodule, and a transmission submodule.
[0159] The available determination submodule is used to determine multiple available communication links from multiple communication links set up between the storage system and the target host based on host information.
[0160] The target determination submodule is used to determine the target communication link from multiple available communication links based on the load status information of each available communication link.
[0161] The sending submodule is used to send the target deployment program to the target host via the target communication link.
[0162] According to embodiments of this application, the deployment instruction includes identification information of the target volume. The software deployment apparatus 900 applied to the storage system further includes a type conversion module and a volume mapping module.
[0163] The type conversion module is used to convert the device type of a predetermined storage space in a storage system according to the small computer interface protocol to obtain the target volume.
[0164] The volume mapping module is used to map a target volume to multiple hosts so that multiple hosts can recognize the target volume.
[0165] According to embodiments of this application, any multiple modules among the acquisition module 910, determination module 920, and deployment module 930 can be combined into one module, or any one of these modules can be split into multiple modules. Alternatively, at least some of the functions of one or more of these modules can be combined with at least some of the functions of other modules and implemented in one module. According to embodiments of this application, at least one of the acquisition module 910, determination module 920, and deployment module 930 can be at least partially implemented as hardware circuitry, such as a field-programmable gate array (FPGA), a programmable logic array (PLA), a system-on-a-chip, a system-on-a-substrate, a system-on-package, an application-specific integrated circuit (ASIC), or any other reasonable means of integrating or packaging circuitry, or implemented in software, hardware, or firmware, or in any suitable combination of any of these three implementation methods. Alternatively, at least one of the acquisition module 910, determination module 920, and deployment module 930 can be at least partially implemented as a computer program module, which can perform corresponding functions when the computer program module is run.
[0166] Based on the above-described software deployment method for a host computer, this application also provides a software deployment apparatus for a host computer. The following will be combined with... Figure 10 The device is described in detail.
[0167] Figure 10 A structural block diagram of a software deployment apparatus for a host according to an embodiment of this application is shown.
[0168] like Figure 10 As shown, the software deployment device 1000 applied to the host in this embodiment includes a query module 1010, a generation module 1020, and a sending module 1030.
[0169] The query module 1010 is used to periodically query host information and the software version information of the currently deployed multipath software. In one embodiment, the query module 1010 can be used to perform the operation S610 described above, which will not be repeated here.
[0170] The generation module 1020 is used to generate deployment instructions based on host information and software version information. In one embodiment, the generation module 1020 can be used to perform the operation S620 described above, which will not be repeated here.
[0171] The sending module 1030 is used to send deployment instructions to the storage system in order to deploy the latest version of the multipath software using the storage system. In one embodiment, the sending module 1030 may be used to perform the operation S630 described above, which will not be repeated here.
[0172] According to an embodiment of this application, the software deployment apparatus 1000 applied to the host further includes a target determination module and a request sending module.
[0173] The target determination module is used to respond to a received data query request by using multipath software to determine the target communication link for processing the data query request from multiple communication links based on the availability and load status information of each communication link.
[0174] The request sending module is used to send data query requests to the storage system via the target communication link and to receive the query result data returned by the storage system.
[0175] According to embodiments of this application, any plurality of modules among the query module 1010, generation module 1020, and sending module 1030 can be merged into one module, or any one of these modules can be split into multiple modules. Alternatively, at least part of the functionality of one or more of these modules can be combined with at least part of the functionality of other modules and implemented in one module. According to embodiments of this application, at least one of the query module 1010, generation module 1020, and sending module 1030 can be at least partially implemented as hardware circuitry, such as a field-programmable gate array (FPGA), a programmable logic array (PLA), a system-on-a-chip, a system-on-a-substrate, a system-on-package, an application-specific integrated circuit (ASIC), or any other reasonable means of integrating or packaging circuitry, or implemented in software, hardware, or firmware, or in any appropriate combination of any of these three implementation methods. Alternatively, at least one of the query module 1010, generation module 1020, and sending module 1030 can be at least partially implemented as a computer program module, which, when run, can perform corresponding functions.
[0176] Figure 11 A block diagram of an electronic device suitable for implementing a software deployment method according to an embodiment of this application is shown.
[0177] like Figure 11As shown, an electronic device 1100 according to an embodiment of this application includes a processor 1101, which can perform various appropriate actions and processes according to a program stored in a read-only memory (ROM) 1102 or a program loaded from a storage portion 1108 into a random access memory (RAM) 1103. The processor 1101 may include, for example, a general-purpose microprocessor (e.g., a CPU), an instruction set processor and / or an associated chipset and / or a special-purpose microprocessor (e.g., an application-specific integrated circuit (ASIC)), etc. The processor 1101 may also include onboard memory for caching purposes. The processor 1101 may include a single processing unit or multiple processing units for performing different actions of the method flow according to an embodiment of this application.
[0178] RAM 1103 stores various programs and data required for the operation of electronic device 1100. Processor 1101, ROM 1102, and RAM 1103 are interconnected via bus 1104. Processor 1101 executes various operations of the method flow according to embodiments of this application by executing programs in ROM 1102 and / or RAM 1103. It should be noted that programs may also be stored in one or more memories other than ROM 1102 and RAM 1103. Processor 1101 may also execute various operations of the method flow according to embodiments of this application by executing programs stored in one or more memories.
[0179] According to embodiments of this application, the electronic device 1100 may further include an input / output (I / O) interface 1105, which is also connected to a bus 1104. The electronic device 1100 may also include one or more of the following components connected to the input / output (I / O) interface 1105: an input section 1106 including a keyboard, mouse, etc.; an output section 1107 including a cathode ray tube (CRT), liquid crystal display (LCD), etc., and a speaker, etc.; a storage section 1108 including a hard disk, etc.; and a communication section 1109 including a network interface card such as a LAN card, modem, etc. The communication section 1109 performs communication processing via a network such as the Internet. A drive 1110 is also connected to the input / output (I / O) interface 1105 as needed. A removable medium 1111, such as a disk, optical disk, magneto-optical disk, semiconductor memory, etc., is deployed on the drive 1110 as needed so that computer programs read from it can be deployed into the storage section 1108 as needed.
[0180] This application also provides a computer-readable storage medium, which may be included in the device / apparatus / system described in the above embodiments; or it may exist independently and not assembled into the device / apparatus / system. The computer-readable storage medium carries one or more programs, which, when executed, implement the method according to the embodiments of this application.
[0181] According to embodiments of this application, the computer-readable storage medium can be a non-volatile computer-readable storage medium, such as including but not limited to: portable computer disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), portable compact disk read-only memory (CD-ROM), optical storage devices, magnetic storage devices, or any suitable combination thereof. In this application, the computer-readable storage medium can be any tangible medium containing or storing a program that can be used by or in conjunction with an instruction execution system, apparatus, or device. For example, according to embodiments of this application, the computer-readable storage medium may include ROM 1102 and / or RAM 1103 and / or one or more memories other than ROM 1102 and RAM 1103 described above.
[0182] Embodiments of this application also include a computer program product comprising a computer program containing program code for performing the methods shown in the flowchart. When the computer program product is run on a computer system, the program code is used to cause the computer system to implement the methods provided in the embodiments of this application.
[0183] When the computer program is executed by the processor 1101, it performs the functions defined in the system / apparatus of this application embodiment. According to the embodiments of this application, the systems, apparatuses, modules, units, etc., described above can be implemented by computer program modules.
[0184] In one embodiment, the computer program may rely on a tangible storage medium such as an optical storage device or a magnetic storage device. In another embodiment, the computer program may also be transmitted and distributed in the form of signals over a network medium, and downloaded and deployed via communication section 1109, and / or deployed from removable medium 1111. The program code contained in the computer program can be transmitted using any suitable network medium, including but not limited to: wireless, wired, etc., or any suitable combination thereof.
[0185] In such an embodiment, the computer program can be downloaded and deployed from a network via communication section 1109, and / or deployed from removable medium 1111. When the computer program is executed by processor 1101, it performs the functions defined in the system of this application embodiment. According to embodiments of this application, the systems, devices, apparatuses, modules, units, etc., described above can be implemented by computer program modules.
[0186] According to embodiments of this application, program code for executing the computer programs provided in the embodiments of this application can be written in any combination of one or more programming languages. Specifically, these computational programs can be implemented using high-level procedural and / or object-oriented programming languages, and / or assembly / machine languages. Programming languages include, but are not limited to, languages such as Java, C++, Python, "C", or similar programming languages. The program code can be executed entirely on the user's computing device, partially on the user's device, partially on a remote computing device, or entirely on a remote computing device or server. In cases involving remote computing devices, the remote computing device can be connected to the user's computing device via any type of network, including a local area network (LAN) or a wide area network (WAN), or it can be connected to an external computing device (e.g., via the Internet using an Internet service provider).
[0187] The flowcharts and block diagrams in the accompanying drawings illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of this application. In this regard, each block in a flowchart or block diagram may represent a module, segment, or portion of code containing one or more executable instructions for implementing a specified logical function. It should also be noted that in some alternative implementations, the functions indicated in the blocks may occur in a different order than those indicated in the drawings. For example, two consecutively indicated blocks may actually be executed substantially in parallel, and they may sometimes be executed in reverse order, depending on the functions involved. It should also be noted that each block in a block diagram or flowchart, and combinations of blocks in a block diagram or flowchart, may be implemented using a dedicated hardware-based system that performs the specified function or operation, or using a combination of dedicated hardware and computer instructions.
[0188] Those skilled in the art will understand that the features described in the various embodiments of this application can be combined and / or combined in various ways, even if such combinations or combinations are not explicitly described in this application. In particular, the features described in the various embodiments of this application can be combined and / or combined in various ways without departing from the spirit and teachings of this application. All such combinations and / or combinations fall within the scope of this application.
[0189] The embodiments of this application have been described above. However, these embodiments are merely illustrative and not intended to limit the scope of this application. Although various embodiments have been described above, this does not mean that the measures in the various embodiments cannot be used advantageously in combination. Without departing from the scope of this application, those skilled in the art can make various substitutions and modifications, all of which should fall within the scope of this application.
Claims
1. A software deployment method, characterized in that, Applied to a storage system, the method includes: In response to receiving a deployment instruction from a target host, the system obtains the host information of the target host and the software version information of the multipath software currently deployed on the target host from the deployment instruction. The multipath software is used to select the communication link for the target host to interact with the storage system. The deployment instruction is obtained by encapsulating the host information and the software version information using the data stream instruction for configuring the target volume in the Small Computer Interface Protocol. If the software version information indicates that the multipath software deployed on the target host is a version to be updated, a target deployment program matching the target host is determined based on the host information and the target deployment program is sent to the target host. The target deployment program is used to deploy a predetermined version of the multipath software on the target host. Log in to the target host based on the host information, control the target host to run the target deployment program, and deploy a predetermined version of multipath software on the target host; The method further includes: According to the small computer interface protocol, the predetermined storage space of the storage system is converted into a device type to obtain the target volume; The target volume is mapped to multiple hosts so that the multiple hosts can recognize the target volume; If the received instruction contains the identification information of the target volume, the instruction is determined to be the deployment instruction.
2. The method according to claim 1, characterized in that, When the software version information indicates that the multipath software deployed on the target host is a version awaiting update, based on the host information, determining the target deployment program that matches the target host includes: Based on the host identifier in the host information, query the software version record information of the target host in the host record information database; The software version information is verified using the software version record information to obtain a first verification result; If the first verification result indicates that the software version information is the same as the software version record information, the software version information and the predetermined software version information of the predetermined version are used to perform version verification on the multi-path software currently deployed in the target host to obtain a second verification result. If the second verification result indicates that the multipath software deployed on the target host is a version to be updated, based on the operating system information of the target host indicated in the host information, and according to the mapping relationship between the operating system information and the deployment program, the deployment program that matches the operating system information is determined as the target deployment program.
3. The method according to claim 2, characterized in that, The method further includes: In response to the successful deployment of the predetermined version of multipath software on the target host, the target host record information of the target host is queried in the host record information database based on the host identifier; If there is a difference between the host record information and the host information, the host record information shall be updated using the host information; The software version record information is updated using the version information of the predetermined version.
4. The method according to claim 2, characterized in that, The method further includes: In response to a new host command, new host information is obtained from the new host command; Based on the new host identifier in the new host information, a search is performed in the host record information database to obtain the search results; If the search results indicate that the information of the newly added host is not recorded in the host record information database, the information of the newly added host will be recorded in the host record information database. Based on the newly added host information, the deployment program corresponding to the newly added host is sent to the newly added host to deploy a predetermined version of the multipath software on the newly added host.
5. The method according to claim 2, characterized in that, The step of logging into the target host based on the host information includes: Based on the host identifier, query the authentication information of the target host in the host record information database; If no authentication information for the target host is found, an information input interface is displayed, which includes an input box for entering the authentication information for the target host. In response to an input operation in the input box, the system obtains the target authentication information of the input and associates the target authentication information with the host identifier and stores it in the host record information database. Log in to the target host using the target authentication information.
6. The method according to claim 1, characterized in that, Based on the host information, sending the target deployment program to the target host includes: Based on the host information, multiple available communication links are determined from the multiple communication links set up between the storage system and the target host; Based on the load status information of each available communication link, the target communication link is determined from multiple available communication links; The target deployment program is sent to the target host via the target communication link.
7. A software deployment method, characterized in that, Applied to a host computer, wherein multiple communication links are established between the host computer and a storage system, and the storage system is used to provide storage space for the host computer, the method includes: Periodically query host information and software version information of currently deployed multipath software; Based on the host information and the software version information, a deployment instruction is generated. The deployment instruction is obtained by encapsulating the host information and the software version information using the data flow instruction for configuring the target volume in the Small Computer Interface Protocol. The target volume is obtained by converting the predetermined storage space of the storage system into a device type according to the Small Computer Interface Protocol. The deployment instruction is sent to the storage system to deploy a predetermined version of the multipath software using the storage system.
8. The method according to claim 7, characterized in that, The method further includes: In response to receiving a data query request, the multipath software is used to determine a target communication link for processing the data query request from among the multiple communication links based on the availability and load status information of each communication link. Using the target communication link, the data query request is sent to the storage system, and the query result data returned by the storage system is received.
9. An electronic device, comprising: One or more processors; Memory, used to store one or more computer programs. The characteristic feature is that the one or more processors execute the one or more computer programs to implement the steps of the method according to any one of claims 1 to 8.
Citation Information
Patent Citations
Software state management and upgrading method and system supporting multi-mode deployment
CN121364863A