Goal: The goal of this course is to introduce the different types of virtualization (e.g., platform, application, presentation) to students, and give an overview of the broad application domain of virtualization. For each topic its typical challenges, methods and some of the relevant tools are described.
Length: One semester (14 weeks), one 2 hours length class each week (lectures combined sometimes with laboratory exercises)
Grading: Individual projects, students have to present their progress mid-term, and upload a paper about their work at the end of the semester.
List of lectures and lab exercises
Nr. | Lecture | Lab exercise |
1 | Introduction: course information, definition of virtualization, types of virtualization, historical background | - |
2 | CPU virtualization: emulation, simulation, virtualization; methods for CPU virtualization (SW, HW, para) | - |
3 | Memory and peripherals virtualization: virtual memory, shadow page tables, memory deduplication, I/O virtualization | - |
4 | Client-side virtualization: basic operations with virtual machines, virtual hardware in typical configuration files, snapshots, cloning | VMware Workstation: guest tools, linked clones |
5 | Client-side virtualization 2: application compatibility, virtual appliances, policies, support for software developers | VMware Studio, Integrated Debugger |
6 | Server-side virtualization: hosted vs. bare-metal architecture, methods for remote access, storage, example: architecture of ESX | VMware ESXi: initial configuration |
7 | Server-side virtualization 2: resource management, resource pools, limits and reservation, another example: Hyper-V | ESXi: resource limits and reservations |
8 | OS level virtualization: background for OS containers, typical problems and solutions, demo: Virtuozzo Containers | OpenVZ: creating and monitoring containers |
9 | Application and presentation virtualization: methods for application virtualization, remote access, VDI architectures | VMware Thinapp, MS Remote Dektop Services |
10 | Managing virtual infrastructures: lifecycle management, templates, distributed resource management, dependability: failover clusters and live migration | - |
11 | Managing virtual infrastructures: laboratory exercises | vCenter: templates, live migration |
12 | Performance and security in virtualization: measuring performance in virtualization, benchmarks, isolation levels | - |
Student projects
Students have to choose a task from the theoretical or practical topics similar to the followings.
- CPU scheduling in virtualized environments
- Real-time virtualization
- Scripting in VMware environments (PowerCLI or vSphereCLI)
- Comparing virtual machine file formats (OVF, vmdk, qcow, vhd)
- Virtualization of graphical subsystems
- I/O virtualization techniques (Intel VT-d)
- L4 microkernel
- Observing virtual machine’s executions (ptrace, VProbe)
- Managing virtual infrastructures using WS-Management
- Monitoring performance using the VMware VI API
- Comparing client hypervisors
- Trying out XenServer
- Trying out User Mode Linux
- Trying out Solaris Containers
- Trying out FreBSD jails
- Trying out MS Hyper-V Server
- Trying out Kernel-base Virtual Machine (KVM)
- Trying out QEMU
- Trying out Parallels Containers
- Trying out Parallels Desktop
- Trying out VirtualBox
Further information
The slides, detailed project’s description and papers can be found on the course website:
https://sauron.inf.mit.bme.hu/Edu/VirtualizacioValaszthato/index.html
(However, it is only in Hungarian)
Hi Zoltan,
Have you used any courseware material available on GoVirtual.org site ? How would you rate the courseware available on this site?
Thanks,
Amit