+ All Categories
Home > Documents > Virtualization of Linux based computers: the Linux-VServer ... · ˜ The Linux-VServers As a...

Virtualization of Linux based computers: the Linux-VServer ... · ˜ The Linux-VServers As a...

Date post: 25-Mar-2020
Category:
Upload: others
View: 31 times
Download: 0 times
Share this document with a friend
198
Beno Beno î î t des Ligneris, Ph. D. t des Ligneris, Ph. D. [email protected] [email protected] Virtualization of Linux based computers: Virtualization of Linux based computers: the Linux the Linux - - VServer project VServer project
Transcript

BenoBenoîît des Ligneris, Ph. D.t des Ligneris, Ph. [email protected]@RevolutionLinux.com

Virtualization of Linux based computers: Virtualization of Linux based computers: the Linuxthe Linux--VServer projectVServer project

Objectives:Objectives:

Objectives:Objectives:

1)1) Present the available programs that can Present the available programs that can provide a virtualization of Linux provide a virtualization of Linux computers with different technologies.computers with different technologies.

Objectives:Objectives:

1)1) Present the available programs that can Present the available programs that can provide a virtualization of Linux provide a virtualization of Linux computers with different technologies.computers with different technologies.

2)2) Focus on LinuxFocus on Linux--VServers: a very VServers: a very lightweight and effective technology for lightweight and effective technology for the regular Linux user not intersted in the regular Linux user not intersted in Kernel hacking.Kernel hacking.

PlanPlan

PlanPlan

●● IntroductionIntroduction

PlanPlan

●● IntroductionIntroduction●● Overview of the available technologyOverview of the available technology

PlanPlan

●● IntroductionIntroduction●● Overview of the available technologyOverview of the available technology●● Classification of the problems: usage criteriaClassification of the problems: usage criteria

PlanPlan

●● IntroductionIntroduction●● Overview of the available technologyOverview of the available technology●● Classification of the problems: usage criteriaClassification of the problems: usage criteria●● Comparative study of the existing technologyComparative study of the existing technology

PlanPlan

●● IntroductionIntroduction●● Overview of the available technologyOverview of the available technology●● Classification of the problems: usage criteriaClassification of the problems: usage criteria●● Comparative study of the existing technologyComparative study of the existing technology●● Technology overview of LinuxTechnology overview of Linux--VServersVServers

PlanPlan

●● IntroductionIntroduction●● Overview of the available technologyOverview of the available technology●● Classification of the problems: usage criteriaClassification of the problems: usage criteria●● Comparative study of the existing technologyComparative study of the existing technology●● Technology overview of LinuxTechnology overview of Linux--VServersVServers●● ConclusionConclusion

IntroductionIntroduction

IntroductionIntroduction�� Why vservers?Why vservers?

IntroductionIntroduction�� Why vservers?Why vservers?➔➔ Virtualization is now more and more acessible for Virtualization is now more and more acessible for

regular users given the extreme processing power of regular users given the extreme processing power of the current computersthe current computers

IntroductionIntroduction�� Why vservers?Why vservers?➔➔ Virtualization is now more and more acessible for Virtualization is now more and more acessible for

regular users given the extreme processing power of regular users given the extreme processing power of the current computersthe current computers

➔➔ The availability of COTS multiThe availability of COTS multi--processor 64 bit processor 64 bit architecture accelerates the needs for a mature architecture accelerates the needs for a mature virtualization technique, as it's more and more difficult virtualization technique, as it's more and more difficult for a common application to use 100% of the available for a common application to use 100% of the available resourcesresources

IntroductionIntroduction�� Why vservers?Why vservers?➔➔ Virtualization is now more and more acessible for Virtualization is now more and more acessible for

regular users given the extreme processing power of regular users given the extreme processing power of the current computersthe current computers

➔➔ The availability of COTS multiThe availability of COTS multi--processor 64 bit processor 64 bit architecture accelerates the needs for a mature architecture accelerates the needs for a mature virtualization technique, as it's more and more difficult virtualization technique, as it's more and more difficult for a common application to use 100% of the available for a common application to use 100% of the available resourcesresources

➔➔ Virtualization also affect scientific computing and could Virtualization also affect scientific computing and could become, in the near future, the corner stone of the so become, in the near future, the corner stone of the so called called ««grid computinggrid computing»» as it solves elegantly most of as it solves elegantly most of the problems (security, resources consumption) of the the problems (security, resources consumption) of the current Grid technologycurrent Grid technology

Overview of the available technologyOverview of the available technology

Overview of the available technologyOverview of the available technology

��VMwareVMware

Overview of the available technologyOverview of the available technology

��VMwareVMware��plex86plex86

Overview of the available technologyOverview of the available technology

��VMwareVMware��plex86plex86��BochsBochs

Overview of the available technologyOverview of the available technology

��VMwareVMware��plex86plex86��BochsBochs��LinuxLinux--VServersVServers

Overview of the available technologyOverview of the available technology

��VMwareVMware��plex86plex86��BochsBochs��LinuxLinux--VServersVServers��User Mode Linux (UML)User Mode Linux (UML)

Overview of the available technologyOverview of the available technology

��VMwareVMware��plex86plex86��BochsBochs��LinuxLinux--VServersVServers��User Mode Linux (UML)User Mode Linux (UML)��XenXen

Overview of the available technologyOverview of the available technology

��VMwareVMware��plex86plex86��BochsBochs��LinuxLinux--VServersVServers��User Mode Linux (UML)User Mode Linux (UML)��XenXen��QEMUQEMU

�� VMwareVMware

�� VMwareVMware

«« Vmware workstation is a powerfull virtual machine Vmware workstation is a powerfull virtual machine software for the desktop. VMware workstation runs software for the desktop. VMware workstation runs multiple operating systems, including Microsoft Windows, multiple operating systems, including Microsoft Windows, Linux and Novell NetWare, simultaneously on a single PC Linux and Novell NetWare, simultaneously on a single PC in fully networked, portable virtual machinesin fully networked, portable virtual machines »»

http://www.vmware.com/products/http://www.vmware.com/products/

�� VMwareVMware

➔➔ Provide complete multiProvide complete multi--OS emulation on x86 CPU OS emulation on x86 CPU onlyonly

�� VMwareVMware

➔➔ Provide complete multiProvide complete multi--OS emulation on x86 CPU OS emulation on x86 CPU onlyonly

➔➔ The whole installation process of a Linux distribution The whole installation process of a Linux distribution can be done with VMwarecan be done with VMware

�� VMwareVMware

➔➔ Provide complete multiProvide complete multi--OS emulation on x86 CPU OS emulation on x86 CPU onlyonly

➔➔ The whole installation process of a Linux distribution The whole installation process of a Linux distribution can be done with VMwarecan be done with VMware

➔➔ Resource consumption is static (RAM, Disck, etc) Resource consumption is static (RAM, Disck, etc) and very important (up to 50% of the available and very important (up to 50% of the available computing power!)computing power!)

�� plex86plex86

�� plex86plex86

«« (...) a very lightweight Virtual Machine (VM) for (...) a very lightweight Virtual Machine (VM) for running Linux/x86running Linux/x86»»

http://plex86.sourceforge.net/ (Feb/2005)http://plex86.sourceforge.net/ (Feb/2005)

�� plex86plex86

«« (...) a very lightweight Virtual Machine (VM) for (...) a very lightweight Virtual Machine (VM) for running Linux/x86running Linux/x86»»

http://plex86.sourceforge.net/ (Feb/2005)http://plex86.sourceforge.net/ (Feb/2005)

➔➔ Use the same Vmware logic but is restricted only to Use the same Vmware logic but is restricted only to Linux OS (native OS as well as guest OS)Linux OS (native OS as well as guest OS)

�� plex86plex86

«« (...) a very lightweight Virtual Machine (VM) for (...) a very lightweight Virtual Machine (VM) for running Linux/x86running Linux/x86»»

http://plex86.sourceforge.net/ (Feb/2005)http://plex86.sourceforge.net/ (Feb/2005)

➔➔ Use the same Vmware logic but is restricted only to Use the same Vmware logic but is restricted only to Linux OS (native OS as well as guest OS)Linux OS (native OS as well as guest OS)

➔➔ It's needed to recompile the kernel on the guest OSIt's needed to recompile the kernel on the guest OS

�� plex86plex86

«« (...) a very lightweight Virtual Machine (VM) for (...) a very lightweight Virtual Machine (VM) for running Linux/x86running Linux/x86»»

http://plex86.sourceforge.net/ (Feb/2005)http://plex86.sourceforge.net/ (Feb/2005)

➔➔ Use the same Vmware logic but is restricted only to Use the same Vmware logic but is restricted only to Linux OS (native OS as well as guest OS)Linux OS (native OS as well as guest OS)

➔➔ It's needed to recompile the kernel on the guest OSIt's needed to recompile the kernel on the guest OS

➔➔ Very slow at the time of this writingVery slow at the time of this writing

�� BochsBochs

�� BochsBochs

«« Bochs is a highly portable open source IABochs is a highly portable open source IA--32(x86) PC 32(x86) PC emulator written in C++, that runs on most popular emulator written in C++, that runs on most popular platforms. It includes emulation of the Intel x86 CPU, platforms. It includes emulation of the Intel x86 CPU, common I/O devices and a custom BIOS. Currently, Bochs common I/O devices and a custom BIOS. Currently, Bochs can be compiled to emulate a 386, 486, Pentium, Pentium can be compiled to emulate a 386, 486, Pentium, Pentium Pro or AMD64 CPU including optional MMX, SSE, SSE2 Pro or AMD64 CPU including optional MMX, SSE, SSE2 and 3DNow instructionsand 3DNow instructions »»

http://bochs.sourceforge.net/ (Feb/2005)http://bochs.sourceforge.net/ (Feb/2005)

�� BochsBochs

➔➔ The performance of bochs does not compare to Vmware The performance of bochs does not compare to Vmware or plex86 mainly because it emulates the CPU instead of or plex86 mainly because it emulates the CPU instead of using the native instruction set of the IAusing the native instruction set of the IA--32 CPUs32 CPUs

�� BochsBochs

➔➔ The performance of bochs does not compare to Vmware The performance of bochs does not compare to Vmware or plex86 mainly because it emulates the CPU instead of or plex86 mainly because it emulates the CPU instead of using the native instruction set of the IAusing the native instruction set of the IA--32 CPUs32 CPUs

➔➔ There is no locking mechanism for the disks.There is no locking mechanism for the disks.

�� The LinuxThe Linux--VServersVServers

�� The LinuxThe Linux--VServersVServers

«« LinuxLinux--VServer allows you to create virtual private VServer allows you to create virtual private servers and security contexts which operate like a normal servers and security contexts which operate like a normal Linux server, but allow many independent servers to be run Linux server, but allow many independent servers to be run simultaneously in one box at full speedsimultaneously in one box at full speed»»

http://www.linuxhttp://www.linux--vserver.org (Feb/2005)vserver.org (Feb/2005)

�� The LinuxThe Linux--VServersVServers

➔➔ The LinuxThe Linux--VServer project consists of a kernel patch and VServer project consists of a kernel patch and installation of userland toolsinstallation of userland tools

�� The LinuxThe Linux--VServersVServers

➔➔ The LinuxThe Linux--VServer project consists of a kernel patch and VServer project consists of a kernel patch and installation of userland toolsinstallation of userland tools

➔➔ It manage resources dinamically: a single kernel is in It manage resources dinamically: a single kernel is in charge of allocating resources.charge of allocating resources.

�� The LinuxThe Linux--VServersVServers

➔➔ The LinuxThe Linux--VServer project consists of a kernel patch and VServer project consists of a kernel patch and installation of userland toolsinstallation of userland tools

➔➔ It manage resources dinamically: a single kernel is in It manage resources dinamically: a single kernel is in charge of allocating resources.charge of allocating resources.

➔➔ Priority, Memory, Disk space, CPU ticks can be managed Priority, Memory, Disk space, CPU ticks can be managed dynamically for a given vserver.dynamically for a given vserver.

�� The LinuxThe Linux--VServersVServers

➔➔ The LinuxThe Linux--VServer project consists of a kernel patch and VServer project consists of a kernel patch and installation of userland toolsinstallation of userland tools

➔➔ It manage resources dinamically: a single kernel is in It manage resources dinamically: a single kernel is in charge of allocating resources.charge of allocating resources.

➔➔ Priority, Memory, Disk space, CPU ticks can be managed Priority, Memory, Disk space, CPU ticks can be managed dynamically for a given vserver.dynamically for a given vserver.

➔➔ Because only one kernel access the hardware and Because only one kernel access the hardware and interrupts, it uses the advanced management mechanism interrupts, it uses the advanced management mechanism already present in the Linux Kernelalready present in the Linux Kernel

�� The LinuxThe Linux--VServersVServers

➔➔ As a consequence, this is a very fast and lightweight As a consequence, this is a very fast and lightweight system as only the necessary services are run (ssh, http, system as only the necessary services are run (ssh, http, postfix, etc) and not a complete boot process.postfix, etc) and not a complete boot process.

�� The LinuxThe Linux--VServersVServers

➔➔ As a consequence, this is a very fast and lightweight As a consequence, this is a very fast and lightweight system as only the necessary services are run (ssh, http, system as only the necessary services are run (ssh, http, postfix, etc) and not a complete boot process.postfix, etc) and not a complete boot process.

➔➔ Additional security occurs inside a vserver; the LinuxAdditional security occurs inside a vserver; the Linux--VServer use the POSIX capabilities to increase its VServer use the POSIX capabilities to increase its security. security.

�� The LinuxThe Linux--VServersVServers

➔➔ As a consequence, this is a very fast and lightweight As a consequence, this is a very fast and lightweight system as only the necessary services are run (ssh, http, system as only the necessary services are run (ssh, http, postfix, etc) and not a complete boot process.postfix, etc) and not a complete boot process.

➔➔ Additional security occurs inside a vserver; the LinuxAdditional security occurs inside a vserver; the Linux--VServer use the POSIX capabilities to increase its VServer use the POSIX capabilities to increase its security. security.

➔➔ Network access, device access and many more Network access, device access and many more capabilities can be given or taken in order to have a more capabilities can be given or taken in order to have a more secure virtual server.secure virtual server.

�� UserUser--Mode Linux (UML)Mode Linux (UML)

�� UserUser--Mode Linux (UML)Mode Linux (UML)

«« UserUser--Mode Linux is a safe, secure way of running Linux Mode Linux is a safe, secure way of running Linux versions and Linux processes. Run buggy software, versions and Linux processes. Run buggy software, experiment with new Linux Kernel or distributions, and experiment with new Linux Kernel or distributions, and poke around in the internals of Linux, all without risking poke around in the internals of Linux, all without risking your main Linux setupyour main Linux setup»»

http://user-mode-linux.sourceforge.net/ (Feb/2005)(Feb/2005)

�� UserUser--Mode Linux (UML)Mode Linux (UML)

«« UserUser--Mode Linux is a safe, secure way of running Linux Mode Linux is a safe, secure way of running Linux versions and Linux processes. Run buggy software, versions and Linux processes. Run buggy software, experiment with new Linux Kernel or distributions, and experiment with new Linux Kernel or distributions, and poke around in the internals of Linux, all without risking poke around in the internals of Linux, all without risking your main Linux setupyour main Linux setup»»

http://user-mode-linux.sourceforge.net/ (Feb/2005)(Feb/2005)

➔➔ very slow performance because only one program can very slow performance because only one program can run in privileged mode: the host Kernel that support the run in privileged mode: the host Kernel that support the hosted oneshosted ones

�� UserUser--Mode Linux (UML)Mode Linux (UML)

«« UserUser--Mode Linux is a safe, secure way of running Linux Mode Linux is a safe, secure way of running Linux versions and Linux processes. Run buggy software, versions and Linux processes. Run buggy software, experiment with new Linux Kernel or distributions, and experiment with new Linux Kernel or distributions, and poke around in the internals of Linux, all without risking poke around in the internals of Linux, all without risking your main Linux setupyour main Linux setup»»

http://user-mode-linux.sourceforge.net/ (Feb/2005)(Feb/2005)

➔➔ very slow performance because only one program can very slow performance because only one program can run in privileged mode: the host Kernel that support the run in privileged mode: the host Kernel that support the hosted oneshosted ones

➔➔ the performance penalty is very important and a complete the performance penalty is very important and a complete boot process is necessaryboot process is necessary

�� XenXen

�� XenXen

«« Xen is a virtual machine monitor for x86 that supports Xen is a virtual machine monitor for x86 that supports execution of multiple guest operating systems with execution of multiple guest operating systems with unprecedented levels of performance and resource unprecedented levels of performance and resource isolationisolation»»

http://www.cl.cam.ac.uk/Research/SRG/netos/xen/(Feb/2005)(Feb/2005)

�� XenXen

➔➔ this is achieved by installing a king of this is achieved by installing a king of ««megamega--biosbios»» layer layer (Xen) that hides the physical hardware and provides (Xen) that hides the physical hardware and provides supported OS specific supported OS specific ««Xen driversXen drivers»» in order to interact in order to interact with the Xen abstraction layer.with the Xen abstraction layer.

�� XenXen

➔➔ this is achieved by installing a king of this is achieved by installing a king of ««megamega--biosbios»» layer layer (Xen) that hides the physical hardware and provides (Xen) that hides the physical hardware and provides supported OS specific supported OS specific ««Xen driversXen drivers»» in order to interact in order to interact with the Xen abstraction layer.with the Xen abstraction layer.

➔➔ the virtual servers interact with Xen hardware (including the virtual servers interact with Xen hardware (including CPU) needs a specific kernel but applications can run CPU) needs a specific kernel but applications can run unchanged.unchanged.

�� XenXen

➔➔ this is achieved by installing a king of this is achieved by installing a king of ««megamega--biosbios»» layer layer (Xen) that hides the physical hardware and provides (Xen) that hides the physical hardware and provides supported OS specific supported OS specific ««Xen driversXen drivers»» in order to interact in order to interact with the Xen abstraction layer.with the Xen abstraction layer.

➔➔ the virtual servers interact with Xen hardware (including the virtual servers interact with Xen hardware (including CPU) needs a specific kernel but applications can run CPU) needs a specific kernel but applications can run unchanged.unchanged.

➔➔ a lightweight technology, but demands complete systems a lightweight technology, but demands complete systems to be to be ««bootedbooted»» inside the Xen domains (virtual servers) inside the Xen domains (virtual servers) so resource consumption (RAM, CPU, processes, etc) is so resource consumption (RAM, CPU, processes, etc) is much more important than the Linuxmuch more important than the Linux--VServer project.VServer project.

�� QEMUQEMU

�� QEMUQEMU

«« QEMU is a generic and open source processor emulator QEMU is a generic and open source processor emulator which achieves a good emulation speed by using dynamic which achieves a good emulation speed by using dynamic translationtranslation»»

http://fabrice.bellard.free.fr/qemu/ (Feb/2005)(Feb/2005)

�� QEMUQEMU

➔➔ emulates only the x86 family of processorsemulates only the x86 family of processors

�� QEMUQEMU

➔➔ emulates only the x86 family of processorsemulates only the x86 family of processors

➔➔ supports emulation of user code on other architecture supports emulation of user code on other architecture (ARM, SPARC, PowerPC)(ARM, SPARC, PowerPC)

�� QEMUQEMU

➔➔ emulates only the x86 family of processorsemulates only the x86 family of processors

➔➔ supports emulation of user code on other architecture supports emulation of user code on other architecture (ARM, SPARC, PowerPC)(ARM, SPARC, PowerPC)

➔➔ emulation, by default, very slow; a nonemulation, by default, very slow; a non--free layer free layer (QEMU accelerator) gives a much better performance on (QEMU accelerator) gives a much better performance on the same architecture (x86 emulated on x86)the same architecture (x86 emulated on x86)

�� QEMUQEMU

➔➔ emulates only the x86 family of processorsemulates only the x86 family of processors

➔➔ supports emulation of user code on other architecture supports emulation of user code on other architecture (ARM, SPARC, PowerPC)(ARM, SPARC, PowerPC)

➔➔ emulation, by default, very slow; a nonemulation, by default, very slow; a non--free layer free layer (QEMU accelerator) gives a much better performance on (QEMU accelerator) gives a much better performance on the same architecture (x86 emulated on x86)the same architecture (x86 emulated on x86)

➔➔ a young and still very experimental projecta young and still very experimental project

Classification of problems:Classification of problems: usage usage criteriacriteria

Classification of problems:Classification of problems: usage usage criteriacriteria

We present in the following several needs for We present in the following several needs for computer virtualization and will use those computer virtualization and will use those criteria to compare the selected technologycriteria to compare the selected technology

Classification of problems:Classification of problems:

��Multi OSMulti OS

usage usage criteriacriteria

Classification of problems:Classification of problems:

��Multi OSMulti OS��Kernel development / debuggingKernel development / debugging

usage usage criteriacriteria

Classification of problems:Classification of problems:

��Multi OSMulti OS��Kernel development / debuggingKernel development / debugging��OS installation processOS installation process

usage usage criteriacriteria

Classification of problems:Classification of problems:

��Multi OSMulti OS��Kernel development / debuggingKernel development / debugging��OS installation processOS installation process��Resources consumptionResources consumption

usage usage criteriacriteria

Classification of problems:Classification of problems:

��Multi OSMulti OS��Kernel development / debuggingKernel development / debugging��OS installation processOS installation process��Resources consumptionResources consumption��Dynamical allocation of resourcesDynamical allocation of resources

usage usage criteriacriteria

Classification of problems:Classification of problems:

��Multi OSMulti OS��Kernel development / debuggingKernel development / debugging��OS installation processOS installation process��Resources consumptionResources consumption��Dynamical allocation of resourcesDynamical allocation of resources��Multi architectureMulti architecture

usage usage criteriacriteria

Classification of problems:Classification of problems:

��Multi OSMulti OS��Kernel development / debuggingKernel development / debugging��OS installation processOS installation process��Resources consumptionResources consumption��Dynamical allocation of resourcesDynamical allocation of resources��Multi architectureMulti architecture��MaturityMaturity

usage usage criteriacriteria

Classification of problems:Classification of problems:

��Multi OSMulti OS��Kernel development / debuggingKernel development / debugging��OS installation processOS installation process��Resources consumptionResources consumption��Dynamical allocation of resourcesDynamical allocation of resources��Multi architectureMulti architecture��MaturityMaturity��SecuritySecurity

usage usage criteriacriteria

�� Multi OSMulti OS

�� Multi OSMulti OS

➔➔ Some virtualization technology only support a type of OS Some virtualization technology only support a type of OS (Linux, Windows, FreeBSD, etc) while others are more (Linux, Windows, FreeBSD, etc) while others are more generic and can run Linux on Windows, Windows on generic and can run Linux on Windows, Windows on Linux, etc.Linux, etc.

�� Multi OSMulti OS

➔➔ Some virtualization technology only support a type of OS Some virtualization technology only support a type of OS (Linux, Windows, FreeBSD, etc) while others are more (Linux, Windows, FreeBSD, etc) while others are more generic and can run Linux on Windows, Windows on generic and can run Linux on Windows, Windows on Linux, etc.Linux, etc.

➔➔ Multi OS virtualization systems include VMware and Multi OS virtualization systems include VMware and Xen.Xen.

�� Kernel development / debuggingKernel development / debugging

�� Kernel development / debuggingKernel development / debugging

➔➔ Some users need to develop the kernel. This criteria will Some users need to develop the kernel. This criteria will define if, yes or no, those tasks can be achieved with the define if, yes or no, those tasks can be achieved with the chosen virtualization techniquechosen virtualization technique

�� Kernel development / debuggingKernel development / debugging

➔➔ Some users need to develop the kernel. This criteria will Some users need to develop the kernel. This criteria will define if, yes or no, those tasks can be achieved with the define if, yes or no, those tasks can be achieved with the chosen virtualization techniquechosen virtualization technique

➔➔ UML has been designed for Kernel Hacking and UML has been designed for Kernel Hacking and developmentdevelopment

�� OS installation processOS installation process

�� OS installation processOS installation process

➔➔ Some users need to reproduce the complete installation Some users need to reproduce the complete installation of a system (install CD, network boot, hard disk of a system (install CD, network boot, hard disk partitioning, etc).partitioning, etc).

�� OS installation processOS installation process

➔➔ Some users need to reproduce the complete installation Some users need to reproduce the complete installation of a system (install CD, network boot, hard disk of a system (install CD, network boot, hard disk partitioning, etc).partitioning, etc).

➔➔ VMware supports perfectly the simulation of the VMware supports perfectly the simulation of the installation process for the supported Linux distributionsinstallation process for the supported Linux distributions

��Resources consumptionResources consumption

��Resources consumptionResources consumption

➔➔ This criteria will define how much resources a virtual This criteria will define how much resources a virtual computer need to use in order to be fully functional.computer need to use in order to be fully functional.

��Resources consumptionResources consumption

➔➔ This criteria will define how much resources a virtual This criteria will define how much resources a virtual computer need to use in order to be fully functional.computer need to use in order to be fully functional.

➔➔ For each virtualization technique, the approximative For each virtualization technique, the approximative resource consumption of a fully functional virtual server resource consumption of a fully functional virtual server has been estimated.has been estimated.

��Resources consumptionResources consumption

➔➔ This criteria will define how much resources a virtual This criteria will define how much resources a virtual computer need to use in order to be fully functional.computer need to use in order to be fully functional.

➔➔ For each virtualization technique, the approximative For each virtualization technique, the approximative resource consumption of a fully functional virtual server resource consumption of a fully functional virtual server has been estimated.has been estimated.

➔➔ VMware needs a lot of resources, as does UML, then VMware needs a lot of resources, as does UML, then Xen and finally LinuxXen and finally Linux--VServers.VServers.

��Dynamical allocation of resourcesDynamical allocation of resources

��Dynamical allocation of resourcesDynamical allocation of resources

➔➔ Some users need to dynamically change the resources Some users need to dynamically change the resources used by a virtual computer. Some virtualization programs used by a virtual computer. Some virtualization programs allow the user to live change the resources available for allow the user to live change the resources available for the virtual server while others can not do this.the virtual server while others can not do this.

��Dynamical allocation of resourcesDynamical allocation of resources

➔➔ Some users need to dynamically change the resources Some users need to dynamically change the resources used by a virtual computer. Some virtualization programs used by a virtual computer. Some virtualization programs allow the user to live change the resources available for allow the user to live change the resources available for the virtual server while others can not do this.the virtual server while others can not do this.

➔➔ UML, Xen and LinuxUML, Xen and Linux--VServers can dynamically alocate VServers can dynamically alocate resources an ensure QoS criteria between the virtual resources an ensure QoS criteria between the virtual servers and the host system.servers and the host system.

��Multi architectureMulti architecture

��Multi architectureMulti architecture

➔➔ Some virtualization technology only support a type of Some virtualization technology only support a type of architecture, x86 for the most part.architecture, x86 for the most part.

��Multi architectureMulti architecture

➔➔ Some virtualization technology only support a type of Some virtualization technology only support a type of architecture, x86 for the most part.architecture, x86 for the most part.

➔➔ UML and LinuxUML and Linux--VServers support several architectures.VServers support several architectures.

��MaturityMaturity

��MaturityMaturity

➔➔ This is a This is a relativerelative indicator of the maturity of the indicator of the maturity of the technology.technology.

��MaturityMaturity

➔➔ This is a This is a relativerelative indicator of the maturity of the indicator of the maturity of the technology.technology.

➔➔ VMware is very mature (but not well supported with 2.6 VMware is very mature (but not well supported with 2.6 kernel and more experimental kernels)kernel and more experimental kernels)

��MaturityMaturity

➔➔ This is a This is a relativerelative indicator of the maturity of the indicator of the maturity of the technology.technology.

➔➔ VMware is very mature (but not well supported with 2.6 VMware is very mature (but not well supported with 2.6 kernel and more experimental kernels)kernel and more experimental kernels)

➔➔ UML and LinuxUML and Linux--VServer are production readyVServer are production ready

��MaturityMaturity

➔➔ This is a This is a relativerelative indicator of the maturity of the indicator of the maturity of the technology.technology.

➔➔ VMware is very mature (but not well supported with 2.6 VMware is very mature (but not well supported with 2.6 kernel and more experimental kernels)kernel and more experimental kernels)

➔➔ UML and LinuxUML and Linux--VServer are production readyVServer are production ready

➔➔ Xen is more experimentalXen is more experimental

��SecuritySecurity

��SecuritySecurity

➔➔ While all virtualization techniques increases security While all virtualization techniques increases security by allowing system administrators to cleanly by allowing system administrators to cleanly separate services on different virtual servers, some separate services on different virtual servers, some of them offers additional protections with rules/roles of them offers additional protections with rules/roles and additional security models that can make a and additional security models that can make a virtual server more robust than a real one.virtual server more robust than a real one.

��SecuritySecurity

➔➔ LinuxLinux--VServer share some code with the guest OS VServer share some code with the guest OS and this can be considered as a vulnerability.and this can be considered as a vulnerability.

��SecuritySecurity

➔➔ LinuxLinux--VServer share some code with the guest OS VServer share some code with the guest OS and this can be considered as a vulnerability.and this can be considered as a vulnerability.

➔➔ We did not consider this as a vulnerability because We did not consider this as a vulnerability because we consider that if a security problem occurs in the we consider that if a security problem occurs in the kernel in a primitive method used by a Linuxkernel in a primitive method used by a Linux--VServer (chroot, chcontext, chbind, etc) then every VServer (chroot, chcontext, chbind, etc) then every Linux server (vserver or not) has this problem and Linux server (vserver or not) has this problem and has to be upgraded.has to be upgraded.

��SecuritySecurity

➔➔ In this context, the LinuxIn this context, the Linux--VServer project is the VServer project is the more more ««security orientedsecurity oriented»» because it offers because it offers additional security features (POSIX capabilities).additional security features (POSIX capabilities).

��SecuritySecurity

➔➔ In this context, the LinuxIn this context, the Linux--VServer project is the VServer project is the more more ««security orientedsecurity oriented»» because it offers because it offers additional security features (POSIX capabilities).additional security features (POSIX capabilities).

➔➔ The other technologies do not provide additional The other technologies do not provide additional security.security.

Comparative study of the Comparative study of the existing technologyexisting technology

Comparative study of the Comparative study of the existing technologyexisting technology

➔➔ Only the major virtualization techniques will be Only the major virtualization techniques will be analyzedanalyzed

Comparative study of the Comparative study of the existing technologyexisting technology

➔➔ Only the major virtualization techniques will be Only the major virtualization techniques will be analyzedanalyzed

➔➔ The Bochs and plex86 projects will not be The Bochs and plex86 projects will not be compared with the others as they are not yet compared with the others as they are not yet fully functional fully functional

Comparative study of the Comparative study of the existing technologyexisting technology

Kernel Intall DynamicalName Multi OS Development Process Resources Resources Sercurity Maturity ArchitectureVmware Yes No Yes 2 Gb No No Good x86 Linux-VServer No No No 256 Mb Yes Yes Excelent x86, IA64, x86_64UML No Yes No 1 Gb No No Good x86, IA64, x86_64Xen Yes Exp. Yes 1 Gb No No Young x86 QEMU Exp. No Exp. 1 Gb No No Young x86

Comparative study of the Comparative study of the existing technologyexisting technology

➔➔ Based on the needs from the user, one should Based on the needs from the user, one should be able to easily choose the best suited be able to easily choose the best suited virtualization techniquevirtualization technique

➔➔ In order to facilitate this process, we have In order to facilitate this process, we have established some basic useestablished some basic use--cases for the cases for the virtualization of computers:virtualization of computers:

➔➔ In order to facilitate this process, we have In order to facilitate this process, we have established some basic useestablished some basic use--cases for the cases for the virtualization of computers:virtualization of computers:

•• HostingHosting

➔➔ In order to facilitate this process, we have In order to facilitate this process, we have established some basic useestablished some basic use--cases for the cases for the virtualization of computers:virtualization of computers:

•• HostingHosting

•• Testing one applicationTesting one application

➔➔ In order to facilitate this process, we have In order to facilitate this process, we have established some basic useestablished some basic use--cases for the cases for the virtualization of computers:virtualization of computers:

•• HostingHosting

•• Testing one applicationTesting one application

•• Build environment or development environmentBuild environment or development environment

➔➔ In order to facilitate this process, we have In order to facilitate this process, we have established some basic useestablished some basic use--cases for the cases for the virtualization of computers:virtualization of computers:

•• HostingHosting

•• Testing one applicationTesting one application

•• Build environment or development environmentBuild environment or development environment

•• Testing distributed application and/or complex Testing distributed application and/or complex upgrade processupgrade process

➔➔ In order to facilitate this process, we have In order to facilitate this process, we have established some basic useestablished some basic use--cases for the cases for the virtualization of computers:virtualization of computers:

•• HostingHosting

•• Testing one applicationTesting one application

•• Build environment or development environmentBuild environment or development environment

•• Testing distributed application and/or complex Testing distributed application and/or complex upgrade processupgrade process

•• Security usageSecurity usage

➔➔ In order to facilitate this process, we have In order to facilitate this process, we have established some basic useestablished some basic use--cases for the cases for the virtualization of computers:virtualization of computers:

•• HostingHosting

•• Testing one applicationTesting one application

•• Build environment or development environmentBuild environment or development environment

•• Testing distributed application and/or complex Testing distributed application and/or complex upgrade processupgrade process

•• Security usageSecurity usage

•• High availabilityHigh availability

➔➔ In order to facilitate this process, we have In order to facilitate this process, we have established some basic useestablished some basic use--cases for the cases for the virtualization of computers:virtualization of computers:

•• HostingHosting

•• Testing one applicationTesting one application

•• Build environment or development environmentBuild environment or development environment

•• Testing distributed application and/or complex Testing distributed application and/or complex upgrade processupgrade process

•• Security usageSecurity usage

•• High availabilityHigh availability

•• Disaster recoveryDisaster recovery

��HostingHosting

��HostingHosting

➔➔ An Internet provider or someone that simply have to An Internet provider or someone that simply have to provide access to one or several hosts on a real provide access to one or several hosts on a real system.system.

��HostingHosting

➔➔ An Internet provider or someone that simply have to An Internet provider or someone that simply have to provide access to one or several hosts on a real provide access to one or several hosts on a real system.system.

➔➔ The resources consumption is very small because The resources consumption is very small because only the needed processes are started on the only the needed processes are started on the vservers.vservers.

��HostingHosting

➔➔ An Internet provider or someone that simply have to An Internet provider or someone that simply have to provide access to one or several hosts on a real provide access to one or several hosts on a real system.system.

➔➔ The resources consumption is very small because The resources consumption is very small because only the needed processes are started on the only the needed processes are started on the vservers.vservers.

➔➔ Additional security is provided by the POSIX Additional security is provided by the POSIX capabilitiescapabilities

��HostingHosting

➔➔ On demand servers can be created in seconds and On demand servers can be created in seconds and delivered to the customer.delivered to the customer.

��HostingHosting

➔➔ On demand servers can be created in seconds and On demand servers can be created in seconds and delivered to the customer.delivered to the customer.

➔➔ Every LinuxEvery Linux--VServer consist only of files that can be VServer consist only of files that can be easily backuped and restored on another server if easily backuped and restored on another server if needed.needed.

��HostingHosting

➔➔ On demand servers can be created in seconds and On demand servers can be created in seconds and delivered to the customer.delivered to the customer.

➔➔ Every LinuxEvery Linux--VServer consist only of files that can be VServer consist only of files that can be easily backuped and restored on another server if easily backuped and restored on another server if needed.needed.

➔➔ Unification is a mechanism at the package level that Unification is a mechanism at the package level that allows Linuxallows Linux--VServers to share programs and VServers to share programs and librarylibrary

��Testing one applicationTesting one application

��Testing one applicationTesting one application

➔➔ Perform stress tests or unitary testing on one Perform stress tests or unitary testing on one application.application.

��Testing one applicationTesting one application

➔➔ Perform stress tests or unitary testing on one Perform stress tests or unitary testing on one application.application.

➔➔ Is easy to move a LinuxIs easy to move a Linux--VServer on different VServer on different hardware to compare performance.hardware to compare performance.

��Testing one applicationTesting one application

➔➔ Perform stress tests or unitary testing on one Perform stress tests or unitary testing on one application.application.

➔➔ Is easy to move a LinuxIs easy to move a Linux--VServer on different VServer on different hardware to compare performance.hardware to compare performance.

➔➔ Because the regular device drivers are used, the Because the regular device drivers are used, the virtualization layer impact on performance virtualization layer impact on performance measurement is expected to be nebligible.measurement is expected to be nebligible.

��Build environment or development Build environment or development environmentenvironment

��Build environment or development Build environment or development environmentenvironment

�� Easily to create on deman different versions of Easily to create on deman different versions of distributions from a host systemdistributions from a host system

��Build environment or development Build environment or development environmentenvironment

�� Development starting from a clean virtual Development starting from a clean virtual server:server:

�� Easily to create on deman different versions of Easily to create on deman different versions of distributions from a host systemdistributions from a host system

��Build environment or development Build environment or development environmentenvironment

➔➔ Greatly increases bug reproducibility and process of Greatly increases bug reproducibility and process of developmentdevelopment

�� Development starting from a clean virtual Development starting from a clean virtual server:server:

�� Easily to create on deman different versions of Easily to create on deman different versions of distributions from a host systemdistributions from a host system

��Build environment or development Build environment or development environmentenvironment

➔➔ Greatly increases bug reproducibility and process of Greatly increases bug reproducibility and process of developmentdevelopment

�� Development starting from a clean virtual Development starting from a clean virtual server:server:

➔➔ When a bug is found, the vserver where the bug When a bug is found, the vserver where the bug can be triggered can be easily copied and can be triggered can be easily copied and ««givengiven »»to the developer in charge.to the developer in charge.

�� Easily to create on deman different versions of Easily to create on deman different versions of distributions from a host systemdistributions from a host system

��Testing distributed application and/or Testing distributed application and/or complex upgrade processcomplex upgrade process

��Testing distributed application and/or Testing distributed application and/or complex upgrade processcomplex upgrade process

➔➔ One of the problems for complex applications is the One of the problems for complex applications is the fact that it is very difficult to reproduce, in the fact that it is very difficult to reproduce, in the laboratory, an evironment similar to the production laboratory, an evironment similar to the production one.one.

��Testing distributed application and/or Testing distributed application and/or complex upgrade processcomplex upgrade process

➔➔ One of the problems for complex applications is the One of the problems for complex applications is the fact that it is very difficult to reproduce, in the fact that it is very difficult to reproduce, in the laboratory, an evironment similar to the production laboratory, an evironment similar to the production one.one.

➔➔ As a consequence, and while this is certainly not As a consequence, and while this is certainly not the best practices, developers often need to the best practices, developers often need to develop on or develop on or ««nearnear»» the production systems.the production systems.

��Testing distributed application and/or Testing distributed application and/or complex upgrade processcomplex upgrade process

➔➔ One of the problems for complex applications is the One of the problems for complex applications is the fact that it is very difficult to reproduce, in the fact that it is very difficult to reproduce, in the laboratory, an evironment similar to the production laboratory, an evironment similar to the production one.one.

➔➔ As a consequence, and while this is certainly not As a consequence, and while this is certainly not the best practices, developers often need to the best practices, developers often need to develop on or develop on or ««nearnear»» the production systems.the production systems.

➔➔ With one of the virtualization techniques it is very With one of the virtualization techniques it is very easy to duplicate the production environment in the easy to duplicate the production environment in the laboratory: just copy your production virtual laboratory: just copy your production virtual computer on a development system.computer on a development system.

��Security usageSecurity usage

��Security usageSecurity usage

➔➔ The KISSThe KISS11 principle encourages the deployment of principle encourages the deployment of simple systems that only deliver one service per simple systems that only deliver one service per system.system.

11 Keep It Simple and StupidKeep It Simple and Stupid

��Security usageSecurity usage

➔➔ The KISSThe KISS11 principle encourages the deployment of principle encourages the deployment of simple systems that only deliver one service per simple systems that only deliver one service per system.system.

➔➔ This principle is rarely used on the field because This principle is rarely used on the field because this will lead to a very big increase of the physical this will lead to a very big increase of the physical computers number.computers number.

��Security usageSecurity usage

➔➔ The KISSThe KISS11 principle encourages the deployment of principle encourages the deployment of simple systems that only deliver one service per simple systems that only deliver one service per system.system.

➔➔ This principle is rarely used on the field because This principle is rarely used on the field because this will lead to a very big increase of the physical this will lead to a very big increase of the physical computers number.computers number.

➔➔ In turn, because modern computers have a huge In turn, because modern computers have a huge computing power, those computers will be undercomputing power, those computers will be under--usedused

��High availabilityHigh availability

��High availabilityHigh availability

➔➔ While Xen is presently one of the first to manage While Xen is presently one of the first to manage load balancing between lives computers, one can load balancing between lives computers, one can easily set up a high availability system with any easily set up a high availability system with any virtualization technique.virtualization technique.

��High availabilityHigh availability

➔➔ While Xen is presently one of the first to manage While Xen is presently one of the first to manage load balancing between lives computers, one can load balancing between lives computers, one can easily set up a high availability system with any easily set up a high availability system with any virtualization technique.virtualization technique.

➔➔ A cold swap server that is synced either periodically A cold swap server that is synced either periodically (cron is your friend) of live, either at the application (cron is your friend) of live, either at the application level (replication for MySQL, PostGreSQL, LDAP, level (replication for MySQL, PostGreSQL, LDAP, etc) or with a low level tool like DRetc) or with a low level tool like DR--DB/DB/

��High availabilityHigh availability

➔➔ Then the hot or cold backup virtualThen the hot or cold backup virtual--server can server can monitor failures from the other virtualmonitor failures from the other virtual--server provide server provide a very inexpensive high availability layer.a very inexpensive high availability layer.

��High availabilityHigh availability

➔➔ Then the hot or cold backup virtualThen the hot or cold backup virtual--server can server can monitor failures from the other virtualmonitor failures from the other virtual--server provide server provide a very inexpensive high availability layer.a very inexpensive high availability layer.

➔➔ One can even use this procedure on a single One can even use this procedure on a single hardware system: this will provide what we called hardware system: this will provide what we called ««software high availabilitysoftware high availability»» and protect the user and protect the user from software bugs.from software bugs.

��Disaster recoveryDisaster recovery

��Disaster recoveryDisaster recovery

➔➔ Virtualization deeply modify this area of modern Virtualization deeply modify this area of modern computing providing an abstraction layer between computing providing an abstraction layer between the hardware and the virtual servers.the hardware and the virtual servers.

��Disaster recoveryDisaster recovery

➔➔ Virtualization deeply modify this area of modern Virtualization deeply modify this area of modern computing providing an abstraction layer between computing providing an abstraction layer between the hardware and the virtual servers.the hardware and the virtual servers.

➔➔ This meands that heterogeneous hardware can This meands that heterogeneous hardware can easily be used, without additional risk, to provide easily be used, without additional risk, to provide disaster recovery capacities.disaster recovery capacities.

Technology overview ofTechnology overview ofTechnology overview ofTechnology overview ofLinuxLinux--VServersVServers

Technology overview ofTechnology overview of

➔➔ http://linuxhttp://linux--vserver.orgvserver.org

LinuxLinux--VServersVServers

Technology overview ofTechnology overview of

➔➔ http://linuxhttp://linux--vserver.orgvserver.org➔➔ Created by Jacques Gelinas, a well know Created by Jacques Gelinas, a well know

Linux hacker from Quebec (Linuxconf, Linux hacker from Quebec (Linuxconf, insmod/modprobe, umsdos, etc).insmod/modprobe, umsdos, etc).

LinuxLinux--VServersVServers

Technology overview ofTechnology overview of

➔➔ http://linuxhttp://linux--vserver.orgvserver.org➔➔ Created by Jacques Gelinas, a well know Created by Jacques Gelinas, a well know

Linux hacker from Quebec (Linuxconf, Linux hacker from Quebec (Linuxconf, insmod/modprobe, umsdos, etc).insmod/modprobe, umsdos, etc).

➔➔ Project is leaded now by Herbert Poetzl and Project is leaded now by Herbert Poetzl and a lot of development occursa lot of development occurs

LinuxLinux--VServersVServers

Technology overview ofTechnology overview of

➔➔ http://linuxhttp://linux--vserver.orgvserver.org➔➔ Created by Jacques Gelinas, a well know Created by Jacques Gelinas, a well know

Linux hacker from Quebec (Linuxconf, Linux hacker from Quebec (Linuxconf, insmod/modprobe, umsdos, etc).insmod/modprobe, umsdos, etc).

➔➔ Project is leaded now by Herbert Poetzl and Project is leaded now by Herbert Poetzl and a lot of development occursa lot of development occurs

➔➔ The community is very active and supportiveThe community is very active and supportive

LinuxLinux--VServersVServers

Technology overview ofTechnology overview ofLinuxLinux--VServersVServers

The LinuxThe Linux--VServer project can be see as the VServer project can be see as the integration of 4 concepts, half of them having integration of 4 concepts, half of them having been specifically developed for the project:been specifically developed for the project:

Technology overview ofTechnology overview ofLinuxLinux--VServersVServers

��chroot: disk isolationchroot: disk isolation

The LinuxThe Linux--VServer project can be see as the VServer project can be see as the integration of 4 concepts, half of them having been integration of 4 concepts, half of them having been specifically developed for the project:specifically developed for the project:

Technology overview ofTechnology overview ofLinuxLinux--VServersVServers

��chroot: disk isolationchroot: disk isolation��chcontext: process isolationchcontext: process isolation

The LinuxThe Linux--VServer project can be see as the VServer project can be see as the integration of 4 concepts, half of them having been integration of 4 concepts, half of them having been specifically developed for the project:specifically developed for the project:

Technology overview ofTechnology overview ofLinuxLinux--VServersVServers

��chroot: disk isolationchroot: disk isolation��chcontext: process isolationchcontext: process isolation��chbind: network isolation chbind: network isolation

The LinuxThe Linux--VServer project can be see as the VServer project can be see as the integration of 4 concepts, half of them having been integration of 4 concepts, half of them having been specifically developed for the project:specifically developed for the project:

Technology overview ofTechnology overview ofLinuxLinux--VServersVServers

��chroot: disk isolationchroot: disk isolation

��chcontext: process isolationchcontext: process isolation

��chbind: network isolation chbind: network isolation

��capabilities: additional securitycapabilities: additional security

The LinuxThe Linux--VServer project can be see as the VServer project can be see as the integration of 4 concepts, half of them having been integration of 4 concepts, half of them having been specifically developed for the project:specifically developed for the project:

��chroot: disk isolationchroot: disk isolation

��chroot: disk isolationchroot: disk isolation

➔➔ Once called, the chroot system call allow the Once called, the chroot system call allow the following commands to start from a different following commands to start from a different filesystem root.filesystem root.

��chroot: disk isolationchroot: disk isolation

➔➔ Once called, the chroot system call allow the Once called, the chroot system call allow the following commands to start from a different following commands to start from a different filesystem root.filesystem root.

➔➔ This provides what we can call This provides what we can call ««disk isolationdisk isolation»»..

��chroot: disk isolationchroot: disk isolation

➔➔ Once called, the chroot system call allow the Once called, the chroot system call allow the following commands to start from a different following commands to start from a different filesystem root.filesystem root.

➔➔ This provides what we can call This provides what we can call ««disk isolationdisk isolation»»..

➔➔ It is very common to use a chrooted It is very common to use a chrooted environment for security sensible services (FTP, environment for security sensible services (FTP, Bind, etc). Bind, etc).

��chroot: disk isolationchroot: disk isolation

➔➔ Once called, the chroot system call allow the Once called, the chroot system call allow the following commands to start from a different following commands to start from a different filesystem root.filesystem root.

➔➔ This provides what we can call This provides what we can call ««disk isolationdisk isolation»»..

➔➔ It is very common to use a chrooted It is very common to use a chrooted environment for security sensible services (FTP, environment for security sensible services (FTP, Bind, etc). Bind, etc).

➔➔ If the chrooted service is hacked, only the files If the chrooted service is hacked, only the files writable inside the chroot can be compromised.writable inside the chroot can be compromised.

��chroot: disk isolationchroot: disk isolation

Briefly:Briefly:

the root of all the commands run in the root of all the commands run in a Linuxa Linux--VServer is not the same as the VServer is not the same as the host system root. This provides file host system root. This provides file system isolation.system isolation.

��chcontext: process isolationchcontext: process isolation

��chcontext: process isolationchcontext: process isolation

➔➔ This is a specific vserver system call that This is a specific vserver system call that creates a new security context.creates a new security context.

��chcontext: process isolationchcontext: process isolation

➔➔ This is a specific vserver system call that This is a specific vserver system call that creates a new security context.creates a new security context.

➔➔ This provide what we call This provide what we call ««process isolationprocess isolation»»..

��chcontext: process isolationchcontext: process isolation

➔➔ This is a specific vserver system call that This is a specific vserver system call that creates a new security context.creates a new security context.

➔➔ This provide what we call This provide what we call ««process isolationprocess isolation»»..

➔➔ The usual or The usual or ««hostedhosted»» security context is the security context is the context ''0'', which has the same privileges of context ''0'', which has the same privileges of the root user (UID 0): can see and kill other the root user (UID 0): can see and kill other tasks in the other contexts.tasks in the other contexts.

��chcontext: process isolationchcontext: process isolation

➔➔ If we except the context number 1 which is used If we except the context number 1 which is used toto ««viewview»» other contexts but can not affect other contexts but can not affect them, then the context isolation is complete: them, then the context isolation is complete: processes from one context can not see neither processes from one context can not see neither interact with processes from another context. interact with processes from another context.

��chcontext: process isolationchcontext: process isolation

➔➔ If we except the context number 1 which is used If we except the context number 1 which is used toto ««viewview»» other contexts but can not affect other contexts but can not affect them, then the context isolation is complete: them, then the context isolation is complete: processes from one context can not see neither processes from one context can not see neither interact with processes from another context. interact with processes from another context.

➔➔ This provide the ability to run similar contexts on This provide the ability to run similar contexts on the same computer without any interaction the same computer without any interaction possible at the application level.possible at the application level.

��chcontext: process isolationchcontext: process isolation

the root of all the commands run in the root of all the commands run in a Linuxa Linux--VServer is not the same as the VServer is not the same as the host system root. This provides file host system root. This provides file system isolation.system isolation.

Briefly:Briefly:

��chbind: network isolationchbind: network isolation

��chbind: network isolationchbind: network isolation

➔➔ The other vserver specific system call that provides The other vserver specific system call that provides ««network isolationnetwork isolation»»..

��chbind: network isolationchbind: network isolation

➔➔ The other vserver specific system call that provides The other vserver specific system call that provides ««network isolationnetwork isolation»»..

➔➔ Once called, all traffic sent by any of the network Once called, all traffic sent by any of the network interface is alterated so that it comes from the interface is alterated so that it comes from the argument given to chbind (an ipv4 or ipv6 address).argument given to chbind (an ipv4 or ipv6 address).

��chbind: network isolationchbind: network isolation

➔➔ The other vserver specific system call that provides The other vserver specific system call that provides ««network isolationnetwork isolation»»..

➔➔ Once called, all traffic sent by any of the network Once called, all traffic sent by any of the network interface is alterated so that it comes from the interface is alterated so that it comes from the argument given to chbind (an ipv4 or ipv6 address).argument given to chbind (an ipv4 or ipv6 address).

➔➔ Processes run from one chbind send packets with Processes run from one chbind send packets with one IP address while processes run from another one IP address while processes run from another chbind send packets with another IP adress.chbind send packets with another IP adress.

��chbind: network isolationchbind: network isolation

➔➔ The other vserver specific system call that provides The other vserver specific system call that provides ««network isolationnetwork isolation»»..

➔➔ Once called, all traffic sent by any of the network Once called, all traffic sent by any of the network interface is alterated so that it comes from the interface is alterated so that it comes from the argument given to chbind (an ipv4 or ipv6 address).argument given to chbind (an ipv4 or ipv6 address).

➔➔ Processes run from one chbind send packets with Processes run from one chbind send packets with one IP address while processes run from another one IP address while processes run from another chbind send packets with another IP adress.chbind send packets with another IP adress.

➔➔ This uses the virtual device infrastructure that allow This uses the virtual device infrastructure that allow a computer with a single NIC to have numerous IP a computer with a single NIC to have numerous IP address.address.

��chbind: network isolationchbind: network isolation

each packet send from a Linuxeach packet send from a Linux--VServer has its origin sent to a well VServer has its origin sent to a well defined IP address. This provides defined IP address. This provides network isolation.network isolation.

Briefly:Briefly:

��capabilities: additional securitycapabilities: additional security

��capabilities: additional securitycapabilities: additional security

➔➔ The POSIX capabilities were designed to The POSIX capabilities were designed to ««hardenedhardened»» a POSIX system.a POSIX system.

��capabilities: additional securitycapabilities: additional security

➔➔ The POSIX capabilities were designed to The POSIX capabilities were designed to ««hardenedhardened»» a POSIX system.a POSIX system.

➔➔ A root account in a default LinuxA root account in a default Linux--VServer has VServer has much less privileges than a root account on a much less privileges than a root account on a regular Linux serverregular Linux server

��capabilities: additional securitycapabilities: additional security

➔➔ The POSIX capabilities were designed to The POSIX capabilities were designed to ««hardenedhardened»» a POSIX system.a POSIX system.

➔➔ A root account in a default LinuxA root account in a default Linux--VServer has VServer has much less privileges than a root account on a much less privileges than a root account on a regular Linux serverregular Linux server

➔➔ For instance, IP addresses cannot be changed For instance, IP addresses cannot be changed (no ifconfig!), nodes can not be created (no (no ifconfig!), nodes can not be created (no mknod), hardware time can not be set, etc.mknod), hardware time can not be set, etc.

��capabilities: additional securitycapabilities: additional security

➔➔ This is specially intersting because fits very This is specially intersting because fits very nicely with the Linuxnicely with the Linux--VServer model where only VServer model where only the host server can set up certain properties of the host server can set up certain properties of the vserver (IP address, time, network interface, the vserver (IP address, time, network interface, etc) and the Linuxetc) and the Linux--VServers can not alter those VServers can not alter those settings (for obvious security reasons).settings (for obvious security reasons).

��capabilities: additional securitycapabilities: additional security

each Linuxeach Linux--VServer has a set of VServer has a set of capabilities (none by default) in order to capabilities (none by default) in order to be able to work. Strictly speaking, this be able to work. Strictly speaking, this means that a root on a Linuxmeans that a root on a Linux--VServer VServer has much less has much less ««privilegesprivileges»» than a root than a root account on a regular Linux server. This account on a regular Linux server. This provides provides ««rootroot»»--isolation.isolation.

Briefly:Briefly:

Host system (context 0)Kernel 2.6.8.1-vs1.9.2

Vserver1

Vserver2

Vserver3

Vserver4

Context 413455Context 23456

Context 3456Context 234656

RA

M

Dev

ices

How it works?How it works?

How it works?How it works?

How it works?How it works?

��Context 0 has power Context 0 has power over all the others over all the others contextscontexts

How it works?How it works?

��Context 0 has power Context 0 has power over all the others over all the others contextscontexts

��Context 1 : can only Context 1 : can only watch the other watch the other contexts (special)contexts (special)

How it works?How it works?

��Context 0 has power Context 0 has power over all the others over all the others contextscontexts

��Context 1 : can only Context 1 : can only watch the other watch the other contexts (special)contexts (special)

��Other contextes : can Other contextes : can only see themselves.only see themselves.

How it works?How it works?

��Context 0 has power Context 0 has power over all the others over all the others contextscontexts

��Context 1 : can only Context 1 : can only watch the other watch the other contexts (special)contexts (special)

��Other contextes : can Other contextes : can only see themselves.only see themselves.

��Devices : it's the host Devices : it's the host server (context 0) that server (context 0) that decides who have decides who have acess to whatacess to what

How it works?How it works?

��Context 0 has power Context 0 has power over all the others over all the others contextscontexts

��Context 1 : can only Context 1 : can only watch the other watch the other contexts (special)contexts (special)

��Other contextes : can Other contextes : can only see themselves.only see themselves.

��Devices : it's the host Devices : it's the host server (context 0) that server (context 0) that decides who have decides who have acess to whatacess to what

��Exemple : network, Exemple : network, mount points, /proc, mount points, /proc, etc.etc.

ConclusionConclusion

ConclusionConclusion

�� Because of its maturity (several Because of its maturity (several production systems with more than 20 production systems with more than 20 LinuxLinux--VServers in production for years) VServers in production for years) and because this is the more lightweight and because this is the more lightweight virtualization technique, we believe that virtualization technique, we believe that LinuxLinux--VServer is the best tool for VServer is the best tool for virtualizing Linux servers on a Linux virtualizing Linux servers on a Linux operating system host.operating system host.

ConclusionConclusion

�� There are some cases where other There are some cases where other techniques are necessary, mainly running techniques are necessary, mainly running another OS and kernel development, but another OS and kernel development, but beside this two cases, the Linuxbeside this two cases, the Linux--VServer VServer is really the best virtualization technique is really the best virtualization technique available.available.

ConclusionConclusion

�� The use of a single kernel for all the The use of a single kernel for all the LinuxLinux--VServers hosted on one system VServers hosted on one system provides the project several key provides the project several key advantages when compared to other advantages when compared to other virtualization techniques:virtualization techniques:

ConclusionConclusion

�� The use of a single kernel for all the The use of a single kernel for all the LinuxLinux--VServers hosted on one system VServers hosted on one system provides the project several key provides the project several key advantages when compared to other advantages when compared to other virtualization techniques:virtualization techniques:

➔➔LightweightLightweight: only services are started on the hosted : only services are started on the hosted LinuxLinux--VServerVServer, not all the processes , not all the processes resulting from a complete boot process.resulting from a complete boot process.

ConclusionConclusion

➔➔ Uses the latest Linux kernel development easilyUses the latest Linux kernel development easily: : for instance, with the O(1) scheduler, all the for instance, with the O(1) scheduler, all the processes are well prioritized.processes are well prioritized.

ConclusionConclusion

➔➔ Uses the latest Linux kernel development easilyUses the latest Linux kernel development easily: : for instance, with the O(1) scheduler, all the for instance, with the O(1) scheduler, all the processes are well prioritized.processes are well prioritized.

➔➔ Native usage of device driversNative usage of device drivers: with the Linux: with the Linux--VServer project, one can use the latest kernel VServer project, one can use the latest kernel drivers without any performance penalty introduced drivers without any performance penalty introduced by the virtualization layer.by the virtualization layer.

AcknowledgementsAcknowledgements

This research has been funded by the This research has been funded by the National Research Council's Industrial National Research Council's Industrial Research Assistance Program (NRCResearch Assistance Program (NRC--IRAP),IRAP),project number 547017project number 547017

Jacques Gelinas, for the original idea and Jacques Gelinas, for the original idea and valuable discussion.valuable discussion.

Herbert Poetzl, the current project leader Herbert Poetzl, the current project leader

The LinuxThe Linux--VServer community for their VServer community for their positive attitude. positive attitude.

......


Recommended