Commit Graph

687 Commits

Author SHA1 Message Date
Alexandre Derumier
2dd4aa4c95 add firewall option to qemu network interface
this allow to disable firewall for a specific interface

Signed-off-by: Alexandre Derumier <aderumier@odiso.com>
2014-05-08 08:35:37 +02:00
Dietmar Maurer
228a998ba3 depend on pve-firewall, add firewall API for VMs 2014-05-06 11:27:10 +02:00
Dietmar Maurer
3cf90d7a40 qmrestore: removed short timeout 2014-04-17 10:37:46 +02:00
Dietmar Maurer
19d13324e4 add linefeed to warn message and add changelog for previous commit 2014-04-17 09:29:46 +02:00
Alexandre Derumier
5b0bd20dd5 move_disk : don't delete disk if used in a previous snasphot v2
and set it as unused

Signed-off-by: Alexandre Derumier <aderumier@odiso.com>
2014-04-17 07:44:17 +02:00
Dietmar Maurer
c82935e92e fix bug #502: allow creation of empty vma archives 2014-04-14 11:21:01 +02:00
Dietmar Maurer
c0efd8cd0e disable cpu enforce flag
Enforce needs kernel 3.10, so we do not use it for now.
2014-04-03 09:39:54 +02:00
Alexandre Derumier
2430d37886 enforce cpu check
enable check if host support all cpu flags configured for the guests

this avoid some bad setup like Opteron vcpu on a intel host for example,
and avoid some bad live migrations

Signed-off-by: Alexandre Derumier <aderumier@odiso.com>
2014-03-28 09:03:21 +01:00
Stefan Priebe
2e787b1892 QemuMigrate: print migration xbzrle if enabled (has xbzrlecachesize) for whatever reason (bug qemu, bug pve, ...)
Signed-off-by: Stefan Priebe <s.priebe@profihost.ag>
2014-02-10 12:29:17 +01:00
Dietmar Maurer
22430fa2c9 remove unneeded parentheses 2014-02-10 08:05:06 +01:00
Stefan Priebe
b463a3cec0 since qemu 1.7 xbzrle is AUTOMATICALLY enabled in the end of transfer - we need to explicit disable all feature we do not want
Signed-off-by: Stefan Priebe <s.priebe@profihost.ag>
2014-02-10 08:01:19 +01:00
Lindsay Mathieson
68ab04470b Adds the VM name to the title for the spice clent, making it easier to identify which in window lists etc.
Signed-off-by: Lindsay Mathieson <lindsay.mathieson@gmail.com>
2014-01-31 06:51:16 +01:00
Dietmar Maurer
73272365bf deactivate volume after clone
To avoid lvm LVs to be active on several nodes.
2014-01-29 06:44:06 +01:00
Dietmar Maurer
264e519fab white space cleanups 2014-01-14 10:33:36 +01:00
Alexandre Derumier
838776ab65 add cpu_hotplug
Signed-off-by: Alexandre Derumier <aderumier@odiso.com>
2014-01-14 07:29:25 +01:00
Alexandre Derumier
3bd18e48cf add maxcpus config
Signed-off-by: Alexandre Derumier <aderumier@odiso.com>
2014-01-14 07:26:55 +01:00
Dietmar Maurer
8b8345f3ac cleanup previous commit 2014-01-10 13:09:19 +01:00
Alexandre Derumier
a89fded11f migration : enable auto-converge capability v2
This reduce guest cpu speed if dirtied bytes is 50% more than the approx.amount of bytes that just got transferred since the last time we were in this routine.

qemu commit :
http://git.qemu.org/?p=qemu.git;a=commit;h=bde1e2ec2176c363c1783bf8887b6b1beb08dfee

tested with "stress -m 2 -c 2" under debian

without autoconvergence : downtime 12s - duration 12min
with autoconvergence : downtime 2s - duration 4min

Signed-off-by: Alexandre Derumier <aderumier@odiso.com>
2014-01-10 13:01:55 +01:00
Dietmar Maurer
0cea6a0160 add more options for pci passthrough 2013-12-13 11:43:05 +01:00
Dietmar Maurer
dd25eecf62 code cleanup
Use new helper methods.
2013-12-10 10:46:50 +01:00
Dietmar Maurer
cd339d1fe9 use new helper PVE::Tools::next_spice_port() 2013-12-09 13:23:26 +01:00
Dietmar Maurer
78252ce7d0 spiceproxy: use POST instead of GET
using GET is a security risk (no CSRF checks)
2013-12-09 08:17:52 +01:00
Alexandre Derumier
74edd76ba8 qemuserver : iothrottle add support for throttling burst max
http://git.qemu.org/?p=qemu.git;a=commit;h=3e9fab690d59ac15956c3733fe0794ce1ae4c4af

Signed-off-by: Alexandre Derumier <aderumier@odiso.com>
2013-12-05 06:31:06 +01:00
Dietmar Maurer
5b952ff541 add 'lsi53c810' to the list of scsi controllers 2013-12-04 09:11:36 +01:00
Dietmar Maurer
8d87f8aa4f add drive option 'discard' 2013-12-04 08:43:46 +01:00
Dietmar Maurer
e4c6e0b88c add vmxnet3 to list of available network card models 2013-12-04 07:37:42 +01:00
Dietmar Maurer
87c5bc3493 add 'pvscsi' to the list of scsi controllers.
QEMU can now emulate the VMware PVSCSI device.
2013-12-04 06:52:38 +01:00
Alexandre Derumier
71ddbff9cb qemu-img : qemu 1.7 use -n for skip volume create
http://git.qemu.org/?p=qemu.git;a=commit;h=b2e10493c71160d88bb823cae9a92e806a79b9d6

Signed-off-by: Alexandre Derumier <aderumier@odiso.com>
2013-12-03 10:46:37 +01:00
Alexandre Derumier
4dc339e7b4 add +lahf_lm flag to kvm64 cpudef
Signed-off-by: Alexandre Derumier <aderumier@odiso.com>
2013-11-29 09:17:03 +01:00
Dietmar Maurer
49ca581d5d allow to migrate VMs using SPICE usb redirection 2013-11-26 07:37:18 +01:00
Dietmar Maurer
7aa608d655 include sendkey in directory index 2013-11-20 06:54:06 +01:00
Dietmar Maurer
baca276db5 deactivate volumes after clone to other node 2013-11-19 08:15:54 +01:00
Dietmar Maurer
1f1412d189 correcctly check if option is a drive 2013-10-14 07:35:04 +02:00
Dietmar Maurer
590e698c07 cleanup spice code 2013-10-02 09:11:57 +02:00
Alexandre Derumier
2fa3151ebd add multi-monitors spice support
add qxl2 (2monitors),qxl3 (3monitors),qxl4 (4monitors) vga type.

For linux, we only need 1 qxl card with more memory

For windows, we need 1 qxl card by monitor

Original Information from spice-mailing
"
You need to specify multiple devices for Windows VMs. This is what
libvirt gives me (via 'virsh domxml-to-native qemu argv DOMAIN_XML'):
<...> -vga qxl -global qxl-vga.ram_size=67108864 -global qxl-vga.vram_size=33554432 -device qxl,id=video1,ram_size=67108864,vram_size=33554432 -device qxl,id=video2,ram_size=67108864,vram_size=33554432 -device qxl,id=video3,ram_size=67108864,vram_size=33554432

For Linux VM, just one qxl device is OK but then it's advisable to
increase the available RAM:
<...> -vga qxl -global qxl-vga.ram_size=134217728 -global qxl-vga.vram_size=33554432

If you don't turn off surfaces, then you should increase vram size to
say 64 MB from current default of 32 MB.
"

Signed-off-by: Alexandre Derumier <aderumier@odiso.com>
2013-10-02 08:26:32 +02:00
Dietmar Maurer
990fc5e22e use warnings instead of global -w flag 2013-10-01 13:14:49 +02:00
Dietmar Maurer
c9928b3d53 use new PVE::Storage::abs_filesystem_path()
The check_volume_access() method does no longer return a path.
2013-10-01 12:41:06 +02:00
Alexandre Derumier
6b9d84cfb2 add opensolaris ostype and disable x2apic
Signed-off-by: Alexandre Derumier <aderumier@odiso.com>
2013-09-24 06:53:26 +02:00
Alexandre Derumier
fd8469f7de qemu migrate : only wait for spice server online + eval
Currently offline migration fail ,because we are trying to check with qmp the spiceserver status.
This should be done online only.

I also add eval, to avoid migration lock if qmp query fail.

Fix :http://forum.proxmox.com/threads/16093-VM-is-locked-after-offline-migration?p=82852

Signed-off-by: Alexandre Derumier <aderumier@odiso.com>
2013-09-19 06:28:17 +02:00
Dietmar Maurer
244f2577c5 speedup restore on glusterfs (do not write zero bytes) 2013-09-17 09:12:07 +02:00
Dietmar Maurer
fa8ea931ed whitespace cleanups 2013-09-05 07:44:52 +02:00
Dietmar Maurer
657533535d Allow VMAdmin to delete disk with Datastore.AllocateSpace permissions
Previosly, a VMAdmin/DatastoreUser was able to add/create new disks, but
unable to remove them.
2013-09-05 07:41:40 +02:00
Dietmar Maurer
2dc23d7253 vncproxy API: avoid warning about uninitialize value 2013-08-28 11:31:31 +02:00
Dietmar Maurer
32e698051f fix typo - s/parallel/parport/ 2013-08-14 15:55:01 +02:00
Dietmar Maurer
4c5dbaf6ab use tty chardev for usb-to-parallel 2013-08-14 14:22:24 +02:00
Dietmar Maurer
9ecc843138 allow to use usb parallel ports 2013-08-14 12:18:54 +02:00
Dietmar Maurer
a64d61460d avoid another compile warning 2013-08-12 09:53:02 +02:00
Dietmar Maurer
033a0b366d fix migration port (wrong quote) 2013-08-12 09:48:13 +02:00
Dietmar Maurer
760fb3c842 fix warning about uninitialized value 2013-08-12 09:47:02 +02:00
Dietmar Maurer
2dc9c14820 load config from correct node 2013-08-06 08:15:14 +02:00
Dietmar Maurer
ef5e2be2a4 add ability to run without graphic card ('vga: serial[n]') 2013-07-31 09:19:36 +02:00
Dietmar Maurer
9f9d2fb261 allow to use a socket for serial devices 2013-07-31 06:58:26 +02:00
Stefan Priebe
5bc1e0397e qemu-server: add support for unsecure migration (setting in datacenter.cfg)
This patch adds support for unsecure migration using a direct tcp connection
KVM <=> KVM instead of an extra SSH tunnel. Without ssh the limit is just the
bandwith and no longer the CPU / one single core.

You can enable this by adding:
migration_unsecure: 1
to datacenter.cfg

Examples using qemu 1.4 as migration with qemu 1.3 still does not work for me:

current default with SSH Tunnel VM uses 2GB mem:
Dec 27 21:10:32 starting migration of VM 105 to node 'cloud1-1202' (10.255.0.20)
Dec 27 21:10:32 copying disk images
Dec 27 21:10:32 starting VM 105 on remote node 'cloud1-1202'
Dec 27 21:10:35 starting ssh migration tunnel
Dec 27 21:10:36 starting online/live migration on localhost:60000
Dec 27 21:10:36 migrate_set_speed: 8589934592
Dec 27 21:10:36 migrate_set_downtime: 1
Dec 27 21:10:38 migration status: active (transferred 152481002, remaining 1938546688), total 2156396544) , expected downtime 0
Dec 27 21:10:40 migration status: active (transferred 279836995, remaining 1811140608), total 2156396544) , expected downtime 0
Dec 27 21:10:42 migration status: active (transferred 421265271, remaining 1669840896), total 2156396544) , expected downtime 0
Dec 27 21:10:44 migration status: active (transferred 570987974, remaining 1520152576), total 2156396544) , expected downtime 0
Dec 27 21:10:46 migration status: active (transferred 721469404, remaining 1369939968), total 2156396544) , expected downtime 0
Dec 27 21:10:48 migration status: active (transferred 875595258, remaining 1216057344), total 2156396544) , expected downtime 0
Dec 27 21:10:50 migration status: active (transferred 1034654822, remaining 1056931840), total 2156396544) , expected downtime 0
Dec 27 21:10:54 migration status: active (transferred 1176288424, remaining 915369984), total 2156396544) , expected downtime 0
Dec 27 21:10:56 migration status: active (transferred 1339734759, remaining 752050176), total 2156396544) , expected downtime 0
Dec 27 21:10:58 migration status: active (transferred 1503743261, remaining 588206080), total 2156396544) , expected downtime 0
Dec 27 21:11:02 migration status: active (transferred 1645097827, remaining 446906368), total 2156396544) , expected downtime 0
Dec 27 21:11:04 migration status: active (transferred 1810562934, remaining 281751552), total 2156396544) , expected downtime 0
Dec 27 21:11:06 migration status: active (transferred 1964377505, remaining 126033920), total 2156396544) , expected downtime 0
Dec 27 21:11:08 migration status: active (transferred 2077930417, remaining 0), total 2156396544) , expected downtime 0
Dec 27 21:11:09 migration speed: 62.06 MB/s - downtime 37 ms
Dec 27 21:11:09 migration status: completed
Dec 27 21:11:13 migration finished successfuly (duration 00:00:41)
TASK OK

with unsecure migration without SSH Tunnel:
Dec 27 22:43:14 starting migration of VM 105 to node 'cloud1-1203' (10.255.0.22)
Dec 27 22:43:14 copying disk images
Dec 27 22:43:14 starting VM 105 on remote node 'cloud1-1203'
Dec 27 22:43:17 starting online/live migration on 10.255.0.22:60000
Dec 27 22:43:17 migrate_set_speed: 8589934592
Dec 27 22:43:17 migrate_set_downtime: 1
Dec 27 22:43:19 migration speed: 1024.00 MB/s - downtime 1100 ms
Dec 27 22:43:19 migration status: completed
Dec 27 22:43:22 migration finished successfuly (duration 00:00:09)
TASK OK
2013-07-26 11:23:49 +02:00
Dietmar Maurer
7c14dcae1f use STDIN to pass spice ticket 2013-07-24 12:19:51 +02:00
Dietmar Maurer
86b8228b59 new vga_conf_has_spice() helper
code cleanups
2013-07-24 12:01:03 +02:00
Dietmar Maurer
1d794448fc return spice_port from config_to_command()
That way we do not need to run qmp command to get the port.
Set spice ticket expire time to 30 (5 seconds seems a bit too short).
Coding style cleanups.
2013-07-24 11:24:20 +02:00
Alexandre Derumier
95a4b4a98b add spice migration
Signed-off-by: Alexandre Derumier <aderumier@odiso.com>
2013-07-24 10:54:20 +02:00
Alexandre Derumier
1481f3f23c add read_x509_subject_spice
Signed-off-by: Alexandre Derumier <aderumier@odiso.com>
2013-07-24 09:45:32 +02:00
Dietmar Maurer
d685bd1de8 remove spice cert paths
And depend on pve-qemu-kvm (>= 1.4-16), which automatically uses the correct
certs by default.
2013-07-23 10:05:36 +02:00
Dietmar Maurer
5acbfe9eea disable tablet for spice 2013-07-19 09:58:17 +02:00
Dietmar Maurer
80401dd861 support usb redirection for spice 2013-07-19 09:37:04 +02:00
Dietmar Maurer
31178e138f fix docu 2013-07-18 08:29:12 +02:00
Dietmar Maurer
fb6c726010 spiceproxy: allow client to choose proxy address 2013-07-18 08:00:03 +02:00
Dietmar Maurer
451b2b815e spice: read cert subject name directly using Net::SSLeay
We now depend on libnet-ssleay-perl
2013-07-18 07:28:35 +02:00
Dietmar Maurer
943340a628 spice: use TLS
we now use a local tcp port instead of a unix socket, because that is
implemented and works with current spice libraries.
2013-07-17 11:33:02 +02:00
Dietmar Maurer
09984754a0 correctly return and use device type in scsi_inquiry 2013-07-15 13:46:41 +02:00
Dietmar Maurer
f334aa3e6e fix scsi inquiry command
I got wrong results if command is longer than 6 bytes.
2013-07-15 13:12:18 +02:00
Dietmar Maurer
29b1952991 fix coding style 2013-07-15 13:11:28 +02:00
Dietmar Maurer
be19058305 bump version to 3.0-22
and delete trailing white spaces
2013-07-15 09:16:01 +02:00
Alexandre Derumier
462e8d19fe add hyper-v enlightments for windows guests
This add special hyper-v cpu flags for windows guests.

This improve performance and avoid some bsod related to timer.

(I currently disable the hv_vapic flag because I can't get it working).

I have tested all theses flags with: win2003, win2008R2, winxp, linux debian 64bit, on intel and amd physicals processor

It doesn't break live migration, because new cpu flags are not see by guests until a vm reset.

Signed-off-by: Alexandre Derumier <aderumier@odiso.com>
2013-07-15 09:09:08 +02:00
Alexandre Derumier
2e1a5389f7 add +sep cpuflags to kvm32 && kvm64 cpu models
Need for win8 boot.

This flag was missing from rhel < 6.4 host kernel. It's ok now.
But it's also missing from kvm64 model. (It's exist in other cpu models, amd or intel).
So it's pretty safe to enable it.
If the host kernel is older, qemu filter the flag.

This also improve performance of winxp && win7 32 bits guests.

Signed-off-by: Alexandre Derumier <aderumier@odiso.com>
2013-07-15 09:08:50 +02:00
Alexandre Derumier
519ed28c96 enable x2apic by default for kvm machines
This reduce context switch with multicore guests.

Even if the host cpu don't have x2apic, it's working because qemu have an virtual x2apic implementation for guest.
We need  in-kernel irqchip support for this, which is enable for kvm guest since qemu 1.3.
(I don't enable it if nokvm param is set)

Signed-off-by: Alexandre Derumier <aderumier@odiso.com>
2013-07-15 09:08:34 +02:00
Dietmar Maurer
716a470c8c spiceproxy: set delete-this-file 2013-06-27 09:28:13 +02:00
Alexandre Derumier
af32683a67 spiceconfig: port can't be 0
Signed-off-by: Alexandre Derumier <aderumier@odiso.com>
2013-06-27 06:12:46 +02:00
Alexandre Derumier
e554e5b9a9 spice : fix proxy address
Signed-off-by: Alexandre Derumier <aderumier@odiso.com>
2013-06-27 06:10:34 +02:00
Dietmar Maurer
46246f04e9 vm status API: return info about spice 2013-06-26 13:37:14 +02:00
Dietmar Maurer
3309e65afa spiceproxy: remove socat, and return data to access the new spiceproxy server 2013-06-26 13:13:58 +02:00
Dietmar Maurer
eb15737004 kill socat if we do not get any connection within $timeout seconds 2013-06-25 14:34:59 +02:00
Dietmar Maurer
8bd0cbf5c3 spice proxy: try to cirrectly count open socat connections 2013-06-25 12:54:15 +02:00
Dietmar Maurer
5ecf258f2c limit spice ticket length to 59 charachters 2013-06-25 12:47:33 +02:00
Dietmar Maurer
288eeea8ae add spice proxy API
This is experimental code, spice connections are not encryped and thus insecure.
We use ticket passwords for spice auth, and do direct spice connections to
the nodes instead of using a tunnel.
2013-06-25 12:09:05 +02:00
Dietmar Maurer
1011b57090 add support for spice display driver (vga=qxl)
This is based on the patch from Alexandre, but we use vga=qlx instead
of introducing a new 'spice: 1' boolean flag.
2013-06-25 07:10:42 +02:00
Dietmar Maurer
9b2c0efbd6 correctly handle undef values when calling qemu_block_set_io_throttle 2013-06-12 07:08:02 +02:00
Alexandre Derumier
0e6165343a qemu-server : bridge_add : fix uninitialized value
fix : Use of uninitialized value $bridgeid in numeric lt (<) at /usr/share/perl5/PVE/QemuServer.pm line 2774.

Signed-off-by: Alexandre Derumier <aderumier@odiso.com>
2013-06-12 06:58:20 +02:00
Dietmar Maurer
7043d946fc code cleanups
removed trailing white space
2013-06-11 07:27:31 +02:00
Dietmar Maurer
d52b8b77f8 simplify previous patch 2013-06-11 07:22:13 +02:00
Alexandre Derumier
09a8989501 create_disks : avoid storage scan v3
Signed-off-by: Alexandre Derumier <aderumier@odiso.com>
2013-06-11 07:09:17 +02:00
Dietmar Maurer
5555edea95 update_vm_async: new asynchronous API 2013-06-07 11:41:58 +02:00
Dietmar Maurer
d8b916fdb0 snapshot rollback: use pc-i440fx-1.4 as default 2013-06-06 06:38:12 +02:00
Dietmar Maurer
6dbe8b459b require VM.Config.HWType priviledges to modify 'machine' configuration 2013-06-06 06:22:32 +02:00
Dietmar Maurer
42668529e6 migrate: pass --machine parameter to remote 'qm start' command 2013-06-05 10:24:39 +02:00
Dietmar Maurer
4b15803dee snapshot: save/restore 'machine' configuration 2013-06-05 10:17:49 +02:00
Dietmar Maurer
ff556cf2a0 implement get_current_qemu_machine 2013-06-05 09:52:22 +02:00
Dietmar Maurer
952958bc87 API extension: add 'machine' parameter to vm_start
This allows us to overwrite the machine type at start - useful for
migration to make sure we use the same machine at the target node.
2013-06-05 09:27:31 +02:00
Dietmar Maurer
3bafc5106e add new 'machine' configuration 2013-06-05 09:18:23 +02:00
Dietmar Maurer
1a71fa73a4 fix typo 2013-06-04 13:33:35 +02:00
Dietmar Maurer
2fc6bc1722 qemu_drive_mirror: correctly call block-job-cancel if block-job-complete fails 2013-05-31 11:31:22 +02:00
Dietmar Maurer
70d45e33e9 move_disk: implement delete flag 2013-05-31 10:56:16 +02:00
Dietmar Maurer
43bc02a921 rename move to move_disk
Because that API call can only move a single disk (not the whole VM).
2013-05-31 08:46:21 +02:00
Dietmar Maurer
1377d7b0f5 clone_disk: test if requested format is supported - else use default 2013-05-29 12:59:21 +02:00
Dietmar Maurer
635c3c4426 move_vm: add original disk as unusedX 2013-05-29 12:15:30 +02:00
Dietmar Maurer
e2cd75fa65 move_vm: make it work with PVE::QemuServer:::clone_disk
- use POST instead of PUT (this is not idempotent).
- return task ID
- use declarative permission check
2013-05-29 12:07:56 +02:00
Alexandre Derumier
586bfa78d1 add qm move (storage migration)
qm move <vmid> <disk> <storage> --format [raw|qcow2|vmdk]

Signed-off-by: Alexandre Derumier <aderumier@odiso.com>
2013-05-29 11:23:45 +02:00
Dietmar Maurer
c55fee03a0 allow to clone VM when name is not set 2013-05-29 11:18:54 +02:00
Dietmar Maurer
152fe752c4 factor out clone_disk
As suggested by Alexandre. Also cleanup  qemu_drive_mirror (fix white space).
2013-05-29 08:32:10 +02:00
Dietmar Maurer
05937a147d qm rescan: do not add aliases as unused disks. 2013-05-28 12:21:14 +02:00
Dietmar Maurer
a8e2f942bd fix unused disk handling
Show unused disks even if disk is used inside snapshots. But do not allow
to remove those disks.
2013-05-28 12:08:45 +02:00
Dietmar Maurer
7a907ce612 rescan: add check if config has really changed 2013-05-27 10:51:01 +02:00
Dietmar Maurer
5996a936e3 fix bug 395: correctly handle unused disk with storage alias 2013-05-27 08:25:39 +02:00
Alexandre Derumier
e9cfd9cb01 qemu_img_format : use raw for as default for other storage (nexenta, sheepdog, ...)
Seem that something have change in qemu.

iscsi qemu block driver need to use raw, or we get a segfault. (like rbd).

sheepdog works also with .raw, so we don't need anymore specific storage format, we can use raw.

Signed-off-by: Alexandre Derumier <aderumier@odiso.com>
2013-05-23 11:33:17 +02:00
Dietmar Maurer
6e46ac079f fix bug #389: avoid error if balloon is undefined 2013-05-22 07:15:44 +02:00
Dietmar Maurer
8fd5743158 fix bug #391 - restore: test if requested format is supported 2013-05-21 12:02:41 +02:00
Dietmar Maurer
be51704915 use add_vm_to_pool/remove_vm_from_pool from PVE::AccessControl 2013-05-14 12:01:57 +02:00
Alexandre Derumier
b37558ca33 clone disk : keep source volume params
Signed-off-by: Alexandre Derumier <aderumier@odiso.com>
2013-05-14 10:17:45 +02:00
Dietmar Maurer
4a5a259072 clone: check is we can clone to target storage 2013-05-13 11:17:38 +02:00
Dietmar Maurer
f9a971e0ee fix bug #381: use PVE::Tools::next_migrate_port() 2013-05-13 07:30:50 +02:00
Dietmar Maurer
ca3e4fa4e1 restore: do not restore template flag
A restored VM is never a template. Else we would need to create
base images after the restore, and not all storages supports base
images. Anyways, the user can easily convert the restored VM into a
template later.
2013-05-08 10:19:38 +02:00
Dietmar Maurer
ccb5c001d6 qemu_img_format: use 'raw' for lvm
With host_device we get the following error:

qemu-img: error while writing sector 0: Bad file descriptor
2013-05-07 10:15:57 +02:00
Alexandre Derumier
f6ab3bdbf9 drive-mirror : die if stats are empty.
If drive have bad sectors, the block job die.
we need to die if stats are empty to avoid this:

transferred: 21440086016 bytes remaining: 34668544 bytes total: 21474754560 bytes progression: 99.84 %
Use of uninitialized value $transferred in subtraction (-) at /usr/share/perl5/PVE/QemuServer.pm line 4611.
Use of uninitialized value $total in subtraction (-) at /usr/share/perl5/PVE/QemuServer.pm line 4611.
Use of uninitialized value $transferred in multiplication (*) at /usr/share/perl5/PVE/QemuServer.pm line 4612.
Use of uninitialized value $total in division (/) at /usr/share/perl5/PVE/QemuServer.pm line 4612.
clone failed: mirroring error: Illegal division by zero at /usr/share/perl5/PVE/QemuServer.pm line 4612.

Maybe it should be improved by catching qmp events, but doesn't seem to work for now

Signed-off-by: Alexandre Derumier <aderumier@odiso.com>
2013-05-06 11:29:41 +02:00
Dietmar Maurer
4fca015325 set long timeout for query-block-jobs
Like we do for other block job query commands. Seems those commands
can hangs for some time.
2013-05-06 09:25:39 +02:00
Dietmar Maurer
719893a944 has_features: also return a list of allowed nodes
This is useful if a feature is restricted to a limited set of nodes.
2013-05-06 08:56:17 +02:00
Dietmar Maurer
7758ce869d has_feature: add 'copy' to enum 2013-05-03 12:30:43 +02:00
Dietmar Maurer
7af0a6c88d create template: fix permission check
This function only works if the VM already exists. But pool permissions
are automatically inherited on existing VMs, so there is no need
to explicitly check pool permissions.
2013-05-03 09:14:25 +02:00
Dietmar Maurer
d703d4c010 clone: correctly add VM to pool 2013-05-03 09:08:39 +02:00
Dietmar Maurer
2dd530430b fix typo, whitespace cleanups 2013-05-03 08:39:41 +02:00
Alexandre Derumier
00b095caba vm_clone : add running vm drive mirror
Signed-off-by: Alexandre Derumier <aderumier@odiso.com>
2013-05-03 08:37:18 +02:00
Alexandre Derumier
cfad42afd4 add qemu_drive_mirror
Signed-off-by: Alexandre Derumier <aderumier@odiso.com>
2013-05-03 08:37:03 +02:00
Dietmar Maurer
f9bfceefa6 restore: allow to overwrite existing VMs if user has VM.Backup permissions
The requirement to have VM.Allocate it non-obvious and confusing
if the VM already exists. If the user can backup, he should also be able
to restore that backup.
2013-05-03 07:47:08 +02:00
Dietmar Maurer
9418baad81 remane copy to clone 2013-05-02 11:42:22 +02:00
Dietmar Maurer
dba198b05e check has_feature copy for full clone 2013-05-02 07:17:15 +02:00
Dietmar Maurer
829967a93b copy_vm: re-structure code to allow more checks before fork 2013-05-02 07:10:46 +02:00
Alexandre Derumier
c6d0c8a702 fix : signal interrupt don't delete volume on full copy
Currently we  push newvolid to newvollist after qemu-img convert,
so if signal interrupt occur during qemu-img convert, the newvollist is empty and we can't free the volume

Instead, We need to push newvolid to newvollist just after volume creation

Signed-off-by: Alexandre Derumier <aderumier@odiso.com>
2013-05-02 06:49:12 +02:00
Alexandre Derumier
751cc556dc fix "Use of uninitialized value $target"
Signed-off-by: Alexandre Derumier <aderumier@odiso.com>
2013-05-02 06:40:01 +02:00
Dietmar Maurer
75466c4fa6 white-space cleanups 2013-04-30 11:46:38 +02:00
Dietmar Maurer
55173c6bd4 copy_vm: new option to move final VM to other node (option target)
This only works if the VM is on shared storage.
2013-04-30 11:44:39 +02:00
Alexandre Derumier
42a19c87bc vm_copy : add optional format parameter
can be qcow2,raw,vmdk

Signed-off-by: Alexandre Derumier <aderumier@odiso.com>
2013-04-30 10:46:44 +02:00
Dietmar Maurer
a60ab1a6a2 copy_vm: add name and description option 2013-04-30 09:54:34 +02:00
Dietmar Maurer
9076d880a8 copy_vm: allow to copy from snapshot 2013-04-30 09:31:23 +02:00
Dietmar Maurer
4e4f83fea0 copy_vm: use exclusive lock for running VM
Because we can only run one block job to copy data.
2013-04-30 07:40:43 +02:00
Alexandre Derumier
81f043ebc0 copy_vm : add optional storage parameter
Optionnal target storage for full copy

Signed-off-by: Alexandre Derumier <aderumier@odiso.com>
2013-04-30 07:16:54 +02:00
Alexandre Derumier
15b1fc9395 don't send qmp balloon commands if vm is started with a state file
Signed-off-by: Alexandre Derumier <aderumier@odiso.com>
2013-04-30 07:01:58 +02:00
Alexandre Derumier
bdf3f36209 parse_drive : return correct format
Currently format is always empty, we need to parse file extension

Signed-off-by: Alexandre Derumier <aderumier@odiso.com>
2013-04-30 06:55:33 +02:00
Alexandre Derumier
3732918544 vm_copy : fix typo in description
Signed-off-by: Alexandre Derumier <aderumier@odiso.com>
2013-04-30 06:55:18 +02:00
Dietmar Maurer
b83e0181f1 implement copy_vm
This is based on patches from Alexandre Derumier <aderumier@odiso.com>.

It just implements copy/clone for stopped VMs and Templates. Copying
running VMs or copy from snapshots is not implemented.
2013-04-29 10:53:03 +02:00
Alexandre Derumier
5133de429e add qemu_img_convert
also work with snapshot as source for qcow2,rbd,sheepdog.

Signed-off-by: Alexandre Derumier <aderumier@odiso.com>
2013-04-29 09:30:58 +02:00
Dietmar Maurer
6116f72902 implement shared file locks
and add a first prototype for copy_vm
2013-04-29 09:30:15 +02:00
Dietmar Maurer
218cab9a3a use correct package prefix 2013-04-22 10:57:24 +02:00
Dietmar Maurer
b91c2aae28 fix assertion 2013-04-22 09:43:54 +02:00
Dietmar Maurer
35c5fdefce move assertion so that we have all checks at the same place. 2013-04-22 07:10:58 +02:00
Dietmar Maurer
75e7e997e7 set template flag earlier 2013-04-22 07:08:51 +02:00
Dietmar Maurer
0402a80b77 do not allow template creation if there are snapshots. 2013-04-22 07:05:54 +02:00
Dietmar Maurer
bef4463b61 fix wrong comment 2013-04-22 07:02:10 +02:00
Alexandre Derumier
bbd560974a template_create : add template:1 option.
Also allow template create of non base-xxx renamable storage

Signed-off-by: Alexandre Derumier <aderumier@odiso.com>
2013-04-22 06:59:18 +02:00
Stefan Priebe
b02691d817 use vm create permissions for templates
Signed-off-by: Stefan Priebe <s.priebe@profihost.ag>
2013-04-19 11:38:57 +02:00
Dietmar Maurer
03da3f0d46 fix bug 377: make qm rescan work properly 2013-04-19 10:45:46 +02:00
Alexandre Derumier
96d695c08a is_template : return 1 if template option == 1
Signed-off-by: Alexandre Derumier <aderumier@odiso.com>
2013-04-19 06:56:30 +02:00
Alexandre Derumier
68eda3abc4 add template config option
Signed-off-by: Alexandre Derumier <aderumier@odiso.com>
2013-04-19 06:56:03 +02:00
Dietmar Maurer
b006e70b68 avoid endless loop in QMPClient 2013-04-18 10:34:44 +02:00
Dietmar Maurer
f4fde4d376 do not delete unmatched content from $$input 2013-04-18 08:26:23 +02:00
Dietmar Maurer
013d52755f allow sparse restore for sheepdog and rbd 2013-04-18 06:14:50 +02:00
Dietmar Maurer
92f0fedcce parse_net: fix warning about uninitialized value 2013-03-22 06:23:22 +01:00
Dietmar Maurer
405b913a01 add better checks to test if backup was successful 2013-03-15 06:32:14 +01:00
Alexandre Derumier
1f219ef546 virtio disk hot-unplug: drive_del after device_del
we need to remove drive after device has correctly by remove.

With this patch:

Windows : if drive is locked/"mounted", the hot-unplug fail and disk is accessible (100% safe)

Linux: without hotplug module : the hot-unplug fail and disk is accessible (100% safe)

Linux : with hotplug module : the hot-unplug work, but no verification is done is the drive is mounted

Signed-off-by: Alexandre Derumier <aderumier@odiso.com>
2013-03-07 08:37:49 +01:00
Alexandre Derumier
750886f87a nic hot-unplug: delete netdev after device removal
Currently we delete netdev before acpi hot-unplug.

if guest don't support hotplug, this break network.

We need to remove netdev after the device had be correctly unplug.(we check that device has been correctly removed)
So, If guest don't support hotplug, It's simply thrown a unplug error message without breaking the network

Signed-off-by: Alexandre Derumier <aderumier@odiso.com>
2013-03-07 08:37:23 +01:00
Alexandre Derumier
de8f60b252 dynamic bridge rate/vlan change on nic update
if model change : we try to unplug like before
if bridge/nat change : we try to unplug like before

else if bridge, but rate/vlan/bridge change, we dynamicly change them without need hotplug

Signed-off-by: Alexandre Derumier <aderumier@odiso.com>
2013-03-05 12:10:06 +01:00
Dietmar Maurer
fc97ae2788 fix backup-cancel timeout 2013-03-01 10:59:19 +01:00
Dietmar Maurer
bb1e32937a Revert "vncproxy: wait max 10s for the socket if it does not exist"
This reverts commit 58504d5edf.

The patch only works if the VM is on local host.
2013-02-28 12:49:21 +01:00
Dietmar Maurer
60635a5733 vzdump: improve error reporting
And use kill(9) instead of kill(-9), which simply hangs
2013-02-28 10:47:55 +01:00
Stefan Priebe
58504d5edf vncproxy: wait max 10s for the socket if it does not exist
Signed-off-by: Stefan Priebe <s.priebe@profihost.ag>
2013-02-28 06:53:54 +01:00
Dietmar Maurer
b7b1ac9d04 fix check if a backing file exist 2013-02-28 06:36:46 +01:00
Alexandre Derumier
ef86170e9f bugfix #340 : don't set cache=none to cdrom
Cdrom devices don't works with cache=none and no reason to force cache mode on cdrom

Signed-off-by: Alexandre Derumier <aderumier@odiso.com>
2013-02-27 09:21:31 +01:00
Dietmar Maurer
eac6899d96 default cpu type is kvm64 now 2013-02-25 07:01:51 +01:00
Alexandre Derumier
d5f315fda5 migration : display qm resume error in task log
Signed-off-by: Alexandre Derumier <aderumier@odiso.com>
2013-02-25 06:15:45 +01:00
Alexandre Derumier
f2965e67df forbid online resize a virtio windows bootdisk
Currently is give us bsod, it's a windows virtio-blk driver bug.

Signed-off-by: Alexandre Derumier <aderumier@odiso.com>
2013-02-25 06:15:00 +01:00
Alexandre Derumier
11490cf228 set cache=none if option is not defined
Signed-off-by: Alexandre Derumier <aderumier@odiso.com>
2013-02-25 06:11:37 +01:00
Alexandre Derumier
0ecf8463da usb-tablet : always use uhci controller
- usb-tablet on ehci is buggy
- convert to -device syntax

info usb before
----------------
  Device 0.2, Port 1, Speed 12 Mb/s, Product QEMU USB Tablet

info usb after
--------------
  Device 0.2, Port 1, Speed 12 Mb/s, Product QEMU USB Tablet

Signed-off-by: Alexandre Derumier <aderumier@odiso.com>
2013-02-22 11:53:52 +01:00
Alexandre Derumier
24f0d39a6c uhci controller : use new -device syntax
we need an id to allow hotplug

info pci before
---------------
  Bus  0, device   1, function 2:
    USB controller: PCI device 8086:7020
      IRQ 11.
      BAR4: I/O at 0xc040 [0xc05f].
      id ""

info pci after
--------------
  Bus  0, device   1, function 2:
    USB controller: PCI device 8086:7020
      IRQ 11.
      BAR4: I/O at 0xc040 [0xc05f].
      id "uhci"

Signed-off-by: Alexandre Derumier <aderumier@odiso.com>
2013-02-22 11:52:23 +01:00
Dietmar Maurer
fcc573ab24 Revert "enable usb2 controller by default"
This reverts commit 42869ac07d.
2013-02-22 10:08:10 +01:00
Dietmar Maurer
2dbe827e38 disable hotplug by default
This reverts commit 6c52b6794e

Testing revealed that this has too many side effect, so we do not want
to change that for the 2.3 release.
2013-02-22 09:52:45 +01:00
Dietmar Maurer
23b4120bc8 add offline backup for templates 2013-02-22 09:46:59 +01:00
Dietmar Maurer
1575bfccc5 fix backup parameters for pve-qemu-kvm 1.4-4
bump version to 2.3-11

depend on pve-qemu-kvm 1.4-4
2013-02-20 10:48:52 +01:00
Alexandre Derumier
e8a7e9b44c fix tablet hotplug
Signed-off-by: Alexandre Derumier <aderumier@odiso.com>
2013-02-19 12:56:58 +01:00
Dietmar Maurer
6c52b6794e hotplug/unplug devices by default 2013-02-19 10:47:17 +01:00
Alexandre Derumier
9a8d6b6665 hot-unplug : add some warnings for differents guest os
Signed-off-by: Alexandre Derumier <aderumier@odiso.com>
2013-02-19 10:38:50 +01:00
Alexandre Derumier
73aa03b87f qemu_netdevadd : convert to qmp
Signed-off-by: Alexandre Derumier <aderumier@odiso.com>
2013-02-19 10:32:01 +01:00
Alexandre Derumier
89c1e0f438 qemu_netdevdel : convert to qmp
Signed-off-by: Alexandre Derumier <aderumier@odiso.com>
2013-02-19 10:31:51 +01:00
Alexandre Derumier
d695b5b725 qemu_deviceadd : convert to qmp
Signed-off-by: Alexandre Derumier <aderumier@odiso.com>
2013-02-19 10:31:43 +01:00
Alexandre Derumier
5a77d8c105 qemu_devicedel : convert to qmp
Signed-off-by: Alexandre Derumier <aderumier@odiso.com>
2013-02-19 10:31:28 +01:00
Alexandre Derumier
cd6ecb89eb hotplug/unplug tablet on config update
Signed-off-by: Alexandre Derumier <aderumier@odiso.com>
2013-02-19 06:42:53 +01:00
Alexandre Derumier
42869ac07d enable usb2 controller by default
Signed-off-by: Alexandre Derumier <aderumier@odiso.com>
2013-02-19 06:41:05 +01:00
Alexandre Derumier
daca220d29 vzdump : check if volid exist with volume_size_info
Signed-off-by: Alexandre Derumier <aderumier@odiso.com>
2013-02-18 06:49:07 +01:00
Alexandre Derumier
a6f0e83b93 template_create : check has_feature template
Signed-off-by: Alexandre Derumier <aderumier@odiso.com>
2013-02-18 06:19:14 +01:00
Dietmar Maurer
8b43bc11db add missing newline 2013-02-15 11:08:28 +01:00
Dietmar Maurer
03c2d0ad6f remove wrong permission check 2013-02-15 08:45:42 +01:00
Dietmar Maurer
9cd0784249 template_create: check for 'clone' feature 2013-02-15 08:44:12 +01:00
Dietmar Maurer
3e2bbcdc0e is_template: always return a defined value
use 0 instead of undef
2013-02-15 08:12:33 +01:00
Alexandre Derumier
4d8c851bcc vmstatus : return template if vm is a template
Signed-off-by: Alexandre Derumier <aderumier@odiso.com>
2013-02-15 08:09:36 +01:00
Dietmar Maurer
5295b23dfb move template checks up one level
To avoid multiple/repeated calls to load_config().
2013-02-15 08:04:30 +01:00
Alexandre Derumier
f78fe36ece forbid snapshot create if current it's a template
Signed-off-by: Alexandre Derumier <aderumier@odiso.com>
2013-02-15 07:57:01 +01:00
Alexandre Derumier
d560409207 forbid offline migration of a non shared volume if it's a clone
Signed-off-by: Alexandre Derumier <aderumier@odiso.com>
2013-02-15 07:52:53 +01:00