1.07k likes | 1.08k Views
This talk focuses on the problem statement of dynamic software reconfiguration in programmable networks. It discusses the scope, background, and approach, including local and distributed reconfigurations, performance measurements, and future research. The main requirements of correct reconfigurations, limited reconfiguration overhead, limited user input, and reusability are highlighted. NeCoMan (Network reConfiguration Management), a middleware for coordinating dynamic reconfigurations in programmable networks, is introduced.
E N D
Dynamic Software Reconfiguration in Programmable Networks Nico Janssens DistriNet, Department of Computer Science, K.U. Leuven. nico.janssens@cs.kuleuven.be
DistriNet • DistriNet: “Distributed Systems and Computer Networks” • development of open, distributed object support platforms for advanced applications, using state of the art software technology • always application driven • often conducted in close collaboration with industry • research topics include • security • middleware • mobile / sensor networks • embedded systems • autonomous and decentralized systems • software architecture • language technology
Overview of this talk • Problem statement • Scope and background • Approach • Local reconfigurations • Distributed reconfiguration • Performance measurements • Contributions and future research
Problem statement • Computer networks • core of distributed systems • availability is crucial
Problem statement • network functions: typically abstracted away from end-users and applications • intermediate nodes are (mostly) closed vertically integrated systems • since the mid 1990’s: various initiatives • to open up the network infrastructure • to increase its programmability
compression decompression Problem statement • Besides programmability, also re-configurability is an important issue! • to support the increasing evolution of network software • adaptive networks
Problem statement • Changing the software of a (programmable) network device off-line may potentially break the network’s availability!
Problem statement • Changing the software of a (programmable) network device off-line may potentially break the network’s availability! Dynamic software reconfiguration
Problem statement • To be beneficial, dynamic reconfiguration must be effective and efficient • Often complex and error prone Support is needed to conduct dynamic software reconfiguration in programmable networks
Problem statement • Main requirements • Correct reconfigurations • Limited reconfiguration overhead • Limited user input • Reusability NeCoMan (Network reConfiguration Management): middleware coordinating dynamic reconfigurations in programmable networks
Overview • Problem statement • Scope • Approach • Local reconfigurations • Distributed reconfigurations • Performance measurements • Contributions and future research
Scope dynamic software reconfiguration programmable networks dynamic change management support
dynamic software reconfiguration in out-of-band active networks programmable networks Scope dynamic software reconfiguration dynamic change management support
Scope – Programmable Networks • Out-of-band active networks [Coulson 2003] (In-band active networks)
Scope – Programmable Networks • Dynamic software reconfiguration • The majority of programmable network architectures enable the initial deployment of specific services … • … but they do not support subsequent reconfigurations of services that are already in use [Hicks 2000]. • exceptions include Click, Cactus, Netkit and Ensemble
compositional adaptation of pipe-and-filter based (network) architectures dynamic software reconfiguration Scope programmable networks dynamic change management support
Compositional adaptation [McKinley 2004] Scope – Dynamic software reconfiguration removal addition replacement
Scope – Node architectural style • Pipe-and-filter (network) architectures [Shaw & Garlan 1996] • Click, NetScript, CANEs, NetBind, DiPS+
dynamic change management support customizable change management support for out-of-band active networks Scope dynamic software reconfiguration programmable networks
Scope – Dynamic change management support • goal: improve effectiveness and efficiency of a dynamic reconfiguration • most existing change management support conform to the black-box philosophy • customizability needed to optimize dynamic reconfigurations • E.g. replacement compression service with new incompatible version vs. replacement reliability service with compatible version.
Scope – Dynamic change management support • goal: improve effectiveness and efficiency of a dynamic reconfiguration • most existing change management support conform to the black-box philosophy • customizability needed to optimize dynamic reconfigurations • E.g. replacement compression service with new incompatible version vs. replacement compression service with compatible version.
network service characteristics Scope dynamic software reconfiguration programmable networks dynamic change management support
Scope – Network services • Isolated network services (e.g. filter and logging service) • self-contained (no dependencies) • reactive processes filter
Scope – Network services • Distributed network services (e.g. compression, reliability, fragmentation, encryption, etc.) • distributed dependencies • client-server based collaboration • reactive processes • asynchronous buffered communications • many-to-many service composition
Overview • Problem statement • Scope • Approach • Local reconfigurations • Distributed reconfigurations • Performance measurements • Contributions and future research
Approach • Main requirements: • Correct reconfigurations • Limited reconfiguration overhead • Limited user input • Reusability • NeCoMan contains 4 (basic) algorithms to carry out an extensive set of reconfigurations • local and distributed reconfigurations • NeCoMan contains various predefined customizations to these algorithms • pre-conditions to apply these customizations
Approach • Main requirements: • Correct reconfigurations • Limited reconfiguration overhead • Limited user input • Reusability • NeCoMan restricts the user input to • a description of the reconfiguration that NeCoMan must carry out • a description of the service characteristics and reconfiguration semantics • the IP addresses of all affected nodes • Based on the service characteristics and the reconfiguration semantics, NeCoMan selects the appropriate reconfiguration algorithm and (if possible) applies some of the predefined customizations to this algorithm
Approach • Main requirements: • Correct reconfigurations • Limited reconfiguration overhead • Limited user input • Reusability • separation of concerns to promote reusability • NeCoMan contains no node or service specific reconfiguration support! • must be provided by the nodes’ reconfiguration support • 8 primitives • NeCoMan coordinates the execution of these primitives
Approach • Main requirements: • Correct reconfigurations • Limited reconfiguration overhead • Limited user input • Reusability • separation of concerns to promote reusability • script generator • contains reconfiguration logic • composes a tailored reconfiguration based on the user input • (node-specific) virtual machine • executes (portable) reconfiguration scripts • conducts the actual node reconfiguration
Overview • Problem statement • Scope • Approach • Local reconfigurations • Algorithms • Customizations • Distributed reconfigurations • Performance measurements • Contributions and future research
Local Reconfigurations • 2 main algorithms • replacement component of distributed service • addition, replacement and removal of isolated services • similar, will not be discussed • 6 predefined customizations
Local Reconfigurations Algorithm for replacing component of a distributed network service
Local Reconfigurations: approach • Partial ordering of high-level reconfiguration phases • Preliminary partial ordering of NeCoMan’s reconfiguration actions • Partial ordering of NeCoMan’s reconfiguration actions • Linearization
Local Reconfigurations: approach • Partial ordering of high-level reconfiguration phases • result from reconfiguration conditions
Local Reconfigurations: approach • Preliminary partial ordering of NeCoMan’s reconfiguration actions
Local Reconfigurations: approach • Partial ordering of NeCoMan’s reconfiguration actions
Local Reconfigurations: approach • Complete ordering of NeCoMan’s reconfiguration actions
Local Reconfigurations: example • example: replacement compression component
Local Reconfigurations: example • Install new component • create new component • link outports new component
Local Reconfigurations: example • Install new component • create new component • link outports new component
Local Reconfigurations: example • Finish old component • intercept packets • impose safe state
Local Reconfigurations: example • Finish old component • intercept packets • impose safe state
Finishing • impose safe state • packet monitoring
Finishing • impose safe state • protocol-transaction monitoring • state transfer
Local Reconfigurations: example • Activate new component • start processes • link inports • release packets
Local Reconfigurations: example • Activate new component • start processes • link inports • release packets
Local Reconfigurations: example • Activate new component • start processes • link inports • release packets
Local Reconfigurations: example • Remove old component • unlink outports old component • delete old component
Local Reconfigurations: example • Remove old component • unlink outports old component • delete old component
Customizations: overview • addition, replacement and removal of isolated services • replacement component of distributed service • 6 predefined customizations • resulted from re-ordering and discarding all reconfiguration actions that both local algorithms include • from these combinations, we selected the customizations that limit the reconfiguration overhead and still yield a valid reconfiguration (given that some additional pre-conditions are fulfilled)