Proactive execution of tasks based on hardware reconfiguration time estimation

By estimating and recalculating reconfiguration times, the method proactively initiates tasks during hardware reconfiguration, addressing inefficiencies in downtime prediction and scheduling.

JP7748781B2Active Publication Date: 2025-10-03INTERNATIONAL BUSINESS MACHINE CORPORATION
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
JP2022571108
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2020-05-26
Filing Date
2021-05-07
Publication Date
2025-10-03
Estimated Expiration
2041-05-07

AI Technical Summary

Technical Problem

Existing systems lack the ability to accurately predict and minimize downtime during hardware reconfiguration in computing environments, leading to inefficient scheduling and maintenance windows that are often oversized.

Method used

A method and system for estimating reconfiguration time by measuring and recalculating the time required for hardware changes, allowing proactive initiation of tasks before completion, thereby reducing system downtime.

Benefits of technology

Enables accurate scheduling and minimizes system downtime by providing real-time progress views and rollback time estimates, ensuring maintenance windows are optimized.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007748781000006
    Figure 0007748781000006
  • Figure 0007748781000007
    Figure 0007748781000007
  • Figure 0007748781000008
    Figure 0007748781000008
Patent Text Reader

Abstract

Proactively performing tasks based on hardware reconfiguration time estimates. Before performing one or more reconfiguration actions to reconfigure a configuration of a computing environment, a determination of at least one estimated reconfiguration time for performing the one or more reconfiguration actions is made. At least one reconfiguration action of the one or more reconfiguration actions is performed, and one or more tasks are initiated before completion of the one or more reconfiguration actions. The initiation is based on the at least one estimated reconfiguration time.
Need to check novelty before this filing date? Find Prior Art

Description

[Background technology]

[0001] One or more aspects relate generally to facilitating processing within a computing environment, and in particular to dynamically reconfiguring hardware of a computing environment to facilitate processing within the computing environment.

[0002] Configuring a computing environment involves defining and activating the various hardware and software components of the computing environment, including, but not limited to, logical partitions, input / output (I / O) configurations, operating systems, etc. Products may be used to facilitate such configuration. For example, the Hardware Configuration Definition (HCD) product offered by International Business Machines Corporation of Armonk, New York, may be used to define and activate I / O configurations.

[0003] Hardware configuration definition products provide a panel-driven interface that allows for the definition of elements such as I / O devices and connects them to logical partitions and operating systems for their use. Hardware configuration definition products and other such products can also be used in reconfiguring the computing environment to be configured. Summary of the Invention

[0004] The shortcomings of the prior art are overcome and additional advantages are provided by providing a computer program product for facilitating processing within a computing environment. The computer program product includes at least one computer-readable storage medium readable by at least one processing circuit and storing instructions for implementing a method. The method includes, before performing one or more reconfiguration actions to reconfigure a configuration of the computing environment, determining at least one estimated reconfiguration time for performing the one or more reconfiguration actions. At least one of the one or more reconfiguration actions is performed. One or more tasks are initiated prior to completing the one or more reconfiguration actions, the initiation being based on the at least one estimated reconfiguration time.

[0005] Computer-implemented methods and systems relating to one or more aspects are also described and claimed herein. Additionally, services relating to one or more aspects are also described and claimed herein.

[0006] Additional features and advantages are realized through the techniques described herein. Other embodiments and aspects are described in detail herein and are considered a part of the claimed aspects.

[0007] One or more aspects are particularly pointed out and distinctly claimed as examples of the claims at the conclusion of this specification. The above and other objects, features, and advantages of the one or more aspects will be apparent from the following detailed description taken in conjunction with the accompanying drawings. [Brief explanation of the drawings]

[0008] [Figure 1A] FIG. 1 illustrates an example computing environment for incorporating and using one or more aspects of the present invention. [Figure 1B]FIG. 1B illustrates an example of further details of the computing environment of FIG. 1A, in accordance with one or more embodiments of the present invention. [Figure 2] FIG. 1 illustrates an example of using an activation service to reconfigure a hardware configuration, in accordance with one or more aspects of the present invention. [Figure 3] FIG. 1 illustrates an example of a reconstruction process in accordance with one or more aspects of the present invention. [Figure 4] FIG. 2 illustrates an example of components used to reconfigure a hardware configuration in accordance with one or more aspects of the present invention. [Figure 5A] FIG. 10 illustrates further details of the reconstruction process in accordance with one or more aspects of the present invention. [Figure 5B] FIG. 10 illustrates further details of the reconstruction process in accordance with one or more aspects of the present invention. [Figure 6] FIG. 1 illustrates an example of a reconfigured system according to an aspect of the present invention. [Figure 7A] FIG. 1 illustrates another example of a computing environment for incorporating and using one or more aspects of the present invention. [Figure 7B] FIG. 7B shows further details of the memory of FIG. 7A. [Figure 8] FIG. 1 illustrates one embodiment of a cloud computing environment. [Figure 9] FIG. 2 illustrates an example of an abstraction model layer. DETAILED DESCRIPTION OF THE INVENTION

[0009] One or more aspects relate to system reconfiguration, such as dynamic hardware reconfiguration, within a computing environment. Dynamic hardware reconfiguration enables reconfiguring hardware and software components of a computing environment, such as logical partitions, control units, input / output (I / O) devices, and operating systems, without requiring an initial program load (IPL) or power-on reset (POR). For example, one or more aspects relate to proactively performing (e.g., initiating and / or processing) selected tasks (e.g., successor tasks) based on an estimated reconfiguration time for performing a reconfiguration, such as dynamic hardware reconfiguration.

[0010] As an example, a capability is provided for measuring the time used to determine one or more reconfiguration actions to be performed to reconfigure a computing environment, estimating the time it will take to perform the one or more reconfiguration actions prior to performing the reconfiguration, and providing at least one estimated reconfiguration time. The at least one estimated reconfiguration time is used to proactively perform (e.g., initiate and / or process) selected tasks prior to completing the reconfiguration (i.e., prior to completing processing of the one or more reconfiguration actions used to reconfigure the computing environment), thereby processing these tasks as soon as possible and reducing system downtime to keep system downtime to a minimum.

[0011] In another aspect, this capability further includes recalculating the estimated reconstruction time using the measured reconstruction time determined during processing of the one or more reconfiguration actions to adjust the at least one estimated reconstruction time, thereby improving the at least one estimated reconstruction time and enabling future reconstruction times to be estimated with greater accuracy.

[0012] One embodiment of a computing environment for incorporating and using one or more aspects of the present invention is described with reference to Figure 1A. In one example, the computing environment is based on the z / Architecture® hardware architecture, an example of which is described in the publication entitled "z / Architecture Principles of Operation" (IBM Publication No. SA22-7832-12, 13th Edition, September 2019), which is hereby incorporated by reference in its entirety. However, the z / Architecture hardware architecture is only one example architecture, and other architectures and / or types of computing environments may include and / or use one or more aspects of the present invention.

[0013] In one example, computing environment 100 includes a central processing unit complex 102, an example of which is an IBM Z® central processing unit complex, including, as a specific example, one or more IBM z15™ systems. Other central processing unit complexes and / or systems based on the same or other hardware architectures may also incorporate and use one or more aspects of the present invention. IBM, z / Architecture, IBM Z, and IBM z15 are trademarks or registered trademarks of International Business Machines Corporation in at least one jurisdiction. In one example, central processing unit complex 102 includes, for example, memory 104 (system memory, main memory, main storage, central storage, storage) coupled to one or more processors (also known as central processing units (CPUs)) 106 and an input / output subsystem 108, each of which is further described below.

[0014] Memory 104 includes, for example, one or more logical partitions 110, a hypervisor 112 that manages the logical partitions, and processor firmware 114. One example of hypervisor 112 is the Processor Resource / System Manager (PR / SM™) hypervisor offered by International Business Machines Corporation of Armonk, New York. As used herein, firmware includes, for example, processor microcode, which includes, for example, hardware-level instructions and / or data structures used in implementing higher-level machine code. In one embodiment, firmware includes, for example, specialized code that controls operating system access to system hardware, typically delivered as microcode, including trusted software or microcode specific to the underlying hardware. PR / SM is a trademark or registered trademark of International Business Machines Corporation in at least one jurisdiction.

[0015] Each logical partition 110 may run an operating system 116, such as the z / OS operating system, or another operating system, and may be run by different programs 118. z / OS is a trademark or registered trademark of International Business Machines Corporation in at least one jurisdiction.

[0016] Memory 104 is coupled to processors (e.g., CPUs) 106, which are physical processor resources that can be assigned to logical partitions. For example, logical partition 110 includes one or more logical processors, each of which represents all or a share of physical processor resources 106 that can be dynamically assigned to a logical partition.

[0017] Additionally, memory 104 is coupled to an I / O subsystem 108, which may be part of or separate from the central processing unit complex. It directs the flow of information between main storage 104 and an input / output control unit 120 and / or input / output (I / O) devices 122 coupled to the central processing unit complex.

[0018] Many types of I / O device 122 may be used. One particular type is a data storage device 130. The data storage device 130 may store one or more programs 132, one or more computer-readable program instructions 134, or data, or a combination thereof. The computer-readable program instructions may be configured to perform the functions of embodiments of aspects of the present invention.

[0019] Central processing unit complex 102 may include and / or be coupled to removable / non-removable, volatile / non-volatile computer system storage media. For example, it may include and / or be coupled to non-removable, non-volatile magnetic media (typically referred to as a "hard drive"), a magnetic disk drive for reading from and writing to a removable, non-volatile magnetic disk (e.g., a "floppy disk"), or an optical disk for reading from and writing to a removable, non-volatile optical disk drive, such as a CD-ROM, DVD-ROM, or other optical media, or combinations thereof. It should be understood that other hardware and / or software components may be used in conjunction with central processing unit complex 102. Examples include, but are not limited to, microcode, device drivers, redundant processing units, external disk drive arrays, RAID systems, tape drives, and data archive storage systems.

[0020] Additionally, central processing unit complex 102 is capable of operation with numerous other general-purpose or special-purpose computing system environments or configurations. Examples of well-known computing systems, environments, or configurations, or combinations thereof, suitable for use with central processing unit complex 102 may include, but are not limited to, personal computer (PC) systems, server computer systems, thin clients, thick clients, handheld or laptop devices, multiprocessor systems, microprocessor-based systems, set-top boxes, programmable consumer electronics, network PCs, minicomputer systems, mainframe computer systems, and distributed cloud computing environments that include any of the above systems or devices.

[0021] Further details regarding one embodiment of a computing environment, such as computing environment 100, are described with reference to FIG. 1B. In one embodiment, input / output (I / O) subsystem 108 is a channel subsystem 150 that receives commands in a channel program from one or more operating systems (e.g., operating system 116). The channel program includes one or more channel command words (CCWs), each including a command (e.g., read, write, control) and a data address for use in data communications. The channel subsystem forwards the commands, e.g., via channel 152, to one or more communication components of the computing environment, such as one or more switches 154 coupled to one or more control units 120. The one or more control units are coupled to one or more I / O devices 122. The one or more switches obtain requested information based on the commands, e.g., from one or more I / O devices 122, and return the results to the operating system.

[0022] According to one or more aspects, a computing environment such as computing environment 100 may be dynamically reconfigured, for example, by adding, modifying, or removing one or more logical partitions, one or more control units, or one or more devices, or any combination thereof. To perform the hardware reconfiguration, in one example, a hardware configuration definition is used, as described with reference to FIG.

[0023] 2, in one example, a hardware configuration definition (HCD) product 200 operates on an operating system, such as operating system 116 (e.g., the z / OS operating system). The hardware configuration definition product 200 is used to define and activate the I / O configuration of one or more servers (e.g., IBM z servers) and their operating systems in a computing environment (e.g., computing environment 100). For example, the hardware configuration definition product 200 enables the definition of elements, such as I / O devices from a storage system, and enables them to be connected to partitions and operating systems for use on a set of other I / O elements.

[0024] In one example, hardware configuration definition product 200 is a panel-driven interface that facilitates the definition of elements of a computing environment and communicates with an interface, such as HCD support element (SE) interface 202, running on support element 204. Support element 204 may be, for example, a notebook or server coupled to a central processing unit complex. It may be part of the central processing unit complex or separate therefrom. HCD support element interface 202 is, for example, a command line interface that communicates with a service, such as activation service 210, running on an internal firmware partition (e.g., processor firmware 114).

[0025] The activation service, in one embodiment, is used to at least initiate the requested configuration changes. For example, in one example, the activation service makes calls (e.g., channel subsystem (CHSC) calls) to a channel subsystem (e.g., channel subsystem 150) to implement the individual changes, such as defining partitions, adding / changing / deleting channels, control units, or I / O devices, or a combination thereof, and stores the information in hardware storage area 220. While various configuration changes are provided as examples, many other configuration changes may be made without departing from the scope of the present invention.

[0026] In one embodiment, to change a system configuration, a system administrator goes through a series of preparatory steps. A dynamic hardware activation phase is then initiated, and the system administrator waits for completion, which may take hours or even days depending on the reconfiguration. The administrator has no control over the time it takes to complete the activation (e.g., reconfiguration). This complicates scheduling additional reconfigurations or other maintenance activities, and to be safe, maintenance windows or time frames are often oversized. Therefore, in accordance with one aspect of the present invention, empirical statistics are used to predict activation or reconfiguration times. The predicted time estimates are available in advance, and therefore maintenance can be scheduled with confidence and without requiring excessively large window sizes.

[0027] Although a system administrator is described herein as managing configuration / reconfiguration, in other embodiments, it may be another administrator, user, or computing system or component configured to determine reconfiguration changes, perform preparatory steps, schedule maintenance, etc.

[0028] To predict the reconfiguration time for implementing a requested system reconfiguration and manage the time used for the reconfiguration process, in one aspect, a capability is provided that monitors and measures the time used to determine hardware reconfiguration changes and provides estimates regarding actual reconfiguration changes. This capability includes, for example, measuring the time used to determine the hardware reconfiguration changes to be implemented (e.g., the time used to determine the specific reconfiguration operations to be performed to reconfigure the system based on the reconfiguration request), estimating the actual hardware reconfiguration time in advance, observing and self-adjusting the estimate based on the ongoing reconfiguration, the actual reconfiguration, or both, and triggering preparation for selected tasks, such as continuing the workload (e.g., notifying an administrator, initiating a workload migration, etc.), near completion (e.g., after a specific set of actions have been implemented, where only certain actions (e.g., additional actions) remain to be implemented).

[0029] Further details regarding monitoring, measurement, and estimation are described with reference to FIG. 3. According to one aspect of the present invention, one or more hardware changes are planned (e.g., by a system administrator or automatically by a processor based on processing within the computing environment) (step 300). Based on the planned changes, a proposed configuration is defined (step 302). For example, the requested configuration is compared to the current configuration to determine changes to be made, and one or more reconfiguration actions to be performed to reconfigure the configuration without causing any changes in effect are identified. A test activation of the proposed configuration is then performed (step 304) using an activation service, e.g., hardware activation service 210, which may use one or more other components. The test activation may include, for example, estimating at least one reconfiguration time for the identified reconfiguration action. The system administrator (and / or processor) waits for the test results before analyzing them (step 306).

[0030] Furthermore, in accordance with one aspect of the present invention, a measurement of the time it takes to compare the configurations and identify actions to be taken to reconfigure the computing environment as specified by the proposed configuration is performed (step 308).

[0031] Optionally, if there are dynamic software activations to be performed, they are performed (step 310). Additionally, any requested dynamic hardware activations are performed to reconfigure the computing environment (step 312). For example, the identified reconfiguration actions are performed, and the administrator (and / or processor) waits for the results (step 314). During this activation time, the system is unavailable. Based on the results (or at least partial results) of the reconfiguration, one or more follow-up tasks are triggered (step 318). According to aspects of the present invention, one or more follow-up tasks are triggered prior to the completion of the reconfiguration, for example, based on an estimated reconfiguration time.

[0032] Furthermore, in accordance with one aspect of the present invention, one or more estimated reconstruction times are recalculated (step 316) during the actual reconstruction and / or based on the actual reconstruction (i.e., between steps 312 and 314). For example, the time taken to perform each of the identified reconstruction actions is measured and used to recalculate (or adjust) the estimated reconstruction time.

[0033] In one example, to estimate the reconfiguration time (e.g., during test activation, or during activation, or both), one example may use one or more of the following equations:

[0034]

number

[0035]

number

[0036]

number

[0037] where C is a list of commands, such as CHSC commands, to perform the reconfiguration (e.g., add, delete, modify), |C| is the number of elements in C, and c j -1 is c i It is a revert of T success is the time for successful reconstruction and T rollback is the time for rollback reconfiguration, mp is the time required for preparation, and t(c) is the time to issue command c.

[0038] In one example, the function t(c) is a multidimensional function that is learned from observations using, for example, a multidimensional regression analysis technique. One example of a multidimensional regression analysis technique is least squares, although other techniques may be used. The function t(c) is a multidimensional function of some particular property of c.

[0039] * Type (c): The element type to be reconfigured (e.g., control unit, I / O device, logical partition, etc.)

[0040] * Operation (c): A specific subcommand of a certain type (e.g., add, modify, delete)

[0041] *css(c): The channel subsystem (CSS) index where the element is located

[0042] *Number of elements (c): The number of elements of the same type (e.g., CHSC elements) in the same CSS

[0043] *Shareability (c): The degree to which an element can be shared

[0044] In the above example, certain independent variables are identified (e.g., attributes of c), but more, fewer, or different variables, or combinations thereof, may be used. Additionally, in the above example, a channel subsystem is used as an example, but in other examples, other I / O subsystems may be used. Many variations are possible.

[0045] In one embodiment, several components may be used to perform the reconfiguration. Examples of these components are described with reference to FIG. 4. These components may be contained on or executed on one processor, or one or more components may be distributed across one or more processors. Many variations are possible. In one example, firmware 114 includes one or more functions performed by one or more components. Also, while specific components are mentioned, these are by way of example. Furthermore, fewer and / or different components may be used.

[0046] Referring to FIG. 4, in one example, a request for reconfiguration is obtained (e.g., received, provided, retrieved, etc.) by an activation service, such as the activation service 210. Based on the request for reconfiguration, the activation service identifies one or more reconfiguration actions to be performed to reconfigure the computing environment. Based on the identified reconfiguration actions, an estimation component 400 estimates or predicts the amount of time it will take to perform the actions and thus complete the reconfiguration. In one example, the estimation component 400 estimates the amount of time it will take to perform individual actions (e.g., t(c)) and uses those estimates to generate at least one estimated reconfiguration time (e.g., T success , T roiiback ) is provided.

[0047] Further, in one example, the activation service 210 measures the amount of time it takes to prepare for the reconfiguration. For example, it compares the current configuration with the proposed configuration and determines the amount of time it takes to determine the reconfiguration action to be performed to reconfigure the computing environment based on the reconfiguration request. This measured time is used to determine at least one estimated reconfiguration time for the reconfiguration. Furthermore, in one example, the measured time is used by the monitor and calibration component 410 to, for example, recalculate the estimated reconfiguration time, adjust the estimated reconfiguration time based on the recalculation, or both. The calibration value is output from the monitor and calibration component 410 and, in one example, input to the estimation component 400 to provide additional data to the estimation component when performing future estimated reconfiguration times. Furthermore, in one example, the output from the monitor and calibration component 410 is a trigger for the preparation action component 430, which may, for example, provide a notification regarding the reconfiguration, or may proactively initiate a task before the completion of the reconfiguration, or both. Furthermore, the output from the estimation component 400 and the monitor and calibration component 410 is used to update data structures, such as the knowledge base 420.

[0048] Further details of using the above components to reconfigure a computing environment based on a reconfiguration request are described with reference to FIGS. 5A-5B. In one example, there is a preparation phase 500 (FIG. 5A) and an activation phase 502 (FIG. 5B). While certain components are described herein as performing certain functions, this is by way of example only. Furthermore, fewer and / or different components may perform the functions. Also, while a user is specified, the user may be any entity, including a processor. Many variations are possible.

[0049] Referring first to FIG. 5A, in one embodiment, during the preparation phase 500, an activation service, such as activation service 210, receives a request for configuration and compares the requested configuration with, for example, an existing configuration (step 504). Based on the comparison, activation service 210 determines, for example, whether one or more hardware components (and optionally software components) have been added, removed, or modified in the configuration. Activation service 210 then determines various reconfiguration actions (e.g., add, remove, modify, etc.) to be performed to reconfigure the computing environment in response to the request (step 506). Additionally, activation service 210 determines (e.g., measures) the time it takes to compare the configurations and identify the reconfiguration actions to be used to reconfigure the environment. This measurement (m p ) is stored in a data structure such as knowledge base 420 (step 508).

[0050] Based on the request, a determination is made as to whether the request is for a test activation of a proposed configuration or for an actual activation of a reconfiguration (query 510). This determination may be made by the activation service or another component. If it is a test activation, then the estimation component 400, in one embodiment, estimates at least one activation time (also referred to herein as at least one estimated reconfiguration time) for performing the identified actions to provide the requested reconfiguration. In one embodiment, the estimation of the at least one activation time is based on a measured preparation time (m) from a data structure, such as knowledge base 420, as described above. p ) (step 518), and T success and T rollback (Step 520). Then, T success and T rollbackis stored, for example, in knowledge base 420 (step 522) and optionally presented to the user (step 524). After at least one activation time has been estimated, the estimation is complete (step 526). In one embodiment, the estimated times to perform the individual actions may be used (e.g., added together) to determine an estimated reconfiguration time for the entire reconfiguration.

[0051] Returning to inquiry 510, if the requested reconfiguration activation is to be performed, the activation service 210 then performs the selected reconfiguration action of one or more identified reconfiguration actions (step 530), referring to FIG. 5B. If the performance of the selected reconfiguration action is not successful for some reason (inquiry 532), the inference component 400 infers a rollback and stores it, for example, in the knowledge base 420 (step 534). The activation service 210 rolls back the failed reconfiguration action (step 536). A determination is made whether the rollback was successful (inquiry 538). If it was unsuccessful, the process ends as a failure (step 539). However, if the reversal of the selected action was successful, a further determination is made whether there are any other actions to roll back (inquiry 540). For example, is there at least one previously performed reconfiguration action that will be rolled back due to the failure of the selected action? If there are additional reconfiguration actions to be rolled back, processing continues at step 536. Otherwise, processing continues with successful revert termination (step 542).

[0052] Returning to inquiry 532, if the selected reconfiguration action is successfully performed, a further determination is made as to whether there are any more reconfiguration actions to perform (inquiry 550). If there are no more reconfiguration actions to perform, the estimated reconfiguration time for the reconfiguration determined in step 514 (FIG. 5A) is compared to actual measurements made during the reconfiguration process to determine the difference between the estimated time and the actual time (delta). If delta is Tthreshold A determination is made (inquiry 554) as to whether the delta is greater than a predetermined value (e.g., user defined) called T threshold If the delta is less than or equal to T, then the requested hardware reconfiguration is successful (step 556). threshold If so, the estimated reconstruction time is recalculated (step 558), for example, using the actual measured time of reconstruction, and the recalculated or adjusted time is stored (step 560) in knowledge base 420. The user, in one example, is notified of the recalculated estimate (step 560), and the process ends with a successful reconstruction (step 556).

[0053] Returning to inquiry 550, if there are one or more reconfiguration actions remaining to be performed, a further determination is made as to whether the reconfiguration actions are near completion (inquiry 570). For example, whether there is a certain amount of estimated reconfiguration time remaining. For example, whether the estimated time of the remaining reconfiguration actions has dropped below a given threshold. As a specific example, the user provides a target "Do task xy 5 minutes before completion." So, in this example, if there are, for example, 5 minutes remaining, it is near completion. Further, a determination may be made as to whether only certain types of reconfiguration actions remain to be performed, such as add actions, or whether certain groups of actions, such as delete actions, have been completed. In this scenario, an estimate of the amount of remaining reconfiguration time is calculated and used to determine whether it is near completion (e.g., within a certain amount of time remaining, below a threshold, etc.), and thus can indicate whether the selected task can be performed. Other examples are possible. If it is near completion, processing proceeds to step 530. However, if it is near completion, in one example, the user is notified (step 572).

[0054] Further, preparatory steps are taken (step 574). For example, a real-time completion probability score (P-score) is determined based on completion history data (e.g., stored in a data structure such as knowledge base 420) and the actual progress of completion during the implementation of the reconfiguration. Furthermore, a probability threshold is determined based on the cost of unrolling one or more reconfiguration actions (e.g., one or more reconfiguration actions and / or one or more predecessor reconfiguration actions that are still being implemented). For example, a default threshold probability (e.g., 95%) is provided, or a user-provided value that overrides the default value is provided. Based on the real-time completion probability score and the probability threshold, a start time for an automated task, such as, for example, the next hardware reconfiguration action or the next workload processing task, is determined.

[0055] Examples of determining empirical probabilities include the probability of failure of the following actions:

[0056]

number

[0057] In the formula, a fail is the number of failed reconfiguration actions so far, and a total is the number of reconfiguration actions that have been performed so far. The probability score (the probability that the process will succeed) is:

[0058]

number

[0059] where n is the number of remaining reconstruction actions.

[0060] For example, based on the above preparations, specifically based on having a certain level of confidence (e.g., a certain percentage above a probability threshold), one or more automated tasks are triggered (step 576). Examples include initiating a workload migration to activate the configuration in the mirrored data center, scheduling the next reconfiguration action for the same or a different reconfiguration, notifying a user, or any combination thereof. The selected task may execute the reconfiguration within at least the estimated reconfiguration time (e.g., T success Or T rollback or both).

[0061] Processing continues at step 530.

[0062] In one embodiment, the list of reconfiguration actions identified by the activation service 210 to trigger one or more automated tasks is first sorted by type of change (e.g., delete, modify, add), and then hierarchically categorized by type of affected element (e.g., partition, channel path, device, etc.). An example sort includes deleted accesses, deleted elements, modified elements, added elements, and added access elements for elements.

[0063] In one embodiment, automated tasks may be triggered after any of these change groups are activated but before completing the entire reconfiguration. As one example, when only elements to be added are present, the process may heuristically be deemed to have a higher chance of success and therefore initiate one or more tasks (e.g., one or more successor tasks), such as workload migration, in preparation for activating a configuration in a mirrored data center. As yet another example, one or more tasks may be initiated after a more significant action, such as the removal of an element, has been processed and is nearing completion. The estimated completion of the activation may be recalculated and refined after each of these change groups is activated.

[0064] An example of a specific reconfiguration is shown in Figure 6. In this example, an existing partition (e.g., partition 2 (P2) 600) will have access to device 602, and existing device 604 (its logical definition) will be removed. The necessary changes are determined and sorted by type, as described above. Then, in one embodiment, the action for removal is processed first, and the remaining actions will grant the partition access to the element. Before this action is initiated, a trigger can detect that only adding access remains and can trigger a successor task (e.g., based on the estimated time remaining to perform the reconfiguration).

[0065] According to one or more aspects, selected tasks (e.g., successor tasks) are proactively executed (e.g., initiated and / or processed) based on an estimated reconfiguration time. In one example, a system reconfiguration (e.g., dynamic hardware reconfiguration) capability is provided that measures the time used to determine one or more reconfiguration actions to be performed to reconfigure a computing environment and estimates the time it will take to perform the one or more reconfiguration actions prior to performing the reconfiguration. This estimated reconfiguration time is used to proactively initiate selected tasks before completing the reconfiguration (i.e., before completing processing of the one or more reconfiguration actions used in the reconfiguration). This allows those tasks to be processed as quickly as possible, keeping system downtime to a minimum.

[0066] Yet another aspect includes recalculating the estimated reconfiguration time using measured reconfiguration times determined during processing of one or more reconfiguration actions to adjust the estimated reconfiguration time, thereby improving the estimated reconfiguration time and enabling more accurate estimation of future reconfiguration times.

[0067] A proactive approach is provided to estimate the reliability and time to react to system reconfigurations and their estimated completion times. A good estimate of the total completion time with high confidence is provided so that subsequent process steps can be initiated as soon as possible to reduce and keep system downtime to a minimum.

[0068] According to one or more aspects, an accurate estimate of the time it will take to perform a reconfiguration (thus providing a maintenance window) is provided. A real-time progress view is provided, as well as rollback time estimates. This allows for accurate scheduling of maintenance windows, reliability of reconfiguration tasks, and minimization of system downtime.

[0069] One or more aspects of the present invention are closely coupled to computer technology and facilitate processing within a computing environment, providing the ability to minimize downtime of a system being reconfigured by proactively performing certain tasks before completing the reconfiguration, thereby improving system performance.

[0070] While various embodiments are described herein, numerous variations and other embodiments are possible without departing from the spirit of the aspects of the present invention. It should be noted that, unless otherwise inconsistent, each aspect or feature described herein and variations thereof may be combined with any other aspect or feature.

[0071] Aspects of the present invention may be employed by many types of computing environments. Another embodiment of a computing environment for incorporating and using one or more aspects of the present invention is described with reference to FIG. 7A. In this example, computing environment 10 includes, for example, a native central processing unit (CPU) 12, memory 14, and one or more input / output devices and / or interfaces 16 coupled to one another, for example, via one or more buses 18 or other connections. By way of example, computing environment 10 may include a PowerPC® processor offered by International Business Machines Corporation of Armonk, New York, an HP Superdome with an Intel Itanium II processor offered by Hewlett-Packard Company of Palo Alto, California, or other machines based on architectures offered by International Business Machines Corporation, Hewlett-Packard, Intel Corporation, Oracle, or others, or a combination thereof. PowerPC is a trademark or registered trademark of International Business Machines Corporation in at least one jurisdiction. Intel and Itanium are trademarks or registered trademarks of Intel Corporation or its affiliates in the United States and other countries.

[0072] The native central processing unit 12 includes one or more native registers 20, such as one or more general purpose registers or one or more special purpose registers, that are used during processing within the environment. These registers contain information that represents the state of the environment at any point in time.

[0073] Additionally, native central processing unit 12 executes instructions and code stored in memory 14. In one particular example, the central processing unit executes emulator code 22 stored in memory 14. This code allows a computing environment configured with one architecture to emulate another architecture. For example, emulator code 22 allows machines based on architectures other than the z / Architecture hardware architecture, such as PowerPC processors or HP Superdome servers, to emulate the z / Architecture hardware architecture and execute software and instructions developed based on the z / Architecture hardware architecture.

[0074] Further details regarding emulator code 22 are described with reference to FIG. 7B . Guest instructions 30 stored in memory 14 include software instructions (e.g., correlating to machine instructions) developed to execute on an architecture other than the native CPU 12. For example, guest instructions 30 may be designed to execute on a processor based on the z / Architecture hardware architecture, but are instead emulated on the native CPU 12, which may be, for example, an Intel Itanum II processor. In one example, emulator code 22 includes an instruction fetch routine 32 that retrieves one or more guest instructions 30 from memory 14 and optionally provides local buffering for the retrieved instructions. It also includes an instruction conversion routine 34 that determines the type of guest instruction being retrieved and converts the guest instruction into one or more corresponding native instructions 36. This conversion may include, for example, identifying a function performed by the guest instruction and selecting native instructions to implement the function.

[0075] Additionally, emulator code 22 includes an emulation control routine 40 that causes native instructions to be executed. Emulation control routine 40 causes native CPU 12 to execute a routine of native instructions that emulates one or more previously fetched guest instructions and, at the end of such execution, returns control to an instruction fetch routine to emulate the fetch of the next guest instruction or group of guest instructions. Execution of native instructions 36 may include loading data from memory 14 into a register, storing data from a register back to memory, or performing some type of arithmetic or logical operation as determined by a translation routine.

[0076] Each routine may be implemented, for example, in software stored in memory and executed by native central processing unit 12. In other examples, one or more routines or operations may be implemented in firmware, hardware, software, or some combination thereof. The emulated processor's registers may be emulated using the native CPU's registers 20 or by using locations in memory 14. In an embodiment, guest instructions 30, native instructions 36, and emulator code 22 may reside in the same memory or may be distributed among different memory devices.

[0077] The computing environments described above are merely examples of computing environments that can be used. Other environments that may be used include, but are not limited to, non-partitioned, partitioned, or emulated environments, or combinations thereof, and embodiments are not limited to any one environment. While various examples of computing environments are described herein, one or more aspects of the present invention may be used in many types of environments. The computing environment illustrated herein is an example.

[0078] Each computing environment may be configured to include one or more aspects of the present invention, for example, each may be configured for hardware reconfiguration according to one or more aspects of the present invention.

[0079] One or more aspects may relate to cloud computing.

[0080] Although this disclosure includes detailed descriptions of cloud computing, it should be understood that implementation of the teachings described herein is not limited to cloud computing environments. Rather, embodiments of the present invention may be implemented in connection with any other type of computing environment now known or later developed.

[0081] Cloud computing is a service delivery model for enabling convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, network bandwidth, servers, processing, memory, storage, applications, virtual machines, and services) that can be rapidly provisioned and released with minimal management effort or interaction with a service provider. This cloud model may include at least five characteristics, at least three service models, and at least four deployment models.

[0082] The characteristics are as follows:

[0083] On-Demand Self-Service: Cloud consumers can unilaterally provision computing capabilities, such as server time and network storage, automatically as needed without the need for human interaction with the provider of the service.

[0084] Broad network access: Capabilities are available over the network and accessed through standard mechanisms that facilitate use by heterogeneous thin or thick client platforms (e.g., cell phones, laptops, and PDAs).

[0085] Resource Pooling: A provider's computing resources are pooled to serve multiple consumers using a multi-tenant model, with different physical and virtual resources dynamically allocated and reallocated according to demand. Consumers generally have no control or knowledge of the exact portion of resources provided to them, but there is a sense of portion independence in that they may be able to specify portions at a higher level of abstraction (e.g., country, state, or data center).

[0086] Rapid Elasticity: Features can be provisioned quickly and elastically, in some cases automatically, scaled out quickly, released quickly, and scaled in quickly. To the consumer, the features available for provisioning often appear unlimited, and any quantity can be purchased at any time.

[0087] Measured Service: Cloud systems automatically control and optimize resource usage by leveraging measurement capabilities at a level of abstraction appropriate to the type of service (e.g., storage, processing, bandwidth, and active user accounts). Resource usage can be monitored, controlled, and reported, enabling transparency for both providers and consumers of the services being utilized.

[0088] The service model is as follows:

[0089] Software as a Service (SaaS): The functionality offered to the consumer is the use of the provider's applications running on a cloud infrastructure. The applications are accessible from a variety of client devices through thin-client interfaces such as web browsers (e.g., web-based email). The consumer does not manage or control the underlying cloud infrastructure, including the network, servers, operating systems, storage, or even individual application functions, with the possible exception of limited user-specific application configuration settings.

[0090] Platform as a Service (PaaS): The functionality offered to consumers is the deployment of consumer-created or acquired applications, written using programming languages ​​and tools supported by the provider, onto a cloud infrastructure. The consumer does not manage or control the underlying cloud infrastructure, including the network, servers, operating systems, or storage, but does have control over the deployed applications and, in some cases, the application hosting environment configuration.

[0091] Infrastructure as a Service (IaaS): The functionality provided to consumers is the provisioning of processing, storage, network, and other basic computing resources onto which they can deploy and run any software, which may include operating systems and applications. Consumers do not manage or control the underlying cloud infrastructure, but they do have control over the operating systems, storage, deployed applications, and sometimes limited control over select networking components (e.g., host firewalls).

[0092] The deployment model is as follows:

[0093] Private Cloud: The cloud infrastructure is operated solely for the organization. The cloud infrastructure can be managed by the organization or a third party and can exist on-premise or off-premise.

[0094] Community Cloud: Cloud infrastructure is shared by several organizations to support a specific community with shared interests (e.g., mission, security requirements, policies, and compliance considerations). The cloud infrastructure may be managed by the organization or a third party and may exist on-premises or off-premises.

[0095] Public cloud: Cloud infrastructure is made available to the general public or large industry groups and is owned by an organization that sells cloud services.

[0096] Hybrid Cloud: A composition of two or more clouds (private, community, or public) where the cloud infrastructure remains a unique entity but is bound together by standardized or proprietary technologies that enable data and application portability (e.g., cloud bursting for load balancing between clouds).

[0097] A cloud computing environment is a service that focuses on statelessness, low coupling, modularity, and semantic interoperability. At the heart of cloud computing is an infrastructure that includes a network of interconnected nodes.

[0098] Referring now to FIG. 8, an exemplary cloud computing environment 50 is depicted. As depicted, the cloud computing environment 50 includes one or more cloud computing nodes 52 with which local computing devices used by cloud consumers, such as a personal digital assistant (PDA) or mobile phone 54A, a desktop computer 54B, a laptop computer 54C, or an automobile computer system 54N, or combinations thereof, may communicate. The nodes 52 may communicate with each other. They may be physically or virtually grouped into one or more networks, such as private, community, public, or hybrid clouds, or combinations thereof. This enables the cloud computing environment 50 to provide infrastructure, platform, or software, or combinations thereof, as a service without the cloud consumer having to maintain resources on their local computing devices. It should be understood that the types of computing devices 54A-N depicted in FIG. 8 are merely exemplary, and that the computing nodes 52 and the cloud computing environment 50 may communicate with any type of computerized device over any type of network and / or network-addressable connection (e.g., using a web browser).

[0099] Referring now to Figure 9, a set of functional abstraction layers provided by cloud computing environment 50 (Figure 8) is shown. It should be understood that the components, layers, and functions shown in Figure 9 are for illustrative purposes only, and embodiments of the present invention are not limited thereto. As shown, the following layers and corresponding functions are provided:

[0100] Hardware and software layer 60 includes hardware and software components. Examples of hardware components include mainframe 61, RISC (reduced instruction set computer) architecture-based servers 62, servers 63, blade servers 64, storage devices 65, and networks and network components 66. In some embodiments, software components include network application server software 67 and database software 68.

[0101] The virtualization layer 70 provides an abstraction layer at which the following examples of virtual entities can be provided: virtual servers 71, virtual storage 72, virtual networks including virtual private networks 73, virtual applications and operating systems 74, and virtual clients 75.

[0102] In one embodiment, management layer 80 may provide the following functions: Resource provisioning 81 enables dynamic acquisition of computing and other resources utilized to perform tasks within the cloud computing environment. Metering and pricing 82 enables cost tracking as resources are utilized within the cloud computing environment and billing or invoicing for the consumption of these resources. As an example, these resources may include application software licenses. Security enables identity verification for cloud consumers and tasks, as well as protection for data and other resources. User portal 83 enables access to the cloud computing environment for consumers and system administrators. Service level management 84 enables allocation and management of cloud computing resources to ensure required service levels are met. Service level agreement (SLA) planning and fulfillment 85 enables pre-configuration and acquisition of cloud computing resources in anticipation of future requirements according to SLAs.

[0103] The workload layer 90 provides examples of functionality for which a cloud computing environment may be utilized. Examples of workloads and functions that may be provided from this layer include mapping and navigation 91, software development and lifecycle management 92, virtual classroom instruction delivery 93, data analytics processing 94, transaction processing 95, and hardware reconfiguration processing 96.

[0104] Aspects of the invention may be a system, method, or computer program product, or combination thereof, at any possible level of technical detail integration. A computer program product may include a computer-readable storage medium (or media) having computer-readable program instructions thereon for causing a processor to perform aspects of the invention.

[0105] A computer-readable storage medium may be a tangible device capable of retaining and storing instructions for use by an instruction-execution device. A computer-readable storage medium may 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 memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), static random access memory (SRAM), portable compact disk read-only memory (CD-ROM), digital versatile disk (DVD), 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 medium, as used herein, should not be construed as being itself a transitory signal such as an electric wave or other freely propagating electromagnetic wave, an electromagnetic wave propagating through a waveguide or other transmission medium (e.g., light pulses through fiber optic cable), or an electrical signal transmitted over a wire.

[0106] The computer-readable program instructions described herein can be downloaded from a computer-readable storage medium to each computing / processing device or to an external computer or external storage device via a network, such as the Internet, a local area network, a wide area network, or a wireless network, or a combination thereof. The network may include copper transmission cables, optical fiber transmissions, wireless transmissions, routers, firewalls, switches, gateway computers, or edge servers, or a combination thereof. A network adapter card or network interface within each computing / processing device receives the computer-readable program instructions from the network and transmits the computer-readable program instructions for storage on a computer-readable storage medium within each computing / processing device.

[0107] Computer-readable program instructions for carrying out operations of the present invention may be either assembler instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, state setting data, configuration data for an integrated circuit, or source or object code written in any combination of one or more programming languages, including object-oriented programming languages ​​such as Smalltalk, C++, and procedural programming languages ​​such as the "C" programming language or similar programming languages. The computer-readable program instructions may execute entirely on the user's computer, partially on the user's computer, as a standalone software package, partially on the user's computer and partially on a remote computer, or partially on the remote computer or entirely on the remote computer. In the latter scenario, the remote computer may be connected to the user's computer via any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be to an external computer (e.g., via the Internet using an Internet Service Provider). In some embodiments, electronic circuitry including, for example, programmable logic circuitry, a field programmable gate array (FPGA), or a programmable logic array (PLA) may execute computer-readable program instructions according to state information of the computer-readable program instructions to implement aspects of the present invention.

[0108] 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.

[0109] 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, such that the instructions, executed by the processor of the computer or other programmable data processing apparatus, produce means for implementing 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 that can cause a computer, programmable data processing apparatus, or other device, or combination thereof, to function in a particular manner; thus, a computer-readable storage medium having instructions stored therein may include an article of manufacture including instructions that implement aspects of the functions / acts specified in one or more blocks of the flowcharts and / or block diagrams.

[0110] Computer-readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device, causing a series of operational steps to be performed on the computer, other programmable apparatus, or other device to produce a computer-implemented process, such that the instructions, which execute on the computer, other programmable apparatus, or other device, implement the functions / acts specified in one or more blocks of the flowcharts and / or block diagrams.

[0111] 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, including one or more executable instructions for implementing a specified logical function. In some alternative embodiments, the functions noted in the blocks may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may be executed in the reverse order, depending on the functionality involved. It should also be noted that each block of the block diagrams and / or flowchart diagrams, and combinations of blocks in the block diagrams and / or flowchart diagrams, may be implemented by a dedicated hardware-based system that performs the specified functions or operations or that implements a combination of dedicated hardware and computer instructions.

[0112] In addition to the above, one or more aspects may be provided, supplied, deployed, managed, serviced, etc., by a service provider that provides management of a customer environment. For example, the service provider may create, maintain, support, etc., computer code and / or computer infrastructure that implements one or more aspects for one or more customers. In return, the service provider may receive payments from the customer, for example, under a subscription or fee agreement or both. Additionally or alternatively, the service provider may receive payments to one or more third parties from the sale of advertising content.

[0113] In one aspect, an application can be deployed to implement one or more embodiments. By way of example, deploying an application can include providing a computer infrastructure operable to implement one or more embodiments.

[0114] As yet another aspect, a computing infrastructure may be deployed that includes integrating computer readable code into a computing system, where the code in combination with the computing system is capable of performing one or more embodiments.

[0115] In yet another aspect, a process for integrating a computing infrastructure can be provided, the process comprising integrating computer-readable code into a computer system, the computer system including a computer-readable medium, the computer-readable medium including one or more embodiments, and the code in combination with the computer system can implement one or more embodiments.

[0116] Although various embodiments have been described above, these are by way of example only. For example, computing environments of other architectures may be used to incorporate and use one or more embodiments. Furthermore, other components may be used, one or more aspects of the present invention may be utilized, or both. Other types of reconfigurations may also be performed. Many variations are possible.

[0117] Additionally, other types of computing environments may be useful and used. By way of example, a data processing system suitable for storing and / or executing program code may be used, such a system including at least two processors coupled directly or indirectly to memory elements through a system bus. The memory elements may include local memory employed during the actual execution of the program code, bulk storage, and cache memory that provides temporary storage of at least some of the program code to reduce the number of times the code must be read from bulk storage during execution.

[0118] Input / output or I / O devices (including but not limited to keyboards, displays, pointing devices, DASDs, tapes, CDs, DVDs, thumb drives, and other memory media) may be coupled to the system either directly or through intervening I / O controllers. Network adapters may also be coupled to the system to enable the data processing system to be coupled to other data processing systems or remote printers or storage devices through intervening private or public networks. Modems, cable modems, and Ethernet cards are just a few of the available types of network adapters.

[0119] The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting. As used herein, the singular forms "a," "an," and "the" are intended to include the plural forms unless the context clearly indicates otherwise. It will be further understood that the terms "comprise" and / or "comprising," as used herein, specify the presence of stated features, integers, steps, operations, elements, or components, or combinations thereof, but do not exclude the presence or addition of one or more other features, integers, steps, operations, elements, components, or groups thereof, or combinations thereof.

[0120] The corresponding structure, materials, acts, and equivalents of all elements of the mean-plus-function or step-plus-function clauses of the following claims are intended to include any structure, material, or acts for performing the function in combination with other elements in the claims, if any, as explicitly recited in the claims. The description of one or more embodiments has been presented for purposes of illustration and description, but is not intended to be exhaustive or limited to the disclosed form. Many modifications and variations will be apparent to those skilled in the art. The embodiments were chosen and described to best explain various aspects and practical applications, and to enable others skilled in the art to understand various embodiments with various modifications as suited to the particular use envisioned.

Claims

1. 1. A computer program for facilitating processing within a computing environment, comprising: readable by at least one processing circuit; determining at least one estimated reconfiguration time for performing a plurality of reconfiguration actions to complete the reconfiguration of the configuration before performing the plurality of reconfiguration actions to reconfigure the configuration of the computing environment; performing at least one reconfiguration action of the plurality of reconfiguration actions; and and starting one or more tasks before completing the plurality of reconfiguration actions to complete the reconfiguration of the configuration based on completion of the implementation of the at least one reconfiguration action and the at least one estimated reconfiguration time. A computer program for causing a computer to execute a method including the steps of:

2. The method comprises: determining a real-time probability of completion score based on historical completion data and actual progress completing the plurality of reconfiguration actions; determining a probability threshold based on a cost of rolling back at least one reconfiguration action of the plurality of reconfiguration actions; and determining a start time for a task of the one or more tasks based on the real-time completion probability and the probability threshold; The computer program of claim 1 further comprising:

3. The computer program product of claim 1 or 2, wherein the task includes a next hardware reconfiguration action or a workload processing action to be performed.

4. Determining the at least one estimated reconfiguration time comprises: obtaining, from a data structure, measurements that are measures of the time it takes to compare a current configuration to a requested configuration and the time it takes to identify the plurality of reconfiguration actions to provide the requested configuration; and determining a time for successful reconfiguration and a time for rollback for the plurality of reconfiguration actions; 4. The computer program according to claim 1, comprising:

5. 5. The computer program product of claim 1, wherein the method further comprises adjusting an estimated reconstruction time of the at least one estimated reconstruction time based on at least one measured reconstruction time determined based on performing at least one reconstruction action of the plurality of reconstruction actions.

6. The method comprises: obtaining a request to reconfigure the configuration of the computing environment; and identifying the plurality of reconfiguration actions to be used to reconfigure the configuration based on obtaining the request; The computer program of any one of claims 1 to 5, further comprising:

7. 7. The computer program product of claim 1, wherein determining the at least one estimated reconfiguration time comprises estimating at least one reconfiguration time for each reconfiguration action of the plurality of reconfiguration actions identified as being used to reconfigure the configuration.

8. The computer program product of claim 1 , wherein the method further comprises, subsequent to determining the at least one estimated reconfiguration time, performing the plurality of reconfiguration actions.

9. 9. The computer program product of claim 1, wherein the method further comprises measuring at least one reconfiguration time based on performing the plurality of reconfiguration actions, the measuring providing at least one measured reconfiguration time.

10. The computer program product of any one of claims 1 to 9, wherein the reconfiguration includes a hardware configuration of the computing environment.

11. 1. A computer system for facilitating processing within a computing environment, comprising: Memory and determining at least one estimated reconfiguration time for performing a plurality of reconfiguration actions to complete the reconfiguration of the configuration before performing the plurality of reconfiguration actions to reconfigure the configuration of the computing environment; performing at least one reconfiguration action of the plurality of reconfiguration actions; and and starting one or more tasks before completing the plurality of reconfiguration actions to complete the reconfiguration of the configuration based on completion of the implementation of the at least one reconfiguration action and the at least one estimated reconfiguration time. at least one processor configured to implement 1. A computer system comprising:

12. The at least one processor: determining a real-time probability of completion score based on historical completion data and actual progress completing the plurality of reconfiguration actions; determining a probability threshold based on a cost of rolling back at least one reconfiguration action of the plurality of reconfiguration actions; and determining a start time for a task of the one or more tasks based on the real-time completion probability and the probability threshold; 12. The computer system of claim 11 further configured to:

13. Determining the at least one estimated reconfiguration time comprises: obtaining, from a data structure, measurements that are measures of the time it takes to compare a current configuration to a requested configuration and the time it takes to identify the plurality of reconfiguration actions to provide the requested configuration; and determining a time for successful reconfiguration and a time for rollback for the plurality of reconfiguration actions; 13. A computer system according to claim 11 or 12, comprising:

14. The at least one processor:

14. The computer system of claim 11, further configured to adjust an estimated reconstruction time of the at least one estimated reconstruction time based on at least one measured reconstruction time determined based on performing at least one reconfiguration action of the plurality of reconfiguration actions.

15. The at least one processor: obtaining a request to reconfigure the configuration of the computing environment; and identifying the plurality of reconfiguration actions to be used to reconfigure the configuration based on obtaining the request; The computer system of any one of claims 11 to 14, further configured to perform:

16. 1. A computer-implemented method for facilitating processing in a computing environment, comprising: determining at least one estimated reconfiguration time for performing a plurality of reconfiguration actions to complete the reconfiguration of the configuration before performing the plurality of reconfiguration actions to reconfigure the configuration of the computing environment; performing at least one reconfiguration action of the plurality of reconfiguration actions; and and starting one or more tasks before completing the plurality of reconfiguration actions to complete the reconfiguration of the configuration based on completion of the implementation of the at least one reconfiguration action and the at least one estimated reconfiguration time. The computer-implemented method includes:

17. determining a real-time probability of completion score based on historical completion data and actual progress completing the plurality of reconfiguration actions; determining a probability threshold based on a cost of rolling back at least one reconfiguration action of the plurality of reconfiguration actions; and determining a start time for a task of the one or more tasks based on the real-time completion probability and the probability threshold; The computer-implemented method of claim 16 further comprising:

18. Determining the at least one estimated reconfiguration time comprises: obtaining, from a data structure, measurements that are measures of the time it takes to compare a current configuration to a requested configuration and the time it takes to identify the plurality of reconfiguration actions to provide the requested configuration; and determining a time for successful reconfiguration and a time for rollback of the plurality of reconfiguration actions; 18. The computer-implemented method of claim 16 or 17, comprising:

19. 19. The computer-implemented method of claim 16, further comprising adjusting an estimated reconstruction time of the at least one estimated reconstruction time based on at least one measured reconstruction time determined based on performing at least one reconstruction action of the plurality of reconstruction actions.

20. obtaining a request to reconfigure the configuration of the computing environment; and identifying the plurality of reconfiguration actions to be used to reconfigure the configuration based on obtaining the request; The computer-implemented method of any one of claims 16 to 19, further comprising:

Citation Information

Patent Citations

  • Operating system design support system and system message control system for computer system

    JP1990244223A

  • Data migration management apparatus and information processing system

    JP2010266993A

  • Provisioning of computing resources for a workload

    US20180136980A1