Montag Aug 05, 2013

Linux Container (LXC) — Teil 2: Arbeiten mit Containern

Teil 1 dieser Artikelserie vermittelte einen Überblick über die Linux-Container-Technologie. In diesem zweiten Teil soll der Umgang mit Containern anhand einiger Beispiele erläutert werden. Diese lassen sich auf einem aktuellen Oracle Linux 6 System nachvollziehen. Für die ersten Schritte empfiehlt sich die Installation von Oracle Linux in einer virtuellen Umgebung wie z.B. Oracle VM VirtualBox. Für diese Plattform bietet Oracle ein bereits vorinstalliertes Oracle Linux 6 Image zum Download vom Oracle Technology Network (OTN) an.

Die Administration von Linux-Containern erfolgt auf der Kommandozeile; bisher existiert noch keine Integration oder Unterstützung von Linux-Containern in Applikationen wie dem Oracle VM Manager oder dem Oracle Enterprise Manager. Viele von Oracle entwickelte Verbesserungen sind jedoch in das in Oracle Linux 6.4 enthaltene lxc-Paket eingeflossen; diese wurden auch an das LXC-Projekt übergeben und sind damit Bestandteil aktueller LXC-Versionen. Die Unterstützung von Linux-Containern ist weiterhin in das libvirt-Projekt integriert, welches eine grafische Oberfläche für die komfortable Verwaltung von virtuellen Maschinen oder Linux-Containern mit Hilfe des virt-manager (und anderen Werkzeugen) ermöglicht. Libvirt ist ebenfalls Bestandteil von Oracle Linux.

Das Anlegen eines Oracle Linux-Containers ist aber auch mit Hilfe der LXC-Kommandozeilenwerkzeuge in wenigen Schritten erledigt. Zuerst sollte ein dediziertes Verzeichnis für die Container-Dateisysteme angelegt werden, als Standard wird /container als Verzeichnis-Name vorgegeben. Wird dieses Verzeichnis auf einem Btrfs-Dateisystem angelegt, ergeben sich einige weitere interessante Möglichkeiten, wie z.B. das "Einfrieren" eines Container-Dateisystems zu einem bestimmten Zeitpunkt oder das schnelle Erzeugen (Clonen) von weiteren Containern, basierend auf einer "Muster-Vorlage" (Template). Das Clonen mit Hilfe von Btrfs-Snapshots erfolgt extrem schnell und platzsparend; nur die Veränderungen zum "Template" werden gespeichert. Die Erstellung und Verwaltung von Btrfs-Dateisystemen wird im Kapitel " The Btrfs File System" des "Oracle Linux Administrator's Solutions Guide for Release 6" im Detail erläutert.

Um beispielsweise ein Btrfs-Dateisystem auf einem zweiten Festplattenlaufwerk anzulegen und es unter /container als Verzeichnis einzuhängen, können folgende Kommandos verwendet werden:

# mkfs.btrfs /dev/sdb

WARNING! - Btrfs v0.20-rc1 IS EXPERIMENTAL
WARNING! - see http://btrfs.wiki.kernel.org before using

fs created label (null) on /dev/sdb
	nodesize 4096 leafsize 4096 sectorsize 4096 size 4.00GB
Btrfs v0.20-rc1

# mdkir -v /container
mkdir: created directory `/container'
# mount -v /dev/sdb /container
mount: you didn't specify a filesystem type for /dev/sdb
       I will try type btrfs
/dev/sdb on /container type btrfs (rw)

Anschließend können Sie einen Container mit dem Kommando lxc-create erzeugen. Dessen Option "-t" bestimmt den generellen Distributions-Typ der erstellt werden soll (das sogenannte "Template"), z.B. "oracle", "ubuntu" oder "fedora". Je nach ausgewählten Template lassen sich nach den zwei Trennzeichen ("--") weitere Template-spezifische Optionen angeben. Für das Oracle-Template läßt sich z.B. mit der "--release"-Option die Distributions-Version auswählen, z.B. "5.8", "6.3" oder "6.latest". Weitere Informationen über die hier verfügbaren Konfigurationsmöglichkeiten finden Sie im Kapitel "About the lxc-oracle Template Script" des Oracle Linux 6 Administrator's Solutions Guide.

Um also beispielsweise einen Container mit dem Namen "ol6cont1" mit der aktuellsten Version von Oracle Linux 6 und Standardvorgaben zu erzeugen verwenden Sie folgendes Kommando:

# lxc-create -n ol6cont1 -t oracle -- --release=6.latest
/usr/share/lxc/templates/lxc-oracle is /usr/share/lxc/templates/lxc-oracle
Note: Usually the template option is called with a configuration
file option too, mostly to configure the network.
For more information look at lxc.conf (5)

Host is OracleServer 6.4
Create configuration file /container/ol6cont1/config
Downloading release 6.latest for x86_64
Loaded plugins: refresh-packagekit, security
ol6_latest                                               | 1.4 kB     00:00     
ol6_latest/primary                                       |  31 MB     01:23     
ol6_latest                                                          21879/21879
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package chkconfig.x86_64 0:1.3.49.3-2.el6 will be installed
--> Processing Dependency: libc.so.6(GLIBC_2.4)(64bit) for package: chkconfig-1.3.49.3-2.el6.x86_64
--> Processing Dependency: libc.so.6(GLIBC_2.3.4)(64bit) for package: chkconfig-1.3.49.3-2.el6.x86_64
[...]
--> Processing Dependency: rpm-python for package: yum-3.2.29-40.0.1.el6.noarch
--> Running transaction check
---> Package audit-libs.x86_64 0:2.2-2.el6 will be installed
---> Package bash.x86_64 0:4.1.2-15.el6_4 will be installed
[...]
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
 Package               Arch   Version                          Repository  Size
================================================================================
Installing:
 chkconfig             x86_64 1.3.49.3-2.el6                   ol6_latest 158 k
 dhclient              x86_64 12:4.1.1-34.P1.0.1.el6           ol6_latest 316 k
[...]
 yum                   noarch 3.2.29-40.0.1.el6                ol6_latest 995 k
Installing for dependencies:
 MAKEDEV               x86_64 3.24-6.el6                       ol6_latest  88 k
 audit-libs            x86_64 2.2-2.el6                        ol6_latest  60 k
 basesystem            noarch 10.0-4.0.1.el6                   ol6_latest 4.3 k
[...]
 yum-metadata-parser   x86_64 1.1.2-16.el6                     ol6_latest  26 k
 zlib                  x86_64 1.2.3-29.el6                     ol6_latest  72 k

Transaction Summary
================================================================================
Install     135 Package(s)

Total download size: 79 M
Installed size: 294 M
Downloading Packages:
(1/135): MAKEDEV-3.24-6.el6.x86_64.rpm                   |  88 kB     00:00     
(2/135): audit-libs-2.2-2.el6.x86_64.rpm                 |  60 kB     00:00     
[...]
(135/135): zlib-1.2.3-29.el6.x86_64.rpm                  |  72 kB     00:00     
--------------------------------------------------------------------------------
Total                                           271 kB/s |  79 MB     04:59     
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing : libgcc-4.4.7-3.el6.x86_64                                  1/135 
  Installing : setup-2.8.14-20.el6.noarch                                 2/135 
[...]
  Installing : rootfiles-8.1-6.1.el6.noarch                             135/135 
  Verifying  : gamin-0.1.10-9.el6.x86_64                                  1/135 
  Verifying  : procps-3.2.8-25.el6.x86_64                                 2/135 
[...]
  Verifying  : 1:findutils-4.4.2-6.el6.x86_64                           135/135 

Installed:
  chkconfig.x86_64 0:1.3.49.3-2.el6                                             
  dhclient.x86_64 12:4.1.1-34.P1.0.1.el6                                        
[...]
Dependency Installed:
  MAKEDEV.x86_64 0:3.24-6.el6                                                   
  audit-libs.x86_64 0:2.2-2.el6                                                 
[...]
  zlib.x86_64 0:1.2.3-29.el6                                                    

Complete!
Rebuilding rpm database
Configuring container for Oracle Linux 6.4
Added container user:oracle password:oracle
Added container user:root password:root
Container : /container/ol6cont1/rootfs
Config    : /container/ol6cont1/config
Network   : eth0 () on virbr0
'oracle' template installed
'ol6cont1' created

Das Script lädt hierbei die erforderlichen RPM-Pakete von Oracles "public-yum" Server herunter, um eine Minimalinstallation (ca. 400 MB) der aktuellsten Oracle Linux 6 Version zu erstellen. Die Verzeichnis-Struktur des Containers befindet sich unter /container/ol6cont1/rootfs und kann vom Host-System aus wie eine reguläre Verzeichnisstruktur eingesehen werden. Das Script legt weiterhin zwei Benutzerkonten "root" und "oracle" an und konfiguriert eine virtuelle Netzwerk-Schnittstelle, die ihre IP-Adresse per DHCP vom zu libvirt gehörenden DHCP-Server bezieht. Die von lxc-create generierte Container-Konfigurationsdatei befindet sich in /container/ol6cont1/config und kann mit einem herkömmlichen Text-Editor an die eigenen Bedürfnisse angepasst werden. Vorab empfiehlt es sich, vom frisch installierten Container einen Snapshot zu erzeugen, von dem sich bei Bedarf schnell weitere Container erzeugen lassen:

# lxc-clone -o ol6cont1 -n ol6cont2
Tweaking configuration
Copying rootfs...
Create a snapshot of '/container/ol6cont1/rootfs' in '/container/ol6cont2/rootfs'
Updating rootfs...
'ol6cont2' created
# lxc-ls -1
ol6cont1
ol6cont2

Gestartet wird der Container anschließend mit dem folgenden Kommando:

# lxc-start -n ol6cont1 -d -o /container/ol6cont1/ol6cont1.log
# lxc-info -n ol6cont1
state:   RUNNING
pid:       311
# lxc-info -n ol6cont2
state:   STOPPED
pid:        -1

Der Container wird nun im Hintergrund gestartet; eventuelle log-Meldungen werden in die Datei ol6cont.log umgeleitet. Wie der Ausgabe von lxc-info entommen werden kann, wurde nur der Container ol6cont1 gestartet, während ol6cont2 sich weiterhin im gestoppen Zustand befindet, bis er ebenfalls mit lxc-start hochgefahren wird.

Anschließend können Sie sich mit dem folgenden Kommando an der Konsole des Linux-Containers anmelden. Die Systemkonfiguration kann nun mit den üblichen Bordmitteln (z.B. yum/rpm zur Software-Installation) innerhalb des laufenden Containers angepasst werden.

#  lxc-console -n ol6cont1

Oracle Linux Server release 6.4
Kernel 2.6.39-400.109.4.el6uek.x86_64 on an x86_64

ol6cont1 login: root
Password: 
[root@ol6cont1 ~]# ps x
  PID TTY      STAT   TIME COMMAND
    1 ?        Ss     0:00 /sbin/init
  184 ?        Ss     0:00 /sbin/dhclient -H ol6cont1 -1 -q -lf /var/lib/dhclien
  207 ?        Sl     0:00 /sbin/rsyslogd -i /var/run/syslogd.pid -c 5
  249 ?        Ss     0:00 /usr/sbin/sshd
  256 lxc/console Ss+   0:00 /sbin/mingetty /dev/console
  260 ?        Ss     0:00 login -- root     
  262 lxc/tty2 Ss+    0:00 /sbin/mingetty /dev/tty2
  264 lxc/tty3 Ss+    0:00 /sbin/mingetty /dev/tty3
  266 lxc/tty4 Ss+    0:00 /sbin/mingetty /dev/tty4
  267 lxc/tty1 Ss     0:00 -bash
  278 lxc/tty1 R+     0:00 ps x
[root@ol6cont1 ~]# logout

Oracle Linux Server release 6.4
Kernel 2.6.39-400.109.4.el6uek.x86_64 on an x86_64

ol6cont1 login: CTRL-A Q
Die Tastensequenz CTRL-A, Q beendet die Konsolen-Sitzung. Alternativ ist es auch möglich, sich vom Host aus mittels SSH am Container-System anzumelden. Alle Container haben eine eigene IP-Adresse und sind standardmäßig über eine virtuelle Ethernet-Brücke virbr0 miteinander verbunden, die auch vom Host-System aus erreichbar ist. Auf diesem Weg lassen sich z.B. recht schnell einfache Client-Server-Architekturen innerhalb eines Host-Systems aufsetzen.

Ein laufender Container läßt sich jederzeit mit dem Kommando lxc-freeze im aktuellen Zustand "einfrieren". Die laufenden Prozesse werden hierbei angehalten und verbrauchen keine CPU-Ressourcen mehr, bis der Container mittels lxc-unfreeze wieder freigegeben wird. Da Linux-Container auf den Linux-Control Groups (CGroups) basieren, ist es weiterhin auch möglich, den Ressourcenverbrauch eines Containers zu limitieren.

Heruntergefahren werden kann ein Container auf verschiedene Weise: Entweder vom Host-System aus mittels lxc-stop, oder innerhalb des Containers mit den üblichen Kommandos wie shutdown -h oder poweroff. Nicht mehr benötigte Container lassen sich mit Hilfe des Kommandos lxc-destroy entfernen.

Dem Thema "Linux Container" wird im Oracle Linux Administrator's Solutions Guide ebenfalls ein eigenes Kapitel gewidmet. Dieses behandelt im Detail unter anderem das Erstellen, Konfigurieren und Starten von Linux-Containern, sowie dem Monitoring und Herunterfahren. Auch die Erstellung eines Container-Repositories auf einem Btrfs-Dateisystem und wie sich bestehende Container sehr schnell und platzsparend duplizieren (klonen) lassen wird dort ausführlich beschrieben.

Weitere Links zum Thema Linux Container:

Mittwoch Mai 29, 2013

Linux-Container (LXC) — Teil 1: Überblick

[Dies ist ein Gastartikel von Lenz Grimmer. Er arbeitet bei Oracle im Product Management Team für Oracle Linux.]

Linux-Container (LXC) erlauben die Isolation von einzelnen Diensten und Applikationen oder eines kompletten Linux-Betriebssystems. Jeder Container verfügt dafür über seine eigenen Netzwerk-Schnittstellen, IP-Adressen und Prozess-Tabelle — die laufenden Prozesse anderer Container oder des Host-Systems sind innerhalb des Containers nicht sichtbar. Linux-Container ermöglichen darüber hinaus eine sehr fein granulierte Kontrolle des Ressourcen-Verbrauchs (z.B. RAM, CPU, Disk-I/O).

Generell verfolgen Linux-Container einen komplett anderen Ansatz als klassische Virtualisierungstechnologien wie KVM oder Xen (auf dem z.B. Oracle VM Server für x86 basiert). Eine innerhalb des Containers laufende Anwendung wird direkt auf dem Betriebssystem-Kern des Host-Systems ausgeführt, was eine sehr direkte und faire Verteilung von CPU- und I/O-Ressourcen ermöglicht. Linux-Container bieten daher bestmögliche Performance und sehr ausgefeilte Möglichkeiten, die zur Verfügung stehenden Ressourcen zu verwalten und aufzuteilen.

Im Gegensatz zur "klassischen" Virtualisierung und ähnlich wie bei den Containern (Zonen) in Oracle Solaris oder auch den "Jails" auf FreeBSD, läuft also auf dem Host und in den Containern die gleiche Betriebssystem-Version; es ist nicht möglich, andere Linux-Kernelversionen oder gar andere Betriebssysteme wie z.B. Windows oder Oracle Solaris/x86 innerhalb eines Linux-Containers laufen zu lassen. Vom Host abweichende Linux-Distributionen (z.B. ein Fedora Linux als Container auf einem Oracle Linux Host) sind möglich, so lange sie die auf dem Host laufende Linux-Kernelversion unterstützen. Der Unbreakable Enterprise Kernel (UEK) Release 2 (2.6.39) unterstützt beispielsweise sowohl Oracle Linux 5 und 6. Es ist damit z.B. möglich, Oracle Linux 5 Instanzen als Container auf einem Oracle Linux 6 Host-System zu betreiben. Da Linux-Container vollständig auf Betriebssystem-Ebene realisiert werden, lassen sie sich übrigens ohne Weiteres auch mit anderen Virtualisierungstechnologien kombinieren. So ist es z.B. durchaus möglich, Linux-Container innerhalb einer virtualisierten Linux-Instanz (z.B. auf Oracle VM Server oder Oracle VM VirtualBox) zu erstellen.

Die Anwendungsbereiche für Linux-Container sind vielfältig:

  • Konsolidierung mehrerer einzelner Linux Systeme auf einem Server: Linux-Instanzen, die nicht performance-kritisch sind und unter Umständen nur sporadisch zum Einsatz kommen (z.B. Fax- oder Printserver, Intranet-Services), benötigen oft nicht notwendigerweise einen dedizierten Server für ihren Betrieb. Diese lassen sich energiesparend in separaten Containern auf einem einzelnen Server zusammenfassen.
  • Paralleler Betrieb mehrerer Instanzen einer Applikation, z.B. für unterschiedliche Anwender/Kunden. Jeder Anwender erhält "seine" eigene Applikationsinstanz, bei Bedarf mit einer definierten, zugesicherten Systemleistung. Dies verhindert, daß eine "Amok laufende" Applikation das gesamte Server-System in die Knie zwingt und stellt sicher, dass jeder Anwender nur Zugriff auf seine eigenen Daten hat.
  • Schnell zu erstellende "Sandbox"-Umgebungen für Entwicklungs- oder Testzwecke: einmal erstellte und konfigurierte Linux-Container können als Vorlage (Template) archiviert werden und bei Bedarf schnell dupliziert (geklont) werden. Nach Beendigung der Aktivität kann dieser Klon einfach gelöscht werden. Dies ermöglicht beispielsweise jederzeit reproduzierbare Software-Builds und Test-Ergebnisse, da die Umgebung stets wieder in ihren Urzustand zurück versetzt werden kann. Linux-Container booten üblicherweise auch erheblich schneller als "klassische" virtuelle Maschinen, was einen deutlichen Zeitgewinn bei der Entwicklung und dem Test von Applikationen bedeuten kann.
  • Gesicherter Betrieb einer bestimmten Anwendung: das Host-System und andere Container bleiben geschützt, falls die Anwendung aufgrund einer Sicherheitslücke kompromittiert werden sollte und der Angreifer damit Zugriff auf die Betriebssystem-Instanz erlangen würde. Der angerichtete Schaden kann somit minimiert und direkt vom Host-System aus analysiert und behoben werden.

Achtung: bitte berücksichtigen Sie, dass Linux-Container auf Oracle Linux 6 mit dem Unbreakable Enterprise Kernel Release 2 (2.6.39) derzeit noch den Status "Technology Preview" tragen. Der Einsatz wird daher im Moment nur für Test- und Evaluierungszwecke empfohlen.

Das Open-Source-Projekt "Linux Containers" (LXC) treibt die Entwicklung der auf der "Control Groups"- und "Name Spaces"-Funktionalität des Linux-Betriebssystemkerns basierenden Container-Technologie stetig weiter voran. Control Groups (Cgroups) ermöglichen es, die Ressourcen-Zuteilung für einzelne Prozesse oder Prozessgruppen unter Linux zu regeln und zu überwachen. So lassen sich z.B. die Menge des zur Verfügung stehenden Hauptspeichers, der verfügbare Anteil an CPU-Zeit oder der maximal mögliche Durchsatz zum Festplattenspeicher für eine Applikation festlegen.

Mit Hilfe der "Name Spaces" lassen sich diese Prozessgruppen noch zusätzlich gegeneinander abschirmen, z.B. was die Sichtbarkeit anderer auf dem System laufender Prozesse angeht, oder den exklusiven Zugriff auf eine Netzwerk-Schnittstelle. Auch eine Einschränkung der sichtbaren Dateisystem-Hierarchie lässt sich mit Hilfe von Name Spaces realisieren (ähnlich wie es bei einer klassischen "chroot"-Umgebung der Fall ist).

CGroups und Name Spaces bilden das Fundament, auf dem Linux-Container basieren; sie lassen sich allerdings auch unabhängig davon nutzen.

Wie genau das Erstellen von Linux-Containern funktioniert erläutert der zweite Teil dieses Artikels, inkl. eines Beispiels.

Weitere Links zum Thema Linux Container:


Mittwoch Mrz 20, 2013

Virtualisierung ist überall...

"Virtualisierung von und mit Oracle?"

Auf diese Frage erhält man - je nachdem wen man fragt - eine Reihe von unterschiedlichen Antworten, vor allem:

"Oracle VM"
"VirtualBox"
"Zonen" bzw. "Container"

Alles richtig - aber ist "Oracle VM" inzwischen nicht ein Oberbegriff? Und wo liegen eigentlich die Unterschiede, und welche Lösung ist für welchen Einsatzzweck sinnvoll?

Im folgenden möchte ich daher - zumindest für den Bereich Server und Betriebssysteme - kurz die verfügbaren Möglichkeiten von Oracle aufzählen und einige interessante Fakten dazu nennen.

Oracle VM (x86) ist bekanntermassen eine Lösung für Servervirtualisierung: Ein auf dem "bare metal" laufender Hypervisor ermöglicht das Betreiben mehrerer komplett eigenständiger Virtueller Maschinen auf der gleichen physischen Hardware. Weniger bekannt ist vielen jedoch, dass es neben dem "Standalone-Betrieb" zur Virtualisierung von z.B. Datenbankservern auch noch weitere Szenarien gibt in denen Oracle VM zum Einsatz kommt:

  • So ist Oracle VM (x86) z.B. die Basis für Virtualisierung in einigen "Engineered Systems":
    Sowohl auf den Oracle Exalogic als auch auf den Oracle Exalytics Maschinen kann optional Oracle VM eingesetzt werden, um eine größere Flexibilität bei der Aufteilung von Ressourcen zu gewährleisten.
    Seit relativ kurzer Zeit ist es außerdem möglich, Oracle VM auch auf der Oracle Database Appliance (ODA) einzusetzen. Dadurch wird es möglich, die ODA nicht nur als reine "Datenbankmaschine" zu betreiben, sondern auf der gleichen Hardware auch noch (z.B.) VMs mit Application Servern laufen zu lassen, um so alle Teile einer Gesamtanwendung in einer Appliance zu betreiben. Dies ist besonders für Oracle-Partner mit eigenen Lösungen sehr interessant.
  • OVM (x86) ist außerdem die Basis für die "Infrastructure as a Service" (IaaS)-Features im Enterprise Manager Cloud Control.

Neben Oracle VM (x86) gibt es auch noch das "Schwesterprodukt" Oracle VM (SPARC), welches vielen Nutzern von Sun Hardware noch als "Logical Domains" (LDoms) in Erinnerung sein dürfte. (Wer sich näher mit OVM (SPARC) befassen möchte, sollte übrigens mal auf dem Blog meines Kollegen Stefan Hinker vorbeischauen. Dort finden sich häufig Tipps und Artikel zu diesem Thema - größtenteils auch in deutscher Sprache.)

Oracle VM VirtualBox hingegen ist nicht nur "Virtualisierung auf dem Desktop" - also die Möglichkeit VMs "auf" einem bereits installierten Windows/Linux/Mac-System laufen zu lassen - sondern wird auch bei "Virtualisierung VON Desktops" eingesetzt. Das Stichwort dazu lautet VDI (Virtual Desktop Infrastructure.) Wie dies im einzelnen funktioniert und welche Produkte von Oracle hierfür zur Verfügung stehen, wird in Kürze Bestandteil eines Gastartikels auf diesem Blog sein.
[Nachtrag: Der Artikel zu VDI ist inzwischen erschienen.]

Bei "Containern" (manchmal auch Zonen genannt) reden wir hingegen nicht über Virtualisierung von Servern, sondern über Virtualisierung innerhalb eines Betriebssystems: Verschiedene Programme "sehen" jeweils ein "eigenes" OS, obwohl sie in Wirklichkeit alle innerhalb des gleichen Betriebssystems laufen.
Diese Fähigkeit ist schon lange eine beliebte Möglichkeit, in Oracle Solaris verschiedene voneinander unabhängige Umgebungen mit sehr geringem Overhead auf einer einzigen physischen Maschine zu betreiben, und deren Ressourcen-Nutzung zentral zu steuern.
Weniger bekannt ist, dass es inzwischen mit den "Linux Containern" (LXC) auch für Linux eine Möglichkeit gibt, vergleichbares zu erreichen. Auch zu LXC wird es demnächst einen Artikel auf diesem Blog geben.

Dienstag Jan 22, 2013

Oracle VM 3.2 kommt mit vielen Neuerungen

Seit einigen Tagen bereits auf eDelivery verfügbar, ist die neue Version 3.2 von Oracle VM nun auch offiziell angekündigt worden.

Neben diversen Bugfixes sowie neueren Versionen von Hypervisor und Kernel sind auch diesmal wieder interessante neue Features dabei, wie z.B.:

  • MySQL als Repository DB
    Nachdem die in der letzten Version mitgelieferte Oracle XE Datenbank ja nur noch zu "Demo-Zwecken" als Repository-DB des OVM Managers benutzt werden durfte, gibt es nun neben den "großen" Oracle RDBMS Editionen (SE/SE One sowie EE) eine weitere voll supportete Alternative: So lässt sich die Repository DB nun auch in eine MySQL Datenbank legen. Diese Variante ist wohlbemerkt optional - Wer MySQL nicht einsetzen kann oder will, muss dies natürlich auch nicht tun.
    Der Installer installiert MySQL Enterprise Edition per Default direkt mit, außerdem wird dafür auch ein automatisches tägliches Backup der Repository DB eingerichtet.

  • Support für OVM/Sparc im Manager
    Der schon länger angestrebte Weg des einheitlichen Managements von OVM/x86 und OVM/SPARC ist nun ein gutes Stück weiter beschritten worden: In OVM 3.2 kann der OVM Manager jetzt auch OVM/SPARC Installationen verwalten. Das hierfür auf OVM/SPARC-Seite benötigte Paket "Oracle VM Agent for SPARC" ist im gleichen Mediapack wie OVM Server und Manager für x86 auf eDelivery verfügbar. Derzeit gibt es den Manager selbst nach wie vor nur für Linux.

  • Finale Version der OVMCLI
    Bereits in späteren Builds von OVM 3.1.1 wurde eine Vorab-Version des OVM Command Line Interfaces (OVMCLI) mitgeliefert. Nun ist diese auch in der finalen Version verfügbar und somit voll supportet.

  • Web Services API
    Neu hinzugekommen ist nun auch eine Web Services Schnittstelle um den OVM Manager programmatisch zu steuern - und zwar sowohl für SOAP- als auch "RESTful" Web Services.

  • "Utility Server"-Rolle
    Wer bereits mit OVM 2.x gearbeitet hat erlebt bei diesem Punkt ein Déja-Vu: So ist es nun wieder möglich, einzelnen OVM Servern explizit die Rollen "VM Server" sowie "Utility Server" zuzuweisen. Letzteres sorgt dafür, dass Server mit dieser Rolle bevorzugt für I/O-intensive Operationen (wie z.B. Importieren von Templates) verwendet werden.

  • Weiter verbesserte Oberfläche
    Auch in diesem Release wurde die Usability im OVM Manager weiter verbessert. So gibt es nun z.B. die Möglichkeit einer globalen Suche (nach Servern bzw. VMs), und auch die Vergabe von selbst gewählten "Tags" für VMs, Server und Server Pools trägt zur besseren Orientierung in großen Umgebungen bei. Außerdem gibt es viele weitere Kleinigkeiten wie u.a. die Tatsache, dass man in der Oberfläche nun auch Mehrfach-Auswahlen tätigen kann um z.B. viele VMs auf einmal zu starten oder zu stoppen.

Weitere Infos sind in einem Blog-Eintrag von Wim Coekaerts sowie in der entsprechenden Pressemeldung verfügbar.

Dienstag Mai 22, 2012

Oracle VM 3.1.1 ist da!

Es ist soweit! Ein neues Release von Oracle VM (x86) steht zur Verfügung: Oracle VM 3.1.1

Was ist neu?

 Der Sprung in der Versionsnummer (von 3.0.3 auf 3.1.1) macht bereits deutlich, dass sich in diesem Release einiges getan hat. Neben vielen Bugfixes gibt es folgende Neuerungen:

  • Eine neu gestaltete Oberfläche des OVM Managers, welche nun einen größeren Fokus auf Benutzerfreundlichkeit legt. Nicht zuletzt durch den direkten Zugriff auf ein integriertes "Getting Started" Tutorial hilft sie besonders Einsteigern, sich schnell zurecht zu finden, ohne permanent die Dokumentation konsultieren zu müssen. Neben diversen weiteren Vereinfachungen und Optimierungen der Oberfläche wurde auch "Drag & Drop für VMs" eingeführt. Eine zur Zeit nicht aktive VM kann einfach mit der Maus in den gewünschten Server Pool gezogen und gestartet werden. 
  • Das Booten von OVM Servern aus dem SAN via Multipath, ein von vielen Rechenzentren gewünschtes Feature.
  • Verbesserungen beim Handling von OCFS-basierten Repositories. Dies umfasst z.B. das nachträgliche Ändern von deren Größe ("LUN Resizing") sowie die Möglichkeit, einzelne OCFS-basierte Repositories für Backup-Zwecke über NFS freizugeben. Außerdem können diese nun von einem bestehenden Server Pool "abgekoppelt" und an einen anderen Pool "angehängt" werden.
  • Installation von OVM 3.1 unter Virtual Box (sowohl die Serverkomponente als auch der Manager). Dies ermöglicht es (bei entsprechender RAM-Ausstattung) einen oder mehrere OVM "Server" sowie den OVM Manager zum Testen auf ein und derselben Hardware laufen zu lassen. Selbstverständlich darf man von so einer "geschachtelten" Virtualisierung keine Wunder in Hinblick auf Performance erwarten, und Hardware-virtualisierte VMs (HVM) können in diesem Setup nicht erzeugt werden.

Weiterführende Informationen

Oracle VM 3.1.1. ist wie bei bisherigen Versionen auch auf http://edelivery.oracle.com/oraclevm verfügbar.

Den OVM Manager gibt es dort einmal als "Full Installer" oder aber auch in einer Variante mit der lediglich ein bestehender OVM 3.0.x-Manager aktualisiert werden kann. Bestehende OVM 3.0.x-Server können wie gewohnt über einen lokalen Mirror von ULN auf den neuesten Stand gebracht werden.

About

Dieses Blog befasst sich mit Themen rund um Oracle Linux, Virtualisierung (primär mit Oracle VM) sowie Cloud Computing mit Oracle Produkten. Es wird betreut von Manuel Hoßfeld
- - - - - - - - - - - - - - - - - - - -
DISCLAIMER: Die Artikel und Kommentare in diesem Blog entsprechen den Meinungen der jeweiligen Autoren, und nicht notwendigerweise denen der Oracle Deutschland B.V. & Co. KG oder der Oracle Corporation.

Search

Archives
« April 2014
MoDiMiDoFrSaSo
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
    
       
Heute