Scenario specification can be defined as a format representation (e.g., XML) of a set of virtual machines along with their interconnections in a given topology.
Scenario-based management consist in processing scenario specifications in order to be deployed in physical infrastructure (hosts) and provide further management (e.g. monitoring, execute command sequences, undeploy, etc.).
Some tools nowadays are scenario-based, focused on experimentation environments , such as research and educational testbeds
VNUML, NetKit, MLN
Conventional virtualization management tools (e.g. VMware VirtualCenter) for production environments use not to be scenario-based (out of our scope)
Introduction (2/3) Scenario-based management example: VNUML 01 Scenario-based tool (e.g. VNUML) Desired scenario (designed by the user) Physical host VMs and interconnection virtual networks Scenario specification (in XML) <vnuml> </vnuml>
Scenario-based virtualization tools use to consider just one physical host deployment
Scalability problems (e.g. a 1000 VM scenario)
We have designed and implemented a distributed virtualization management tool named EDIV ( Distributed Scenarios with VNUML , in Spanish) which purpose is to deploy scenarios in a cluster of N physical hosts .
Based on VNUML (in other words, VNUML scenarios can be used in EDIV without modifications)
Modular and extensible partition algorithm
A partnership project between Telefónica I+D and Universidad Politécnica de Madrid (Spain) which prototype results are publicly available (GPL).
EDIV Deployment Controller 02 VNUML Coordinator Switches Deployment hosts DB Deployment controller U D S H W Segmentator Segmentator Segmentator Scenario specification (VNUML language) and operation (deploy, execution or undeploy) (ssh/scp) (SQL) (vendor CLI) (Perl module) <vnuml> </vnuml> management network VNUML VNUML
EDIV Operation Deployment 02 Coor Seg H1 H2 SW SPLIT_REQ( SC, param ) segmentator algorithm maps VMs in SC to hosts (generating a mapping table) split SC XML in two fragment ( SC1 , SC2 ) as specified in mapping CREATE_VLAN_SUBIF (…) RUN_VNUML(‘deploy’, SC1 ) CREATE_VLAN_SUBIF (…) RUN_VNUML(‘deploy’, SC2 ) ENABLE_VLAN (…) get pre-deployment information RESULT(‘OK’) wait all responses store SC1 y SC2 associated with the distributed scenario name (eg., ‘tutorial’) store VLAN IDs allocated to the scenario SPLIT_RSP( mapping ) OPER(‘deploy’, SC )
Practical Results Virtual machine distribution 03 L ( low ) 0% load M ( medium ) 50% load H ( high ) 100% load 19 19 13 17 17 17 M M H 22 22 7 17 17 17 L L H 17 17 17 17 17 17 M M M 17 17 17 17 17 17 L L L Large scenario (51 VMs) 2 2 2 2 2 2 M M H 2 3 1 2 2 2 L L H 2 2 2 2 2 2 M M M 2 2 2 2 2 2 L L L Small scenario (6 VMs) H3 H2 H1 H3 H2 H1 L3 L2 L1 Weighted Round Robin Round-Robin Deployment host loads
Operation Command sequences execution 02 Coor Seg H1 H2 SW OPER(‘exec’, cmd , ’ tutorial’) get XML1 and XML2 (which were associated to ‘tutorial’ at deployment time) RUN_VNUML(‘exec’, cmd , XML1 ) RUN_VNUML(‘exec’, cmd , XML2 ) RESULT(‘OK’) wait all responses
Operation Undeployment 02 Coor H1 H2 SW OPER(‘udeploy’, ‘ tutorial’) RUN_VNUML(‘undeploy’, SC1 ) DESTROY_VLAN_SUBIF (…) RUN_VNUML(‘udeploy’, SC2 ) DESTROY_VLAN_SUBIF (…) DISABLE_VLAN (…) remove SC1 y SC2 release VLAN IDs used by the scenario RESULT(‘OK’) get SC1 and SC2 and VLAN IDs (which were associated to ‘tutorial’ at deployment time) wait all responses