Open Source im professionellen Einsatz

Newsletter abonnieren
Seite durchsuchen

HEFTARCHIV | NEWS | E-BIBLIOTHEK | VIDEO | BLOGS | WHITEPAPER | EVENTS | ACADEMY | ABO | SHOP

user friendly

  Home  »  Heft & Abo  »  Heftarchiv  »  2010  »  04  »  Was ist schon real?  

RSS-Feed der aktuellen News von Linux-Magazin Online Folgen Sie Linux-Magazin Online auf Twitter
Diesen Artikel druckenDiesen Artikel weiterempfehlen Diesen Artikel kommentieren Newsletter abonnieren
Share/Bookmark

©Nadja, Fotolia.com

PCI-Devices des Hosts an die Kernel Virtual Machine (KVM) durchreichen

Was ist schon real?

von Oliver Rath, Hans-Peter Merkel, Markus Feilner
Erschienen im Linux-Magazin 2010/04

Virtualisierung mit Open-Source-Tools brummt. Das schlanke und schnelle KVM reicht seit Kurzem auch physische PCI-Hardware direkt durch, wenn der Admin ein paar Sachen beachtet. Wie das ohne Probleme klappt, zeigt diese Anleitung.

Die Verwirrung ist groß, wenn es um die Versionsnummer der KVM-Softwarepakete geht. Das liegt nicht nur an der vom Entwicklerteam geänderten Versionierung, sondern auch am Hin und Her mit der Mutter-Software Qemu. Ursprünglich ein Fork von Qemu 0.8 - oder zumindest ungefähr dieser Version -, lief die Entwicklungen von KVM und Qemu einige Zeit lang parallel.

Der Plan der Developer war es, mit Qemu durch die GPL-Lizenz Appetit zu machen und dank der kommerziellen Lizenzierung des Kqemu-Moduls, das die Emulation immerhin fast auf das Fünffache beschleunigte, Geld zu verdienen. Dummerweise machte die Einführung der Vanderpool-Hardware mit der Gerätevirtualisierung das obsolet, so schildert es zumindest einer der Entwickler der KVM-Firma Qumranet, Avi Kivity, in seinem Blog [1].

Hardware-Virtualisierung

Damit läuft virtualisierte Software ohne Emulation auf Wunsch direkt auf dem Prozessor. Nur wenn diese auf die Peripherie zugreifen will, fängt die Virtualisierungsschicht die Aufrufe ab und verarbeitet sie. Die Software arbeitet mit annähernd voller Geschwindigkeit, solange sie nicht mit der Außenwelt kommunizieren muss. Diesen neuen Anteil des ausgegliederten KVM haben die Developer mit der Version 0.11.1 nach Qemu zurückgeforkt, was wiederum dazu führte, dass die Entwickler von KVM beschlossen, damit auch die Versionierung von Qemu zu übernehmen.

Seitdem heißt das Programm selbst ein- heitlich »qemu«. Um eine bestmögliche Unterstützung beim PCI-Passthrough zu erreichen, empfehlen sich die neuesten KVM-Kernelmodule oder der neueste Kernel, mindestens aber ein 2.6.26-er, optimal mit den Userspace-Tools 0.12.2, wie sie in den folgenden Beispielen zum Einsatz kommen. Erhältlich ist das Ganze auf der KVM-Homepage [2].

Die Einschränkung, nur auf Intel-Prozessoren mit Vanderpool-Erweiterung oder AMDs Entsprechung Pacifica lauffähig zu sein, stellt keine Schwierigkeit mehr dar. Die meisten Prozessoren mit Ausnahme einiger Atoms, Celerons und der OEM-Reihen für Billig-Notebooks haben diese Erweiterungen eingebaut. Auch bei AMD sind sie bei allen neueren Prozessoren seit der Einführung der Dualcores (Ausnahme: Sempron) an Bord. Sogar der neueste Via Nano soll Vanderpool beherrschen.

Um in einer virtualisierten Umgebung direkt auf die Hardware zugreifen zu können, gibt es bei KVM zwei Möglichkeiten:

  • Der Zugriff über ein emuliertes Device ist vor allem bei
    Netzwerk- und Soundkarten, aber auch für Festplattencontroller
    interessant.
  • Direkter Zugriff auf ein durchgereichtes PCI-Device.
    Grundsätzlich gilt: Nur Hardware, die der Host nicht
    verwendet, kann Linux an eine virtualisierte Instanz
    weiterreichen.

Daher muss der Admin zuerst die Module entladen oder das Laden per Blacklist unterbinden. Wie es zum Beispiel unter Gentoo üblich ist, empfiehlt es sich generell, die Module beim eigenen Kernel gar nicht erst einzubinden, das spart Platz und bringt Tempo.

Ausschalten: IRQ-Sharing

Ganz wichtig ist es dabei - nicht nur für die Kernelbauer -, die Shared-Interrupt-Funktionalität zu deaktivieren. Im Moment ist KVM nur in der Lage, PCI-Devices mit eigenem Interrupt durchzureichen. Sobald mehrere Geräte den Interrupt nutzen, schlägt das Durchreichen fehl. Um derartige Doppelbelegungen aufzudecken, empfiehlt sich das Scannen der benutzten Interrupts (Listing 1). Die Ausgabe von »lspi -vv | grep IRQ« vergleicht der Admin nun mit dem Gerät, das er durchreichen will (Listing 2). In diesem Beispiel wird das Durchreichen nicht funktionieren, da der Interrupt 11 gleich dreifach belegt ist.

Listing 1: »lspi --vv |
grep IRQ«

Interrupt: pin D routed to IRQ 10
Interrupt: pin D routed to IRQ 12
Interrupt: pin D routed to IRQ 12
Interrupt: pin ? routed to IRQ 9
Interrupt: pin A routed to IRQ 11
Interrupt: pin A routed to IRQ 12
Interrupt: pin A routed to IRQ 10
Interrupt: pin A routed to IRQ 11
Interrupt: pin A routed to IRQ 11

Listing 2: »lspci -vv |
less«

00:11.0 Network controller: AVM GmbH B1 ISDN
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 32
Interrupt: pin A routed to IRQ 11
Region 0: I/O ports at d800 [size=64]
Region 1: I/O ports at dc00 [size=32]
Kernel driver in use: b1pci
Kernel modules: b1pci
Capabilities: [40] Power Management version 3

Listing 3 zeigt dagegen ein anderes Beispiel, mit einer PCIe-ISDN-4-fach-Karte von Beronet. Deren Interrupt 19 ist nur einmal belegt, und zwar von der ISDN-Karte selbst. Admins von Ubuntu oder Debian tragen in »/etc/modprobe.d/ blacklist.conf« die Module ein, die sie nicht benötigen:

blacklist mISDN_dsp
blacklist hfcmulti
blacklist mISDN_core

Das Beispiel zeigt die Module für die erwähnte aktive HFC4S-Karte, es sind die Treiber für das neue »mISDNv2«-Subsystem, das seit Kernel 2.6.28 Einzug gehalten hat und vor allem für HFC-ISDN-Karten sehr zu empfehlen ist. Für Asterisk ist zusätzlich noch der Channel-Driver »lcr_chan« vom Linux-Call-Router-Projekt [3] erforderlich.

Listing 3: »lspci
-vv«

08:04.0 ISDN controller: Cologne Chip Designs GmbH ISDN network Controller [HFC-4S] (rev 01)
Subsystem: Cologne Chip Designs GmbH Device b752
Control: I/O- Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Interrupt: pin A routed to IRQ 19
Region 0: I/O ports at 5000 [disabled] [size=8]
Region 1: Memory at c6000000 (32-bit, non-prefetchable) [size=4K]
Capabilities: [40] Power Management version 2
Flags: PMEClk- DSI+ D1+ D2+ AuxCurrent=0mA PME(D0+,D1+,D2+,D3hot+,D3cold-)
Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
Kernel driver in use: hfc_multi
Kernel modules: hfcmulti
Sie können diesen Artikel als PDF für 99 Cent kaufen. Klicken Sie dazu einfach auf eine der beiden Bezahloptionen Paypal oder ClickandBuy.


Diesen Artikel druckenDiesen Artikel weiterempfehlen Diesen Artikel kommentieren Newsletter abonnieren
Share/Bookmark
Ähnliche Artikel
Big Iron unter Linux Cluster-Praxis
Engagierte Spielmacher Einsatzszenarien und Trends in der Virtualisierung
Gut erhaltene Klassiker Vorbereitung auf die LPIC-1-Prüfung - Teil 6
Knoppix 6.5 Klaus Knopper über sein neues Linux
Reifeprüfung 15 Jahre Linux: Mehr Grund zum Blick auf das Heute
Starthilfe Vier Notebooks der Mittel- und Oberklasse im Test
Whitepaper
Usage Landscape Enterprise Open Source Data Integration

Die Nachfrage nach Datenintegrationslösungen für Unternehmen ist zunehmend gestiegen und vor allem das Interesse an Open Source Technologien wird immer größer. Doch wie und von wem werden Open Source Datenintegrationslösungen genutzt und welches Nutzungsverhalten lässt sich daraus ableiten? Das vorliegende White Paper präsentiert die Erfahrungswerte von über 1000 Open Source Nutzern und liefert fundierte Antworten auf diese Fragen.

Download PDF (Registrierung erforderlich)
Daten Migration - Eine Publikation von Bloor Research

Datenmigrationsprojekte überschreiten häufig das Budget, neigen zu Verzögerung und werden unter Umständen komplett abgebrochen. Bloor Research ist eines der weltweit führenden IT-Forschungs-, Analyse- und Beratungsunternehmen und wird in dem vorliegenden White Paper die wichtigsten Aspekte dieser Problematik näher beleuchten. Ferner werden praktische Empfehlungen für erfolgreiche Migrationsprojekte gegeben, die Sie auf Ihr nächstes Projekt übertragen können.

Download PDF (Registrierung erforderlich)
Kommentare (1)
von
Joachim Zobel,
19.03.2010 18:04
PCI Devices blacklisten
Was mir hier fehlt, ist die Information, wie ich einzelne Devices blacklisten kann. Wenn ich eine von zwei identischen Netzwerkkarten an die VM durchreichen will, ist das blacklisten des Kernelmoduls der falsche Weg.