Virtualisatie van operating systems

Virtualisatie van operating systems bestaat al vele tientallen jaren. Op dit moment is het onderwerp echter heel actueel en wordt het door veel IT architecten ingezet, net als de andere soorten van virtualisatie (zoals storage virtualisatie of netwerk virtualisatie).

De reden waarom virtualisatie zo populair is, is tweeledig.

Ten eerste zijn virtualisatietechnieken voor Windows systemen pas sinds enkele jaren stabiel genoeg om in productieomgevingen ingezet te kunnen worden. Tot voorkort werd virtualisatie alleen toegepast bij test- en ontwikkelomgevingen (Windows) en bij midrange- en mainframe omgevingen.

Ten tweede zijn de afgelopen jaren zijn de datacenters van bedrijven vol gezet met separate Windows machines. Hierdoor is een enorme wildgroei aan machines ontstaan, die voor veel kosten zorgen en voor een hoge beheerlast.

Ik zal in onderstaand artikel ingaan op het doel van virtualisatie, de historie van virtualisatie en de verschillende technologieën en producten.

Het doel van virtualisatie

Virtualisatie van operating systems is het draaien van meerdere operating systems op 1 fysieke machine. Het voordeel hiervan is dat een efficiënter gebruik kan worden gemaakt van de hardware.

Virtualisatie maakt het bijvoorbeeld mogelijk om 2 Windows 2003 servers, 1 Windows NT machine, 2 Linux servers en een FreeBSD server op 1 fysieke machine te draaien. Het is zelfs mogelijk (maar behalve voor testdoeleinden niet raadzaam) om een compleet cluster van meerdere operating systems op 1 machine te draaien! Mocht 1 operating system crashen, of mocht een operating system herstart moeten worden in verband met bijvoorbeeld patching, dan kan het operating system eenvoudig worden herstart (ook vanaf afstand), zonder dat de andere operating systems daarvan last hebben.

De operating systems hebben er geen weet van dat ze op een gevirtualiseerde machine draaien, en zullen dan ook gewoon in een gevirtualiseerde machine moeten worden geïnstalleerd, net alsof ze op een aparte machine draaien.

Virtualisatie kan een enorme kostenbesparing opleveren, waaronder hardware kosten, minder stroomgebruik, kleiner benodigd vloeroppervlak in het datacenter, minder kosten voor patching en beheer, minder kosten van hardware uitval en hardware upgrades, enzovoort. Het is daarom dat er vanuit het management grote belangstelling is ontstaan voor virtualisatie.

De historie van virtualisatie

Omdat er veel wordt gesproken over virtualisatie kan het idee ontstaan dat het een nieuwe technologie betreft. Dit is niet het geval.

In de zestiger jaren van de vorige eeuw was er al IBM's M44/44X project: hardware (7044) met virtuele machines (44X). In 1967 kwam IBM's 360 model 67 met virtueel geheugen waarmee IBM 360s machines konden worden gevirtualiseerd. In 1972 kwam VM/370 uit: een operating system dat virtuele machines creëerde op IBM mainframes.

Hierna kwamen de Midrange oplossingen voor HP-UX, AIX en Solaris. Het ging hier vooral om patitioneringstechnieken.

In 1998 werd het door VMware mogelijk ook Intel x86 machines van een virtualisatielaag te voorzien. Dit maakte het mogelijk om ook Windows machines van virtualisatie te voorzien.

Technologieën en producten

Voor virtualisatie kunnen verschillende technologieën worden gebruikt:

Partitionering: Bij partitionering wordt een machine "in stukjes geknipt" en elk stukje kan een eigen operating system draaien. Elke partitie heeft dus een eigen CPU('s), memory en I/O. Sommige CPU's hebben hardwaremogelijkheden om de CPU ook te partitioneren, zodat een stukje CPU aan een partitie kan worden toegekend. Voorbeelden van deze techniek zijn vooral in midrange systemen te vinden, zoals HP-UX vPar's.

Emulatie: Hierbij wordt de complete machine nagebootst in software. Het is hiermee mogelijk om op bijvoorbeeld een X86 machine een operating system te draaien dat normaal gesproken bij voorbeeld alleen op een mainframe draait (alle mainframe hardware wordt dan geëmuleerd). Voorbeelden hiervan zijn Bochs en Hercules.

Deze methode geeft de grootste implementatievrijheid (want een totale ontkoppeling van het geëmuleerde systeem en de onderliggende hardware), maar geeft ook het meeste snelheidsverlies.

Dynamic translation: hierbij wordt ook een hele machine geëmuleerd, maar er wordt optimalisatie toegepast. Een voorbeeld hiervan is QEMU. Elke instructie die de geëmuleerde CPU kent wordt geïmplementeerd als een stukje C code, dat wordt gecompileerd op het onderliggende systeem.

Als een stukje code (met meerdere instructies) meerdere malen moet worden uitgevoerd, zal door de emulator niet opnieuw worden geëmuleerd, maar zal een eerder geëmuleerd en vertaald stukje code worden uitgevoerd. Hierdoor wordt snelheidswinst behaald.

Paravirtualalisatie: Virtualisatie technieken kunnen gast-operating systems draaien die voor dezelfde hardware zijn ontwikkeld. Het gaat hier meestal om Intel gebaseerde oplossingen. Het is voor paravirtualisatie echter wel nodig dat het gast-operating system hierop is aangepast. Dit komt omdat de virtuele machine lijkt op -maar niet gelijk is aan- een normale machine. Zo is bijvoorbeeld niet alle hardware 1-op-1 gevirtualiseerd. Pas na een hercompilatie is het mogelijk om een gast-operating system te draaien. Het is daarom niet mogelijk om bijvoorbeeld Windows te draaien in een Paravirtuele machine. Paravirtualisatie heeft als voordeel dat er weinig virtualisatie overhead is, hetgeen de snelheid ten goede komt. Enkele voorbeelden van deze techniek zijn Xen in para mode en User Mode Linux.

Hypervisor: Deze virtualisatie techniek maakt het mogelijk om operating systems ongewijzigd in een virtuele machine te draaien, omdat de hele machine gevirtualiseerd wordt (inclusief alle hardware). Dit maakt de virtualisatie echter iets langzamer dan paravirtualisatie. Voorbeelden hiervan zijn VMware, Xen in Full mode en Microsoft Virtual Server.


This entry was posted on Vrijdag 29 September 2006

Earlier articles

Quantum computing

My Book

Security bij cloudproviders wordt niet beter door overheidsregulering

Passend Europees cloudinitiatief nog ver weg

Data Nederlandse studenten in cloud niet grootschalig toegankelijk voor bedrijven VS

VS kan nog steeds Europese data Microsoft opeisen ondanks nieuwe regels

The cloud is as insecure as its configuration

Infrastructure as code

DevOps for infrastructure

Infrastructure as a Service (IaaS)

(Hyper) Converged Infrastructure

Object storage

Software Defined Networking (SDN) and Network Function Virtualization (NFV)

Software Defined Storage (SDS)

What's the point of using Docker containers?

Identity and Access Management

Using user profiles to determine infrastructure load

Public wireless networks

Supercomputer architecture

Desktop virtualization

Stakeholder management

x86 platform architecture

Midrange systems architecture

Mainframe Architecture

Software Defined Data Center - SDDC

The Virtualization Model

What are concurrent users?

Performance and availability monitoring in levels

UX/UI has no business rules

Technical debt: a time related issue

Solution shaping workshops

Architecture life cycle

Project managers and architects

Using ArchiMate for describing infrastructures

Kruchten’s 4+1 views for solution architecture

The SEI stack of solution architecture frameworks

TOGAF and infrastructure architecture

The Zachman framework

An introduction to architecture frameworks

How to handle a Distributed Denial of Service (DDoS) attack

Architecture Principles

Views and viewpoints explained

Stakeholders and their concerns

Skills of a solution architect architect

Solution architects versus enterprise architects

Definition of IT Architecture

What is Big Data?

How to make your IT "Greener"

What is Cloud computing and IaaS?

Purchasing of IT infrastructure technologies and services

IDS/IPS systems

IP Protocol (IPv4) classes and subnets

Introduction to Bring Your Own Device (BYOD)

IT Infrastructure Architecture model

Fire prevention in the datacenter

Where to build your datacenter

Availability - Fall-back, hot site, warm site

Reliabilty of infrastructure components

Human factors in availability of systems

Business Continuity Management (BCM) and Disaster Recovery Plan (DRP)

Performance - Design for use

Performance concepts - Load balancing

Performance concepts - Scaling

Performance concept - Caching

Perceived performance

Ethical hacking

Computer crime

Introduction to Cryptography

Introduction to Risk management

The history of UNIX and Linux

The history of Microsoft Windows

Engelse woorden in het Nederlands

Infosecurity beurs 2010

The history of Storage

The history of Networking

The first computers

Cloud: waar staat mijn data?

Tips voor het behalen van uw ITAC / Open CA certificaat

Ervaringen met het bestuderen van TOGAF

De beveiliging van uw data in de cloud

Proof of concept

Een consistente back-up? Nergens voor nodig.

Measuring Enterprise Architecture Maturity

The Long Tail

Open group ITAC /Open CA Certification

Human factors in security

Google outage

SAS 70

De Mythe van de Man-Maand

TOGAF 9 - wat is veranderd?

Landelijk Architectuur Congres LAC 2008

InfoSecurity beurs 2008

Spam is big business

De zeven eigenschappen van effectief leiderschap

Een ontmoeting met John Zachman

Persoonlijk Informatie Eigendom

Archivering data - more than backup

Sjaak Laan


Recommended links

Genootschap voor Informatie Architecten
Ruth Malan
Gaudi site
XR Magazine
Esther Barthel's site on virtualization
Eltjo Poort's site on architecture


Feeds

 
XML: RSS Feed 
XML: Atom Feed 


Disclaimer

The postings on this site are my opinions and do not necessarily represent CGI’s strategies, views or opinions.

 

Copyright Sjaak Laan