Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD AND ARRANGEMENT FOR MANAGING FUNCTIONALITY CONTROLLING VIRTUAL INFRASTRUCTURE
Document Type and Number:
WIPO Patent Application WO/2017/152969
Kind Code:
A1
Abstract:
It is disclosed a controller (500) managing a functionality controlling a virtual infrastructure, and a method performed therein. Also a computer program and a computer program product are disclosed. By temporarily using dual control functions running in separate virtual entities (208; 210), while at most only one is active at a time, upgrading from a first control to a second control function is enabled, without the need to restart a host operating system (222), on which tenant software (234) is running.

Inventors:
LINDQUIST THOMAS (SE)
MARKSTRÖM ULF (SE)
BJUREL JONAS (SE)
Application Number:
PCT/EP2016/055011
Publication Date:
September 14, 2017
Filing Date:
March 09, 2016
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
ERICSSON TELEFON AB L M (PUBL) (SE)
International Classes:
G06F9/50; G06F9/445; G06F9/455
Foreign References:
US8782632B12014-07-15
US20140101649A12014-04-10
US20150169317A12015-06-18
Other References:
None
Attorney, Agent or Firm:
SJÖBERG, Mats (SE)
Download PDF:
Claims:
CLAIMS

A method for managing a functionality that controls a virtual infrastructure, where the functionality comprises a first control function and a first agent function that is controlled by the first control function, where the first control function and the first agent function are running in respective first virtual entities residing on individual nodes, where the first control function and the first agent function are isolated from said individual nodes, and where the first virtual entities are in active mode, whereby resources of the individual first nodes are controlled by the first control function via the first agent function, the method comprising:

instantiating (400) a second control function and a second agent function that is arranged to be controlled by the second control function, in respective second virtual entities residing on said individual nodes, the second control function being an upgrade of the first control function, the second control function and the second agent function being isolated from said individual nodes, where the second control function and the second agent function are comprised in the functionality that controls the virtual infrastructure, where the second virtual entities are in passive mode;

switching (402) the first virtual entities from active mode to passive mode;

initiating (404) transfer of a first data set from the first control function to the second control function;

switching (406) the second virtual entities from passive mode to active mode;

assessing (408) the switching of the first and the second virtual entities; and based on the assessment, either switching (410) the second virtual entities to passive mode, initiating (412) transfer of a second data set from the second control function to the first control function and switching (414) the first virtual entities to active mode, or maintaining (418) the first and second virtual entities in their respective mode.

The method according to claim 1 , further comprising initiating transfer of data being part of the first data set from the first control function to the second control function, prior to switching (402) the first virtual entities from active mode to passive mode.

The method according to claim 1 or 2, further comprising:

un-instantiating (420) the first virtual entities when being passive, when maintaining (418) the first and second virtual entities in their respective modes. The method according to claim 1 or 2, further comprising un-instantiating (416) the second virtual entities being passive, after switching (414) the first virtual entities to active mode.

The method according to claim 1 , 2 or 4, further comprising initiating transfer of data being part of the second data set from the second control function to the first control function, prior to switching (410) the second virtual entities from active mode to passive mode.

The method according to any one of claims 1 -5, comprising instantiating (400) the second control function in the second virtual entity residing on the individual node in which a first virtual entity is running the first control function.

The method according to any one of claims 1 -6, comprising instantiating (400) the second agent function in the second virtual entity residing on the individual node in which a first virtual entity is running the first agent function.

A computer program comprising computer readable code which when run on at least one processing circuit, causes the at least one processing circuit to carry out the method according to any of claims 1 to 7.

A computer program product comprising a computer-readable storage medium and a computer program, according to claim 8, wherein the computer program is stored on the computer-readable storage medium.

A controller (500) capable of managing a functionality that controls a virtual infrastructure, where the functionality comprises a first control function and a first agent function that is controlled by the first control function, where the first control function and the first agent function are adapted to run in respective first virtual entities (208, 228) residing on individual nodes (218; 236), where the first control function and the first agent function are isolated from the individual nodes, and where the first virtual entities are in active mode whereby resources of the individual nodes are controllable by the first control function via the first agent function, where the controller (500) is arranged to:

instantiate a second control function and a second agent function that is arranged to be controlled by the second control function, in respective second virtual entities (210, 230) residing on said individual nodes (218, 236), the second control function being an upgrade of the first control function, the second control function and the second agent function being isolated from said individual nodes, where the second control function and the second agent function are comprised in the functionality that controls the virtual infrastructure, where the second virtual entities are in passive mode;

switch the first virtual entities (208, 228) from active mode to passive mode;

initiate transfer of a first data set from the first control function to the second control function;

switch the second virtual entities (210, 230) from passive mode to active mode; assess the switching of the first and the second virtual entities; and

based on the assessment, either switch the second virtual entities (210, 230) to passive mode, initiate transfer of a second data set from the second control function to the first control function and switch the first virtual entities (208, 228) to active mode, or maintain the first and second virtual entities in their respective mode.

1 1 . The controller according to claim 10, further being arranged to initiate transfer of data being part of the first data set from the first control function to the second control function, prior to the switch of the first virtual entities from active mode to passive mode.

12. The controller according to claim 10 or 1 1 , further being arranged to un-instantiate the first virtual entities when being passive, when the first and second virtual entities are maintained in their respective modes.

13. The controller according to any one of claims 10 -12, further being arranged to un- instantiate the second virtual entities being passive, after the switch of the first virtual entities to active mode.

14. The controller according to any one of claims 10-13, further being arranged to initiate

transfer of data being part of the second data from the second control function to the first control function, prior to the switch of the second virtual entities from active mode to passive mode.

15. The controller according to any one of claims 10-14, further being arranged to instantiate the second control function in the second virtual entity residing on the individual node in which a first virtual entity is running the first control function. The controller according to any one of claims 10-15, further being arranged to instantiate the second agent function in the second virtual entity residing on the individual node in which a first virtual entity is running the first agent function.

Description:
METHOD AND ARRANGEMENT FOR MANAGING FUNCTIONALITY CONTROLLING VIRTUAL INFRASTRUCTURE

TECHNICAL FIELD

This disclosure relates to virtual infrastructure functionality. More particularly, it relates to method, an arrangement and a computer program for managing a functionality that controls virtual infrastructure.

BACKGROUND

Virtualization infrastructure management (VIM) is software (SW) that orchestrates resources of a data center and virtualization of these resources. This enables several tenants of the data center to simultaneously use these resources independently of each other.

VIM SW typically comprises control SW and agent SW, forming a VIM layer.

Figure 1 schematically illustrates a prior art deployment of a VIM layer within a control node 1 10 and a compute node 122.

On a control side, the VIM layer comprises control SW 104 that resides directly on a host operating system (OS) 102 running on a computer blade 100 of the control node 1 10.

The control SW 104 runs one or more databases (DBs) 108 containing data models of the physical resources of the data center, virtual resources thereof and usage of these virtual resources. A North-bound (NB) application programming interface (API) is indicated by 106, connecting higher layer control applications.

On an agent side, the VIM layer comprises an agent SW 1 16 tightly bound to a host OS 1 14 running on a computer blade 1 12 of a compute node 122.

A tenant SW 120 runs on its guest OS 1 18 within the virtual infrastructure of the agent SW 1 16.

The VIM SW forms a SW layer that may be considered to constitute a complex control system of said resources of a data center. This control system however needs to be life cycle managed, and always runs a risk of having an incorrect model of reality in its databases.

In such a prior art architecture, it is difficult to upgrade the agent SW 1 16 without having to restart host OS 1 14, due to that the agent SW is tightly bound to the host OS 1 14. Restarting host OS 1 14 will cause the tenant SW to be interrupted.

Moreover, upgrading of a complete VIM layer is difficult and involves taking risks. A normal upgrading procedure may comprise first upgrading control SW running in control nodes. When using redundant control nodes, normal upgrading may be performed by taking out of service one node at a time, and upgrade this particular node. This upgrading of control SW may also comprise transformation of data and/or data models if these differ between versions or releases of the control SW.

Having finished upgrading of all control nodes, it is customary to start upgrading agent SW which involves restarting of host OS 1 14 in compute nodes 1 12, carrying physical resources, one by one.

Upgrading of a VIM layer works well when there is compatibility between current control software and control software to be upgraded to, such as for instance between consecutive releases of control SW.

However, problems in the upgrading occur, when encountering incompatibilities between different SW releases. This mainly occurs between non-consecutive SW releases, in the sense that SW of one release may not be compatible with SW of another release that is non- consecutively related with the said one release.

More specifically, problems arise when there are incompatibilities in interfaces between a control SW and an agent SW and/or when there are incompatibilities in interfaces between control nodes. Incompatibility problems during upgrading procedure may lead to that one or more of compute blades cannot be controlled, and hence become "out of control".

There is thus a demand for an improved solution circumventing or at least diminishing the upgrading problem of above. SUMMARY

It is an object of exemplary embodiments herein to address at least some of the issues outlined above and to provide management of a functionality that controls a virtual infrastructure. This object and others are achieved by a controller that is capable of managing a functionality that controls a virtualization infrastructure, and a method performed therein, according to the appended independent claims, and by the exemplary embodiments according to the dependent claims.

According to an aspect, the exemplary embodiments provide a method for managing a functionality that controls a virtual infrastructure. The functionality comprises a first control function and a first agent function that is controlled by the first control function, where the first control function and the first agent function are running in respective first virtual entities residing on individual nodes. The first control function and the first agent function are isolated from said individual nodes, and the first virtual entities are in active mode, whereby resources of the individual first nodes are controlled by the first control function via the first agent function. The method comprises instantiating a second control function and a second agent function that is arranged to be controlled by the second control function, in respective second virtual entities residing on said individual nodes, the second control function being an upgrade of the first control function, the second control function and the second agent function being isolated from said individual nodes, where the second control function and the second agent function are comprised in the functionality that controls the virtual infrastructure, and where the second virtual entities are in passive mode. The method further comprises switching the first virtual entities from active mode to passive mode, and initiating transfer of a first data set from the first control function to the second control function. The method also comprises switching the second virtual entities from passive mode to active mode, and assessing the switching of the first and the second virtual entities. The method further comprises, based on the assessment, either switching the second virtual entities to passive mode, initiating transfer of a second data set from the second control function to the first control function and switching the first virtual entities to active mode, or maintaining the first and second virtual entities in their respective mode.

According to another aspect, the exemplary embodiments provide a controller that is capable of managing a functionality that controls a virtual infrastructure, where the functionality comprises a first control function and a first agent function that is controlled by the first control function, where the first control function and the first agent function are adapted to run in respective first virtual entities residing on individual nodes, where the first control function and the first agent function are isolated from the individual nodes, and where the first virtual entities are in active mode whereby resources of the individual nodes are controllable by the first control function via the first agent function. The controller is arranged to instantiate a second control function and a second agent function that is arranged to be controlled by the second control function, in respective second virtual entities residing on said individual nodes. The second control function is an upgrade of the first control function. The second control function and the second agent function is isolated from said individual nodes, where the second control function and the second agent function are comprised in the functionality that controls the virtual infrastructure, and where the second virtual entities are in passive mode. The controller is further arranged to switch the first virtual entities from active mode to passive mode, and to initiate transfer of a first data set from the first control function to the second control function. The controller is also arranged to switch the second virtual entity from passive mode to active mode, and to assess the switching of the first and the second virtual entities. The controller is further arranged, based on the assessment, either to switch the second virtual entities to passive mode, initiate transfer of a second data set from the second control function to the first control function and switch the first virtual entities to active mode, or to maintain the first and second virtual entities in their respective mode. According to further aspects, the object is also achieved by a computer program and a computer program product comprising a computer-readable storage medium corresponding to the aspects above.

Exemplary embodiments of this disclosure present the following advantages:

A control function can be upgraded without having to restart a tenant application running using resources on a compute node.

An upgrade procedure has been described in which it is possible to switch first virtual entities from active mode to passive mode, update other virtual entities, and switch said other virtual entities from passive mode to active mode.

It is advantageous that an agent function, or software, can be upgraded without restarting a host OS in a compute blade, thereby not affecting any tenant application SW running on that compute blade.

Using dual different databases for respective control function enables the usage of data model building principles which differ between virtual entities in active mode and passive mode, respectively.

Different processes enables discovering data inconsistencies between physical resources and data models in the databases. Mitigation schemes at discovered data inconsistency are accordingly also enabled.

BRIEF DESCRIPTION OF THE DRAWINGS

Embodiments will now be described in more detail, and with reference to the accompanying drawings, in which:

Figure 1 schematically illustrates a deployment of a virtual infrastructure controlling functionality layer, according to the prior art;

Figure 2 schematically illustrates a deployment of a functionality that controls a virtual infrastructure, according to embodiments of the present disclosure;

Figure 3 schematically presents active and passive modes of control and agent SW, according to embodiments of the present disclosure;

- Figure 4 present actions of a method being performed by a controller controlling a virtual infrastructure, according to some embodiments; and

Figure 5 schematically presents a controller, according to some embodiments of the present disclosure. DETAILED DESCRIPTION

In the following description, exemplary embodiments will be described in more detail, with reference to accompanying drawings. For the purpose of explanation and not limitation, specific details are set forth, such as particular examples and techniques in order to provide a thorough understanding.

There is hence a demand for a solution that solves or at least diminishes upgrading issues of SW as mentioned above.

Also, upgrading of software (SW) between two releases which are non-consecutive is associated with a risk, for the reason that these non-consecutive releases may be incompatible.

Further, it may also be advantageous to skip some SW releases and focus on others, in a process of upgrading SW. Therefore, it is of interest and importance to be able to handle updating between non-consecutive releases of SW.

The disclosure is useful for upgrading of cloud infrastructure management systems such as functionality controlling virtual infrastructure, where data structures may be changed and interfaces between control nodes of such functionality and their agents are incompatible.

Updates have until now often required a restart of a host operating system (OS) running on a node, on which then a virtual entity is running within a virtual infrastructure management (VIM) layer. A restart of the host OS interrupts tenant applications, running in such virtual entity.

It is of important to maintain tenant applications running smoothly with the minimum of disturbances, even during upgrading procedures of software or functions.

Embodiments herein temporarily use dual control functions, of which however at most only one at a time is active, where the other is passive. The usage of dual control functions makes it possible to switch from one controlling software to another controlling software, avoiding lengthy, typically our-long, interruptions, during which nodes such as compute blade would be out-of-control. It is emphasized that the dual control functions will typically only be required during upgrading of control and agent functions.

Upgrading of control and agent functions may be performed by inactivating older control and agent software, after which newer control and agent software are activated. The older control and agent software may then be un-instantiated from respective virtual entity on which it resides.

Figure 2 schematically illustrates a deployment of functionality according to some embodiments, which functionality controls a virtual infrastructure.

This disclosure comprises a functionality having a first control function and a first agent function that is controlled by the first control function.

The first control function is running in a first virtual entity 208 that resides on a first node being a control node 218. The first agent function is running in another first virtual entity 228 that resides on another node being a compute node 236. The first virtual entity 208 and said another first virtual entity 228 may comprise respective virtual machines in some embodiments.

The control node 218 has herein a compute blade 200 on which a host OS 202 is running. Similarly, the compute node 236 has herein a compute blade 220 in which a host OS 222 is running.

Since the first entity 208 is virtualized, the first control function, which is running in said first entity, is isolated from the control node 218.

A guest OS 204 is running on the first virtual entity 208. The guest OS 204 may hence be different from the host OS 202.

The first control function has access to one or more databases (DBs) 214 which typically contain data models of physical resources of the compute node 236, virtual resources thereof and usage of these virtual resources. A North-bound (NB) application programming interface (API) 212, connects the first virtual entity 208 to higher layer control applications.

Similarly, the first agent function is running is another first virtual entity 228. Since this first virtual entity 228 is virtualized, the agent function is isolated from the compute node 236. Also, a guest OS 224 is running on said another first virtual entity 228.

Tenant software 234 runs on the virtual entity 228, on top of a guest OS 232.

For the purpose of upgrading control and agent functions, a second control function may be instantiated on an individual second virtual entity 210, and a second agent function may be instantiated on an individual second virtual entity 230.

The second control function typically has access to one or more DBs 216 to comprise data models of physical resources of the compute node 236, virtual resources thereof and usage of these virtual resources.

Since the second entity 210 is virtualized, the second control function, which is running in said second entity, is isolated from the control node 218.

A guest OS 206 is running on the second virtual entity 210.

Since the second entity 230 is virtualized, the second agent function, which is running in said second entity 230, is isolated from the control node 236.

A guest OS 226 is running on the second virtual entity 230.

It is worthwhile pointing out that that it is a requirement that the NB API of the functionality controlling virtual infrastructure is backwards compatible, in the sense that it is compatible with the first control function and the second control function. If so, no other interfaces need to be backwards compatible for the purposes of upgrading of the functionality controlling the virtual infrastructure. As the first and second virtual entities run on separate guest operating systems, they do not share any OS resources, for which reason they can be addressed separately by respective control function.

The deployment of first and second control functions is especially useful for upgrade purposes of from one control function to another control function.

As long as there is no need to upgrade a control function, there is no incentive to instantiate a second control function.

However, when a first control function or software needs is to be upgraded, a second control function is herein instantiated. This second control function may effectively be an upgrade of the first control function. When instantiating the second control function, the virtual entity on which the control function is instantiated is in passive mode, i.e. the control function does not control its agent function and cannot control any compute node resources.

After the second control and agent functions are instantiated, the functionality that controls the virtual infrastructure may be switched from active to passive. Rephrased, the first virtual entities on which the first control function and the first agent function reside, are here switched to passive mode. While the second virtual entities on which the second control function and the second agent function reside, are in passive mode, data is advantageously transferred from the first control function to the second control function.

In order to secure that tenant applications run smoothly even during upgrade of control functions, it is of importance to update the database for the control function prior to activating the virtual entity on which the control function is running. By synchronizing the database 214 with the database 216, prior to activation of the control function running in the second virtual entity 210, tenant application will experience only minimal disturbance if any during the upgrading of the control function.

The functionality that controls virtual infrastructure, may be considered to be upgraded, since the control and agent functions which run in the second virtual entities have become active, and the control and agent functions which run in the first virtual entities, become passive.

By separating control SW from host OS on which the control SW is running, and by separating agent SW from host OS on which the agent SW is running, control and agent software may be upgraded without the need to update said host OSs.

As mentioned above, embodiments of the present disclosure comprise the utilization of temporal duplicates of control and agent functions within a functionality controlling a virtual infrastructure. A control function together with the agent function that is controlled by the control function, may be considered to form a functionality layer. This layer is virtualized by running these functions within individual virtual entities. Virtual entities in which control function is running reside on a control node, whereas virtual entities in which agent function is running reside on a compute node.

By using virtual entities running in one and the same node, it is possible to run two separate virtual entities, or functionality layers, in parallel. However, at any instance in time, at most one of the two functionality layers, or virtual entities, can be active at a time. While one is active mode, or operational ode, the other has to be in passive mode, or maintenance mode.

In addition to running parallel layers, of either a control or an agent function, in the same node, redundancy architecture may here be used, by using duplicated or triplicated control nodes running on separate compute blades.

As mentioned above, the virtual entities used herein may according some embodiments comprise one or more virtual machines (VMs).

According to other embodiments of this disclosure, the virtual entities may comprise one or more containers. In such cases of OS virtualization, a container environment may use an OS Kernel software from its Host OS 202, 222.

Figure 3 schematically presents active and passive modes of virtual entities running either a control function or an agent function, according to embodiments of the present invention. Virtual entities displayed in bold line represent active virtual entities, whereas virtual entities displayed using a line having a normal width represents passive virtual entities. Active virtual entities are entities in operational mode, whereas passive virtual entities are in maintenance mode. Active mode denotes a mode in which virtual entities may be in control of compute node resources.

C1 denotes a first virtual entity 302 in which a first control function is running; C2 denotes a second virtual entity in which a second control function is running. A1 denotes another first virtual entity 306 in which a first agent function is running. This first agent function is controlled by the first control function. Similarly, A2 denotes a second virtual entity in which a second agent function is running, and which second agent function is controlled by the second control function.

The line beneath the first virtual entity 302 is a representation of a Host OS 304, from which the respective control function is isolated. Similarly, the line beneath the virtual entity 306 is a representation of a Host OS 308, from which the respective agent function is isolated. Stage i) The first virtual entities 302 and 306 are active, where the first virtual entity 302 is running the first control function, whereas said another first virtual entity 306 is running the first agent function.

Stage ii) Second virtual entities are instantiated. A second virtual entity 310 running a second control function may be instantiated on the node in which the first virtual entity runs the first control function. A second virtual entity 312 running a second agent function may be instantiated on the node in which the second virtual entity runs the first agent function.

Stage iii) First virtual entities 302 and 306 are switched from active mode to passive mode. Neither the first virtual entities nor the second virtual entities are active in this stage. This stage lasts typically a time period that permits a database of the second function to be updated with data from database of the first control function. Since neither the first control function nor the second control function is active during this time period, database content in databases accessible by the control function remains unchanged during this time period.

Stage iv) The second virtual entities, running the second control function and the second agent function, are switched to active.

It may now be assessed whether the switch of active virtual entities from the first to the second, is valid. When the assessment is valid stage v) is entered. When the assessment is invalid, stages vi) to viii) are entered. Either stage v) or stages vi) to viii) are hence entered.

Stage v) Thus, when the assessment results in that the switch is valid, the first virtual entities are un-instantiated from the nodes in which they are running. The second virtual entities are maintained in active mode.

Stage vi) When the assessment results in that the switch is invalid, the second virtual entities are switched back to passive mode.

Stage vii) Consequently, the first virtual entities are switched to active mode.

Stage viii) The second virtual entities are now un-instantiated from the nodes in which there were running. First virtual entities are active.

It is noted that Figure 3 schematically visualizes active and passive virtual entities.

Transfer of data between virtual entities, or control functions, is not explicitly visualized in Figure 3, although present at or between various stages of Figure 3.

Stages vi) to viii) may be considered to be a roll-back of switched first and second virtual entities, to an original configuration wherein first virtual entities are active, as presented at stage i)-

Figure 4 presents a flow chart of method steps performed in a controller capable of managing a functionality controlling virtual infrastructure, where the functionality comprises a first control function and a first agent function that is controlled by the first control function. The first control function and the first agent function are running in respective first virtual entities residing on individual nodes, where the first control function and the first agent function are isolated from the individual nodes. The first virtual entities are in active mode, whereby resources of the individual nodes are controlled by the first control function via the first agent function.

The first virtual entities may be considered to belong to a first functionality layer of the functionality for controlling the virtual infrastructure.

The method comprises:

Action 400: Instantiating a second control function and a second agent function that is controlled by the second control function, in respective second virtual entities residing on said individual nodes. The second control function is an upgrade of the first control function. The second control function and the second agent function are isolated from said individual nodes, where the second control function and the second agent function are comprised in the functionality that controls the virtual infrastructure. The second virtual entities are in passive mode.

The second virtual entities may be considered to belong to a second functionality layer of the functionality for controlling the virtual infrastructure.

The method may comprise instantiating the second control function in the second virtual entity that resides on the individual node in which a first virtual entity is running the first control function.

The method may also comprise instantiating the second agent function in the second virtual entity that resides on the individual node in which a first virtual entity is running the first agent function.

The method also comprises:

Action 402: Switching first virtual entities from active mode to passive mode.

Action 404: Initiating transfer of a first data set from the first control function to the second control function.

The method may also comprise initiating transfer of data being part of the first data set from the first control function to the second control function, prior to switching 402 the first virtual entities from active mode to passive mode.

The first data set may here be an update of the data being a part of the first data set.

The part of the data set cannot be fully up-to-date for the reason that a functionality comprising the control function controlling the agent function is still active, for which database data may be changed continuously.

Initiating transfer of data in action 404 from the first control function to the second control function, may herein be performed so as to complete a process of updating one or more databases 216 accessible to the second control function. Since the first control function that is running in the first virtual entity 208 is now passive the database data in database 214 is kept updated during the time duration until a control function is activated and data is subjected to be changed.

Action 406: Switching second virtual entities from passive mode to active mode.

Action 408: Assessing the switching of the first and the second virtual entities. It is thus assessed the switching of the first virtual entities from active mode to passive mode, and assessed the switching of the second virtual entities from passive mode to active mode.

Based on the assessment, the method comprises either performing actions 410-414, or performing action 418, wherein said actions are the following:

Action 410: Switching the second virtual entities from active mode to passive mode;

Action 412: Initiating transfer of a second data set from the second control function to the first control function.

This second data set is to update data in database 214. This transfer typically brings the data in database 214 up-to-date.

Action 414: Switching the first virtual entities from passive mode to active mode. This switching to active mode was thus possible since the data in database 214 had been updated.

Transfer of data from active virtual entities to passive virtual entities update virtual entities which are passive from active virtual entities procedure is performed

Almost all data, or nearly the entire data set of data, of a database can be transferred to a control function while another control function is active. Once having switched said other control function to passive mode, additional data that constitutes an update of the already transferred data, is transferred to the virtual entity which is about to be switched to active mode.

In addition, the method may comprise action 416: Un-instantiating the second virtual entities when being passive, after switching 414 the first virtual entities from passive mode to active mode.

Also, the method may comprise initiating transfer of data being part of a second data set from the second control function to the first control function, prior to switching 410 the second virtual entities from active mode to passive mode.

Similar to the above, the second data set may be an update of the data that is part of the second data set. Initially one part of data may be transferred, and once both control functions are passive, additional data to make database 214 up-to-date may be transferred.

The method also comprises:

Action 418: Maintaining the first and second virtual entities in their respective mode. Further, the method may comprise action 420: Un-instantiating the first virtual entities, when being passive, when maintaining the first and second virtual entities in their respective modes.

The present disclosure also comprises a computer program that comprises computer readable code which when run on at least one processing circuit, causes the at least one processing circuit to carry out the method as described in connection with Figure 4.

The present disclosure also comprises a computer program product that comprises a computer-readable storage medium and the computer program, as mentioned above, wherein the computer program is stored on the computer-readable storage medium.

The present disclosure also comprises a controller 500 that is capable of managing a functionality that controls a virtual infrastructure. The functionality comprises a first control function and a first agent function that is controlled by the first control function. The first control function and the first agent function are adapted to run in respective first virtual entities 208, 228 residing on individual nodes 218; 236. The first control function and the first agent function are isolated from the individual nodes. The first virtual entities are in active mode whereby resources of the individual nodes are controllable by the first control function via the first agent function.

The controller 500 is arranged to instantiate a second control function and a second agent function that is arranged to be controlled by the second control function, in respective second virtual entities 210, 230 residing on said individual nodes 218, 236. The second control function is an upgrade of the first control function. The second control function and the second agent function are isolated from the individual nodes, where the second control function and the second agent function are comprised in the functionality that controls the virtual infrastructure, and where the second virtual entities are in passive mode.

The controller is also arranged to switch the first virtual entities 208, 228 from active mode to passive mode, and to initiate transfer of a first data set from the first control function to the second control function. The controller is further arranged to switch the second virtual entities 210, 230 from passive mode to active mode, and to assess the switching of the first and the second virtual entities.

The controller is further arranged to, based on the assessment, either switch the second virtual entities 210, 230 to passive mode, initiate transfer of a second data set from the second control function to the first control function and switch the first virtual entities 208, 228 to active mode, or maintain the first and second virtual entities in their respective mode. The may further be arranged to initiate transfer of data being part of the first data set from the first control function to the second control function, prior to the switch of the first virtual entities from active mode to passive mode.

The controller may further be arranged to un-instantiate the first virtual entities when being passive, when the first and second virtual entities are maintained in their respective modes.

The controller may further be arranged to un-instantiate the second virtual entities being passive, after the switch of the first virtual entities to active mode.

The controller may further be arranged to initiate transfer of data being part of the second data from the second control function to the first control function, prior to the switch of the second virtual entities from active mode to passive mode.

The controller may further be arranged to instantiate the second control function in the second virtual entity residing on the individual node in which a first virtual entity is running the first control function.

In addition, the controller may also be arranged to instantiate the second agent function in the second virtual entity residing on the individual node in which a first virtual entity is running the first agent function.

Figure 5 presents a controller 500 that is capable of managing a functionality that controls a virtual infrastructure, where the functionality comprises a first control function and a first agent function that is controlled by the first control function. The first control function and the first agent function are adapted to run in respective first virtual entities 208, 228 residing on individual nodes 218; 236, where the first control function and the first agent function are isolated from the individual nodes. The first virtual entities are in active mode whereby resources of the individual nodes are controllable by the first control function via the first agent function.

The controller 500 comprises instantiating means 502 arranged to instantiate a second control function and a second agent function that is arranged to be controlled by the second control function, in respective second virtual entities 210, 230 residing on said individual nodes 218, 236. The second control function is an upgrade of the first control function. The second control function and the second agent function are isolated from said individual nodes, where the second control function and the second agent function are comprised in the functionality that controls the virtual infrastructure. Also, the second virtual entities are in passive mode.

The controller 500 comprises switching means 504 arranged to switch the first virtual entities 208, 228 from active mode to passive mode.

The controller 500 also comprises initiating means 506 arranged to initiate transfer of a first data set from the first control function to the second control function. The switching means 504 is also arranged to switch the second virtual entities 210, 230 from passive mode to active mode.

The controller 500 comprises assessing means 508 arranged to assess the switching of the first and the second virtual entities.

Based on the assessment, the switching means 504 of the controller is arranged to switch the second virtual entities 210, 230 to passive mode. Based on the assessment the initiating means 506 is further arranged to initiate transfer of a second data set from the second control function to the first control function. Also, based on the assessment, the switching means 504 is arranged to switch the first virtual entities 208, 228 to active mode. Base on the assessment, the controller 500 is also arranged to maintain the first and second virtual entities in their respective mode.

The first and second virtual entities may belong to a first and a second functionality layer, respectively, of the functionality that controls the virtual infrastructure. The functionality layers may comprise OpenStack, but may equally well comprise any other cloud stack.

Exemplary embodiments as described herein have the following advantages:

A control function can be upgraded without having to restart a tenant application running using resources on a compute node.

An upgrade procedure has been described in which it is possible to switch first virtual entities from active mode to passive mode, update other virtual entities, and switch said other virtual entities from passive mode to active mode.

It is advantageous that an agent function, or software, can be upgraded without restarting a host OS in a compute blade, thereby not affecting any tenant application SW running on that compute blade.

Using dual different databases for respective control function enables the usage of data model building principles which differ between virtual entities in active mode and passive mode, respectively.

Different processes enables discovering data inconsistencies between physical resources and data models in the databases. Mitigation schemes at discovered data inconsistency are accordingly also enabled.

It may be further noted that the above described embodiments are only given as examples and should not be limiting to the present exemplary embodiments, since other solutions, uses, objectives, and functions are apparent within the scope of the embodiments as claimed in the accompanying patent claims. ABBREVIATIONS

API application programming interface

DB database

NB API north-bound API

OS operating system

SW software

VIM virtualization infrastructure management

VM virtual machine