]>
git.proxmox.com Git - pve-guest-common.git/log
summary |
shortlog | log |
commit |
commitdiff |
tree
first ⋅ prev ⋅ next
Wolfgang Link [Wed, 9 May 2018 12:48:21 +0000 (14:48 +0200)]
Cleanup for stateless jobs.
If a VM configuration has been manually moved or recovered by HA,
there is no status on this new node.
In this case, the replication snapshots still exist on the remote side.
It must be possible to remove a job without status,
otherwise, a new replication job on the same remote node will fail
and the disks will have to be manually removed.
When searching through the sorted_volumes generated from the VMID.conf,
we can be sure that every disk will be removed in the event
of a complete job removal on the remote side.
In the end, the remote_prepare_local_job calls on the remote side a prepare.
Dietmar Maurer [Mon, 16 Apr 2018 09:48:13 +0000 (11:48 +0200)]
bump version to 2.0-15
Dietmar Maurer [Mon, 16 Apr 2018 08:52:24 +0000 (10:52 +0200)]
Replication.pm: code cleanup
Dietmar Maurer [Mon, 16 Apr 2018 08:48:49 +0000 (10:48 +0200)]
PVE/Replication.pm: fix error message
Wolfgang Link [Fri, 13 Apr 2018 10:24:39 +0000 (12:24 +0200)]
fix #1694: make failure of snapshot removal non-fatal
In certain high-load scenarios ANY ZFS operation can block,
including registering an (async) destroy.
Since ZFS operations are implemented via ioctl's,
killing the user space process
does not affect the waiting kernel thread processing the ioctl.
Once "zfs destroy" has been called, killing it does not say anything
about whether the destroy operation will be aborted or not.
Since running into a timeout effectively means killing it,
we don't know whether the snapshot exists afterwards or not.
We also don't know how long it takes for ZFS to catch up on pending ioctls.
Given the above problem, we must to not die on errors when deleting a no
longer needed snapshot fails (under a timeout) after an otherwise
successful replication. Since we retry on the next run anyway, this is
not problematic.
The snapshot deletion error will be logged in the replication log
and the syslog/journal.
Thomas Lamprecht [Thu, 14 Dec 2017 06:58:36 +0000 (07:58 +0100)]
vzdump: add common log sub-method
Add a general log method here which supports to pass on the "log to
syslog too" functionality and makes it more clear what each
parameter of logerr and logginfo means.
Further, we can now also log wlith a 'warn' level, which can be
useful to notice an backup user of a possible problem which isn't a
error per se, but may need the users attention.
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
Thomas Lamprecht [Thu, 14 Dec 2017 06:58:35 +0000 (07:58 +0100)]
vzdump: allow all defined log levels
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
Wolfgang Bumiller [Wed, 13 Dec 2017 13:51:50 +0000 (14:51 +0100)]
bump version to 2.0-14
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Link [Thu, 7 Dec 2017 11:06:59 +0000 (12:06 +0100)]
Remove noerr form replication.
We will handle this errors in the API and decide what to do.
Reviewed-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
Acked-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Fabian Grünbichler [Tue, 17 Oct 2017 13:04:41 +0000 (15:04 +0200)]
bump version to 2.0-13
and add versioned dependency on libpve-storage-perl for storage_migrate
signature change (added logfunc parameter).
Wolfgang Bumiller [Wed, 11 Oct 2017 12:24:58 +0000 (14:24 +0200)]
replication: purge states: verify the vmlist
Instead of clearing out the local state if the last
cfs_update failed.
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Link [Tue, 10 Oct 2017 07:43:51 +0000 (09:43 +0200)]
Add logfunc in storage_migration.
This will redirect export and import output to the correct log, instead of paring it into the syslog.
Fabian Grünbichler [Wed, 4 Oct 2017 09:05:33 +0000 (11:05 +0200)]
build: reformat debian/control
using wrap-and-sort -abt
Wolfgang Bumiller [Thu, 21 Sep 2017 07:46:53 +0000 (09:46 +0200)]
bump version to 2.0-12
Thomas Lamprecht [Wed, 13 Sep 2017 08:30:14 +0000 (10:30 +0200)]
VZDump/Plugin: avoid cyclic dependency
pve-guest-common is above qemu-server, pve-container and thus also
pve-manager in the package hierarchy.
The latter hosts PVE::VZDump, so using it here adds a cyclic
dependency between pve-manager and pve-guest-common.
Move the log method to the base plugin class and inline the
run_command function directly do the plugins cmd method.
pve-manager's PVE::VZDump may use this plugins static log function
then instead of its own copy.
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
Thomas Lamprecht [Wed, 13 Sep 2017 08:40:52 +0000 (10:40 +0200)]
AbstractMigrate: remove unused obsolete variables
Thomas Lamprecht [Wed, 6 Sep 2017 11:29:04 +0000 (13:29 +0200)]
AbstractMigrate: 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>
Alwin Antreich [Mon, 28 Aug 2017 09:08:12 +0000 (11:08 +0200)]
Fix #1480: die if snapshot name is not found before set_lock is used
Signed-off-by: Alwin Antreich <a.antreich@proxmox.com>
Wolfgang Bumiller [Mon, 3 Jul 2017 12:51:10 +0000 (14:51 +0200)]
bump version to 2.0-11
Wolfgang Bumiller [Mon, 3 Jul 2017 09:58:41 +0000 (11:58 +0200)]
replication: we must call storage_migrate with with_snapshots true
Dietmar Maurer [Thu, 29 Jun 2017 08:57:07 +0000 (10:57 +0200)]
bump version to 2.0-10
Thomas Lamprecht [Thu, 29 Jun 2017 08:08:28 +0000 (10:08 +0200)]
replication job_status: add get_disabled parameter
allows the API/frontend to get the disabled jobs easier
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
Dietmar Maurer [Thu, 29 Jun 2017 05:29:29 +0000 (07:29 +0200)]
bump version to 2.0-9
Dietmar Maurer [Thu, 29 Jun 2017 05:27:16 +0000 (07:27 +0200)]
Revert "Add guest type at find_local_replication_job"
This reverts commit
914b6647a4467d323af1d3b501293270c70c3fd1 .
No longer required.
Dietmar Maurer [Thu, 29 Jun 2017 05:25:28 +0000 (07:25 +0200)]
PVE::Replication - do not use $jobcfg->{vmtype}
Wolfgang Bumiller [Wed, 28 Jun 2017 12:32:56 +0000 (14:32 +0200)]
bump version to 2.0-8
Wolfgang Link [Wed, 28 Jun 2017 12:27:37 +0000 (14:27 +0200)]
Add guest type at find_local_replication_job
We need this at migration time.
Dietmar Maurer [Wed, 28 Jun 2017 10:47:05 +0000 (12:47 +0200)]
bump version to 2.0-7
Dietmar Maurer [Wed, 28 Jun 2017 10:05:18 +0000 (12:05 +0200)]
fix previous commit
Dietmar Maurer [Wed, 28 Jun 2017 10:00:25 +0000 (12:00 +0200)]
replication: improve schedule_job_now
do no not modify anything if there is no state
Wolfgang Bumiller [Wed, 28 Jun 2017 09:35:06 +0000 (11:35 +0200)]
replication: add schedule_job_now helper
Wolfgang Bumiller [Wed, 28 Jun 2017 07:02:29 +0000 (09:02 +0200)]
replication: sort time stamps numerically
Dietmar Maurer [Wed, 28 Jun 2017 05:54:11 +0000 (07:54 +0200)]
replication: pass $noerr to run_replication_nolock
Wolfgang Link [Tue, 27 Jun 2017 10:20:23 +0000 (12:20 +0200)]
Add new function delete_guest_states.
Wolfgang Bumiller [Tue, 27 Jun 2017 08:53:13 +0000 (10:53 +0200)]
replication: don't sync to offline targets on error states
There's no point in trying to replicate to a target node
which is offline. Note that if we're not already in an
error state we do still give it a try in order for this to
get logged as an error at least once.
Wolfgang Bumiller [Tue, 27 Jun 2017 08:53:12 +0000 (10:53 +0200)]
replication: keep retrying every 30 minutes in error state
Otherwise we never get out of it.
Dietmar Maurer [Tue, 27 Jun 2017 09:41:44 +0000 (11:41 +0200)]
PVE::ReplicationState - cleanup job state on job removal
Signed-off-by: Dietmar Maurer <dietmar@proxmox.com>
Dietmar Maurer [Tue, 27 Jun 2017 08:15:01 +0000 (10:15 +0200)]
PVE::ReplicationState::purge_old_states - new helper
Dietmar Maurer [Tue, 27 Jun 2017 06:13:36 +0000 (08:13 +0200)]
PVE::ReplicationState::write_job_state - allow to remove state completely
Dietmar Maurer [Fri, 23 Jun 2017 11:18:08 +0000 (13:18 +0200)]
PVE/Replication.pm: also log when we thaw the filesystem
Dietmar Maurer [Thu, 22 Jun 2017 11:05:10 +0000 (13:05 +0200)]
bump version to 2.0-6
Dominik Csapak [Tue, 20 Jun 2017 12:27:23 +0000 (14:27 +0200)]
change replica log timestamp to a human readable format
modeled after the timestamps in vm migration
this does not impact the regression tests, because they
overwrite 'get_log_time' anyway
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Dietmar Maurer [Thu, 22 Jun 2017 06:44:18 +0000 (08:44 +0200)]
bump version to 2.0-5
Dietmar Maurer [Wed, 21 Jun 2017 10:24:57 +0000 (12:24 +0200)]
PVE::AbstractMigrate - new helpers to handle replication jobs
Dietmar Maurer [Wed, 21 Jun 2017 10:24:06 +0000 (12:24 +0200)]
PVE::ReplicationState::extract_vmid_tranfer_state - new helper
moved from PVE::QemuMigrate
Dietmar Maurer [Wed, 21 Jun 2017 09:43:24 +0000 (11:43 +0200)]
PVE::ReplicationConfig::switch_replication_job_target - new helper
moved from PVE::QemuMigrate
Dietmar Maurer [Tue, 20 Jun 2017 11:19:53 +0000 (13:19 +0200)]
PVE/ReplicationConfig.pm: store job id inside job config
To simplify code.
Dietmar Maurer [Tue, 20 Jun 2017 06:54:01 +0000 (08:54 +0200)]
PVE::Replication::run_replication - add verbose parameter
used for regression tests
Dietmar Maurer [Tue, 20 Jun 2017 06:51:08 +0000 (08:51 +0200)]
PVE::Replication::run_replication - return replicated $volumes
Dietmar Maurer [Tue, 20 Jun 2017 04:53:36 +0000 (06:53 +0200)]
PVE::ReplicationState - new helpers record_job_start/record_job_end
Dietmar Maurer [Tue, 20 Jun 2017 04:17:27 +0000 (06:17 +0200)]
PVE::Replication::find_common_replication_snapshot - new helper
This is just a cleanup (simply factor out code from replicate()).
Dietmar Maurer [Mon, 19 Jun 2017 14:06:55 +0000 (16:06 +0200)]
PVE::ReplicationConfig::find_local_replication_job - new helper
Wolfgang Bumiller [Wed, 14 Jun 2017 08:23:51 +0000 (10:23 +0200)]
replication: replicate_volume: rate can be undefined
as it is optional in which case we want to pass undef to
stogae_migrate
Dietmar Maurer [Wed, 14 Jun 2017 06:44:13 +0000 (08:44 +0200)]
replicate_volume: implement rate limit and insecure
Dietmar Maurer [Tue, 13 Jun 2017 07:17:50 +0000 (09:17 +0200)]
call get_replicatable_volumes with $vmid parameter
Dietmar Maurer [Tue, 13 Jun 2017 07:00:24 +0000 (09:00 +0200)]
get_replicatable_volumes: add $vmid parameter
Dietmar Maurer [Tue, 13 Jun 2017 04:13:39 +0000 (06:13 +0200)]
PVE/AbstractConfig.pm - include missing classes
Dietmar Maurer [Mon, 12 Jun 2017 09:33:05 +0000 (11:33 +0200)]
PVE/ReplicationState.pm: implement write_vmid_job_states
Update all job states related to a specific $vmid
Wolfgang Link [Mon, 12 Jun 2017 08:38:20 +0000 (10:38 +0200)]
Make rollback compatible with storage replica.
If we rollback we have to clean up all local replication snapshots.
Dietmar Maurer [Mon, 12 Jun 2017 07:05:50 +0000 (09:05 +0200)]
PVE::Replication - pass $cleanup parameter to get_replicatable_volumes
Dietmar Maurer [Mon, 12 Jun 2017 07:03:14 +0000 (09:03 +0200)]
PVE::AbstractConfig - add prototype for get_replicatable_volumes
Dietmar Maurer [Mon, 12 Jun 2017 05:53:47 +0000 (07:53 +0200)]
PVE::Replication::prepare - allow to pass undefined $jobid
And remove all replication snapshots in that case. This is useful
for snapshot rollback.
Dietmar Maurer [Mon, 12 Jun 2017 05:03:22 +0000 (07:03 +0200)]
add PVE/Replication.pm - moved from pve-manager
Dietmar Maurer [Mon, 12 Jun 2017 04:35:35 +0000 (06:35 +0200)]
PVE::ReplicationConfig add delete_job helper
Moved from PVE::Replication.
Dietmar Maurer [Mon, 12 Jun 2017 04:17:14 +0000 (06:17 +0200)]
PVE::ReplicationState - add job_status, get_next_job, job_logfile_name helpers
Moved code from PVE::Replication.
Wolfgang Bumiller [Tue, 6 Jun 2017 08:04:00 +0000 (10:04 +0200)]
migrate: set migration_type
Moved from qemu-server: set $opts->{migration_type} to a
default or a value from datacenter.cfg.
Wolfgang Bumiller [Fri, 9 Jun 2017 07:55:58 +0000 (09:55 +0200)]
GuestHelpers: allow overriding $lockdir in test environments
Dietmar Maurer [Wed, 7 Jun 2017 09:28:40 +0000 (11:28 +0200)]
PVE::ReplicationConfig - set computed properties after schema verification
Else we get schema verification errors.
Dietmar Maurer [Wed, 7 Jun 2017 08:06:25 +0000 (10:06 +0200)]
PVE::ReplicationConfig - remove useless guest property
We extract it from the jobid instead.
Dietmar Maurer [Tue, 6 Jun 2017 09:47:38 +0000 (11:47 +0200)]
PVE::ReplicationState - new helper replication_snapshot_name()
Changed replication snapshot naming to __replicate_<jobid>_<lastsync>__
to avoid conflicts with normal snapshot names.
Dietmar Maurer [Tue, 6 Jun 2017 08:37:49 +0000 (10:37 +0200)]
PVE::ReplicationConfig - new helper parse_replication_job_id
Allow job numbers 0..N
Dietmar Maurer [Fri, 2 Jun 2017 10:18:41 +0000 (12:18 +0200)]
PVE::ReplicationConfig - use new ID format "<vmid>-<num>"
Dietmar Maurer [Fri, 2 Jun 2017 07:51:01 +0000 (09:51 +0200)]
PVE::ReplicationState - hold guest_migration_lock during state update
Dietmar Maurer [Fri, 2 Jun 2017 06:53:53 +0000 (08:53 +0200)]
PVE::ReplicationState - new helper class to read/write replication state
Dietmar Maurer [Wed, 31 May 2017 07:15:52 +0000 (09:15 +0200)]
bump version to 2.0-4
Dietmar Maurer [Wed, 31 May 2017 05:49:56 +0000 (07:49 +0200)]
Makefile: cleanup *.buildinfo
Dietmar Maurer [Tue, 30 May 2017 10:31:47 +0000 (12:31 +0200)]
PVE/ReplicationConfig.pm: add remove_job property
Dietmar Maurer [Wed, 24 May 2017 05:24:34 +0000 (07:24 +0200)]
PVE::GuestHelpers::guest_migration_lock - new helper
I create a separate class for common guest helpers.
We can move more code into this class later.
Dietmar Maurer [Tue, 23 May 2017 15:52:30 +0000 (17:52 +0200)]
PVE::ReplicationConfig::check_for_existing_jobs - new helper
We want to use that before removing a guest.
Dietmar Maurer [Wed, 10 May 2017 04:16:57 +0000 (06:16 +0200)]
AbstractConfig.pm: remove code for replicate configuration
It is no longer used.
Dietmar Maurer [Wed, 10 May 2017 04:14:24 +0000 (06:14 +0200)]
PVE/ReplicationConfig.pm - new configuratin file for replication
Wolfgang Bumiller [Mon, 22 May 2017 10:37:05 +0000 (12:37 +0200)]
migration: use Cluster's new get_ssh_info
Dietmar Maurer [Sat, 6 May 2017 08:58:24 +0000 (10:58 +0200)]
AbstractConfig.pm: do not copy/store replicate parameter in snapshot config
Wolfgang Bumiller [Fri, 28 Apr 2017 11:57:08 +0000 (13:57 +0200)]
bump version to 2.0-3
Wolfgang Link [Mon, 24 Apr 2017 15:15:34 +0000 (17:15 +0200)]
Replica parameters should be ignored by snapshot and restore.
The replica are parameter that should not be changed by a rollback.
Dietmar Maurer [Mon, 24 Apr 2017 05:41:31 +0000 (07:41 +0200)]
bump version to 2.0-2
Dietmar Maurer [Mon, 24 Apr 2017 05:38:36 +0000 (07:38 +0200)]
PVE/AbstractMigrate.pm: avoid locale specific time stamps
Fabian Grünbichler [Mon, 13 Mar 2017 10:29:29 +0000 (11:29 +0100)]
bump version to 2.0-1
Fabian Grünbichler [Mon, 13 Mar 2017 10:29:18 +0000 (11:29 +0100)]
buildsys: update make upload target for stretch
Thomas Lamprecht [Tue, 7 Mar 2017 16:57:01 +0000 (17:57 +0100)]
AbstractMigrate: remove unused rsync and scp remainders
We have no call using rsync_cmd or scp_cmd here or any child class.
The only part where rsync is used is in the
PVE::Storage::storage_migrate call, but here both the command and the
RSYNC_RSH environment variable gets assembled there locally, so clean
this up here.
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
Wolfgang Bumiller [Fri, 3 Feb 2017 13:44:51 +0000 (14:44 +0100)]
buildsys: make job safety
Fabian Grünbichler [Wed, 25 Jan 2017 08:51:07 +0000 (09:51 +0100)]
bump version to 1.0-2
Fabian Grünbichler [Wed, 25 Jan 2017 08:50:15 +0000 (09:50 +0100)]
add packaging for VZDump base plugin
Fabian Grünbichler [Wed, 25 Jan 2017 08:49:21 +0000 (09:49 +0100)]
add VZDump base Plugin.pm
moved from pve-manager
Fabian Grünbichler [Wed, 25 Jan 2017 08:13:35 +0000 (09:13 +0100)]
initial packaging
Fabian Grünbichler [Tue, 24 Jan 2017 12:59:08 +0000 (13:59 +0100)]
initial commit
AbstractConfig.pm and AbstractMigrate.pm copied from
pve-common
added use statements for PVE::Cluster and PVE::Storage to
AbstractConfig