[pve-devel] Proxmox VE 3.0 released!
Hi all, We just released Proxmox VE 3.0. Its based on the great Debian 7.0 release (Wheezy) and introduces a great new feature set: http://pve.proxmox.com/wiki/VM_Templates_and_Clones Under the hood, many improvements and optimizations are done, most important is the replacement of Apache2 by our own event driven API server. A big Thank-you to our active community for all feedback, testing, bug reporting and patch submissions. Release notes http://pve.proxmox.com/wiki/Roadmap#Proxmox_VE_3.0 Download http://www.proxmox.com/downloads Upgrade from any 2.3 to 3.0 http://pve.proxmox.com/wiki/Upgrade_from_2.3_to_3.0 Install Proxmox VE on Debian Wheezy http://pve.proxmox.com/wiki/Install_Proxmox_VE_on_Debian_Wheezy Best Regards, Martin Maurer mar...@proxmox.com http://www.proxmox.com ___ pve-devel mailing list pve-devel@pve.proxmox.com http://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
Re: [pve-devel] pve: cloning
I can reproduce here too with full clone: (only with nexenta plugin in the game) Are you still running 2.3? I ask because the nexenta plugin does not work at all on Wheezy. I need to disable the verify_hostname option for https: iff --git a/PVE/Storage/NexentaPlugin.pm b/PVE/Storage/NexentaPlugin.pm index 4c0e14a..3422b02 100644 --- a/PVE/Storage/NexentaPlugin.pm +++ b/PVE/Storage/NexentaPlugin.pm @@ -28,7 +28,7 @@ sub nexenta_request { my $token = encode_base64($scfg-{login}:$scfg-{password}); $req-header(Authorization = Basic $token); -my $ua = LWP::UserAgent-new; # You might want some options here +my $ua = LWP::UserAgent-new(ssl_opts = { verify_hostname = 0 }); my $res = $ua-request($req); die $res-content if !$res-is_success; ___ pve-devel mailing list pve-devel@pve.proxmox.com http://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
[pve-devel] roadmap for proxmox 3.1 ?
Hi, now that proxmox 3.0 has been released (Congrats Dietmar Martin) :), maybe can we post some ideas for new features for proxmox 3.1 ? I don't known the target date for next release ? (3month ? 6 month ?) Somes ideas here : (by priority for my own usage) - live storage migration. (should be easy, we have already the drive-mirror code) - cpu-add qmp command - add hyper-v option (cpu flags) for windows vm. (this need next openvz-kernel, currently in testing) - dhcp server implementation + nat + routing - qemu-ga - spice ??? - glusterfs storage driver ___ pve-devel mailing list pve-devel@pve.proxmox.com http://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
Re: [pve-devel] roadmap for proxmox 3.1 ?
maybe can we post some ideas for new features for proxmox 3.1 ? Yes. Maybe we can use pve-manager/README to track all those ideas? That way we have the list in git. What do you think? I don't known the target date for next release ? (3month ? 6 month ?) I guess something in between ;-) Depends on features, and that is not decided so far. Somes ideas here : (by priority for my own usage) - live storage migration. (should be easy, we have already the drive-mirror code) - cpu-add qmp command - add hyper-v option (cpu flags) for windows vm. (this need next openvz- kernel, currently in testing) - dhcp server implementation + nat + routing - qemu-ga - spice ??? - glusterfs storage driver ___ pve-devel mailing list pve-devel@pve.proxmox.com http://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
Re: [pve-devel] roadmap for proxmox 3.1 ?
Yes. Maybe we can use pve-manager/README to track all those ideas? That way we have the list in git. What do you think? Yes sure, good idea, I'll send a patch :) (I also forgot update to extjs 4.2, but I can't help for this, sorry) - Mail original - De: Dietmar Maurer diet...@proxmox.com À: Alexandre DERUMIER aderum...@odiso.com, pve-devel@pve.proxmox.com Envoyé: Vendredi 24 Mai 2013 15:04:03 Objet: RE: [pve-devel] roadmap for proxmox 3.1 ? maybe can we post some ideas for new features for proxmox 3.1 ? Yes. Maybe we can use pve-manager/README to track all those ideas? That way we have the list in git. What do you think? I don't known the target date for next release ? (3month ? 6 month ?) I guess something in between ;-) Depends on features, and that is not decided so far. Somes ideas here : (by priority for my own usage) - live storage migration. (should be easy, we have already the drive-mirror code) - cpu-add qmp command - add hyper-v option (cpu flags) for windows vm. (this need next openvz- kernel, currently in testing) - dhcp server implementation + nat + routing - qemu-ga - spice ??? - glusterfs storage driver ___ pve-devel mailing list pve-devel@pve.proxmox.com http://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
Re: [pve-devel] pve: cloning
I am unable to reproduce it: # qm config 105 bootdisk: virtio0 cores: 1 ide2: none,media=cdrom memory: 512 name: nextest net0: virtio=AE:DE:EF:50:62:58,bridge=vmbr0 ostype: l26 sockets: 1 virtio0: nex1:vm-105-disk-1,size=1G I can make a full clone without problems. Please can you post your VM config? -Original Message- From: pve-devel-boun...@pve.proxmox.com [mailto:pve-devel- boun...@pve.proxmox.com] On Behalf Of Alexandre DERUMIER Sent: Freitag, 24. Mai 2013 06:16 To: Michael Rasmussen Cc: pve-devel@pve.proxmox.com Subject: Re: [pve-devel] pve: cloning I can reproduce here too with full clone: (only with nexenta plugin in the game) (Works fine in command line, don't work only with gui) create full clone of drive ide0 (nexentatestapi:vm-277-disk-1) TASK ERROR: clone failed: unable to create image: Insecure dependency in exec while running with -T switch at /usr/share/perl/5.14/IPC/Open3.pm line 186. nexenta - local : fail on alloc_image (qemu-img create) rbd - nexenta : ok I don't known exactly how tainted mode work, we have already fixed a bug like this here: https://git.proxmox.com/?p=pve- storage.git;a=blobdiff;f=PVE/Storage/Plugin.pm;h=462d9e1e21d40d66b8545 aadfd46669a10b986d8;hp=de2818cd62d0aab634258d27c54aba26ec123ed7;hb =7fc619d5d31c2eba2cfab6f1fcf6cb9dca7ddf55;hpb=32437ed2791882342928e 081bcbffeb9c70cdc59 - Mail original - De: Michael Rasmussen m...@datanom.net À: Michael Rasmussen m...@datanom.net Cc: Alexandre DERUMIER aderum...@odiso.com, pve- de...@pve.proxmox.com Envoyé: Vendredi 24 Mai 2013 01:33:58 Objet: Re: [pve-devel] pve: cloning On Thu, 23 May 2013 09:16:38 +0200 Michael Rasmussen m...@datanom.net wrote: Using the clone features from the nexenta-plugin does not work either: create full clone of drive virtio0 (nexenta_iscsi:vm-101-disk-1) TASK ERROR: clone failed: unable to create image: Insecure dependency in exec while running with -T switch at /usr/share/perl/5.14/IPC/Open3.pm line 186. I have found out what is causing the above error. Every time you try to make a clone where the target for the clone is a different storage than the storage of the source the error above is thrown. Following use cases have been tried with the same result: source target result nexenta zfs fails nexenta local fails nexenta nexenta success zfs nexenta fails zfs local fails zfs zfs success seems that command 'exec' in IPC/Open3.pm cannot be executed on a tainted command which normally is seen when path is not untainted. -- Hilsen/Regards Michael Rasmussen Get my public GnuPG keys: michael at rasmussen dot cc http://pgp.mit.edu:11371/pks/lookup?op=getsearch=0xD3C9A00E mir at datanom dot net http://pgp.mit.edu:11371/pks/lookup?op=getsearch=0xE501F51C mir at miras dot org http://pgp.mit.edu:11371/pks/lookup?op=getsearch=0xE3E80917 -- Your step will soil many countries. ___ pve-devel mailing list pve-devel@pve.proxmox.com http://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel ___ pve-devel mailing list pve-devel@pve.proxmox.com http://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
Re: [pve-devel] roadmap for proxmox 3.1 ?
On 05-24-2013 14:41, Alexandre DERUMIER wrote: - live storage migration. (should be easy, we have already the drive-mirror code) - cpu-add qmp command - add hyper-v option (cpu flags) for windows vm. (this need next openvz-kernel, currently in testing) - dhcp server implementation + nat + routing - qemu-ga - spice ??? - glusterfs storage driver Add this to list just after live storage migration: - Activate currently deactivated storage plugins in gui which is considered stable - Add my zfs plugin ;-) Regarding my zfs plugin. It is completed and seems to function well. I will post a patch to this list later this evening. I would be nice if someone would take some time testing it. -- Hilsen/regards Michael Rasmussenattachment: vcard.vcf___ pve-devel mailing list pve-devel@pve.proxmox.com http://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
Re: [pve-devel] pve: cloning
Are we using the same version of perl? My test installation is a bare-bones install of 3.0rc2. I will upgrade later today to see if this changes anything. Do I need to make a reinstall of 3.0 or will apt-get update apt-get upgrade be sufficient? On 05-24-2013 15:11, Dietmar Maurer wrote: I am unable to reproduce it: # qm config 105 bootdisk: virtio0 cores: 1 ide2: none,media=cdrom memory: 512 name: nextest net0: virtio=AE:DE:EF:50:62:58,bridge=vmbr0 ostype: l26 sockets: 1 virtio0: nex1:vm-105-disk-1,size=1G I can make a full clone without problems. Please can you post your VM config? -Original Message- From: pve-devel-boun...@pve.proxmox.com [mailto:pve-devel- boun...@pve.proxmox.com] On Behalf Of Alexandre DERUMIER Sent: Freitag, 24. Mai 2013 06:16 To: Michael Rasmussen Cc: pve-devel@pve.proxmox.com Subject: Re: [pve-devel] pve: cloning I can reproduce here too with full clone: (only with nexenta plugin in the game) (Works fine in command line, don't work only with gui) create full clone of drive ide0 (nexentatestapi:vm-277-disk-1) TASK ERROR: clone failed: unable to create image: Insecure dependency in exec while running with -T switch at /usr/share/perl/5.14/IPC/Open3.pm line 186. nexenta - local : fail on alloc_image (qemu-img create) rbd - nexenta : ok I don't known exactly how tainted mode work, we have already fixed a bug like this here: https://git.proxmox.com/?p=pve- storage.git;a=blobdiff;f=PVE/Storage/Plugin.pm;h=462d9e1e21d40d66b8545 aadfd46669a10b986d8;hp=de2818cd62d0aab634258d27c54aba26ec123ed7;hb =7fc619d5d31c2eba2cfab6f1fcf6cb9dca7ddf55;hpb=32437ed2791882342928e 081bcbffeb9c70cdc59 - Mail original - De: Michael Rasmussen m...@datanom.net À: Michael Rasmussen m...@datanom.net Cc: Alexandre DERUMIER aderum...@odiso.com, pve- de...@pve.proxmox.com Envoyé: Vendredi 24 Mai 2013 01:33:58 Objet: Re: [pve-devel] pve: cloning On Thu, 23 May 2013 09:16:38 +0200 Michael Rasmussen m...@datanom.net wrote: Using the clone features from the nexenta-plugin does not work either: create full clone of drive virtio0 (nexenta_iscsi:vm-101-disk-1) TASK ERROR: clone failed: unable to create image: Insecure dependency in exec while running with -T switch at /usr/share/perl/5.14/IPC/Open3.pm line 186. I have found out what is causing the above error. Every time you try to make a clone where the target for the clone is a different storage than the storage of the source the error above is thrown. Following use cases have been tried with the same result: source target result nexenta zfs fails nexenta local fails nexenta nexenta success zfs nexenta fails zfs local fails zfs zfs success seems that command 'exec' in IPC/Open3.pm cannot be executed on a tainted command which normally is seen when path is not untainted. -- Hilsen/Regards Michael Rasmussen Get my public GnuPG keys: michael at rasmussen dot cc http://pgp.mit.edu:11371/pks/lookup?op=getsearch=0xD3C9A00E mir at datanom dot net http://pgp.mit.edu:11371/pks/lookup?op=getsearch=0xE501F51C mir at miras dot org http://pgp.mit.edu:11371/pks/lookup?op=getsearch=0xE3E80917 -- Your step will soil many countries. ___ pve-devel mailing list pve-devel@pve.proxmox.com http://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel !DSPAM:519f6703187841968616024! -- Hilsen/regards Michael Rasmussenattachment: vcard.vcf___ pve-devel mailing list pve-devel@pve.proxmox.com http://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
Re: [pve-devel] pve: cloning
bootdisk: ide0 cores: 1 ide0: nexentatestapi:vm-277-disk-1,size=32G ide2: none,media=cdrom memory: 512 name: test net0: e1000=8A:23:4D:FB:B0:3A,bridge=vmbr0 ostype: l26 sockets: 1 with gui only: create full clone of drive ide0 (nexentatestapi:vm-277-disk-1) TASK ERROR: clone failed: unable to create image: Insecure dependency in exec while running with -T switch at /usr/share/perl/5.14/IPC/Open3.pm line 187. qm clone command line works fine - Mail original - De: Dietmar Maurer diet...@proxmox.com À: Alexandre DERUMIER aderum...@odiso.com, Michael Rasmussen m...@datanom.net Cc: pve-devel@pve.proxmox.com Envoyé: Vendredi 24 Mai 2013 15:11:28 Objet: RE: [pve-devel] pve: cloning I am unable to reproduce it: # qm config 105 bootdisk: virtio0 cores: 1 ide2: none,media=cdrom memory: 512 name: nextest net0: virtio=AE:DE:EF:50:62:58,bridge=vmbr0 ostype: l26 sockets: 1 virtio0: nex1:vm-105-disk-1,size=1G I can make a full clone without problems. Please can you post your VM config? -Original Message- From: pve-devel-boun...@pve.proxmox.com [mailto:pve-devel- boun...@pve.proxmox.com] On Behalf Of Alexandre DERUMIER Sent: Freitag, 24. Mai 2013 06:16 To: Michael Rasmussen Cc: pve-devel@pve.proxmox.com Subject: Re: [pve-devel] pve: cloning I can reproduce here too with full clone: (only with nexenta plugin in the game) (Works fine in command line, don't work only with gui) create full clone of drive ide0 (nexentatestapi:vm-277-disk-1) TASK ERROR: clone failed: unable to create image: Insecure dependency in exec while running with -T switch at /usr/share/perl/5.14/IPC/Open3.pm line 186. nexenta - local : fail on alloc_image (qemu-img create) rbd - nexenta : ok I don't known exactly how tainted mode work, we have already fixed a bug like this here: https://git.proxmox.com/?p=pve- storage.git;a=blobdiff;f=PVE/Storage/Plugin.pm;h=462d9e1e21d40d66b8545 aadfd46669a10b986d8;hp=de2818cd62d0aab634258d27c54aba26ec123ed7;hb =7fc619d5d31c2eba2cfab6f1fcf6cb9dca7ddf55;hpb=32437ed2791882342928e 081bcbffeb9c70cdc59 - Mail original - De: Michael Rasmussen m...@datanom.net À: Michael Rasmussen m...@datanom.net Cc: Alexandre DERUMIER aderum...@odiso.com, pve- de...@pve.proxmox.com Envoyé: Vendredi 24 Mai 2013 01:33:58 Objet: Re: [pve-devel] pve: cloning On Thu, 23 May 2013 09:16:38 +0200 Michael Rasmussen m...@datanom.net wrote: Using the clone features from the nexenta-plugin does not work either: create full clone of drive virtio0 (nexenta_iscsi:vm-101-disk-1) TASK ERROR: clone failed: unable to create image: Insecure dependency in exec while running with -T switch at /usr/share/perl/5.14/IPC/Open3.pm line 186. I have found out what is causing the above error. Every time you try to make a clone where the target for the clone is a different storage than the storage of the source the error above is thrown. Following use cases have been tried with the same result: source target result nexenta zfs fails nexenta local fails nexenta nexenta success zfs nexenta fails zfs local fails zfs zfs success seems that command 'exec' in IPC/Open3.pm cannot be executed on a tainted command which normally is seen when path is not untainted. -- Hilsen/Regards Michael Rasmussen Get my public GnuPG keys: michael at rasmussen dot cc http://pgp.mit.edu:11371/pks/lookup?op=getsearch=0xD3C9A00E mir at datanom dot net http://pgp.mit.edu:11371/pks/lookup?op=getsearch=0xE501F51C mir at miras dot org http://pgp.mit.edu:11371/pks/lookup?op=getsearch=0xE3E80917 -- Your step will soil many countries. ___ pve-devel mailing list pve-devel@pve.proxmox.com http://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel ___ pve-devel mailing list pve-devel@pve.proxmox.com http://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
Re: [pve-devel] pve: cloning
I am sorry, I cannot reproduce. See 'man perlsec' for an intro to 'taint mode' Maybe you can further debug yourself. -Original Message- From: Alexandre DERUMIER [mailto:aderum...@odiso.com] Sent: Freitag, 24. Mai 2013 15:20 To: Dietmar Maurer Cc: pve-devel@pve.proxmox.com; Michael Rasmussen Subject: Re: [pve-devel] pve: cloning bootdisk: ide0 cores: 1 ide0: nexentatestapi:vm-277-disk-1,size=32G ide2: none,media=cdrom memory: 512 name: test net0: e1000=8A:23:4D:FB:B0:3A,bridge=vmbr0 ostype: l26 sockets: 1 with gui only: create full clone of drive ide0 (nexentatestapi:vm-277-disk-1) TASK ERROR: clone failed: unable to create image: Insecure dependency in exec while running with -T switch at /usr/share/perl/5.14/IPC/Open3.pm line 187. qm clone command line works fine ___ pve-devel mailing list pve-devel@pve.proxmox.com http://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
[pve-devel] nexenta plugin question
I have a VM 105 using a single disk on nexenta storage: # pvesm list nex1 nex1:vm-105-disk-1 raw 1073741824 105 After I convert to template I get: # pvesm list nex1 nex1:vm-105-disk-1 raw 1073741824 105 nex1:vm-105-disk-1/base-105-disk-1 raw 1073741824 105 I thought we should hide the original volume? Also, It should not be possible to delete nex1:vm-105-disk-1? ___ pve-devel mailing list pve-devel@pve.proxmox.com http://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
Re: [pve-devel] roadmap for proxmox 3.1 ?
On Fri, 24 May 2013 15:30:09 +0200 (CEST) Alexandre DERUMIER aderum...@odiso.com wrote: I would be nice if someone would take some time testing it. I'll try to build an test server next week to test. which solaris distrib do you use? Omnios: http://omnios.omniti.com/ but OpenIndiana and Oracle Solaris (and express + pkg install solaris/storage-server) should work also. -- Hilsen/Regards Michael Rasmussen Get my public GnuPG keys: michael at rasmussen dot cc http://pgp.mit.edu:11371/pks/lookup?op=getsearch=0xD3C9A00E mir at datanom dot net http://pgp.mit.edu:11371/pks/lookup?op=getsearch=0xE501F51C mir at miras dot org http://pgp.mit.edu:11371/pks/lookup?op=getsearch=0xE3E80917 -- You are here: *** *** * *** * *** * But you're not all there. signature.asc Description: PGP signature ___ pve-devel mailing list pve-devel@pve.proxmox.com http://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
Re: [pve-devel] nexenta plugin question
On Fri, 24 May 2013 14:22:45 + Dietmar Maurer diet...@proxmox.com wrote: I have a VM 105 using a single disk on nexenta storage: # pvesm list nex1 nex1:vm-105-disk-1 raw 1073741824 105 After I convert to template I get: # pvesm list nex1 nex1:vm-105-disk-1 raw 1073741824 105 nex1:vm-105-disk-1/base-105-disk-1 raw 1073741824 105 I thought we should hide the original volume? Also, It should not be possible to delete nex1:vm-105-disk-1? This is something nexenta specific since nexenta does not provide a volume rename. Since other solaris based distribution provides this feature it is more clean in the zfsplugin: nex1:vm-105-disk-1 raw 1073741824 105 nex1:base-105-disk-1 raw 1073741824 105 Also since the clone is a real zfs clone deleting nex1:vm-105-disk-1 will fail with the message: Cannot delete nex1:vm-105-disk-1 because of depending clones. So to delete nex1:vm-105-disk-1 will require deletion of nex1:base-105-disk-1 first. -- Hilsen/Regards Michael Rasmussen Get my public GnuPG keys: michael at rasmussen dot cc http://pgp.mit.edu:11371/pks/lookup?op=getsearch=0xD3C9A00E mir at datanom dot net http://pgp.mit.edu:11371/pks/lookup?op=getsearch=0xE501F51C mir at miras dot org http://pgp.mit.edu:11371/pks/lookup?op=getsearch=0xE3E80917 -- Hodie natus est radici frater. [ Unto the root is born a brother ] signature.asc Description: PGP signature ___ pve-devel mailing list pve-devel@pve.proxmox.com http://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
Re: [pve-devel] pve: cloning
I am sorry, I cannot reproduce. See 'man perlsec' for an intro to 'taint mode' Maybe you can further debug yourself. Sure, no problem, I'll look at this next week. - Mail original - De: Dietmar Maurer diet...@proxmox.com À: Alexandre DERUMIER aderum...@odiso.com Cc: pve-devel@pve.proxmox.com, Michael Rasmussen m...@datanom.net Envoyé: Vendredi 24 Mai 2013 15:31:44 Objet: RE: [pve-devel] pve: cloning I am sorry, I cannot reproduce. See 'man perlsec' for an intro to 'taint mode' Maybe you can further debug yourself. -Original Message- From: Alexandre DERUMIER [mailto:aderum...@odiso.com] Sent: Freitag, 24. Mai 2013 15:20 To: Dietmar Maurer Cc: pve-devel@pve.proxmox.com; Michael Rasmussen Subject: Re: [pve-devel] pve: cloning bootdisk: ide0 cores: 1 ide0: nexentatestapi:vm-277-disk-1,size=32G ide2: none,media=cdrom memory: 512 name: test net0: e1000=8A:23:4D:FB:B0:3A,bridge=vmbr0 ostype: l26 sockets: 1 with gui only: create full clone of drive ide0 (nexentatestapi:vm-277-disk-1) TASK ERROR: clone failed: unable to create image: Insecure dependency in exec while running with -T switch at /usr/share/perl/5.14/IPC/Open3.pm line 187. qm clone command line works fine ___ pve-devel mailing list pve-devel@pve.proxmox.com http://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
Re: [pve-devel] pve: cloning
On Fri, 24 May 2013 17:11:12 +0200 (CEST) Alexandre DERUMIER aderum...@odiso.com wrote: I am sorry, I cannot reproduce. See 'man perlsec' for an intro to 'taint mode' Maybe you can further debug yourself. Sure, no problem, I'll look at this next week. I have just upgraded my 3.0rc2 to 3.0 Release (And maybe some new uploads today??) After doing this upgrade I do not see the error anymore. Alexandre are you sure your 3.0-test is have the latest updates? -- Hilsen/Regards Michael Rasmussen Get my public GnuPG keys: michael at rasmussen dot cc http://pgp.mit.edu:11371/pks/lookup?op=getsearch=0xD3C9A00E mir at datanom dot net http://pgp.mit.edu:11371/pks/lookup?op=getsearch=0xE501F51C mir at miras dot org http://pgp.mit.edu:11371/pks/lookup?op=getsearch=0xE3E80917 -- sillema sillema nika su signature.asc Description: PGP signature ___ pve-devel mailing list pve-devel@pve.proxmox.com http://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
[pve-devel] [PATCH] Added support for ZFS Storage Plugin
From: Michael Rasmussen m...@datanom.net Signed-off-by: Michael Rasmussen m...@datanom.net --- PVE/Storage.pm |2 + PVE/Storage/Makefile |2 +- PVE/Storage/Plugin.pm|2 +- PVE/Storage/ZFSPlugin.pm | 646 ++ 4 files changed, 650 insertions(+), 2 deletions(-) create mode 100644 PVE/Storage/ZFSPlugin.pm diff --git a/PVE/Storage.pm b/PVE/Storage.pm index c6d9d12..8dbd46f 100755 --- a/PVE/Storage.pm +++ b/PVE/Storage.pm @@ -25,6 +25,7 @@ use PVE::Storage::RBDPlugin; use PVE::Storage::SheepdogPlugin; use PVE::Storage::ISCSIDirectPlugin; use PVE::Storage::NexentaPlugin; +use PVE::Storage::ZFSPlugin; # load and initialize all plugins PVE::Storage::DirPlugin-register(); @@ -35,6 +36,7 @@ PVE::Storage::RBDPlugin-register(); PVE::Storage::SheepdogPlugin-register(); PVE::Storage::ISCSIDirectPlugin-register(); PVE::Storage::NexentaPlugin-register(); +PVE::Storage::ZFSPlugin-register(); PVE::Storage::Plugin-init(); my $UDEVADM = '/sbin/udevadm'; diff --git a/PVE/Storage/Makefile b/PVE/Storage/Makefile index ed65a18..88b6161 100644 --- a/PVE/Storage/Makefile +++ b/PVE/Storage/Makefile @@ -1,4 +1,4 @@ -SOURCES=Plugin.pm DirPlugin.pm LVMPlugin.pm NFSPlugin.pm ISCSIPlugin.pm RBDPlugin.pm SheepdogPlugin.pm ISCSIDirectPlugin.pm NexentaPlugin.pm +SOURCES=Plugin.pm DirPlugin.pm LVMPlugin.pm NFSPlugin.pm ISCSIPlugin.pm RBDPlugin.pm SheepdogPlugin.pm ISCSIDirectPlugin.pm NexentaPlugin.pm ZFSPlugin.pm .PHONY: install install: diff --git a/PVE/Storage/Plugin.pm b/PVE/Storage/Plugin.pm index 88e34a9..323ff5d 100644 --- a/PVE/Storage/Plugin.pm +++ b/PVE/Storage/Plugin.pm @@ -312,7 +312,7 @@ sub parse_config { $d-{content} = $def-{content}-[1] if !$d-{content}; } - if ($type eq 'iscsi' || $type eq 'nfs' || $type eq 'rbd' || $type eq 'sheepdog' || $type eq 'iscsidirect' || $type eq 'nexenta' ) { + if ($type eq 'iscsi' || $type eq 'nfs' || $type eq 'rbd' || $type eq 'sheepdog' || $type eq 'iscsidirect' || $type eq 'nexenta' || $type eq 'zfs') { $d-{shared} = 1; } } diff --git a/PVE/Storage/ZFSPlugin.pm b/PVE/Storage/ZFSPlugin.pm new file mode 100644 index 000..909f71f --- /dev/null +++ b/PVE/Storage/ZFSPlugin.pm @@ -0,0 +1,646 @@ +package PVE::Storage::ZFSPlugin; + +use strict; +use warnings; +use IO::File; +use POSIX; +use PVE::Tools qw(run_command file_read_firstline trim dir_glob_regex dir_glob_foreach); +use PVE::Storage::Plugin; +use PVE::JSONSchema qw(get_standard_option); + +use base qw(PVE::Storage::Plugin); + +my @ssh_opts = ('-o', 'BatchMode=yes'); +my @ssh_cmd = ('/usr/bin/ssh', @ssh_opts); + +sub zfs_request { +my ($scfg, $method, @params) = @_; + my $luncmd = (); + my $cmd; + my $msg = ''; + my $zfs; + + my $output = sub { + my $line = shift; + $msg .= $line\n; + }; + + if (uc($scfg-{iscsiprovider}) eq 'COMSTAR') { + $luncmd = { + cmd = '/usr/sbin/stmfadm', + list_lu = 'list-lu', + create_lu = 'create-lu', + delete_lu = 'delete-lu', + import_lu = 'import-lu', + add_view= 'add-view', + list_view = 'list-view', + }; + } else { + die 'unknown iscsi provider. Available [comstar]'; + } + + $luncmd-{cmd} = 'sudo ' . $luncmd-{cmd} if ($scfg-{sudo}); + if ($luncmd-{$method}) { + $cmd = [@ssh_cmd, $scfg-{portal}, $luncmd-{cmd}, $luncmd-{$method}, @params]; + } else { + if ($method =~ /^zpool-list$/) { + $zfs = 'zpool'; + $method = 'list'; + } else { + $zfs = 'zfs'; + } + $cmd = [@ssh_cmd, $scfg-{portal}, $zfs, $method, @params]; + } + + eval { + run_command($cmd, outfunc = $output, errmsg = 'zfs error'); + }; + if ($@) { + my $cmdstr = ''; + foreach my $c (@$cmd) { + if ($cmdstr eq '') { + $cmdstr = $c; + } else { + $cmdstr .= $c; + } + } + die $@ . [$cmdstr]; + } + + return $msg; +} + +sub zfs_parse_size { +my ($text) = @_; + +return 0 if !$text; + +if ($text =~ m/^(\d+(\.\d+)?)([TGMK])?$/) { + my ($size, $reminder, $unit) = ($1, $2, $3); + return $size if !$unit; + if ($unit eq 'K') { + $size *= 1024; + } elsif ($unit eq 'M') { + $size *= 1024*1024; + } elsif ($unit eq 'G') { + $size *= 1024*1024*1024; + } elsif ($unit eq 'T') { + $size
[pve-devel] [PATCH] Added support for ZFS Storage Plugin
From: Michael Rasmussen m...@datanom.net Signed-off-by: Michael Rasmussen m...@datanom.net --- www/manager/Makefile |1 + www/manager/Utils.js |2 + www/manager/dc/StorageView.js | 11 +++ www/manager/qemu/Clone.js |3 +- www/manager/qemu/HDEdit.js |3 +- www/manager/storage/ZFSEdit.js | 172 6 files changed, 190 insertions(+), 2 deletions(-) create mode 100644 www/manager/storage/ZFSEdit.js diff --git a/www/manager/Makefile b/www/manager/Makefile index 013e762..27ef431 100644 --- a/www/manager/Makefile +++ b/www/manager/Makefile @@ -132,6 +132,7 @@ JSSRC= \ storage/RBDEdit.js \ storage/SheepdogEdit.js \ storage/NexentaEdit.js \ + storage/ZFSEdit.js \ dc/Summary.js \ dc/OptionView.js\ dc/StorageView.js \ diff --git a/www/manager/Utils.js b/www/manager/Utils.js index 48ffade..aab95f7 100644 --- a/www/manager/Utils.js +++ b/www/manager/Utils.js @@ -642,6 +642,8 @@ Ext.define('PVE.Utils', { statics: { return 'Sheepdog'; } else if (value === 'nexenta') { return 'Nexenta'; + } else if (value === 'zfs') { + return 'ZFS'; } else if (value === 'iscsidirect') { return 'iSCSIDirect'; } else { diff --git a/www/manager/dc/StorageView.js b/www/manager/dc/StorageView.js index 2c81c0b..2bfa831 100644 --- a/www/manager/dc/StorageView.js +++ b/www/manager/dc/StorageView.js @@ -46,6 +46,8 @@ Ext.define('PVE.dc.StorageView', { editor = 'PVE.storage.SheepdogEdit'; } else if (type === 'nexenta') { editor = 'PVE.storage.NexentaEdit'; + } else if (type === 'zfs') { + editor = 'PVE.storage.ZFSEdit'; } else { return; } @@ -164,6 +166,15 @@ Ext.define('PVE.dc.StorageView', { win.show(); } }, + { + text: 'ZFS', + iconCls: 'pve-itype-icon-node', + handler: function() { + var win = Ext.create('PVE.storage.ZFSEdit', {}); + win.on('destroy', reload); + win.show(); + } + } */ ] }) diff --git a/www/manager/qemu/Clone.js b/www/manager/qemu/Clone.js index 58b1ee7..4ad7a0d 100644 --- a/www/manager/qemu/Clone.js +++ b/www/manager/qemu/Clone.js @@ -65,7 +65,8 @@ Ext.define('PVE.window.Clone', { rec.data.type === 'rbd' || rec.data.type === 'iscsi' || rec.data.type === 'sheepdog' || -rec.data.type === 'nexenta' +rec.data.type === 'nexenta' || + rec.data.type === 'zfs' ) { me.formatsel.setValue('raw'); me.formatsel.setDisabled(true); diff --git a/www/manager/qemu/HDEdit.js b/www/manager/qemu/HDEdit.js index 66a823c..6b2cf8d 100644 --- a/www/manager/qemu/HDEdit.js +++ b/www/manager/qemu/HDEdit.js @@ -192,7 +192,8 @@ Ext.define('PVE.qemu.HDInputPanel', { } else if (rec.data.type === 'lvm' || rec.data.type === 'rbd' || rec.data.type === 'sheepdog' || - rec.data.type === 'nexenta') { + rec.data.type === 'nexenta' || + rec.data.type === 'zfs') { me.hdfilesel.setDisabled(true); me.hdfilesel.setVisible(false); me.formatsel.setValue('raw'); diff --git a/www/manager/storage/ZFSEdit.js b/www/manager/storage/ZFSEdit.js new file mode 100644 index 000..0432386 --- /dev/null +++ b/www/manager/storage/ZFSEdit.js @@ -0,0 +1,172 @@ +Ext.define('PVE.storage.ZFSInputPanel', { +extend: 'PVE.panel.InputPanel', + +onGetValues: function(values) { + var me = this; + + if (me.create) { + values.type = 'zfs'; + values.content = 'images'; + + } else { + delete values.storage; + } + + values.disable = values.enable ? 0 : 1; + delete values.enable; + + values.sudo = values.enablesudo ? 1 : 0; + delete values.enablesudo; + + return
[pve-devel] [PATCH 2/2] If remove of a base-image fails because of dependent clones we must recreate the lun since dependent clones require access to the image.
From: Michael Rasmussen m...@datanom.net Signed-off-by: Michael Rasmussen m...@datanom.net --- PVE/Storage/ZFSPlugin.pm | 14 ++ 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/PVE/Storage/ZFSPlugin.pm b/PVE/Storage/ZFSPlugin.pm index 909f71f..b02a87a 100644 --- a/PVE/Storage/ZFSPlugin.pm +++ b/PVE/Storage/ZFSPlugin.pm @@ -495,10 +495,16 @@ sub free_image { my ($vtype, $name, $vmid) = $class-parse_volname($volname); - eval { - zfs_delete_lu($scfg, $name); - }; - zfs_delete_zvol($scfg, $name); +zfs_delete_lu($scfg, $name); +eval { +zfs_delete_zvol($scfg, $name); +}; +do { +my $err = $@; +zfs_create_lu($scfg, $name); +zfs_add_lun_mapping_entry($scfg, $name); +die 1: $err; +} if $@; return undef; } -- 1.7.10.4 ___ pve-devel mailing list pve-devel@pve.proxmox.com http://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
Re: [pve-devel] [PATCH] Added support for ZFS Storage Plugin
Hi all, Some instructions is needed to use this plugin. How to use: On every node you must transfer root's public certificate to the storage - As root: ssh-copy-id IP What works: 1) creating VM's 2) removing VM's 3) snapshotting VM's 4) rollback from shapshot 5) delete snapshot 6) convert to template 7) Cloning - both full and linked clone. This can also be done from clones. What does not work: 1) sudo. Implemented but it requires also the creation of user accounts - both on storage and nodes. I think I will remove sudo later on if no one objects. 2) chap based login to target. Not implemented currently but this will be implemented later. As usual, feel free to comment and provide bug reports and/or patches. -- Hilsen/Regards Michael Rasmussen Get my public GnuPG keys: michael at rasmussen dot cc http://pgp.mit.edu:11371/pks/lookup?op=getsearch=0xD3C9A00E mir at datanom dot net http://pgp.mit.edu:11371/pks/lookup?op=getsearch=0xE501F51C mir at miras dot org http://pgp.mit.edu:11371/pks/lookup?op=getsearch=0xE3E80917 -- The most important design issue... is the fact that Linux is supposed to be fun... -- Linus Torvalds at the First Dutch International Symposium on Linux signature.asc Description: PGP signature ___ pve-devel mailing list pve-devel@pve.proxmox.com http://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel