Bug 18611 - UVMM-Daemon: Erstellen von Festplatten-Images
UVMM-Daemon: Erstellen von Festplatten-Images
Status: CLOSED FIXED
Product: UCS
Classification: Unclassified
Component: Virtualization - UVMM
UCS 2.3
Other Linux
: P5 normal (vote)
: UCS 2.4
Assigned To: Andreas Büsching
Tim Petersen
:
Depends on: 18737
Blocks: 18534 18612 18870 19045
  Show dependency treegraph
 
Reported: 2010-06-09 12:00 CEST by Andreas Büsching
Modified: 2010-08-31 13:21 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):
Max CVSS v3 score:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Andreas Büsching univentionstaff 2010-06-09 12:00:06 CEST
Der UVMM sollte die Möglichkeit bieten (leere) Festplatten-Images zu erstellen. Dafür ist eine einfache Pool/Storage Verwaltung notwendig.
Comment 1 Andreas Büsching univentionstaff 2010-06-30 08:57:15 CEST
Diese Fähigkeit wurden im Rahmen der Implementierung für die Wizards ausgebaut. Bei Erstellen von Instanz soll es möglich sein neue Festplatten anzulegen. Das ist also umgesetzt.
Comment 2 Andreas Büsching univentionstaff 2010-06-30 08:57:32 CEST
und zu
Comment 3 Philipp Hahn univentionstaff 2010-08-04 15:08:40 CEST
Im MemorySize-Parser war noch ein Fehler: Er hat zwingend eine Komma-Zahl erwatet. Fixed in 0.9.76-3
Comment 4 Tim Petersen univentionstaff 2010-08-06 12:06:30 CEST
Folgendes ist mir bisher aufgefallen:

das Anlegen eines zu großen Festplattenimages funktioniert ohne Überprüfung (im Test 5TB) und wurde angelegt.

Im Anschluss wird mir in der UMC die Größe als "unbekannt" angezeigt.

via virsh:
root@member-kvm:~# virsh vol-info /var/lib/libvirt/images/winxp-2-2.img
Name:           winxp-2-2.img
Type:           file
Capacity:       0,00
Allocation:     0,00

Nach kurzen Tests stellt sich heraus, dass dieses Phänomen ab 2TB auftritt, 1,9TB werden noch "richtig" angelegt.
Sollte es sich hierbei um eine eingebaute Limitierung auf seiten von Libwirt handeln, wäre es evt. auch wünschenswert, dass dies direkt im UMC-Modul abgefangen wird (wie generell ein Image, welches "zu groß" ist - d.h. es übersteigt den physikalisch verfügbaren Bereich)

Desweiteren "merkt" sich das Namensfeld im Wizard den Namen des zuletzt angelegten Images - hier wäre zu klären, ob dies gewünscht ist.
Comment 5 Andreas Büsching univentionstaff 2010-08-06 17:13:31 CEST
(In reply to comment #4)
> Folgendes ist mir bisher aufgefallen:
> 
> das Anlegen eines zu großen Festplattenimages funktioniert ohne Überprüfung (im
> Test 5TB) und wurde angelegt.
> 
> Im Anschluss wird mir in der UMC die Größe als "unbekannt" angezeigt.
> 
> via virsh:
> root@member-kvm:~# virsh vol-info /var/lib/libvirt/images/winxp-2-2.img
> Name:           winxp-2-2.img
> Type:           file
> Capacity:       0,00
> Allocation:     0,00
> 
> Nach kurzen Tests stellt sich heraus, dass dieses Phänomen ab 2TB auftritt,
> 1,9TB werden noch "richtig" angelegt.
> Sollte es sich hierbei um eine eingebaute Limitierung auf seiten von Libwirt
> handeln, wäre es evt. auch wünschenswert, dass dies direkt im UMC-Modul
> abgefangen wird (wie generell ein Image, welches "zu groß" ist - d.h. es
> übersteigt den physikalisch verfügbaren Bereich)

Dazu habe ich Bug #19281 angelegt.
Comment 6 Andreas Büsching univentionstaff 2010-08-06 18:29:18 CEST
(In reply to comment #4)
> Desweiteren "merkt" sich das Namensfeld im Wizard den Namen des zuletzt
> angelegten Images - hier wäre zu klären, ob dies gewünscht ist.

Das ist jetzt korrigiert
Comment 7 Tim Petersen univentionstaff 2010-08-09 08:35:40 CEST
Ich kann auf meiner heute morgen aktualisierten Maschine einer Instanz kein Laufwerk hinzufügen.

Traceback (most recent call last):
  File "/usr/lib/python2.4/site-packages/univention/management/console/handlers/__init__.py", line 160, in execute
    func( object )
  File "/usr/lib/python2.4/site-packages/univention/management/console/handlers/uvmm/__init__.py", line 1008, in uvmm_drive_create
    self.uvmm.next_drive_name( node_uri, object )
TypeError: next_drive_name() takes at least 4 arguments (3 given)
Comment 8 Andreas Büsching univentionstaff 2010-08-09 14:10:22 CEST
(In reply to comment #7)
> Ich kann auf meiner heute morgen aktualisierten Maschine einer Instanz kein
> Laufwerk hinzufügen.
> 
> Traceback (most recent call last):
>   File
> "/usr/lib/python2.4/site-packages/univention/management/console/handlers/__init__.py",
> line 160, in execute
>     func( object )
>   File
> "/usr/lib/python2.4/site-packages/univention/management/console/handlers/uvmm/__init__.py",
> line 1008, in uvmm_drive_create
>     self.uvmm.next_drive_name( node_uri, object )
> TypeError: next_drive_name() takes at least 4 arguments (3 given)

Sollte wieder gehen. Das hing mit Anpassungen aus einem anderen Bug zusammen.
Comment 9 Tim Petersen univentionstaff 2010-08-10 10:26:28 CEST
Beim Hinzufügen von Plattenimages > 1.9TB:

Traceback (most recent call last):
File "/usr/share/univention-webui/modules/requests.py", line 273, in run_request self.dialog.init(0,xmlout,xmlout.documentElement)
File "./unidialog.py", line 77, in init uniconf.init(self,a,b,c)
File "/usr/share/univention-webui/modules/uniconf.py", line 185, in init obj.init(input,xmlob,self.find_id(node,obj.id))
File "/usr/share/univention-webui/modules/uniconf.py", line 185, in init obj.init(input,xmlob,self.find_id(node,obj.id))
File "/usr/share/univention-webui/modules/table.py", line 48, in init uniconf.init(self,input,xmlob,node)
File "/usr/share/univention-webui/modules/uniconf.py", line 185, in init obj.init(input,xmlob,self.find_id(node,obj.id))
File "/usr/share/univention-webui/modules/table.py", line 48, in init uniconf.init(self,input,xmlob,node)
File "/usr/share/univention-webui/modules/uniconf.py", line 185, in init obj.init(input,xmlob,self.find_id(node,obj.id))
File "/usr/share/univention-webui/modules/table.py", line 48, in init uniconf.init(self,input,xmlob,node)
File "/usr/share/univention-webui/modules/uniconf.py", line 185, in init obj.init(input,xmlob,self.find_id(node,obj.id))
File "/usr/share/univention-webui/modules/table.py", line 48, in init uniconf.init(self,input,xmlob,node)
File "/usr/share/univention-webui/modules/uniconf.py", line 185, in init obj.init(input,xmlob,self.find_id(node,obj.id))
File "/usr/share/univention-webui/modules/table.py", line 48, in init uniconf.init(self,input,xmlob,node)
File "/usr/share/univention-webui/modules/uniconf.py", line 185, in init obj.init(input,xmlob,self.find_id(node,obj.id))
File "/usr/share/univention-webui/modules/table.py", line 48, in init uniconf.init(self,input,xmlob,node)
File "/usr/share/univention-webui/modules/uniconf.py", line 185, in init obj.init(input,xmlob,self.find_id(node,obj.id))
File "/usr/share/univention-webui/modules/table.py", line 48, in init uniconf.init(self,input,xmlob,node)
File "/usr/share/univention-webui/modules/uniconf.py", line 185, in init obj.init(input,xmlob,self.find_id(node,obj.id))
File "/usr/share/univention-webui/modules/table.py", line 48, in init uniconf.init(self,input,xmlob,node)
File "/usr/share/univention-webui/modules/uniconf.py", line 185, in init obj.init(input,xmlob,self.find_id(node,obj.id))
File "/usr/share/univention-webui/modules/table.py", line 48, in init uniconf.init(self,input,xmlob,node)
File "/usr/share/univention-webui/modules/uniconf.py", line 185, in init obj.init(input,xmlob,self.find_id(node,obj.id))
File "/usr/share/univention-webui/modules/table.py", line 48, in init uniconf.init(self,input,xmlob,node)
File "/usr/share/univention-webui/modules/uniconf.py", line 185, in init obj.init(input,xmlob,self.find_id(node,obj.id))
File "/usr/share/univention-webui/modules/table.py", line 48, in init uniconf.init(self,input,xmlob,node)
File "/usr/share/univention-webui/modules/uniconf.py", line 185, in init obj.init(input,xmlob,self.find_id(node,obj.id))
File "/usr/share/univention-webui/modules/table.py", line 48, in init uniconf.init(self,input,xmlob,node)
File "/usr/share/univention-webui/modules/uniconf.py", line 178, in init if not id.has_key(obj.name):
AttributeError: 'NoneType' object has no attribute 'name'
Comment 10 Andreas Büsching univentionstaff 2010-08-10 10:31:52 CEST
(In reply to comment #9)
> id.has_key(obj.name):
> AttributeError: 'NoneType' object has no attribute 'name'

Bitte immer den UVMMd Log anhängen.
Comment 11 Tim Petersen univentionstaff 2010-08-10 10:52:52 CEST
(In reply to comment #10)
> (In reply to comment #9)
> > id.has_key(obj.name):
> > AttributeError: 'NoneType' object has no attribute 'name'
> 
> Bitte immer den UVMMd Log anhängen.

entsprechender Auszug:

2010-08-10 10:51:32,013 - uvmmd.command - DEBUG - NODE_QUERY qemu://kvmmaster.univention.kvm/system
2010-08-10 10:51:32,015 - uvmmd.command - DEBUG - DOMAIN_DEFINE qemu://kvmmaster.univention.kvm/system <univention.uvmm.protocol.Data_Domain object at 0x234ce90>
2010-08-10 10:51:32,016 - uvmmd.node - DEBUG - Searching for template: arch=i686 domain_type=kvm os_type=hvm
2010-08-10 10:51:32,016 - uvmmd.node - DEBUG - template: DomainTemplate(arch=i686 dom_type=qemu os_type=hvm): /usr/bin/kvm, None, [u'pc-0.12', u'pc', u'pc-0.11', u'pc-0.10', u'isapc'], ['pae', u'acpi', u'apic']
2010-08-10 10:51:32,016 - uvmmd.node - DEBUG - template: DomainTemplate(arch=i686 dom_type=kvm os_type=hvm): /usr/bin/kvm, None, [u'pc-0.12', u'pc', u'pc-0.11', u'pc-0.10', u'isapc'], ['pae', u'acpi', u'apic']
2010-08-10 10:51:32,016 - uvmmd.node - DEBUG - DISKS: [<univention.uvmm.node.Disk object at 0x249bc90>]
2010-08-10 10:51:32,016 - uvmmd.node - DEBUG - DISK: Disk(disk,file): /var/lib/libvirt/images/winxp-7-0.img, hda
2010-08-10 10:51:32,017 - uvmmd.storage - INFO - create_storage_volume: libvirt error (50): Storage volume not found: no storage vol with matching path
2010-08-10 10:51:32,021 - uvmmd.storage - ERROR - cannot create path '/var/lib/libvirt/images/winxp-7-0.img': File too large
2010-08-10 10:51:32,021 - uvmmd.unix - WARNING - [12] Error doing command "DOMAIN_DEFINE": Error creating storage volume "/var/lib/libvirt/images/winxp-7-0.img" for "winxp-7": cannot create path '/var/lib/libvirt/images/winxp-7-0.img': File too large
Comment 12 Andreas Büsching univentionstaff 2010-08-10 11:30:01 CEST
(In reply to comment #11)
> "DOMAIN_DEFINE": Error creating storage volume
> "/var/lib/libvirt/images/winxp-7-0.img" for "winxp-7": cannot create path
> '/var/lib/libvirt/images/winxp-7-0.img': File too large

Das wird jetzt auch im Domain Wizard abgefangen. Da der genaue Fehler dem UMC Modul nicht bekannt ist, wird die Liste aller erzeugten Laufwerke gelöst und es müssen erneut die Laufwerke definiert werden.
Comment 13 Tim Petersen univentionstaff 2010-08-10 12:17:46 CEST
(In reply to comment #12)
> (In reply to comment #11)
> > "DOMAIN_DEFINE": Error creating storage volume
> > "/var/lib/libvirt/images/winxp-7-0.img" for "winxp-7": cannot create path
> > '/var/lib/libvirt/images/winxp-7-0.img': File too large
> 
> Das wird jetzt auch im Domain Wizard abgefangen. Da der genaue Fehler dem UMC
> Modul nicht bekannt ist, wird die Liste aller erzeugten Laufwerke gelöst und es
> müssen erneut die Laufwerke definiert werden.

verified
Comment 14 Stefan Gohmann univentionstaff 2010-08-31 13:21:04 CEST
UCS 2.4 wurde veröffentlicht. Sollte der hier beschriebene Bug mit einer
neueren Version von UCS erneut auftreten, so sollte der Bug dupliziert werden:
"Clone This Bug".