====== Virtualisierung von Windows XP mit KVM und Virt-Manager ====== **Host-System:** Ubuntu-Server 12.04 mit qemu+kvm, Storage im LVM Als Storage wurde zunächst eine IDE-Platte gewählt, da für die anderen Typen kein Treiber in WinXP verfügbar ist: ^ WinXP ^ Installationsmedium | Iso-Abbild benutzen | WinXP-SP2.iso | | ^ ^ Betriebssystem | Typ | Windows | | ^ ^ | Version | Windows XP | | ^ ^ RAM / CPU | 512 MB / 1 CPU | | | ^ ^ Speicher-Festplatte | anderen Speicher wählen | | | ^ ^ | Storage-Pool | LVM Volume Group | muss schon angelegt sein | ^ ^ | Neuer Datenträger | 50000MB | wählen | ^ ^ | Virtualisierungstyp | kvm | | ^ ^ | Architektur: | i686 | | ^ ^ Konfiguration bearbeiten: | | | | ^ ^ Boot-Options | PXE+Harddisk+CDRom | | | ^ ^ Disk 1 | Advanced Options | Disk Bus: | IDE (später virtio) | ^ ^ | | Speicherformat: | raw | ^ ^ Netzwerk | NIC | verbunden mit green | rtl8139 (später virtio) | ^ ^ Maschineneinstellungen | apic, acpi | on,on | | - WinXP-Client über PXE in Linbo booten und registrieren - Start.conf des Client anpassen: 20 GB-WinXp + 2 GB Daten + Rest, import-workstations - WinXP-Client über PXE in Linbo booten und partitionieren - WinXP-Client über CD-ROM booten und WinXP installieren, dabei Partitionierung und Dateisystem beibehalten - Reboot: WinXP-Client wieder über PXE in Linbo booten und Start __ohne__ Restaurierung - WinXP-Installation abschließen - Image erstellen ---- ==== Imgagevereinheitlichung ==== Mit virtuellem XP-Client und realem XP-Client: - WinXP auf virtuellen Client im IDE-Modus installieren (siehe oben) - virtueller Client: Im Gerätemanager den Festplattenkontroller auf Standard-IDE umstellen - virtueller Client: Festplatte auf virtio-Modus umstellen und alle nötigen Treiber installieren (siehe unten) - virtueller Client: Image erstellen - realer Client: Image booten - realer Client: alle nötigen Treiber installieren - realer Client: Image erstellen **Achtung:** Nach Umstellen von IDE auf virtio und neuem Partitionieren ändert sich minimal die Partitionsgröße! -> siehe unten ---- ==== Grafik: vmware-VGA-Teiber für kvm verwenden === Download: -> [[http://www.linux-kvm.com/content/using-vmware-vga-kvm-windows-guests]] Dieses Iso-Image auf den Host nach /var/lib/libvirt/images/ kopieren. Im Client das Iso in die CD-ROM einlegen, Client booten und das setup auf der CD starten. **Problem:** Dieser VGA-Treiber passt leider nicht! ---- ==== Netzwerk: virtio - Treiber für Windows XP ==== Die virtio-Treiber findet man auf einem CD-ROM-iso, z.B. bei * [[http://dl.fedoraproject.org/pub/alt/virtio-win/]] * [[http://wiki.libvirt.org/page/Virtio]] * [[http://sourceforge.net/projects/kvm/files/kvm-guest-drivers-windows/2/]] (enthält nur Netzwerk?) Ich verwendete "virtio-win-0.1-22.iso" von fedora. Dieses Iso-Image auf den Host nach **''/var/lib/libvirt/images/''** kopieren.\\ Dann die Netzwerkkarte auf virtio umstellen, das iso-Image einlegen und Client booten. Nun von CD die Treiber des neu erkannten Ethernet-Controllers installieren. ---- ==== Storage: virtio - Treiber für Windows XP ==== Die erste Festplatte ist zunächst eine IDE-Platte.\\ Eine zweite virtio-Festplatte im Client hinzufügen, das iso-Image einlegen und den Client booten. Nun wird nach dem Treiber gefragt und man kann ihn von CD installieren. Die virtio-Platte testweise formatieren.\\ Ich verwendete zuerst „virtio-win-0.1-22.iso“ von fedora. Dieses Iso enthält mehrere Treiber. Den XP-Treiber mit der Nummer 51... benutzen. Der auch enthaltene Treiber mit der Nummer 61.63.103.2200 funktioniert zwar mit der zweiten virtio-Platte, aber später nicht mit der boot-Platte. **//Ursache://** der 61...-Treiber gehört zu Win7, wird aber bei automatischer Installation von WinXP eingebunden! Jetzt die erste Festplatte auf virtio umstellen, die zweite Platte wieder löschen und Client booten. Bei der Abfrage der Hardwareerkennung nun den Treiber manuell auswählen und den 51.63.103.2200 Red-Hat-Virtio-Treiber wählen. == LINBO == Man muss nun linbo von sda auf vda umstellen:\\ In der "**''start.conf.''**" des virtuellen Client nun alle Einträge "sda" bzw. "sda1", ... durch "vda" bzw. "vda1" ... ersetzen. Zusätzlich musste ich noch auf den reboot-Workaround wechseln: - In der "**''start.conf.''**" eintragen:... [OS] ... Kernel = reboot ... - In der Datei "**''/var/linbo/pxelinux.cfg/''**" eintragen:... DEFAULT reboot ... **Problem:** Mit dem vda-Partitionen (virtio) ergeben sich andere Partitionsgrößen als mit den sda-Partitionen (IDE) - trotz gleichem Wert in der ''start.conf''. Wenn dadurch die Imagegröße nicht mehr passt, muss man die Partitionsgrößen der vda-Partitionen in der ''start.conf'' minimal erhöhen. ---- ==== Storage: SCSI - Treiber für Windows XP: funktioniert leider nicht ==== **Problem bei SCSI:** Formatieren der SCSI-Platte funktioniert, aber beim Benutzen der SCSI-Platte stürzt die virtuelle Maschine immer ab - scheinbar ein qemu-kvm Fehler. ---- ==== Performance der virtuellen WinXP-Maschine ==== **Hostsystem:** Ubuntu-Server 12.04, 64 Bit, 4GB Ram, 4 Kerne, Intel Core i3-550 3,2 GHz, RAID-Controller 3ware 9650SE- 2LP PCIe SATA-II und HDD mit 1TB S-ATA\\ **Virtuelle XP-Maschine:** 1 Prozessor, 512 MB RAM, Festplatte mit 50 GB im LVM, davon 20GB für WinXP-Partition, virtio-Netzwerkkarte\\ **Virtueller Server:** paedML 5.10, 2 Prozessoren, 2048 MB RAM, Festplatte-virtio-Modus mit 500GB im LVM, virtio-Netzwerkkarte\\ ^ Aktion ^ ^ Zeitdauer\\ virtuelle XP-Maschine ^ Zeitdauer\\ virtuelle XP-Maschine ^ Zeitdauer\\ reale XP-Maschine ^ ^ ^ ^ 1 Prozessor\\ 512 MB RAM\\ HD: IDE-Modus im LVM, 50 GB\\ virtio-Netzwerk ^ 1 Prozessor\\ 512 MB RAM\\ HD: virtio-Modus im LVM, 50 GB\\ virtio-Netzwerk ^ Pentium 4, 2,8 GHz\\ 1 GB RAM\\ HD: IDE mit 40GB\\ Netzwerk 1GB ^ | Image der WinXP Partition erstellen,\\ Größe des cloop am Server: 1,5 GB | gesamt | 1,5 h | 17,5 min | 19 min | | | davon: Nullen der Partition (ca. 16GB) | 45 min | 9:00 min | 7:00 min | | | davon: Image lokal erstellen | 35 min | 5:25 min | 10 min | | | davon: Create hash-table | 2,5 min | 20 sec | 70 sec | | | davon: Image hochladen (ca. 5 MB/s) | 5 min | 1:50 min | 1:00 min | | Sync-Start | mit modprobe 1,5 GB cloop | 90 sec | 30 sec | 40 sec | | rsync download cloop | mit 1,5 GB cloop | 4:00 min | 1:40 min | 1:57 min | | extrakt_fs | 1,5 GB-> 20 GB | 240 min !! | 16 min | 9:30 min | | Disk-Speed | mit DiskSpeed32-Tool\\ für 20 GB Partition | 5500 bis 4500 kB/s | 150000 kB/s | 54000 bis 30000 kB/s (HD)\\ 16500 kB/s (USB-Stick) | | Partition formatieren von WinXP | 2 GB Partition | 35 sec | 5 sec | 65 sec | | Partition formatieren von LINBO | 20 GB Partition | 7:40 min | 15 sec | 13 sec | | Dateien kopieren | Ordner "Programme"\\ mit 110 MB kopieren | 14:20 min (1.Durchlauf)\\ 13:20 min (2.Durchlauf) | 60 sec (1.Durchlauf)\\ 60 sec (2.Durchlauf) | 15 sec (1.Durchlauf)\\ 10 sec (2.Durchlauf) | | | | | | | In der virtuellen Maschine ist die Festplattenperformance einer IDE-Platte nur ca. 1/30 bis 1/10 der einer realen Festplatte, was völlig unbrauchbar ist!