Bug 21994 - Berücksichtigung ungünstiger Geräte-Konfigurationen per Profile
Summary: Berücksichtigung ungünstiger Geräte-Konfigurationen per Profile
Status: CLOSED WONTFIX
Alias: None
Product: UCS
Classification: Unclassified
Component: Virtualization - UVMM
Version: UCS 2.4
Hardware: Other Linux
: P5 enhancement
Target Milestone: ---
Assignee: Bugzilla Mailingliste
QA Contact:
URL:
Keywords:
: 33602 (view as bug list)
Depends on:
Blocks:
 
Reported: 2011-03-25 14:43 CET by Alexander Kläser
Modified: 2023-06-28 10:46 CEST (History)
3 users (show)

See Also:
What kind of report is it?: ---
What type of bug is this?: ---
Who will be affected by this bug?: ---
How will those affected feel about the bug?: ---
User Pain:
Enterprise Customer affected?:
School Customer affected?:
ISV affected?:
Waiting Support:
Flags outvoted (downgraded) after PO Review:
Ticket number:
Bug group (optional):
Customer ID:
Max CVSS v3 score:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Alexander Kläser univentionstaff 2011-03-25 14:43:16 CET
Derzeit findet eine Ausnahmebehandlung ungünstiger Geräte-Konfigurationen im Code statt. So werden bspw. bei einem Xen-Profil, das eine paravirtualisierte Maschine mit vollvirtualisierten Block-Devices vorgibt, nichtdestotrotz paravirtualisierte Festplatten automatisch angelegt.

(a) Es sollten die LDAP-Attribute dahingehend erweitern werden, dass per Profil Netzwerkkarte, Festplatte, CD-Rom-Laufwerk und Diskette (evtl. noch andere?) separat als voll-, bzw. paravirtualisiert konfiguriert werden können. Diese wäre wesentlich transparenter für den Benutzer (es passiert das, was man erwartet) und weniger fehleranfällig für zukünftige Erweiterungen. Damit könnten die Einstellungen des Profils in jedem Fall übernommen und die Sonderbehandlungen aus dem Code entfernt werden.

(b) Das derzeitige UCS-Xen-Profil müsste dann auch in Bezug auf die Virtualisierung der Geräte korrigiert werden.

(c) Hinweise für sinnvolle Konfigurationen von Geräteeinstellungen sollten im Wiki/Handbuch dokumentiert werden.


Im konkreten Fall wurde eine VM auf Grundlage des UCS-64bit-Profils angelegt, jedoch waren Netzwerkkarte, CD-Rom-Laufwerk und Festplatte nachher als paravirtualisiert konfiguriert:
====================
root@xen15:~# udm uvmm/profile list --filter "cn=UCS*" | grep -e DN: -e pvdisk -e pvinterface -e virttech 
DN: cn=UCS 2.4,cn=xen,cn=Profiles,cn=Virtual Machine Manager,dc=xen,dc=local
  pvdisk: None
  pvinterface: None
  virttech: xen-xen
DN: cn=UCS 2.4 (64 Bit),cn=xen,cn=Profiles,cn=Virtual Machine Manager,dc=xen,dc=local
  pvdisk: None
  pvinterface: None
  virttech: xen-xen
DN: cn=UCS 2.4,cn=kvm,cn=Profiles,cn=Virtual Machine Manager,dc=xen,dc=local
  pvdisk: 1
  pvinterface: 1
  virttech: kvm-hvm
DN: cn=UCS 2.4 (64 Bit),cn=kvm,cn=Profiles,cn=Virtual Machine Manager,dc=xen,dc=local
  pvdisk: 1
  pvinterface: 1
  virttech: kvm-hvm
====================

Infos zur VM-Maschine:
====================
root@xen15:~# virsh dumpxml test_ucs_pv_dev_vv
<domain type='xen'>
  <name>test_ucs_pv_dev_vv</name>
  <uuid>77d3bc04-34b2-4cb9-d2f1-6f2048b75b9f</uuid>
  <memory>1048576</memory>
  <currentMemory>1048576</currentMemory>
  <vcpu>1</vcpu>
  <bootloader>/usr/bin/pygrub</bootloader>
  <bootloader_args>-q</bootloader_args>
  <os>
    <type>linux</type>
  </os>
  <clock offset='utc'/>
  <on_poweroff>destroy</on_poweroff>
  <on_reboot>destroy</on_reboot>
  <on_crash>destroy</on_crash>
  <devices>
    <emulator>/usr/lib64/xen/bin/qemu-dm</emulator>
    <disk type='file' device='cdrom'>
      <driver name='tap2' type='aio'/>
      <source file='/var/lib/libvirt/images/ucs_2.4-0-20110302134649-dvd-amd64.iso'/>
      <target dev='xvdb' bus='xen'/>
      <readonly/>
    </disk>
    <disk type='file' device='disk'>
      <driver name='tap2' type='aio'/>
      <source file='/var/lib/libvirt/images/test_ucs_pv_dev_vv-0.raw'/>
      <target dev='xvda' bus='xen'/>
    </disk>
    <interface type='bridge'>
      <mac address='00:16:3e:11:3c:5a'/>
      <source bridge='eth0'/>
      <script path='vif-bridge'/>
      <target dev='vif-1.0'/>
    </interface>
    <console type='pty'>
      <target type='xen' port='0'/>
    </console>
    <input type='mouse' bus='xen'/>
    <graphics type='vnc' port='-1' autoport='yes' listen='0.0.0.0' keymap='de'/>
  </devices>
</domain>
====================


Hier ein Codeschnipsel mit einigen Ausnahmebehandlung, die wegfallen würden:
====================
if driver_pv and drive_type != 'floppy' and disk.type != uvmmn.Disk.TYPE_BLOCK:
    disk.target_bus = 'xen'
# block devices of para-virtual xen instances must use bus xen
if self.domain_virttech.pv() and disk.type == uvmmn.Disk.TYPE_BLOCK:
    disk.target_bus = 'xen'
====================
Datei: umc/modules/univention/management/console/handlers/uvmm/wizards.py
Comment 1 Andreas Büsching univentionstaff 2011-03-28 13:45:10 CEST
(In reply to comment #0)
> Derzeit findet eine Ausnahmebehandlung ungünstiger Geräte-Konfigurationen im
> Code statt. So werden bspw. bei einem Xen-Profil, das eine paravirtualisierte
> Maschine mit vollvirtualisierten Block-Devices vorgibt, nichtdestotrotz
> paravirtualisierte Festplatten automatisch angelegt.
> 
> (a) Es sollten die LDAP-Attribute dahingehend erweitern werden, dass per Profil
> Netzwerkkarte, Festplatte, CD-Rom-Laufwerk und Diskette (evtl. noch andere?)
> separat als voll-, bzw. paravirtualisiert konfiguriert werden können. Diese
> wäre wesentlich transparenter für den Benutzer (es passiert das, was man
> erwartet) und weniger fehleranfällig für zukünftige Erweiterungen. Damit
> könnten die Einstellungen des Profils in jedem Fall übernommen und die
> Sonderbehandlungen aus dem Code entfernt werden.

Das ist so einfach nicht abbildbar. Beispielsweise bei CDROM-Laufwerken hängt es davon ab, wie diese eingebunden werden (ISO-Image als file oder /dev/cdrom als block device), ob dies überhaupt para-virtualisiert eingebunden werden dürfen. Solche Sonderfälle mag es für Festplatten ebenfalls geben.
Comment 2 Stefan Gohmann univentionstaff 2011-03-28 16:04:49 CEST
(In reply to comment #1)
> Das ist so einfach nicht abbildbar. Beispielsweise bei CDROM-Laufwerken hängt
> es davon ab, wie diese eingebunden werden (ISO-Image als file oder /dev/cdrom
> als block device), ob dies überhaupt para-virtualisiert eingebunden werden
> dürfen. Solche Sonderfälle mag es für Festplatten ebenfalls geben.

Dann sollte das Profil diese Möglichkeiten auch abbilden. Beim CDROM Beispiel müsste es dann ja nur eine PV-Einstellung für ISO-Images und eine PV-Einstellung für Block Devices haben.
Comment 3 Stefan Gohmann univentionstaff 2011-06-28 16:44:15 CEST
Wir sollten überlegen, ob wir das zur 3.0 mit umsetzen können.
Comment 4 Philipp Hahn univentionstaff 2013-05-07 15:47:11 CEST
(In reply to comment #3)
> Wir sollten überlegen, ob wir das zur 3.0 mit umsetzen können.

IMHO gehört die ganze Profilverwaltung überarbeitet, denn trotz Profile muß man alle Laufwerke dann doch einzeln hinzufügen.

Was ich mir wünschen würde ist:
1. Profile auswählen
2. Name für die VM eingeben, optional Kontakt, Beschreibung
3. Fertig
3.1 Finish-Button direkt zum Starten
3.2 Weiter-Button zum direkt anpassen, wo man dann direkt im vollständigfen Wizard landet. (vgl. Wizards in Eclipse: Die kann man schon vorzeitig mit "Finish" beenden, oder eben mit "Next" noch mehr™ Einstellungen vornehmen)

Über das Profil sollte dann direkt das 1.,2.,3. Festplatte-, CDROM-, Floppy-Laufwerk angelegt werden, die richtigen Images eingewundern werden, etc.
d.h für ein UCS bekommt man die (aktuelle) UCS-DVD als .iso und für Windows bekommt man die Windows-DVD, die KVM-Virtio-IO CD bzw. das Floppy Image, dazu eine (bzw. mehrere Festplatten wie im Profile), iSCSI-Laufwerke, Netzwerkinterfaces, etc.

Also eigentlich ein Clone einer Template-VM, nur daß eben eine neue Image-Datei für die Festplatte angelegt wird, anstatt eine existierende zu kopieren + daß die Namen angepasst werden.


(In reply to comment #2)
> (In reply to comment #1)
> > Das ist so einfach nicht abbildbar....
> 
> Dann sollte das Profil diese Möglichkeiten auch abbilden.

Das Beispiel mit dem CD-ROM ist noch harmlos, die Zusammenhänge sind noch deutlich komplizierter. (kein booten von PV-CDROMs, überlappung von hdX mit xdvX, ...) Und bevor ich eue Domain-specific-Language entwerfen, über die mal all diese fiesen kleinen Abhängigkeiten beschreiben kann, sollten wir eher gleich Python-Code im LDAP-Profile speichern ...
Comment 5 Alexander Kläser univentionstaff 2013-11-28 13:35:04 CET
*** Bug 33602 has been marked as a duplicate of this bug. ***
Comment 6 Stefan Gohmann univentionstaff 2016-04-25 07:52:34 CEST
This issue has been filed against UCS 2.4.

UCS 2.4 is out of maintenance and many UCS components have vastly changed in
later releases. Thus, this issue is now being closed.

If this issue still occurs in newer UCS versions, please use "Clone this bug".
In this case please provide detailed information on how this issue is affecting
you.