Introduction
The University of Leeds School of Computing
Deadline: Friday 5 March 2021, 10:00
COMP5850M Coursework 2 – 2020/2021
Congratulations! You have been offered a job at Clouds4U, a company specialising in providing IaaS. Its customers are interested in running Virtual Machines (VM) on the cloud,.
This exercise aims to give you some practical experience of using a Cloud Virtual Infrastructure Manager (Open- Nebula) and Java OpenNebula Cloud API (OCA). It will also give you the opportunity to research on the cloud computing domain of monitoring and performance.
You should review the lecture notes on this topic carefully before you start work.
Useful Resources
Useful resources are available on COMP5850M module area on Minerva: https://minerva.leeds.ac.uk
1 The task
You are provided with the bulk of the code that demonstrates a basic Open- Nebula Cloud API functionality for a VM. The client program will provide some basic information such as a VM template and get various bits of tasks performed, e.g. instantiate a VM. The source code supplied to you needs completion. The work required is broken down into a series of small steps that you should follow, in the order shown, to complete the exercise.
Examine the file VMachineSample.java and try to get an overall feel for what the software is doing (or supposed to do). You should focus on the OpenNebula/client interaction aspects. By looking at the file, you should be able to see that the implementation is incomplete.
Your task is to complete the implementation of this file, compile it, run it, and record its output. (a) Part 1. VM Instantiation. Focus on the following aspects:
VM template: specify a template of your choice. Note: Feel free to use the template provided in the code. the information OpenNebula provides about the VM, e.g. name of host where it is running;
the time is takes to instantiate the VM;
You assume at this stage that OpenNebula has allocated a Physical Host (PH) to your VM.
(b) Part 2. VM Migration and Scheduling. The task is to migrate your existing VM to a target host. There are a number of VM scheduling mechanisms you may consider, e.g heuristics, power-aware, performance-aware and network-aware. Focus on the following aspects:
design of your migration solution, including your scheduling assumptions and requirements; the implementation of your migration solution;
the time is takes to migrate the VM.
(c) Part 3. VM Monitoring and Performance. You are told the company’s customers are interested in running all sorts of jobs on their VMs, including data parallel processing (e.g. Hadoop) and compute intensive jobs (e.g. Message Passing Interface (MPI)). The company seeks to understand the aspect of resource consumption while a job is running: CPU, memory, network, as well as the inherent power consumption. Therefore, your task is to design an experiment to address this issue. Focus on the following aspects:
the application you would like to run on your VM, e.g. PI calculation, matrix multiplication, stress-ng, QuickSort MPI implementation. Note: choose only ONE application;
the implementation of your experiment;
the monitoring tool to use, e.g. Zabbix or an alternative (collectd, Influxdb and Grafana).
Submission
Use the document Report available in the coursework folder to report your written answers to the questions. Submit the document through the link Report Submission. Microsoft Word and pdf formats are acceptable (pdf is encouraged).
To submit your code for the exercise, create a Zip or tar archive of the files which make up your system and submit through the link Code Submission. Remember to include a descriptive README file as well as any additional material which you think are useful.
Marking Scheme
Part 1 10 Part 2 25 Part 3 15
50
Weight: this coursework accounts for 30% of the assessment.