Commit Graph

712 Commits

Author SHA1 Message Date
Wolfgang Bumiller
6941ee4e1c fix typo
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2017-11-10 11:27:05 +01:00
Dominik Csapak
1a988fd2e8 check if ga runs before a fsfreeze-freeze/thaw
since the guest-fsfreeze-freeze command has a timeout of 1 hour,
we want to check if the guest-agent even runs before executing that,
or else we wait 1 hour and then continue

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Reviewed-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2017-11-10 11:20:55 +01:00
Thomas Lamprecht
44c2a647ff update ostype documentation
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2017-11-07 08:47:15 +01:00
Dominik Csapak
2bfbee039b include format for efidisk
if the efidisk is in 'raw' format, qemu will prevent writes
on block zero if the format is not explicitely given

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2017-11-07 08:45:25 +01:00
Philip Abernethy
237239bf60 correct cpuunits range
'These options take an integer value and control the "cpu.shares"
control group attribute. The allowed range is 2 to 262144. Defaults to
1024.' – man 5 systemd.resource-control
2017-10-17 14:10:49 +02:00
Dominik Csapak
5e67a2d2c4 check if base volumes are unused before deleting a template
we only checked if a vm had in use base disks when deleting them,
at which point we do not stop to delete the vm even when a
disk deletion fails, which means we could successfully delete the config
and all not used (base) disks of a template, resulting in left over vm disks

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2017-10-13 10:18:34 +02:00
Emmanuel Kasper
ae2fcb3be6 Refactor defaut bootdisk and smbios1 uuid generation in own subs
This will allow code reuse for qm importovf
2017-09-25 13:31:55 +02:00
Fabian Grünbichler
8ddbcf8bd6 use foreach_drive in foreach_storage_used_by_vm
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2017-09-22 10:02:54 +02:00
Fabian Grünbichler
8cad5e9bd8 config: make vmstatestorage hotpluggable
since this is just an option for PVE, and does not concern the VM at all.

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2017-09-22 10:02:54 +02:00
Fabian Grünbichler
65a5ce88e6 rename foreach_writable_storage to foreach_storage_used_by_vm
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2017-09-22 10:02:54 +02:00
Fabian Grünbichler
253624c76f config: add vmstatestorage option
and permission checks

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2017-09-22 10:02:54 +02:00
Emmanuel Kasper
6cb0144ae3 do not overwrite global signal handlers
perls 'local' must be either used in front of each $SIG{...}
assignments or they must be put in a list, else it affects only the
first variable and the rest are *not* in local context.

In all cases the global signal handlers we overwrote were in cli programs or
forked workers, not in daemons.
2017-09-14 15:25:28 +02:00
Thomas Lamprecht
4dcce9ee3c ovmf: deprecate old legay ovmf image and refactor
this was only kept for PVE 4.X where the switch to the newer OVMF
image with actual working persisten EFIVARS was made.

We do not ship this old image in PVE 5.0 anymore so remove this
legacy code as it can never trigger anyhow.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2017-09-11 10:04:46 +02:00
Thomas Lamprecht
3e1f112286 create_disks: refactor out and improve efidisk creation
factor out code in a new create_efidisk submethod, as else this code
is hardly readable as the efidisk0 case is a special case. Refer from
putting all this specialised handling directly to the much shorter
code for all other cases.

Also the disk was created with a specific format and then a format
detection on the newly created disk was done, which is pretty
useless, clear that up.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2017-09-11 10:04:46 +02:00
Thomas Lamprecht
5b97ef2441 restore_vma_archive: do not overwrite global signal handlers
perls 'local' must be either used in front of each $SIG{...}
assignments or they must be put in a list, else it affects only the
first variable and the rest are *not* in local context.

This may cause weird behaviour where daemons seemingly do not get
terminating signals delivered correctly and thus may not shutdown
gracefully anymore.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2017-09-07 10:39:34 +02:00
Philip Abernethy
bfcd9b7eac Fix #1125. Check for KVM support before starting VM
Moved the check to the beginning of the function.
VMs configured to use KVM won't start if KVM is not available.
VMs not configured to use KVM will start regardless.
2017-08-21 16:19:20 +02:00
Philip Abernethy
74c02ef7f8 Refactors $nokvm to $kvm
for improved readability and consistency with the option name.
2017-08-21 16:19:20 +02:00
Philip Abernethy
075e8249fa Refactor HyperV enlightenments
Fixes a typo in the function name and removes the $nokvm parameter, as it's only
used to immideately exit the function. Instead calling the function
conditionally.
2017-08-21 16:19:20 +02:00
Thomas Lamprecht
a2a5cd64ab use machine version in vga default type selection
If we get an VM machine older than 2.9 we use the old selection
expression for the VGA type. This allows to live migrate VMs to PVE
5.0 from beta 1 and PVE 4.4 again.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2017-07-17 11:16:49 +02:00
Dominik Csapak
8aca16542e fix disk throttling syntax
the syntax was wrong, it was (e.g. for iops-write):

throttling.iops-write=-max100
instead of
throttling.iops-write-max=100

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2017-07-14 15:15:11 +02:00
Wolfgang Bumiller
85909c04c4 don't use cirrus by default for sane OS'
(It can stay for $winversion < 6 because then you probably
don't have drivers for anything else.)

this is long overdue
2017-06-28 12:07:16 +02:00
Dietmar Maurer
39019f75c7 PVE::QemuServer::foreach_volid - record snapshot references
So that we can test if a volume is referenced in the main config, and/or
inside a snapshot config.
2017-06-13 09:02:06 +02:00
Dietmar Maurer
392f8b5dff PVE::QemuServer::foreach_volid - pass $attr hash to callback
That way we can pass more informations, i.e. the 'replicate' attribute.
2017-06-13 09:02:06 +02:00
Wolfgang Bumiller
5ee3847149 fix #1405: sort pci ids by functions
QemuServer::lspci() iterates over /sys/bus/pci/devices which
doesn't guarantee any order which means functions sometimes
ended up in the wrong order and it was never clear which
one would get the additional options such as x-vga passed
to them.
2017-06-09 12:34:18 +02:00
Emmanuel Kasper
44549149af Refactor the resolution of target disk format in own sub
This will allow use to reuse the code in ImportDisk.pm.
2017-06-01 11:05:35 +02:00
Wolfgang Bumiller
fb8e95a218 fix burst length parameter names and pass them to qemu
bps_max_length & friends were wrongly named and were only
passed to qemu when hot-applying changes. They can only
be passed via the command line with their new names. For
consistency let's rename them all, that way they're all in
one place.

Fixes #1195 (for real this time).
2017-05-31 08:10:27 +02:00
Wolfgang Bumiller
911524414e fix #1229: more explicit spice port allocation
We cannot look for ports on "any" wildcard address while
letting qemu bind to "localhost", this may lead to a qemu
process occupying ::1 while the next search successfully
finds the same port available for IPv4's '*' address.

Instead, we now lookup the IP of the desired family for
'localhost'. Note that while we could simply be hardcoding
::1 or 127.0.0.1, with this code we are protocol agnostic.
2017-05-31 08:07:34 +02:00
Dietmar Maurer
3ab7663a91 remove 'replicate' configuration - we will store that in another file 2017-05-31 07:53:57 +02:00
Fabian Grünbichler
df58868200 print_cpu_device: remove unused variable 2017-05-23 14:23:52 +02:00
Tobias Böhm
7032e08c85 Fix #1384: add missing decrement to calculation of socket-id
For calculation of "current_core" the input variable id is decremented.
For calculation of "current_socket" this decrement was missing resulting
in a wrong value when "cores" is set to 1.

Signed-off-by: Tobias Böhm <tb@robhost.de>
2017-05-23 14:21:55 +02:00
Dietmar Maurer
3aa44d3b57 move get_replicatable_volumes from QemuServer.pm to QemuConfig.pm 2017-05-06 17:13:31 +02:00
Dietmar Maurer
0342b45bee get_replicatable_volumes: replacemnet for PVE::ReplicationTools::get_syncable_guestdisks()
correctly scan for volumes inside snapshots.

This will also solve the cyclic package dependency propblem.
2017-05-06 15:11:46 +02:00
Dietmar Maurer
8557d01f75 rename drive 'replica' property to 'replicate' 2017-05-06 10:46:21 +02:00
Dietmar Maurer
2286cb8c23 use a single replicate property (format pve-replicate) 2017-05-06 10:35:08 +02:00
Wolfgang Bumiller
1849c59288 whitespace fixup 2017-04-28 10:14:26 +02:00
Wolfgang Link
9edac22f5f Insert new properties in the Qemu config for the PVE Replica.
This patch will include all necessary properties for the replication.
Also will it enable and disable a replication job
when appointed flags are set or deleted.
2017-04-28 10:11:33 +02:00
Alexandre Derumier
6e9d255038 add rerror for all drives
it was missing for scsi, and it's supported for all kind of drive

Signed-off-by: Alexandre Derumier <aderumier@odiso.com>
2017-04-28 10:02:38 +02:00
Fabian Grünbichler
b37ecfe6ae start: keep VM paused when migrating via unix socket
this (correctly!) errored out with Qemu 2.9 when live-migrating
local disks, because the NBD server blocks the VM from being
resumed. was probably missed when migrating via unix domains
was originally introduced..

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2017-04-21 11:43:29 +02:00
Wolfgang Bumiller
d1782ebad3 don't compare booleans
a) because perl isn't THAT bad of a language that you'd need
to do this and b) because JSON::XS version 2.90 "dropped"
this "feature"
2017-04-03 14:13:15 +02:00
Dominik Csapak
3db920fc13 add Skylake to CPU Models
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2017-02-28 12:19:14 +01:00
Wolfgang Bumiller
7fe1b688b6 fix bad scsihw default value check
This was checking for scsihw being set in both branches
whereas lsi is also the default. Added the missing 'not'.

Fixes a bug where a VM with a disk with a scsi index >= 7
refused to start due to an invalid scsi id.

Reported-by: Friedrich Ramberger <f.ramberger@proxmox.com>
2017-02-13 14:10:00 +01:00
Wolfgang Bumiller
1e4fb053d3 skiplock standard option was moved to pve-common
this now need libpve-common-perl >= 4.0-92
2017-02-08 09:56:02 +01:00
Fabian Grünbichler
5ff2bb065a change TLS cipher suite to HIGH
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2017-01-31 13:38:20 +01:00
Fabian Grünbichler
8e3c33ab64 only use scsi-block with explicit opt-in
since it can cause I/O errors and data corruption in low
memory or highly fragmented memory situations since Qemu 2.7

use scsi-hd by default instead

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2017-01-25 09:18:46 +01:00
Dmitry Petuhov
7246e8f92f Set zero $size and continue if volume_resize() returns false
Needed for some storages with backing block devices to do oonlinr resize.

Signed-off-by: Dmitry Petuhov <mityapetuhov@gmail.com>
2017-01-16 09:14:32 +01:00
Wolfgang Bumiller
9009150b81 cleanup: drop superfluous condition in assignment
Its use later on already uses itself as condition.
2017-01-09 15:33:12 +01:00
Alexandre Derumier
456a6fec00 add romfile option to hostpci
Signed-off-by: Alexandre Derumier <aderumier@odiso.com>
2017-01-09 15:31:18 +01:00
Wolfgang Bumiller
bd2d5fe6ff cleanup: error messages 2017-01-05 10:03:16 +01:00
Wolfgang Bumiller
923aaa9e1a drive-mirror: bump timeout to 5s, add 30s inactivity timeout 2017-01-05 10:03:16 +01:00
Wolfgang Bumiller
ca5c27f065 drive-mirror: warn use POSIX::_exit on exec failure 2017-01-05 10:03:16 +01:00