Dynamic system reconfiguration with partitions
The method addresses the challenges of dynamic system reconfiguration in virtualized environments by using dependency graphs and customer prioritization to optimize the order of reconfiguration actions, thereby reducing disruptions and outage periods.
Patent Information
- Application Number
- JP2024554221
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2022-04-05
- Filing Date
- 2023-03-30
- Publication Date
- 2025-04-22
AI Technical Summary
Existing dynamic system reconfiguration methods in virtualized environments often result in disruptions and require manual, error-prone analysis and multi-step processes to minimize outage periods, especially when reconfiguring multiple logical partitions.
A method that involves receiving active and target system configurations, identifying required reconfiguration actions, generating dependency graphs, sorting and prioritizing actions based on partition dependencies and customer preferences, and performing live simulations to verify the order of actions before implementation.
This approach reduces the operational impact of dynamic hardware reconfiguration by minimizing disruptions and outage periods, ensuring that changes are accurately analyzed and executed in a user-driven, priority-based manner.
Smart Images

Figure 2025512738000001_ABST
Abstract
Description
[Technical field]
[0001] The present invention relates generally to the field of system reconfiguration, and more particularly to optimizing motion-aware dynamic system reconfiguration by partitions. [Background technology]
[0002] The use of virtualization is becoming widespread. Virtualization represents a software abstraction that separates computer resources and their use from the underlying physical devices. In general, a virtual machine (VM) provides a software execution environment and can have a virtual processor, virtual system memory, virtual storage, and various virtual devices. A virtual machine has the ability to accomplish tasks independent of a specific hardware implementation or configuration. System virtualization is implemented through some management facility, typically a hypervisor technology. A hypervisor, also called a virtual machine manager (VMM), uses a thin layer of code in software or firmware to achieve fine-grained dynamic resource sharing. Hypervisors are generally the primary technology for system virtualization because they provide the greatest level of flexibility for how virtual resources are defined and managed.
[0003] It is a common requirement that a virtualization environment be able to enforce strict partitioning between different classes of workloads while still sharing hardware between workloads of the same class. Isolation may be required for several reasons. One reason may be to enable high availability, so that two clustered workloads do not share a single point of failure. Another reason is related to performance guarantees, so that the resource demands of one class of resources do not affect another class. A third reason is confidentiality concerns. For example, two competing organizations may want to utilize a virtualization environment from a single provider, with the requirement that hardware is not shared. Typically, the unit of isolation is that of a single host system, i.e., a single instance of a hypervisor.
[0004] Configuring a computing environment involves defining and activating various hardware and software components of the computing environment, including but not limited to logical partitions (LPARs), input / output (I / O) configurations, operating systems, etc. Dynamic hardware reconfiguration is the process of changing the logical view of the system hardware definition while the system is running, i.e., connections to disks, etc. that are visible to partitions running on the system, without the need to reboot the system. Typically, configuration management software that performs dynamic hardware reconfiguration changes the active configuration of the system to the target configuration in a transactional, i.e., single step, manner. Changes across multiple running partitions affect the operating systems and applications running on those partitions. Changes may be disruptive and may require all partitions to be changed to be taken offline during dynamic reconfiguration, or the system administrator to manually stage the system reconfiguration into multiple steps, each of which is less disruptive than a full system reconfiguration, to limit outage duration and user impact.
[0005] For example, a configuration consists of three partitions sharing a single channel path to access I / O that needs to be reconfigured from using channel path A to using channel path B, but it is not possible to determine a maintenance window that suits all three tenants. If the change is done transactionally, all partitions are offline simultaneously and for the entire reconfiguration time. To avoid this, a system administrator can choose to move partitions one after the other to limit the impact in this multi-tenant scenario. Nevertheless, manual reconfiguration has several drawbacks. For example, manual analysis of the required changes is prone to errors. In another example, multiple manual changes are time consuming. In a further example, tenants rely on system administrators and self-service is not available. Summary of the Invention
[0006] A first aspect of the present invention discloses a computer implemented method including: a computer receiving an active system configuration and a target system configuration from a system administrator, the target system configuration including two or more logical partitions; a computer locating one or more reconfiguration actions required to transform the active system configuration to the target system configuration; a computer generating a dependency graph based on the located one or more reconfiguration actions; a computer partitioning the dependency graph according to the two or more logical partitions; a computer sorting the located one or more reconfiguration actions by associated dependencies; a computer ordering the located one or more reconfiguration actions based on respective priorities of the two or more logical partitions; a computer performing a first simulation of the located one or more reconfiguration actions for each of the two or more logical partitions; a computer implementing the located one or more reconfiguration actions for each of the two or more logical partitions. The present invention has the advantage of performing a live simulation of reconfiguration actions that limits the operational impact of dynamic hardware reconfiguration by verifying a defined ordering of the reconfiguration actions prior to implementation.
[0007] A second aspect of the present invention discloses a computer program product including one or more computer readable storage media and program instructions collectively stored on the one or more computer readable storage media. The stored program instructions include program instructions for receiving an active system configuration and a target system configuration from a system administrator, the target system configuration including two or more logical partitions. The stored program instructions include program instructions for locating one or more reconfiguration actions required to convert the active system configuration to the target system configuration. The stored program instructions include program instructions for generating a dependency graph based on the located one or more reconfiguration actions. The stored program instructions include program instructions for partitioning the dependency graph according to the two or more logical partitions. The stored program instructions include program instructions for sorting the located one or more reconfiguration actions by associated dependencies. The stored program instructions include program instructions for ordering the located one or more reconfiguration actions based on respective priorities of the two or more logical partitions. The stored program instructions include program instructions for performing a first simulation of the located one or more reconfiguration actions for each of the two or more logical partitions. The stored program instructions include program instructions for implementing one or more reconfiguration actions identified for each of the two or more logical partitions.
[0008] A third aspect of the present invention discloses a computer system including one or more computer processors and one or more computer readable storage media, wherein program instructions are collectively stored in the one or more computer readable storage media. The stored program instructions include program instructions for receiving an active system configuration and a target system configuration from a system administrator, the target system configuration including two or more logical partitions. The stored program instructions include program instructions for locating one or more reconfiguration actions required to convert the active system configuration to the target system configuration. The stored program instructions include program instructions for generating a dependency graph based on the located one or more reconfiguration actions. The stored program instructions include program instructions for partitioning the dependency graph according to the two or more logical partitions. The stored program instructions include program instructions for sorting the located one or more reconfiguration actions by associated dependencies. The stored program instructions include program instructions for ordering the located one or more reconfiguration actions based on respective priorities of the two or more logical partitions. The stored program instructions include program instructions for performing a first simulation of one or more reconfiguration actions identified for each of the two or more logical partitions. The stored program instructions include program instructions for implementing the one or more reconfiguration actions identified for each of the two or more logical partitions.
[0009] In another aspect, the present invention discloses a method for optimizing dynamic system reconfiguration, the method including a computer ordering one or more determined reconfiguration actions based on respective priorities of two or more logical partitions, the respective priorities of the two or more logical partitions being based on customer preferences. An advantage of ordering changes based on customer preferences is that the process is user driven versus a default process. Another advantage of ordering changes based on customer preferences is that by splitting required configuration changes into a larger number of independent configuration changes, the present invention reduces downtime of systems associated with preferred customers. [Brief description of the drawings]
[0010] [Figure 1] 1 is a functional block diagram illustrating a distributed data processing environment in accordance with an embodiment of the present invention. [Diagram 2] 2 is a flowchart depicting operational steps of a reconfiguration program on a server computer in the distributed data processing environment of FIG. 1 to optimize a dynamic system reconfiguration in accordance with an embodiment of the present invention. [Figure 3A] 2 is a diagram of example steps performed by a reconstruction program in the distributed data processing environment of FIG. 1 in accordance with an embodiment of the present invention. [Figure 3B] 2 is a continuation of the example steps performed by a reconfiguration program in the distributed data processing environment of FIG. 1 in accordance with an embodiment of the present invention. [Figure 3C] 2 is a continuation of an example of further steps performed by a reconfiguration program in the distributed data processing environment of FIG. 1 in accordance with an embodiment of the present invention. [Figure 3D] 2 is another continuation of the example steps performed by a reconfiguration program in the distributed data processing environment of FIG. 1 in accordance with an embodiment of the present invention. [Figure 3E] 2 is a continuation of an example of additional steps performed by a reconfiguration program in the distributed data processing environment of FIG. 1 in accordance with an embodiment of the present invention. [Figure 4]2 is a block diagram of components of a server computer executing a reconstruction program in the distributed data processing environment of FIG. 1 in accordance with an embodiment of the present invention. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0011] Embodiments of the present invention recognize that efficiencies may be gained by locating required reconfiguration changes and defining the order in which the changes should be implemented based on a dependency graph, thus eliminating the need to suspend all involved partitions for the entire reconfiguration time. Embodiments of the present invention also recognize that efficiencies may be gained by verifying the defined order of reconfiguration actions with a live simulation, thus limiting the operational impact of dynamic hardware reconfiguration. Implementations of embodiments of the present invention may take a variety of forms, and details of exemplary implementations are discussed below with reference to the figures.
[0012] FIG. 1 is a functional block diagram illustrating a distributed data processing environment, generally designated 100, in accordance with one embodiment of the present invention. As used herein, the term "distributed" refers to a computer system that includes multiple physically disparate devices that operate together as a single computer system. FIG. 1 is only intended to provide an illustration of one implementation and does not suggest any limitation with respect to the environments in which different embodiments may be implemented. Many modifications to the depicted environment may be made by one skilled in the art without departing from the scope of the present invention as recited in the claims.
[0013] The distributed data processing environment 100 includes a server computer 104 and client computing devices 120 interconnected via a network 102. The network 102 can be, for example, a telecommunications network, a local area network (LAN), a wide area network (WAN) such as the Internet, or a combination of the three, and can include wired, wireless, or fiber optic connections. The network 102 can include one or more wired and / or wireless networks capable of transmitting and receiving data signals, voice signals, or video signals including multimedia signals including voice information, data information, and video information, or a combination thereof. In general, the network 102 can be any combination of connections and protocols that will support communications between the server computer 104, the client computing devices 120, and other computing devices (not shown) in the distributed data processing environment 100.
[0014] The server computer 104 may be a standalone computing device, an administrative server, a web server, a mobile computing device, or any other electronic device or computing system capable of receiving, transmitting, and processing data. In other embodiments, the server computer 104 may represent a server computing system utilizing multiple computers as a server system, such as in a cloud computing environment. In another embodiment, the server computer 104 may be a laptop computer, a tablet computer, a netbook computer, a personal computer (PC), a desktop computer, a personal digital assistant (PDA), a smartphone, or any programmable electronic device capable of communicating over the network 102 with the client computing devices 120 and other computing devices (not shown) in the distributed data processing environment 100. In another embodiment, the server computer 104 represents a computing system utilizing clustered computers and components (e.g., database server computers, application server computers, etc.) that function as a single pool of seamless resources when accessed within the distributed data processing environment 100. The server computer 104 includes a hypervisor 106 and a database 118. The server computer 104 may include internal and external hardware components, as depicted and described in further detail with respect to FIG.
[0015] Hypervisor 106 is computer software, firmware, and / or hardware that creates and runs virtual machines, as should be appreciated by those skilled in the art. Hypervisor 106 presents a virtual operating platform to guest operating systems and manages the execution of the guest operating systems. Multiple instances of various operating systems can share virtualized hardware resources. Hypervisor 106 includes management partition 108, customer partition 112, customer partition 114, and customer partition 116.
[0016] Management partition 108, customer partition 112, customer partition 114, and customer partition 116 are each logical partitions (LPARs), i.e., subsets of hardware resources associated with server computer 104 and virtualized as separate computers, as should be recognized by those skilled in the art. Customer partition 112, customer partition 114, and customer partition 116 are each associated with a unique (i.e., different) customer. In one embodiment, management partition 108 includes configuration management software, not shown, that provides dynamic hardware reconfiguration capabilities, i.e., the ability to change the logical view of the system hardware definition while the system is running. Management partition 108 includes a reconfiguration program 110.
[0017] The reconfiguration program 110 limits the operational impact of dynamic hardware reconfiguration by first locating system changes required for reconfiguration, secondly defining a reconfiguration change order based on operational impact, and thirdly simulating the reconfiguration changes per partition to identify cross-partition dependencies. Once the reconfiguration program 110 verifies through simulation that all changes can be successfully applied, the reconfiguration program 110 issues the changes in the identified order. An advantage of using the reconfiguration program 110 is that the reconfiguration program 110 allows configuration changes to be localized, or isolated, within a partition, which enables multi-tenancy within a hypervisor, such as the hypervisor 106. In the depicted embodiment, the reconfiguration program 110 is a standalone product. In another embodiment, the reconfiguration program 110 is a component of configuration management software.
[0018] The reconfiguration program 110 receives the active and target I / O configurations. The reconfiguration program 110 locates the actions required to become the target I / O configuration. The reconfiguration program 110 generates a dependency graph based on the located actions. The reconfiguration program 110 divides the dependency graph according to partitions. The reconfiguration program 110 sorts the actions based on the dependencies and orders the actions based on partition priority. The reconfiguration program 110 identifies dependencies that span partitions. The reconfiguration program 110 simulates the target actions for each partition and evaluates the results of the simulation. If the reconfiguration program 110 determines that the simulation identified a problem, the reconfiguration program 110 adds the identified additional dependencies and repeats the simulation. If the reconfiguration program 110 determines that the simulation did not identify a problem, the reconfiguration program 110 performs the reconfiguration actions in the identified order. The reconfiguration program 110 is depicted and described in further detail with respect to FIG. 2 and FIG. 3A-3E.
[0019] The database 118 stores information used and generated by the reconfiguration program 110. In the depicted embodiment, the database 118 resides on the server computer 104. In alternative embodiments, the database 118 may reside elsewhere in the distributed data processing environment 100, provided that the reconfiguration program 110 has access to the database 118. A database is an organized collection of data. The database 118 may be implemented on any type of storage device capable of storing data and configuration files that can be accessed and utilized by the reconfiguration program 110, such as a database server, a hard disk drive, or flash memory. The database 118 stores customer preferences regarding scheduling outage periods for customers associated with the customer partition 112, the customer partition 114, or the customer partition 116, or a combination thereof. The database 118 also stores priorities associated with the customer preferences as defined by a system administrator, i.e., a user of the client computing device 120. Additionally, the database 118 stores one or more configuration profiles ascertained by the reconfiguration program 110. In one embodiment, database 118 stores analytical or diagnostic information used by a system administrator.
[0020] The client computing device 120 can be one or more of a laptop computer, a tablet computer, a smartphone, a smart watch, a smart speaker, or any programmable electronic device capable of communicating over the network 102 with various components and devices in the distributed data processing environment 100. The client computing device 120 can be a wearable computer. A wearable computer is a small electronic device that is worn by a bearer under, with, or on top of clothing and can be in or connected to glasses, hats, or other accessories. Wearable computers are particularly useful for applications that require more complex computer support than simply hardware coded logic. In one embodiment, the wearable computer can be in the form of a smart watch. In one embodiment, the wearable computer can be in the form of a head mounted display. The head mounted display can take the form factor of glasses, such as augmented reality (AR) glasses. In one embodiment, the client computing device 120 can be integrated into a user's vehicle. For example, client computing device 120 may include a head-up display on the windshield of a vehicle. Generally, client computing device 120 represents one or more programmable electronic devices, or a combination of programmable electronic devices, capable of executing machine-readable program instructions and capable of communicating with other computing devices (not shown) in distributed data processing environment 100 over a network, such as network 102. Client computing device 120 includes an instance of administrator user interface 122.
[0021] The administrator user interface 122 provides an interface between the reconfiguration program 110 on the server computer 104 and users of the client computing devices 120. In one embodiment, the administrator user interface 122 is mobile application software. Mobile application software, or "apps," are computer programs designed to run on smartphones, tablet computers, and other mobile devices. In one embodiment, the administrator user interface 122 may be a graphical user interface (GUI) or web user interface (WUI) and may display text, documents, web browser windows, user options, application interfaces, and instructions of operation and may include information (such as graphics, text, and sounds) that the program presents to the user, as well as control sequences employed by the user to control the program. The administrator user interface 122 allows users of the client computing devices 120 to store customer preferences in the database 118. In one embodiment, the administrator user interface 122 is a component of the operating system (OS) that provides system administrators and advanced users with an interface for configuring, monitoring, and servicing the system. The administrator user interface 122 allows a system administrator to manage many systems and partitions. The administrator user interface 122 can store analytical or diagnostic information in the database 118 via the network 102.
[0022] FIG. 2 is a flow chart depicting operational steps of a reconfiguration program 110 on a server computer 104 in the distributed data processing environment 100 of FIG. 1 to optimize dynamic system reconfiguration in accordance with an embodiment of the present invention.
[0023] Reconfiguration program 110 receives an active and target I / O configuration (step 202). In one embodiment, when a system administrator, i.e., a user of client computing device 120, triggers a dynamic system reconfiguration via administrator user interface 122, reconfiguration program 110 receives an active or "as is" configuration and a target or "to be" configuration. The active and target I / O configurations are for a set of logical partitions, such as customer partition 112, customer partition 114, and customer partition 116.
[0024] The reconfiguration program 110 determines the actions required to become the target I / O configuration (step 204). In one embodiment, the reconfiguration program 110 determines the differences between the two configurations by performing a hierarchical delta calculation to compare the active I / O configuration with the target I / O configuration. Based on the calculation, the reconfiguration program 110 determines the actions required to transform the active configuration into the target configuration. The actions may include, but are not limited to, adding, modifying, or deleting one or more I / O elements, or a combination thereof. For example, if the active configuration includes two control units and the target configuration includes one control unit, the reconfiguration program 110 determines the action to remove one of the control units.
[0025] The reconfiguration program 110 generates a dependency graph based on the actions (step 206). In one embodiment, based on the located actions, the reconfiguration program 110 generates a dependency graph that represents which of the previously located actions belong to which I / O elements and which I / O elements depend on which other elements. In one embodiment, the dependency graph is a data structure that represents how different I / O elements depend on each other. The I / O elements may include, but are not limited to, applications, LPARs, functions, channel paths, control units, or devices, or combinations thereof. The dependencies between I / O elements may include, but are not limited to, partition-to-function, partition-to-channel path, channel path-to-control unit, and control unit-to-device.
[0026] The reconfiguration program 110 splits the dependency graph according to partitions (step 208). In one embodiment, the reconfiguration program 110 splits the dependency graph into sub-graphs according to LPARs, such as customer partition 112, customer partition 114, and customer partition 116, to determine which actions affect each partition within a partition. In one embodiment, one or more actions may affect more than one partition. This step is discussed further with respect to FIG. 3B.
[0027] The reconfiguration program 110 sorts the actions based on dependencies (step 210). In one embodiment, the reconfiguration program 110 sorts the elements to be changed in the partition based on their dependencies, such that if element A depends on element B, then the reconfiguration program 110 implements the changes to element B before implementing the changes to element A. For example, a control unit is a logical entity for a device in a system configuration. If a reconfiguration action involves deleting both a control unit and a device, the system architecture requires that the device be deleted before the control unit, since it would be an error to delete the control unit first while the device actively depends on the control unit in the configuration. In another example, it is not possible to add a device to a configuration before first adding a control unit on which the device will depend.
[0028] The reconfiguration program 110 orders the actions based on partition priority (step 212). In one embodiment, the reconfiguration program 110 orders the reconfiguration actions based on the priority of each partition in an attempt to reduce outage duration. In one embodiment, a user of the client computing device 120, i.e., a system administrator, stores the priorities and preferences of each customer associated with each customer partition in the database 118 so that the reconfiguration program 110 can retrieve the priorities from the database 118. For example, a customer associated with customer partition 112 may have a preference for days of the week for system downtime, such as a maintenance window on Saturday that allows for downtime of several hours. In another example, a customer associated with customer partition 114 may have critical applications running and would prefer to minimize system downtime above all else. In one embodiment, the system administrator defines the priorities using a weighted sum that reflects the importance of the infrastructure for each customer. The advantage of ordering the changes according to priority is that the process is user-driven versus the default process. Another advantage of ordering changes according to priority is that by breaking down required configuration changes into larger independent configuration changes, the reconfiguration program 110 reduces outage duration for systems associated with preferred customers. The reconfiguration program 110 orders actions to promote the highest priority partition first. Additionally, the reconfiguration program 110 can order changes that affect multiple partitions to reduce outage duration for higher priority partitions.
[0029] The reconfiguration program 110 identifies cross-partition dependencies (step 214). In one embodiment, the reconfiguration program 110 identifies one or more dependencies between two or more partitions. For example, if a reconfiguration action includes removing a control unit connected to two different partitions via two channel paths, both partitions depend on the control unit removal action. An advantage of identifying cross-partition dependencies is that it allows for independent partition maintenance windows even for configuration changes that span multiple partitions.
[0030] The reconfiguration program 110 simulates the actions for each partition (step 216). In one embodiment, the reconfiguration program 110 performs a simulation of the reconfiguration actions in a defined order to test the identified actions to transform the active configuration to the target configuration without actually changing the I / O configuration of the system as a dry run. The simulation is a test of the reconfiguration program 110 looping through steps of triggering changes based on different dependencies for each logical partition to identify potential problems such as device and / or control unit unavailability, channel path errors, etc. The advantage of performing a live simulation of the reconfiguration actions is to reduce the operational impact of dynamic hardware reconfiguration. The reconfiguration program 110 repeats the simulation steps for all of the dependencies within the partition. In one embodiment, the reconfiguration program 110 performs the simulation in a simulation environment firmware (not shown) that supports dynamically triggering I / O configuration changes and controlling the offline / online status of each I / O element. In an embodiment, the simulation environment is also capable of defining one or more partitions and running workloads on one or more partitions.
[0031] The reconstruction program 110 determines whether the simulation identified a problem (decision block 218). In one embodiment, the reconstruction program 110 analyzes the results of the simulation to determine whether a problem and / or error occurred. In one embodiment, the reconstruction program 110 determines whether the problem and / or error is associated with one or more run-time dependencies.
[0032] If the reconfiguration program 110 determines that the simulation identified a problem ("Yes" branch, decision block 218), the reconfiguration program 110 adds the identified additional dependencies (step 220). In one embodiment, based on the results of the simulation, the reconfiguration program 110 identifies one or more additional run-time dependencies that were not previously considered in step 214 and adds the one or more additional run-time dependencies to the dependency graph. In one embodiment, after adding the additional dependencies, the reconfiguration program 110 returns to step 214 and repeats the simulation. In one embodiment, in response to identifying a problem, the reconfiguration program 110 notifies a system administrator via the administrator user interface 122.
[0033] If the reconfiguration program 110 determines that the simulation did not identify a problem ("No" branch, decision block 218), the reconfiguration program 110 performs reconfiguration actions (step 222). In one embodiment, the result of a successful simulation is a configuration profile that verifies that all changes are applicable and successful when the reconfiguration program 110 triggers the reconfiguration actions in the specified order. In one embodiment, the reconfiguration program 110 performs the reconfiguration actions in the specified order. In one embodiment, the reconfiguration program 110 notifies a system administrator via the administrator user interface 122 that the simulation was successful, and the system administrator triggers the reconfiguration actions at the appropriate time. In one embodiment, the reconfiguration program 110 stores the configuration profile in the database 118.
[0034] FIG. 3A illustrates example steps 300 performed by reconfiguration program 110 in distributed data processing environment 100 of FIG. 1 according to an embodiment of the present invention. FIG. 3A illustrates step 202, as discussed with respect to FIG. 2, by depicting an active configuration and a target configuration as received by reconfiguration program 110. The active configuration includes customer partition 312, which represents customer partition 112 of FIG. 1, customer partition 314, which represents customer partition 114 of FIG. 1, and customer partition 316, which represents customer partition 116 of FIG. 1. In the active configuration, customer partition 312 and customer partition 314 are connected to control unit 310 by channel path 302 and channel path 304, respectively. Furthermore, control unit 310 is associated with device 340. Also, in the active configuration, customer partition 316 is connected to control unit 320 and control unit 330 by channel path 306. Control unit 320 and control unit 330 are associated with device 350 and device 360.
[0035] The target configuration indicates changes to the active configuration identified by the reconfiguration program 110 as discussed with respect to step 204 of FIG. 2. The target configuration also includes customer partition 312, customer partition 314, and customer partition 316. For customer partition 312, the channel path and control unit associated with device 340 remain the same, but the reconfiguration program 110 identifies an action to add device 370. For customer partition 314, the reconfiguration program 110 identifies an action to change the channel path from channel path 304 to channel path 308 connected to control unit 320. Additionally, the reconfiguration program 110 identifies an action to remove control unit 330 and device 360.
[0036] FIG. 3B illustrates a continuation of an example 300 of steps performed by the reconfiguration program 110 in the distributed data processing environment 100 of FIG. 1 according to an embodiment of the present invention. FIG. 3B illustrates steps 206 and 208 as discussed with respect to FIG. 2 by depicting the reconfiguration program 110 generating a dependency graph based on actions and dividing the dependency graph into subgraphs according to partitions. The target configuration of FIG. 3A is repeated on the left side of FIG. 3B. On the right side of FIG. 3B, the dependency graph data structure is visualized, with the reconfiguration program 110 dividing the graph into subgraphs 380 and 390. Subgraph 380 includes customer partition 312 connected to control unit 310 by channel path 302 and associated with device 340 and added device 370. Subgraph 390 includes customer partition 314 connected to control unit 320 by channel path 308 and customer partition 316 connected to control unit 320 by channel path 306. The dotted lines in subgraph 390 indicate the division of the graph according to partitions. Reconfiguration program 110 determines that adding device 370 only affects customer partition 312 because customer partition 314 and customer partition 316 do not have a path to device 370. Reconfiguration program 110 also determines that removing control unit 330 and device 360 affects both customer partition 314 and customer partition 316.
[0037] FIG. 3C illustrates a continuation of another example step 300 performed by the reconfiguration program 110 in the distributed data processing environment 100 of FIG. 1 according to an embodiment of the present invention. The “dependency graph” of FIG. 3B is repeated on the left side of FIG. 3C. The right side of FIG. 3C visualizes the reconfiguration program 110 ordering actions based on partition priority, as discussed with respect to step 212 of FIG. 2, and is referred to as prioritized graph 1. In the depicted example, subgraph 394 includes partitions with the highest priority, as defined by a system administrator, while subgraph 380 is of second priority and subgraph 392 is of lowest priority. Thus, the reconfiguration program 110 orders the actions such that the changes depicted in subgraph 394 are implemented first, allowing elements of subgraph 394 to come back online even before the reconfiguration program 110 triggers other changes.
[0038] FIG. 3D shows another continuation of example steps 300 performed by the reconfiguration program 110 in the distributed data processing environment 100 of FIG. 1 according to an embodiment of the present invention. The "dependency graph" of FIG. 3B is repeated on the left side of FIG. 3D. The right side of FIG. 3C visualizes the reconfiguration program 110 ordering the actions based on partition priorities, as discussed with respect to step 212 of FIG. 2, called prioritized graph 2. FIG. 3D differs from FIG. 3C in that the system administrator has set the priorities differently, i.e., subgraph 396 has the highest priority, subgraph 380 is the second priority, and subgraph 398 is the lowest priority. The reconfiguration program 110 adapts to the priorities by grouping the actions differently.
[0039] 3E illustrates a continuation of an example 300 of additional steps performed by the reconfiguration program 110 in the distributed data processing environment 100 of FIG. 1, in accordance with an embodiment of the present invention. FIG. 3E illustrates steps 216, decision block 218, and step 220 as discussed with respect to FIG. 2, by depicting the results of the reconfiguration program 110 simulating per-partition actions, determining that the simulation identified a problem, adding dependencies discovered in the simulation, and rerunning the simulation. An initial simulation (not shown) indicated that customer partition 316 had no elements that needed to be reconfigured ("no-op"), as displayed in subgraph 398, but an error indicated that customer partition 316 had a run-time dependency on control unit 330. Thus, the order of reconfiguration actions must ensure that channel path 306 is set offline prior to the removal of control unit 330. The reconfiguration program 110 adds the discovered dependencies to the dependency graph and repeats the simulation. The reconfiguration program 110 continues to loop this process until the simulation is successful, thus identifying the sequence of actions required to make the reconfiguration successful and minimize downtime for the customer.
[0040] 4 illustrates a block diagram of components of a server computer 104 in the distributed data processing environment 100 of FIG. 1 in accordance with an embodiment of the present invention. It should be appreciated that FIG. 4 is intended as an illustration of one implementation only and is not intended to suggest any limitations to the environments in which different embodiments may be implemented. Many modifications to the depicted environment may be made.
[0041] The server computer 104 may include a processor 404, a cache 414, a memory 406, a persistent storage 408, a communication unit 410, an input / output (I / O) interface 412, and a communication fabric 402. The communication fabric 402 provides communication between the cache 414, the memory 406, the persistent storage 408, the communication unit 410, and the input / output (I / O) interface 412. The communication fabric 402 may be implemented with any architecture designed to pass data and / or control information between a processor (such as a microprocessor, communication and network processor, etc.), system memory, peripheral devices, and any other hardware components in the system. For example, the communication fabric 402 may be implemented with one or more buses.
[0042] Memory 406 and persistent storage 408 are computer-readable storage media. In this embodiment, memory 406 includes random access memory (RAM). In general, memory 406 may include any suitable volatile or non-volatile computer-readable storage medium. Cache 414 is a high-speed memory that enhances the performance of processor 404 by holding recently accessed data and data near recently accessed data from memory 406.
[0043] Program instructions and data used to practice embodiments of the invention, such as the reconfiguration program 110 and database 118, are stored in persistent storage 408 for execution and / or access by one or more of the respective processors 404 of the server computer 104 via cache 414. In this embodiment, persistent storage 408 includes a magnetic hard disk drive. Alternatively, or in addition to a magnetic hard disk drive, persistent storage 408 may include a solid state hard drive, a semiconductor storage device, a read only memory (ROM), an erasable programmable read only memory (EPROM), a flash memory, or any other computer readable storage medium capable of storing program instructions or digital information.
[0044] Additionally, the media used by persistent storage 408 may be removable. For example, a removable hard drive may be used for persistent storage 408. Other examples include optical and magnetic disks, thumb drives, and smart cards that are inserted into a drive for transfer to another computer-readable storage medium that is also part of persistent storage 408.
[0045] The communications unit 410 provides for communication with other data processing systems or devices, including, in these examples, resources of the client computing device 120. In these examples, the communications unit 410 includes one or more network interface cards. The communications unit 410 may communicate through the use of either or both physical and wireless communications links. The reconstruction program 110, the database 118, and other programs and data used to implement the present invention may be downloaded to the persistent storage 408 of the server computer 104 through the communications unit 410.
[0046] The I / O interface 412 allows for input and output of data with other devices that may be connected to the server computer 104. For example, the I / O interface 412 may provide connection to external devices 416, such as a keyboard, keypad, touch screen, microphone, digital camera, or some other suitable input device, or combination thereof. The external devices 416 may further include portable computer-readable storage media, such as thumb drives, portable optical or magnetic disks, and memory cards. Software and data used to practice embodiments of the invention on the server computer 104, such as the reconstruction program 110 and database 118, may be stored on such portable computer-readable storage media and loaded into the persistent storage 408 via the I / O interface 412. The I / O interface 412 further connects to a display 418.
[0047] The display 418 provides a mechanism for displaying data to a user and may be, for example, a computer monitor. The display 418 may also function as a touch screen, such as the display of a tablet computer.
[0048] The programs described herein are identified based on the applications in which they are implemented in particular embodiments of the invention, nevertheless, it should be understood that any specific program nomenclature herein is used merely as a matter of convenience, and thus the invention should not be limited to use with any particular application specified and / or suggested by such nomenclature.
[0049] The present invention may be a system, method, and / or computer program product, which may include a computer-readable storage medium (or media) having computer-readable program instructions for causing a processor to carry out aspects of the present invention.
[0050] A computer readable storage medium can be any tangible device capable of holding and storing instructions for use by an instruction execution device. A computer readable storage medium can be, for example, but not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. A non-exhaustive list of more specific examples of computer readable storage media includes portable computer diskettes, hard disks, random access memories (RAM), read-only memories (ROM), erasable programmable read-only memories (EPROMs or flash memories), static random access memories (SRAMs), portable compact disk read-only memories (CD-ROMs), digital versatile disks (DVDs), memory sticks, floppy disks, mechanically encoded devices such as punch cards or ridge-in-groove structures having instructions recorded thereon, and any suitable combination of the foregoing. Computer-readable storage media as used herein should not be interpreted as signals that are transitory in nature, such as electric waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission medium (e.g., light pulses passing through a fiber optic cable), or electrical signals transmitted through wires.
[0051] The computer readable program instructions described herein can be downloaded from the computer readable storage medium to each computing / processing device or to an external computer or external storage device over a network, such as the Internet, a local area network, a wide area network, or a wireless network, or a combination thereof. The network can comprise copper transmission cables, optical transmission fiber, wireless transmission, routers, firewalls, switches, gateway computers, or edge servers, or a combination thereof. A network adapter card or network interface of each computing / processing device receives the computer readable program instructions from the network and transfers the computer readable program instructions for storage on the computer readable storage medium within the respective computing / processing device.
[0052] The computer readable program instructions for carrying out the operations of the present invention may be assembler instructions, instruction set architecture (ISA) instructions, machine language instructions, machine dependent instructions, microcode, firmware instructions, state setting data, or source or object code written in any combination of one or more programming languages, including object oriented programming languages such as Smalltalk®, C++, or the like, and traditional procedural programming languages such as the “C” programming language, or similar programming languages. The computer readable program instructions may be executed entirely on the user's computer, or partially on the user's computer, as a standalone software package, or partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (e.g., through the Internet using an Internet Service Provider). In some embodiments, electronic circuitry including, for example, a programmable logic device, a field programmable gate array (FPGA), or a programmable logic array (PLA) may execute computer readable program instructions by utilizing state information of the computer readable program instructions to individualize the electronic circuitry to implement aspects of the present invention.
[0053] Aspects of the present invention are described herein with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer readable program instructions.
[0054] These computer readable program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, the instructions of which are executed by the processor of the computer or other programmable data processing apparatus to produce means for performing the functions / acts specified in one or more blocks of the flowcharts and / or block diagrams. These computer readable program instructions may also be stored on a computer readable storage medium, such that the computer readable storage medium having the instructions stored thereon comprises an article of manufacture including instructions for performing aspects of the functions / acts specified in one or more blocks of the flowcharts and / or block diagrams, and may direct a computer, programmable data processing apparatus, or other device, or combination thereof, to function in a particular manner.
[0055] The computer readable program instructions may also be loaded into a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be performed on the computer, other programmable apparatus, or other device to produce a computer-executed process, such that the instructions, which execute on the computer, other programmable apparatus, or other device, perform the functions / acts specified in one or more blocks of the flowcharts and / or block diagrams.
[0056] The flowcharts and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present invention. In this regard, each block in the flowcharts or block diagrams may represent a module, segment, or portion of instructions comprising one or more executable instructions for implementing a specified logical function. In some alternative implementations, the functions noted in the blocks may be performed out of the order noted in the figures. For example, two blocks shown in succession may in fact be executed substantially simultaneously, or the blocks may sometimes be executed in reverse order depending on the functionality involved. It should also be noted that each block of the block diagrams and / or flowchart illustrations, and combinations of blocks in the block diagrams and / or flowchart illustrations, may be executed by a dedicated hardware-based system that performs the specified functions or acts or executes a combination of dedicated hardware and computer instructions.
[0057] The foregoing description of various embodiments of the present invention has been presented for purposes of illustration and example, but is not intended to be exhaustive or limited to the disclosed embodiments. Many modifications and variations will be apparent to those skilled in the art without departing from the scope and spirit of the present invention. The terminology used herein has been selected to best explain the principles of the embodiments, practical applications, or technical improvements over the art found in the market, or to enable those skilled in the art to understand the embodiments disclosed herein.
Claims
1. 1. A computer-implemented method comprising: receiving, by one or more computer processors, an active system configuration and a target system configuration from a system administrator, the target system configuration including two or more logical partitions; determining, by one or more computer processors, one or more reconfiguration actions required to transform the active system configuration into the target system configuration; generating, by one or more computer processors, a dependency graph based on the located one or more reconfiguration actions; partitioning, by one or more computer processors, the dependency graph according to the two or more logical partitions; sorting, by one or more computer processors, the located one or more reconfiguration actions according to associated dependencies; ordering, by one or more computer processors, the determined one or more reconfiguration actions based on respective priorities of the two or more logical partitions; executing, by one or more computer processors, a first simulation of the identified one or more reconfiguration actions for each of the two or more logical partitions; implementing, by one or more computer processors, the one or more determined reconfiguration actions for each of the two or more logical partitions; 4. A computer-implemented method comprising:
2. analyzing, by one or more computer processors, results of the first simulation; and determining, by one or more computer processors, that a problem with at least one of the identified one or more reconfiguration actions was identified in the first simulation; determining, by one or more computer processors, that the problem is associated with one or more additional dependencies; adding, by one or more computer processors, the one or more additional dependencies to the dependency graph; executing a second simulation by one or more computer processors; The method of claim 1 further comprising:
3. notifying said system administrator of said problem by one or more computer processors. The method of claim 2 , further comprising:
4. 2. The method of claim 1, wherein the located one or more reconfiguration actions include at least one of adding, modifying, and deleting one or more input / output (I / O) elements of the active system configuration.
5. The method of claim 1 , wherein the dependency graph is a data structure that represents how different input / output (I / O) elements in the active system configuration depend on each other.
6. 6. The method of claim 5, wherein the input / output (I / O) elements include at least one of an application, a logical partition (LPAR), a function, a channel path, a control unit, and a device, and the dependencies between the I / O elements include at least one of a partition-to-function dependency, a partition-to-channel path dependency, a channel path-to-control unit dependency, and a control unit-to-device dependency.
7. The method of claim 1 , wherein the priority of each of the two or more logical partitions is based on customer preferences.
8. 1. A computer program product comprising: One or more computer readable storage media and program instructions collectively stored on the one or more computer readable storage media, the stored program instructions comprising: program instructions for receiving an active system configuration and a target system configuration from a system administrator, the target system configuration including two or more logical partitions; program instructions for determining one or more reconfiguration actions required to transform the active system configuration to the target system configuration; program instructions for generating a dependency graph based on the located one or more reconfiguration actions; program instructions for dividing the dependency graph according to the two or more logical partitions; program instructions for sorting the located one or more reconfiguration actions according to associated dependencies; program instructions for ordering the determined one or more reconfiguration actions based on respective priorities of the two or more logical partitions; program instructions for performing a first simulation of the identified one or more reconfiguration actions for each of the two or more logical partitions; program instructions for performing the located one or more reconfiguration actions for each of the two or more logical partitions; The program instructions include A computer program product comprising:
9. The stored program instructions include: program instructions for analyzing results of the first simulation; program instructions for determining that a problem with at least one of the identified one or more reconfiguration actions was identified in the first simulation; program instructions for determining that the problem is associated with one or more additional dependencies; program instructions for adding the one or more additional dependencies to the dependency graph; program instructions for performing a second simulation; 9. The computer program product of claim 8, further comprising:
10. The stored program instructions include: program instructions for notifying said system administrator of said problem.
10. The computer program product of claim 9, further comprising:
11. 9. The computer program product of claim 8, wherein the located one or more reconfiguration actions include at least one of adding, modifying, and deleting one or more input / output (I / O) elements of the active system configuration.
12. 9. The computer program product of claim 8, wherein the dependency graph is a data structure that represents how different input / output (I / O) elements in the active system configuration depend on each other.
13. 13. The computer program product of claim 12, wherein the input / output (I / O) elements include at least one of an application, a logical partition (LPAR), a function, a channel path, a control unit, and a device, and the dependencies between the I / O elements include at least one of a partition-to-function dependency, a partition-to-channel path dependency, a channel path-to-control unit dependency, and a control unit-to-device dependency.
14. 9. The computer program product of claim 8, wherein the priority of each of the two or more logical partitions is based on customer preferences.
15. 1. A computer system comprising: one or more computer processors; one or more computer readable storage media; program instructions collectively stored on the one or more computer-readable storage media for execution by at least one of the one or more computer processors, the stored program instructions comprising: program instructions for receiving an active system configuration and a target system configuration from a system administrator, the target system configuration including two or more logical partitions; program instructions for determining one or more reconfiguration actions required to transform the active system configuration to the target system configuration; program instructions for generating a dependency graph based on the located one or more reconfiguration actions; program instructions for dividing the dependency graph according to the two or more logical partitions; program instructions for sorting the located one or more reconfiguration actions according to associated dependencies; program instructions for ordering the identified one or more reconfiguration actions based on respective priorities of the two or more logical partitions; program instructions for performing a first simulation of the located one or more reconfiguration actions for each of the two or more logical partitions; and program instructions for performing the located one or more reconfiguration actions for each of the two or more logical partitions 1. A computer system comprising:
16. The stored program instructions include: program instructions for analyzing results of the first simulation; program instructions for determining that a problem with at least one of the identified one or more reconfiguration actions was identified in the first simulation; program instructions for determining that the problem is associated with one or more additional dependencies; program instructions for adding the one or more additional dependencies to the dependency graph; program instructions for performing a second simulation; 16. The computer system of claim 15, further comprising:
17. 16. The computer system of claim 15, wherein the located one or more reconfiguration actions include at least one of adding, modifying, and deleting one or more input / output (I / O) elements of the active system configuration.
18. 16. The computer system of claim 15, wherein the dependency graph is a data structure that represents how different input / output (I / O) elements in the active system configuration depend on each other.
19. 20. The computer system of claim 18, wherein the input / output (I / O) elements include at least one of an application, a logical partition (LPAR), a function, a channel path, a control unit, and a device, and the dependencies between the I / O elements include at least one of a partition-to-function dependency, a partition-to-channel path dependency, a channel path-to-control unit dependency, and a control unit-to-device dependency.
20. 16. The computer system of claim 15, wherein the priority of each of the two or more logical partitions is based on customer preferences.
Citation Information
Patent Citations
Virtual computer system for performing dynamic resource distribution
JP2002202959A
Sequential execution method for input / output dynamic reconfiguration
JP2005250722A
System and method for dynamic resource reconfiguration using a dependency graph
US20040177244A1
Orchestrator and console agnostic method to deploy infrastructure through self-describing deployment templates
US20190303213A1