WO2017152969A1 - Method and arrangement for managing functionality controlling virtual infrastructure - Google Patents

Method and arrangement for managing functionality controlling virtual infrastructure Download PDF

Info

Publication number
WO2017152969A1
WO2017152969A1 PCT/EP2016/055011 EP2016055011W WO2017152969A1 WO 2017152969 A1 WO2017152969 A1 WO 2017152969A1 EP 2016055011 W EP2016055011 W EP 2016055011W WO 2017152969 A1 WO2017152969 A1 WO 2017152969A1
Authority
WO
WIPO (PCT)
Prior art keywords
control function
virtual
virtual entities
function
agent
Prior art date
Application number
PCT/EP2016/055011
Other languages
French (fr)
Inventor
Thomas Lindquist
Ulf MARKSTRÖM
Jonas Bjurel
Original Assignee
Telefonaktiebolaget Lm Ericsson (Publ)
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Telefonaktiebolaget Lm Ericsson (Publ) filed Critical Telefonaktiebolaget Lm Ericsson (Publ)
Priority to PCT/EP2016/055011 priority Critical patent/WO2017152969A1/en
Publication of WO2017152969A1 publication Critical patent/WO2017152969A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/656Updates while running
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45566Nested virtual machines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45575Starting, stopping, suspending or resuming virtual machine instances

Definitions

  • 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.
  • VIM Virtualization infrastructure management
  • SW software
  • 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.
  • 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.
  • OS operating system
  • 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.
  • DBs databases
  • a North-bound (NB) application programming interface (API) is indicated by 106, connecting higher layer control applications.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • a control function can be upgraded without having to restart a tenant application running using resources on a compute node.
  • 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.
  • 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
  • FIG. 4 present actions of a method being performed by a controller controlling a virtual infrastructure, according to some embodiments.
  • FIG. 5 schematically presents a controller, according to some embodiments of the present disclosure.
  • SW software
  • SW releases 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.
  • 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.
  • the compute node 236 has herein a compute blade 220 in which a host OS 222 is running.
  • 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.
  • DBs databases
  • a North-bound (NB) application programming interface (API) 212 connects the first virtual entity 208 to higher layer control applications.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • first and second control functions are especially useful for upgrade purposes of from one control function to another control function.
  • a second control function is herein instantiated.
  • This second control function may effectively be an upgrade of the first 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.
  • the functionality that controls the virtual infrastructure may be switched from active to passive.
  • 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.
  • 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.
  • control and agent software may be upgraded without the need to update said host OSs.
  • 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.
  • redundancy architecture may here be used, by using duplicated or triplicated control nodes running on separate compute blades.
  • the virtual entities used herein may according some embodiments comprise one or more virtual machines (VMs).
  • VMs virtual machines
  • the virtual entities may comprise one or more containers.
  • 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.
  • 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.
  • 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 v stage v
  • stages vi) to viii) are entered.
  • 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 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.
  • Figure 3 schematically visualizes active and passive virtual entities.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • the switching means 504 of the controller is arranged to switch the second virtual entities 210, 230 to passive mode.
  • 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.
  • the switching means 504 is arranged to switch the first virtual entities 208, 228 to active mode.
  • 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.
  • a control function can be upgraded without having to restart a tenant application running using resources on a compute node.
  • 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.

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.

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

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.
PCT/EP2016/055011 2016-03-09 2016-03-09 Method and arrangement for managing functionality controlling virtual infrastructure WO2017152969A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/EP2016/055011 WO2017152969A1 (en) 2016-03-09 2016-03-09 Method and arrangement for managing functionality controlling virtual infrastructure

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/EP2016/055011 WO2017152969A1 (en) 2016-03-09 2016-03-09 Method and arrangement for managing functionality controlling virtual infrastructure

Publications (1)

Publication Number Publication Date
WO2017152969A1 true WO2017152969A1 (en) 2017-09-14

Family

ID=55524321

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2016/055011 WO2017152969A1 (en) 2016-03-09 2016-03-09 Method and arrangement for managing functionality controlling virtual infrastructure

Country Status (1)

Country Link
WO (1) WO2017152969A1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140101649A1 (en) * 2012-10-05 2014-04-10 International Business Machines Corporation Virtual machine based controller and upgrade mechanism
US8782632B1 (en) * 2012-06-18 2014-07-15 Tellabs Operations, Inc. Methods and apparatus for performing in-service software upgrade for a network device using system virtualization
US20150169317A1 (en) * 2013-12-16 2015-06-18 International Business Machines Corporation Live Operating System Update Mechanisms

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8782632B1 (en) * 2012-06-18 2014-07-15 Tellabs Operations, Inc. Methods and apparatus for performing in-service software upgrade for a network device using system virtualization
US20140101649A1 (en) * 2012-10-05 2014-04-10 International Business Machines Corporation Virtual machine based controller and upgrade mechanism
US20150169317A1 (en) * 2013-12-16 2015-06-18 International Business Machines Corporation Live Operating System Update Mechanisms

Similar Documents

Publication Publication Date Title
US11757797B2 (en) Distributed virtual switch for virtualized computer systems
US10404795B2 (en) Virtual machine high availability using shared storage during network isolation
US8949831B2 (en) Dynamic virtual machine domain configuration and virtual machine relocation management
US10114665B2 (en) Communication node upgrade system and method for a communication network
CN110874261B (en) Availability system, method, and storage medium storing program
US20090089815A1 (en) Method and system for performing i/o operations using a hypervisor
US20200076689A1 (en) Cloud migration
US20160371110A1 (en) High availability for virtual machines in nested hypervisors
CN112753017A (en) Automation of management of cloud upgrades
CN108881372A (en) The transparent upgrading of system service or application
WO2017152969A1 (en) Method and arrangement for managing functionality controlling virtual infrastructure
CN115277398A (en) Cluster network configuration method and device
US10587468B2 (en) System and method of a graceful reboot of a network controller
EP3286887A1 (en) System and method of a graceful reboot of a network controller
WO2018173130A1 (en) Virtual machine, and device driver update method
CN109343879A (en) Control the method and server of application software upgrade

Legal Events

Date Code Title Description
NENP Non-entry into the national phase

Ref country code: DE

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 16709378

Country of ref document: EP

Kind code of ref document: A1

122 Ep: pct application non-entry in european phase

Ref document number: 16709378

Country of ref document: EP

Kind code of ref document: A1