Virtualization

From GTALUG

Contents

Virtualization

Virtualization is broadly about the notion of abstracting computer resources. Virtual memory is where what the system treats as memory can be a combination of physical RAM and space on disk. RAID and volume management systems join disks together to provide "virtual disk." Virtual machines provide some sort of emulation of a special purpose CPU.

Recently, a popular expression of it is about the notion of running multiple operating system instances on a single computer. This is useful for a number of purposes, including:

  • Consolidating a bunch of servers onto one physical machine. This can improve system utilization.
  • Providing a way of migrating processes across multiple physical systems.
  • Providing a way to ease QA efforts when you need to test an application on more kinds of systems than you have physical boxes.
  • Improving security by allowing colocated services to fairly deeply believe that they have their own machines.
  • Running software written for one OS on a computer running another OS. Historically, IBM has frequently handled system upgrades by having emulators of earlier systems to run old applications.

Approaches

  • Emulators - the VM simulates hardware to allow a guest OS to run
  • Paravirtualization - the VM doesn't simulate hardware; it provides an API to allow the guest OS to request special services
  • Jails - the system allows partitioning the real system into a series of independent systems called "jails". (FreeBSD Jails) Each "jail cell" has its own root, populated with the vital bits of a BSD system: some binaries, a proc filesystem, and whatever applications are to be running in that cell. They are (at quite a deep level) unable to interfere with either one another or the "master" filesystem. You only actually have one kernel running, but multiple instances of init...

Technologies

Local Connections

Customize