Virtualisierung in Grids zu verwenden, wird seit einiger Zeit intensiver verfolgt \cite{figueiredo:Acaseforgridcomputingonvirtualmachines}, \cite{garching}. Es stellte sich heraus, dass der Overhead durch die Virtualisierung für eine Reihe von Job-Klassen ausreichend gering war. Es überwogen die Vorteile durch Virtualisierung: \begin{itemize} \item Einfachere und flexiblere Administration \item Flexibleres Scheduling \item Bessere Auslastung der CPU \item Homogene virtuelle Hardware \item Schnellere Entwicklung neuer Umgebungen \item (Parallele) Unterstützung neuer/alter Hard- und Software \end{itemize} Der eingangs erläuterte Netz-Boot kann nicht alle dieser Felder abdecken. Die Punkte "`bessere CPU-Auslastung"' und "`homogene Hardware"' lassen sich mit der bisherigen Methode nicht erreichen. Homogene Hardware kann insofern von Bedeutung sein, als dass virtuelle Grid-Umgebungen, zum Beispiel durch Verwendung von System-Images, problemlos in entfernte Grid-Umgebungen transferiert werden können. Dabei sollte von der realen Hardware abstrahiert werden. Lediglich die Konfiguration der virtuellen Maschine und die Virtualisierungslösung müssen angegeben sein. Um dies flexibel und effizient zu gestalten, wurde bisher einige Management-Systeme vorgeschlagen \cite{bertogna:DynamiconDemandVirtualClustersinGrid, foster:VirtualClustersforGridCommunities, huang:Acaseforhighperformancecomputingwithvirtualmachines, murphy:Distributedmanagementofvirtualclusterinfrastructures, murphy:DynamicProvisioningofVirtualOrganizationClusters, murphy:VirtualOrganizationClusters, rodrguez:DynamicProvisioningofVirtualClustersforGridComputing, ruth:Virtualdistributedenvironmentsinasharedinfrastructure, ruth:VioClusterVirtualizationforDynamicComputationalDomains}. Zum einen befassen sich diese Untersuchungen mit der Speicherung und Verteilung von virtuellen Cluster Umgebungen, zum anderen mit der möglichst flexiblen Konfiguration und Anwendung der virtuellen Maschinen. Hierzu wurde der Begriff "`Sky Computing"' \cite{keahey:SkyComputing} geprägt. Eine Ebene über dem Cloud Computing liegend soll es ermöglichen, mehrere Clouds gleichzeitig und flexibel zu nutzen. Das soll sich lediglich mit einem Festplatten-Image und der zugehörigen Konfiguration der virtuellen Maschinen realisieren lassen. Um diesen Ansatz möglichst flexibel zu halten, sollten so viele Virtualisierungsprogramme wie möglich die Konfiguration interpretieren können. Diese Rolle könnte beispielsweise das Open Virtualization Format (OVF) übernehmen. Es müsste jedoch von allen Anbietern unterstützt werden. Auch muss gewährleistet werden, dass das übermittelte Festplatten-Image gestartet werden kann. Dies zieht jedoch die Notwendigkeit mehrerer installierter Virtualisierungslösungen nach sich. Diese parallel vorzuhalten, ist oftmals nicht möglich und auch nicht erwünscht. An dieser Stelle bietet sich der Netzwerk-Boot als Lösung an. Es muss lediglich das System mit der notwendigen Virtualisierungssoftware ausgewählt sein. Problematisch könnte höchstens der durch einen Reboot verursachte Overhead sein. Ein Beispiel für eine bessere Auslastung der CPU bietet \cite{cherkasova:Optimizinggridsitemanagerperformancewithvirtualmachines}. Diese zeigt, dass eine Job-Klassifikation zu sehr effizienten Lösungen mit virtuellen Maschinen führen kann. Jobs wurden über ein Jahr hinweg nach speziellen Kategorien untersucht. Dabei offenbarten sich einige interessante Erkenntnisse: Beispielsweise benötigten 98\% aller Jobs lediglich 512\,MByte RAM und 91\% der Jobs nutzten lediglich 20\% der gesamten CPU-Zeit. Mit diesen und weiteren Erfahrungen wurde ein Modell entwickelt, das mit 50\% der ursprünglichen Hardware 99\% der Originalleistung erreichte. Dies gelang indem vier virtuelle Maschinen pro realer Maschine liefen. Für andere Job-Klassen könnte es vorteilhafter sein, diese direkt auf der Hardware auszuführen. So wird für das BFG in Freiburg und an der Universidade Federal do Paraná eine Umgebung untersucht, die die Ansätze Netz-Boot und Virtualisierung je nach Ausgang der Klassifikation bevorzugt oder geeignet kombiniert. Im Ergebnis soll das Management von Grids vereinfacht und eine bestmögliche CPU-Auslastung erreicht werden. Eine Variante ist die Verwendung mehrerer virtueller Maschinen pro realer Maschine, nach dem Modell von \cite{cherkasova:Optimizinggridsitemanagerperformancewithvirtualmachines}, um Jobs welche nur einen Bruchteil der Ressourcen verwenden, parallel laufen zu lassen. Eine andere Idee besteht darin für verschiedene Jobs auch verschiedenen Systeme anzubieten. So könnten für serielle, parallele, kurze oder lange Jobs jeweils einzelne Systeme angelegt werden \cite{fallenbeck:XenandtheArtofClusterScheduling}. In diesem Beispiel wurden jedoch nur VMs für den seriellen und den parallelen Fall unterschieden. Diese Lösung kann aber auch über den Netzwerk-Boot realisiert werden und wird derzeit für verschiedene Grid-Clients überprüft. Ein weiteres Projekt widmet sich normalen Desktop-Rechnern. Mit diesen Maschinen, beispielsweise aus den Rechner-Pools für Studenten -- theoretisch sind aber alle Arbeitsrechner denkbar -- wird versucht mit Hilfe von Virtualisierung die ungenutzten Rechenzyklen für Berechnungen im Grid zu verwenden. Hier stehen andere Aspekte im Vordergrund als in einem konventionellen Grid. Die Grid-Applikation läuft als Gast auf dem System und sollte nur die ungenutzten Ressourcen verwenden, damit die Desktop-Nutzer trotzdem mit voller Geschwindigkeit arbeiten können. Für erste Tests können Performance-Programme hier nur Hinweise liefern \cite{garching}. Somit ist hier ein Test mit realen Desktop-Nutzern notwendig. Die Autoren hoffen, dass mit dieser Lösung Hardware und Energie gespart werden kann, oder wie im Fall der Universität Freiburg zusätzliche Rechenzyklen, beispielsweise für Daten des neuen LHC, zur Verfügung stehen. Mit ersten Aussagekräftigen Ergebnissen wird im zweiten Quartal gerechnet.