Einträge mit dem Tag: [kvm]
VLAN trunking zu KVM VMs
Ein paar Infos zu dem Thema von Matthew Thode.
Erstellt am
10:19PM Okt 18, 2012
in
Links |
Permalink
Kommentare[0]
Tags:
gentoo network kvm virtualization vlan
Links 20120715 - Ganeti Cluster, NoSQL, Piwigo
Ganeti - Ganeti ist eine Cluster Virtual Server Management Software die auf KVM und XEN aufbaut. Das Tool übernimmt das Management der VMs, Festplattenverwaltung, OS Installation, starten, stoppen und failover der Instanzen zwischen physikalischen Maschinen. Das Ganze ist für bis zu 40 Nodes ausgelegt. In Gentoo ist Ganeti als Paket über Portage installierbar.
Ganeti Tutorial PDF guide - Lance Albertson hat für Ganeti ein PDF Tutorial erstellt, um die Installation zu vereinfachen.
NoSQL matters und Berlin Buzzwords: Big Data und NoSQL in der Praxis angekommen
Piwigo - Eine freie Foto-Galerien Software/Verwaltung die nicht nur für den Desktop gedacht ist, sondern auch ein Mobil-Theme mitbringt, mit dem Foto-Galerien auch auf iPhone und Android gut aussehen.
Erstellt am
12:10AM Jul 16, 2012
in
Links |
Permalink
Kommentare[0]
Tags:
graphics database cluster kvm nosql
Links 20120328 - KVM
Ubuntu 12.04 KVM/Xen Virtualization: Intel vs. AMD - Phoronix vergleicht auf Basis von neuen Ubuntu 12.04 Long Term Support KVM, XEN und VirtualBox mit div. Benchmarks und mit Prozessoren von Intel und AMD.
Erstellt am
10:36PM Mrz 28, 2012
in
Links |
Permalink
Kommentare[0]
Tags:
virtualbox kvm xen virtualization
Links 20110831 - KVM, flexget
KVM Forum 2011: Viele interessante Dokumente rum um KVM/Qemu findet man auf der Seite des KVM Forums 2011. Besonders interessant für den Admin:
Optimizing Your KVM Instances
Introduction to the libvirt APIs for KVM management and their future development
The best of both worlds: Network virtualization and KVM
Performance monitoring in KVM guests
Improving the Out-of-box Performance When Using KVM
flexget - Ein sehr flexibles Downloadtool
SABnzbd - Open Source Binary Newsreader geschrieben Python
Erstellt am
11:11PM Aug 31, 2011
in
Links |
Permalink
Kommentare[0]
Tags:
kvm linux download tools
Links 20110808 - libguestfs
libguestfs - Sehr praktische Lib wenn man VM Files verändern möchte. Entweder verwendet man guestfish (interaktive Shell) oder guestmount und mountet das Image gleich direkt im Host. libguestfs kann mit allen möglichen Filesystemen und VM Images umgehen und bietet Bindings für Python, C, Java, usw.
Erstellt am
09:49PM Aug 08, 2011
in
Links |
Permalink
Kommentare[0]
Tags:
qcow2 kvm virtualization
Links 20110106 - Ganeti KVM Cluster, ngene CI Patch
Ganeti - Cluster virtual server management software tool: Baut auf KVM oder XEN auf. Ganeti übernimmt das Management von viruellen Instanzen, Plattenmanagement (LVM, Files, DRBD), Betriebssysteminstallation der VMs, Startup, Shutdown und Failover inkl. Live-Migration.
Ganeti Cluster mit Gentoo installieren
ngene Treiber installieren incl. CI Patch - Der ngene-Treiber wird u.a. für die DVB-Karten Mystique SaTiX-S2 Dual, Digital Devices DuoFlex S2, usw. verwendet. Leider funktioniert das Ganze CAM-Zeug trotz CI Patch aber nicht mit VDR. Dazu müsste jemand den VDR anpassen. Ich fürchte, das wird wohl auch nicht so schnell passieren...
Erstellt am
12:18AM Jan 08, 2011
in
Links |
Permalink
Kommentare[0]
Tags:
linux gentoo xen kvm cluster
Links 20100419 - KVM, GlusterFS, Django, Tomcat, Eclipse SVN+SSH
Using KSM (Kernel Samepage Merging) with KVM - Seit Kernel 2.6.32 (am Besten mit glibc 2.10 und KVM 0.12.3) gibt es die Möglichkeit, das Speicherbereiche von KVMs sich Speicherblöcke "teilen" bzw. gleiche Speicherblöcke zusammengefasst werden. Das kann bei vielen Windows Gästen z.B. schon mal 60% RAM sparen. Dieser Artikel beschreibt, wie man das einsetzt.
Glusterfs Distributed File System on Amazon EC2 - GlusterFS ist ein verteiltes Dateisystem, das anders als die meisten Anderen auf FuSE basiert, also nicht im Kernel beheimatet ist. Man kann damit soz. ein RAID über Rechner hinweg aufbauen z.B. ein RAID 0 bzw. 1 mit zwei Rechnern oder ein RAID 10 mit vier Rechnern. Wenn die verteilten Daten hauptsächlich gelesen werden und wenig bis gar keine Wildcard-Queries (z.B. ls -R *blub*) laufen, funktioniert das ganz gut. Hier wird der Einsatz in Amazon's Cloud beschrieben.
Django CMS - Wie der Name schon sagt, ein interessantes CMS in Python und Django geschrieben. Hier ein Demo-Video.
HTML5 Web Sockets: A Quantum Leap in Scalability for the Web
TomcatExpert - Diese Knowledgebase wurde von den SpringSource Jungs aus der Taufe gehoben. Sind ein paar gute Artikel und Slides dabei.
Configure SVN+SSH with Subclipse on Windows - Wie man Subversion über SSH mit Keys und der Hilfe von Subclipse benutzen kann, beschreibt dieser Artikel.
Erstellt am
01:41AM Apr 20, 2010
in
General |
Permalink
Kommentare[0]
Tags:
python eclipse glusterfs java filesystem tomcat django linux kvm
KVM Benchmark: Apachebench, IOzone, Graphics Magick
Update 20100115: Bezügl. I/O-Performance und dem qcow2-Format, sollte man das hier noch lesen: Features/KVM qcow2 Performance . Seit Qemu/KVM 0.11.0 hat sich da einiges getan. Vorraussetzung für die bessere Performance ist aber, das man das qcow2-Image mit Qemu >= Version 0.11.0 erzeugt hat. Es kann also durchaus Sinn machen, ein altes Image in ein Neues zu konvertieren.
Ich habe in den letzten Tagen auf einem HP DL 380 G6 Server ein paar Benchmarks mit der Linux Kernel Virtual Maschine (KVM) gemacht. Ich persönlich nutze die KVM schon seit fast zwei Jahren und produktiv laufen aktuell über 40 VMs. Die Stabilität und die Performance hat sich in den letzten Releases sehr gut entwickelt und die Entwicklung geht sehr schnell voran.
Der Host und der Gast liefen mit Gentoo und Kernel 2.6.31.1. Der Host hat folgende Komponeten eingebaut:
2 x Intel Xeon CPU L5520 - 2 Quad-Processors (static performance, VT-d, Hyperthreading eingeschaltet in BIOS)
8 x 300 GB SAS 10k Festplatten (RAID 10)
24 GB RAM
(Einige) Host (kernel) Einstellungen:
I/O scheduler: deadline
Filesystem: xfs
CONFIG_HAVE_KVM=y
CONFIG_HAVE_KVM_IRQCHIP=y
CONFIG_KVM=m
CONFIG_KVM_INTEL=m
CONFIG_VIRTIO_BLK=m
CONFIG_VIRTIO_NET=m
CONFIG_VIRTIO_CONSOLE=m
CONFIG_HW_RANDOM_VIRTIO=m
CONFIG_VIRTIO=m
CONFIG_VIRTIO_RING=m
CONFIG_VIRTIO_PCI=m
CONFIG_VIRTIO_BALLOON=m
(Einige) Gast (Kernel) Einstellungen:
I/O scheduler: deadline/cfq (siehe unten)
Filesystem: ext3 (datamode=ordered/writeback [siehe unten])
VIRTIO Network (VIRTIO_NET) und Block (VIRTIO_BLK) Treiber verwendet.
Der Gast ist ein qcow2-Image, welches ich vorher mit "dd" erweitert habe, damit es für den IO Test groß genug ist und nicht erst während des Tests erweitert wird (was die Werte total verfälscht hätte).
CONFIG_KVM_CLOCK=y
CONFIG_KVM_GUEST=y
CONFIG_HAVE_KVM=y
CONFIG_HAVE_KVM_IRQCHIP=y
CONFIG_VIRTIO_BLK=y
CONFIG_VIRTIO_NET=m
CONFIG_VIRTIO_CONSOLE=y
CONFIG_HW_RANDOM_VIRTIO=y
CONFIG_VIRTIO=y
CONFIG_VIRTIO_RING=y
CONFIG_VIRTIO_PCI=y
CONFIG_VIRTIO_BALLOON=y
CONFIG_PARAVIRT_SPINLOCKS=y
KVM Startup Optionen (die Wichtigsten):
-m "variabel-siehe unten"
-smp "variabel-siehe unten"
-cpu host
-daemonize
-drive file=/data/kvm/kvmimages/gfs1.qcow2,if=virtio,boot=on
-net nic,vlan=104,model=virtio,macaddr=00:ff:48:23:45:4b
-net tap,vlan=104,ifname=tap.b.gfs1,script=no
-net nic,vlan=96,model=virtio,macaddr=00:ff:48:23:45:4d
-net tap,vlan=96,ifname=tap.f.gfs1,script=no
Da wir KVM hauptsächlich für Webserver benötigen, habe ich Benchmarks mit Apachebench, Graphics Magick und IOzone erstellt:
Apachebench mit 4 GB RAM, CFQ Scheduler, 1/2/4/8 vProcs verglichen mit dem Host (der hp380g6 Graph):
http://www.tauceti.net/kvm-benchmarks/merge-3428/
Apachebench mit 2 GB RAM, CFQ Scheduler, 1/2/4/8 vProcs verglichen mit dem Host:
http://www.tauceti.net/kvm-benchmarks/merge-6053/
Mich hat hier u.a. interessiert, ob mehr RAM mehr Durchsatz bringt und ob mehrere virtuelle Prozessoren skalieren. Wenn man die 2xQuadCore + Hyperthreading mit den 8 virtuellen Prozessoren (vProcs) vergleicht, dann kann die KVM hier mithalten. Die Speichergröße spielt keine Rolle.
Graphics Magick resize mit 4 GB RAM, CFQ scheduler, 1/2/4/8 vProcs verglichen mit dem Host (der hp380g6 Graph):
http://www.tauceti.net/kvm-benchmarks/merge-5214/
Graphics Magick resize mit 2 GB RAM, CFQ scheduler, 1/2/4/8 vProcs verglichen mit dem Host (the hp380g6 graph):
http://www.tauceti.net/kvm-benchmarks/merge-7186/
Mit 8 vProcs ist die KVM ungefähr 10% langsamer. Mehr Speicher scheint auch hier nicht zu helfen.
Der folgende IOzone Test lief mit der KVM-Option cache=none. In diesem Fall ist alleine der Host für's Wegschreiben der Daten verantwortlich. Das erscheint mir aktuell immer noch die sicherste Option zu sein, um die Datenintegrität des KVM-Images und der Filesysteme in der KVM sicher zu stellen. Allerdings bremst das die Performance:
IOzone Schreibtest (write) mit 2 GB RAM, CFQ scheduler, ext3 Filesystem und datamode=ordered, 1/2/4/8 vProcs verglichen mit dem Host (der hp380g6 Graph):
http://www.tauceti.net/kvm-benchmarks/merge-3564/
IOzone Schreibtest (write) mit 2 GB RAM, deadline scheduler, ext3 Filesystem und datamode=ordered, 1/2/4/8 vProcs:
http://www.tauceti.net/kvm-benchmarks/merge-4533/
Wie man sieht, bringt das Austauschen des Schedulers ungefähr 10-15 MByte/s mehr an Durchsatz. Die CPU-Auslastung habe ich aber nicht überprüft während des Tests.
Die folgenden IOzone Tests liefen ohne cache-Option und somit mit dem Defaultwert writethrough:
IOzone Schreibtest (write) mit 2 GB RAM, deadline scheduler, ext3-Filesystem und writeback (siehe Testseite), 8 vProcs verglichen mit dem Host (der hp380g6 Graph):
http://www.tauceti.net/kvm-benchmarks/merge-7526/
Die Zahlen sind relativ beeindruckend. Die KVM kann eigentlich fast immer - mit den entsprechenden Einstellungen - mit dem "echten" Host mithalten in diesen Tests. Den Netzdurchsatz müsste man jetzt noch messen, dann wäre der gesamte Benchmark schon fast vollständig.
Erstellt am
09:32PM Okt 06, 2009
in
Tipps |
Permalink
Kommentare[3]
Tags:
kvm linux
KVM, Qemu: Welche I/O-Scheduler verwenden
Update 20110831: Weitere Informationen zu dem Thema gab es auf dem KVM Forum 2011 in dem PDF Optimizing Your KVM Instances von Mark Wagner. Auch hier zeigt sich, das der Deadline Scheduler aktuell der Optimalste für eine KVM ist.
Update 20100318: Mehr Tuning-Informationen für die KVM gibt es hier: http://www.linux-kvm.org/page/Tuning_KVM .
Update 20090403: Ich denke, das sich das unten stehende, so nicht halten läßt. Die Sache mit dem noop-Scheduler verhält sich teilweise sehr gut, teilweise aber auch ziemlich übel, in dem z.B. der pgflush-Daemon ziemlich viel Systemzeit beansprucht und der I/O-Durchsatz ziemlich in die Knie geht. Das ändert sich schlagartig, sobald man auf den Deadline-Scheduler umschaltet. Auf den getesteten Systemen scheint die Benutzung des Deadline-Schedulers in Host und Guest die beste Kombination zu sein. Man kann das ja selber mal ausprobieren, in dem man den I/O-Scheduler im laufenden Betrieb wechselt z.B.
echo "deadline" > /sys/block/vda/queue/scheduler
Man sollte dann aber schon eine Anwendung oder einen Test fahren, der gut was auf die Platte schreibt und das auch möglichst konstant macht. Oder besser: Man verwendet bonnie++ . Ein eher syntetischer Test für I/O-Durchsatz aber ein guter Ausgangspunkt.
Text vom 20090330: Diese gar nicht so uninteressante Frage kam jetzt schon des Öfteren auf der KVM Mailingliste hoch. Letztendlich ist man sich einig, das das Gastsystem mit elevator=noop gestartet werden sollte. Per Default setzen ja heute die meisten Distributionen den Completely Fair Scheduler-I/O (CFQ) ein. Für den Host selbst ist das vielleicht ok, wenn im Gast elevator=noop als Kernelparameter z.B. im Grub übergibt. Es macht auch nicht wirklich Sinn, wenn sich die I/O-Scheduler im Gast und im Host Gedanken machen müssen, wie denn die Daten am Besten auf die Platte kommen sollen. Wenn ich die Mails der KVM-Entwickler/-User aber richtig interpretiere, dann bevorzugen sie doch eher den deadline Scheduler für den Host. Mit dem habe ich auch sehr gute Erfahrungen gemacht im Serverbereich. Ich finde - aber das ist jetzt meine subjektive Meinung - das der CFQ sich besser für den Desktopbereich eignet als für Serveranwendungen.
Erstellt am
08:00PM Mrz 30, 2009
in
Tipps |
Permalink
Kommentare[0]
Tags:
linux kvm qemu scheduler
KVM/Qemu: Wie konvertiert man eine VMware VMDK Datei zu einem KVM Image
Die Lösung ist relativ einfach. Entweder verwendet man qemu-img oder kvm-img (je nachdem welches Tool der Distribution beiliegt):
qemu-img convert -f vmdk -O qcow2 vmware-image.vmdk kvm-image.qcow2
Update 20090511: Das funktioniert aber nur solange man nur ein vmdk-File hat. Wenn das VMWare-Image auf mehrere Dateien aufgesplittet ist wie s001.vmdk, s002.vmdk, usw., dann muss man anders vorgehen. Man konvertiert alle diese Dateien ins RAW-Format und kopiert diese dann zusammen in ein File:
for I in *[0-9].vmdk; do kvm-img convert -f vmdk "$I" -O raw "tempdir/$I"; done
cat *.vmdk >> final_image.raw
Das final_image.raw kann man dann mit der KVM starten.
Erstellt am
07:44AM Mrz 11, 2009
in
Tipps |
Permalink
Kommentare[0]
Tags:
vmware kvm virtualization qemu
KVM, Qemu und XFS Filesystem
So sehr ich ja XFS als Filesystem schätze, muss ich doch ziemlich davon abraten, es in einer KVM (Kernel Virtual Maschine) zu verwenden. Normalerweise richte ich das Root-FS (also /) immer als ext3-Filesystem ein und /boot als ext2. /var, /tmp, /usr, /opt, /home, usw. immer als XFS. Das war all die Jahre auch eine gute und einwandfrei funktionierende Kombination. Falls was ist, kann man mit den Standardtools Root-FS und /boot eventl. reparieren. Solange / und /boot noch tun, hat man ja ohnehin alle Tools drauf, um eventl. die XFS-Partitionen zu reparieren. Den Bedarf hatte ich aber noch nie - bis auf 3 mal in den letzten Monaten in Zusammenhang mit einer KVM.
Da XFS ja ziemlich aggressives Write-Caching betreibt, ist die allgemeine Empfehlung XFS hauptsächlich dann zu verwenden, wenn man eine USV vor dem Rechner hat oder einen Contoller, dessen Cache und Festplatte mit einer Batterie gegen plötzlichen Stromausfall gesichert ist.
So betrachtet, gelten beide Bedingungen nicht für die KVM. Ich kann die KVM ja jeder Zeit mit einem kill vom Host aus abschießen. Oder eine Kernel-Panic des Hosts würde auch die KVM killen. Das ist dann, als ob ich den Stecker für die KVM ziehen würde. Obwohl ich damit auf einem physikalischen Rechner noch nie Probleme hatte, scheint das in einer KVM gravierendere Auswirkungen zu haben. Das Ganze gilt insbesondere dann, wenn man das Virtio Block Device (VIRTIO_BLK) verwendet (das ist der Virtio Plattentreiber, der nicht emuliert werden muss, sondern soz. näher am Host-IO-Treiber sitzt und dadurch schneller arbeiten kann - fällt u.a. dadurch auf, das man ein /dev/vda Device hat).
Ich kann aufgrund meiner Erfahrungen aktuell nur empfehlen, ext3 in einer KVM zu verwenden. Die Probleme mit XFS traten dann und wann auf, wenn die KVM (aus welchen Gründen auch immer), unerwarteter Weise beendet wurde. I.d.R. konnte man das Filesystem wieder herstellen, aber mir hat es auch schon Zwei komplett zerlegt. Mit ext3 ist mir das noch auf keinem KVM-System passiert. Komisch... Normalerweise kenne ich das immer umgekehrt ;-)
Ich vermute mal, das einer der Gründe für die Probleme die fehlende Unterstützung in VIRT_BLK für Barriers ist. Das sieht dann mit dmesg z.B. so aus:
Filesystem "vda7": Disabling barriers, trial barrier write failed
XFS mounting filesystem vda7
Wenn ich die Sache mit den Barriers richtig verstanden habe, dann sind die dafür zuständig, das das Filesystem das darunterliegende Device informieren kann, wenn es Daten flushen, d.h. also wegschreiben soll. Wenn das nicht passiert und die Kiste säuft ab, dann kann das ziemliche Folgen für das Filesystem haben. Oft wird empfohlen, bei XFS die Option nobarrier zu setzen, um die Performance zu steigern. Das sollte man sich aber genau überlegen...
Update 20090206:
Zu dem Thema u.a. qcow2 vs. raw Format für KVM Images siehe auch hier:
Poor Write I/O Performance on KVM-79
Use writeback caching by default with qcow2
Re: Use writeback caching by default with qcow2
XFS FAQ
Interessant finde ich auch die Möglichkeit, LVM direkt als Laufwerk für eine KVM zu nutzen, wie in einem der Postings erwähnt wird (-drive file=/dev/vg/volume). War mir noch gar nicht bekannt...
Update 20090329:
Die XFS FAQ empfiehlt bei Qemu/KVM bei der -drive Option cache=none anzugeben, da hier anscheinend nicht mal auf einen fsync Verlass ist. Ich werde trotzdem bei ext3 als Filesystem in einer KVM bleiben.
Erstellt am
08:41PM Feb 04, 2009
in
Tipps |
Permalink
Kommentare[0]
Tags:
kvm virtualization xfs qemu corrupt
Links 20090122
Proxmox Virtual Environment - Eine Open Source Virtualization Plattform um Virtual Appliances und Virtual Machines laufen zu lassen und in kurzer Zeit eine virtuelle Server-Infrastruktur hochzuziehen.
Michael Steil gab beim 25. CCC den Ultimate Commodore 64 Talk. In 64 Min. erklärt er den kompletten C64. Jetzt gibt es die Videos zum Downloaden.
Easy Peasy (früher Ubuntu Eee) ist eine Linux-Distribution für die Asus Eee Notebooks und weitere Netbooks.
Basic Samba Configuration - Joey Prestia führt schnell und übersichtlich in die Samba Konfiguration ein.
HugeTLB - Large Page Support in the Linux Kernel
pyjamas - AJAX Applikationen in Python bauen (wie Google es in Java tun mit GWT)
German Radio Streams Service - Eine umfangreiche Liste mit deutschen Radiosendern für den Mediaplayer Amarok.
Erstellt am
11:00PM Jan 22, 2009
in
Links |
Permalink
Kommentare[0]
Tags:
video c64 kvm eeepc ajax amarok python netbook ccc radio hugetlb samba
VMWare: Uhrzeit hinkt hinterher oder laeuft voraus
Ich bin ja gar kein Fan von VMWare (mir ist die KVM tausend mal lieber...), aber nachdem alle Welt das Teil benutzt, kommt man nicht drum rum :-( Kürzlich hatte ich das Problem, das in einem Gentoo Linux Host ein Red Hat Enterprise 5.2 Gast lief und im Gast ständig die Uhrzeit dem Hostsystem hinterherlief. Da dauerte dann eine Sekunde schon mal zwei oder so ;-)
Nun... Ganz hab ich das Problem noch nicht gelöst aber ansatzweise. Zum einen war die Kernel-Timer-Frequenz unterschiedlich. Gentoo lief mit 250 Hz (wie das für ein Server-System angebracht ist) und RHEL mit 1000 Hz. Was eingestellt ist, sieht man unter Gentoo, wenn man nach /usr/src/linux wechselt (ja, es gibt noch andere Möglichkeiten...) und dort
linux # cat .config | grep CONFIG_HZ
# CONFIG_HZ_100 is not set
# CONFIG_HZ_250 is not set
# CONFIG_HZ_300 is not set
CONFIG_HZ_1000=y
CONFIG_HZ=1000
eingibt. Unter RHEL 5.2 geht man unter /usr/src/kernels/2.6.18-92.el5-x86_64/ rein und mancht das Gleiche. Nachdem das eingestellt war unter Gentoo, Kernel neu kompiliert und durchgestartet. Das war dann schon besser. Aber immer noch lief die Zeit langsam auseinander.
Ich habe dann im zugehörigen .vmx-File noch folgende Option eingetragen:
tools.syncTime = "TRUE"
Das sollen angeblich auch die VMWare Tools machen. Das half aber auch nicht so richtig weiter. Jetzt könnte man natürlich auch ein ntpdate pool.ntp.org jede Minute per Cron laufen lassen, aber das ist auch Schwachsinn.
Also hab ich mir die open-vm-tools installiert. Das sind die VMWare Tools nur als Opensource. Diese Tools müssen im Gast-System installiert werden. Man lädt sich dazu das .tar.gz-File runter. Den configure hab ich mit
./configure --without-x --without-procps --without-dnet --without-icu
aufgerufen. Dann make; make install. Jetzt kann man mit
vmware-guestd --background /tmp/ovm.pid
den VMWare Guest-Daemon starten. Anschließend kann man mit
vmware-toolbox-cmd timesync enable
die Zeitsyncronisierung einschalten und mit
vmware-toolbox-cmd timesync enable
abfragen. Mit
vmware-toolbox-cmd stat hosttime
kann man dann noch die Host-Zeit abfragen. Die Zeit der beiden System läuft jetzt zwar immer noch nicht ganz syncron, aber es ist akzeptabel.
Erstellt am
10:00PM Sep 16, 2008
in
Tipps |
Permalink
Kommentare[0]
Tags:
redhat vmware linux gentoo open-vm-tools kvm timer
Qemu, KVM, Anaconda - lvm: Cannot allocate memory
Nachdem ich gerade am Testen von Red Hat Enterprise 5 mit Qemu/KVM bin und mir Anaconda beim Initialisieren der Festplattenpartitionen die Meldung
lvm: Cannot allocate memory
um die Ohren gehauen hat, wollte ich die Welt teilhaben lassen an der Lösung ;-) Ich hatte Qemu gestartet mit
/opt/kvm/current/bin/qemu-system-x86_64 -hda rhel52.img -cdrom /opt/cds/rhel-5-server-x86_64-dvd.iso -boot d -m 256
Der Witz ist, 256 MB Speicher reichen nicht! Es müssen mindestens 512 MB sein. Ich hab's dann probiert mit
/opt/kvm/current/bin/qemu-system-x86_64 -hda rhel52.img -cdrom /opt/cds/rhel-5-server-x86_64-dvd.iso -boot d -m 640
und das funktioniert dann.
Erstellt am
02:59PM Aug 01, 2008
in
Tipps |
Permalink
Kommentare[0]
Tags:
kvm lvm anaconda redhat virtualization linux qemu
KVM - Kernel based Virtual Machine - unter Gentoo installieren
Nachdem ich mich gegen XEN und für die Kombination KVM/Qemu entschieden habe, habe ich in letzter Zeit damit etwas beschäftigt. Aufgrund meiner aktueller Hardware musste auch ein relativ aktueller Kernel her, der mindestens 2.6.20 sein musste. Das hatten vor ein paar Wochen noch nicht viele Distributionen. Ausserdem war es für mich wichtig, das ich jederzeit meinen eigenen Kernel kompilieren kann. Und damit sieht's dann mit XEN ganz schlecht aus. Man braucht eigentlich immer einen Kernel, der bei der Distribution dabei ist. Wenn man auf die Sourcen von der xensource.com Seite angewiesen ist, ist man eh verloren. Mich würd das einfach aufregen, immer darauf angewiesen zu sein, wann eine Distribution mal wieder einen Kernel mit XEN rausbringt oder XEN selbst mal wieder eine Anpassung an irgendeinen Kernel macht. Also was liegt näher, gleich die KVM zu verwenden, die seit 2.6.20 sowieso in jedem Kernel ist? Soweit ich das bis jetzt beurteilen kann, läuft das wirklich gut. Nur einen Nachteil gegenüber XEN habe ich bisher gefunden (ok man braucht noch einen Prozessor, der Hardwarevirtualisierung unterstützt, den XEN auch nicht braucht...), der schon etwas schade ist: Man kann keine PCI Geräte in die KVM einblenden. Bei XEN kann man z.B. eine TV-Karte aus der Dom0 ausblenden und in eine DomU einblenden. Bei der KVM ist man auf die Geräte beschränkt, die der Emulator mitliefert. Auf jeden Fall bin ich mit der Geschwindigkeit der KVM bisher sehr zufrieden.
Zunächst guggt man, ob man einen Prozessor mit Hardwarevirtualisierung (HVM) hat:
egrep '^flags.*(vmx|svm)' /proc/cpuinfo
Bei mir sieht das dann so aus:
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx lm constant_tsc pni monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr lahf_lm
Kommt keine Ausgabe, dann kann man die KVM nicht nutzen. vmx erscheint bei Intelprozessoren und svm bei AMD. Inzwischen ist der Kernel 2.6.20 für die AMD64/EMT64 Plattform nicht mehr masked, so das bei der Installation des Kernels mit
emerge -av gentoo-sources
bei mir momentan 2.6.20-r8 installiert ist. Als nächstes sollte man im Kernelsource guggen, ob das KVM Kernelmodul auch einkompiliert ist. Dazu verwendet man entweder genkernel oder man wechselt nach /usr/src/linux und gibt make menuconfig ein. Ob das KVM Modul aktiviert ist, sieht man unter
Device Drivers
-> Virtualization
-> Kernel-based Virtual Machine (KVM) support
Hier schaltet man dann die KVM für Intel oder eben AMD ein, falls nicht schon passiert. Wenn man den Kernel neu erzeugen muss, dann sollte man das aber mit genkernel machen mit
genkernel --menuconfig
Wenn man dann einen fertigen Kernel hat und der Rechner eventl. restartet wurde, kann man das Kernelmodul laden für Intel
modprobe kvm-intel
und für AMD
modprobe kvm-amd
Nun ist es so, das das KVM Modul höchstwahrscheinlich mit dem GCC 4 kompiliert worden ist. Bei gcc -v kommt bei mir z.B. die Version 4.1.1 zu Tage. Der Emulator Qemu läßt sich aber momentan aber nur mit GCC 3 übersetzen. Also müssen wir den nachinstallieren:
emerge =sys-devel/gcc-3.4.6
Nun brauchen wir die Programme für den Userspace und damit u.a. den Emulator Qemu, der hier in einer angepassten Version für die KVM vorliegt. Die KVM Userspace-Programme kann man bei Sourceforge downloaden:
Für den Kernel 2.6.20 brauchen wir die Version 12 und für Kernel 2.6.22 KVM-36. Die Installation sieht dann z.B. wie folgt aus:
tar xvfz kvm-12.tar.gz
cd kvm-12
./configure --prefix=/opt/kvm --qemu-cc="/usr/bin/gcc32"
make
make install
U.U. muss man noch die Alsa-Sources nachinstallieren (die musste ich unter Debian Etch nachinstallieren). Bei mir waren alle nötigen Sourcen schon vorhanden. Wenn das dann durchgelaufen ist, findet man in /opt/kvm/bin qemu-img zum Erzeugen der VM-Images und qemu-system-x86_64 mit dem man die VM dann startet.
So... Dann sind also mal die Grundvoraussetzungen für die KVM geschaffen. Wie man Images erzeugt und wie man mehrere VMs mit Hilfe des VDE (Virtual Distributed Ethernet) ans Netz bringt, zeig ich dann später. Mehr zu dem Thema auch im KVM Gentoo Wiki.
Erstellt am
03:00AM Jul 07, 2007
in
General |
Permalink
Kommentare[0]
Tags:
gentoo qemu kvm