[pve-devel] applied: [PATCH v3 pve-manager 00/23] storage replication - second try v3

Dietmar Maurer dietmar at proxmox.com
Wed May 31 08:33:15 CEST 2017


applied, so that we can start work on the GUI

> On May 30, 2017 at 3:19 PM Dietmar Maurer <dietmar at proxmox.com> wrote:
> 
> 
> The first series from Wolfgang introduced circular package dependency. So
> I moved most of the code to package pve-manager.
> 
> Notable changes:
> 
> - use a separate replication config file: /etc/pve/replication.cfg
> - allow more than one job per guest (as long as targets are different).
> - do not add ssh calls to the storage API
> - add regression tests
> - use systemd like calendar events ('schedule') instead of a simlple integer
> 'interval'
> - more flexible disk handling (add disks is now possible).
> - reduce number of ssh invocation on guests with more than one disk
> - improved command line tool 'pvesr' can now edit/change configuration
> - pvesr status: show additional values like 'NextSync' and 'Duration' of last
> sync
> - save pid in state, so that we can check if replication is still
> active/running
> 
> Please note that actual volume replication is not implemented, but you can run
> some interesting regression tests (replication-test5.pl). I just wanted to
> send
> what I have so far because the series already contain 18 patches ...
> 
> Changes in v2:
> -  add cleanups requested by fabian
> -  implement replicate_volume()
> -  aquire guest_migration_lock during replication
> -  PVE::API2Tools::resolve_proxyto - new helper
> -  PVE::API2::ReplicationConfig - implement proxyto_callback for delete
> 
> Changes in v3:
> - do not use proxyto_callback for delete. Instead, use the new remove_job
> property to mark a job for removal.
> - implement delete
> - new regression tests for delete
> - use new GuestHelpers class
> - minor cleanups
> 
> 
> Dietmar Maurer (23):
>   pvesr: add pve storage replication tool
>   add regression test environment for replication
>   replication_test2.pl: test replication scheduler
>   PVE/Replication.pm: save pid/ptime to running job state
>   PVE::Replication - use new calendar events instead of interval
>   replication_test3.pl: regression test for replication to same node
>   ReplicationTestEnv.pm: add job tracking log
>   replication_test4.pl: Test replication job failure
>   pvesr run: add --verbose flag
>   pvesr prepare-local-job: new helper
>   ReplicationTestEnv.pm: mock storage content methods
>   ReplicationTestEnv.pm: mock get_ssh_info and ssh_info_to_command
>   pvesr finalize-local-job: add helper to cleanup job
>   PVE::Replication::remote_prepare_local_job - new helper
>   PVE::Replication::remote_finalize_local_job - new helper
>   PVE::Replication::replicate - implement replicate
>   bin/test/Makefile: run all replication tests
>   ReplicationTestEnv.pm: avoid warning about undefined value
>   PVE::Replication - implement replicate_volume()
>   PVE::Replication - aquire guest_migration_lock during replication
>   PVE::API2Tools::resolve_proxyto - new helper
>   PVE::API2::ReplicationConfig - implement delete
>   replication_test5.pl: add test for job removal
> 
>  Makefile                       |   1 +
>  PVE/API2/Cluster.pm            |   7 +
>  PVE/API2/Makefile              |   2 +
>  PVE/API2/Nodes.pm              |   7 +
>  PVE/API2/Replication.pm        |  99 ++++++++
>  PVE/API2/ReplicationConfig.pm  | 217 +++++++++++++++++
>  PVE/API2Tools.pm               |  18 ++
>  PVE/CLI/Makefile               |   2 +-
>  PVE/CLI/pvesr.pm               | 350 +++++++++++++++++++++++++++
>  PVE/HTTPServer.pm              |   9 +-
>  PVE/Makefile                   |   1 +
>  PVE/Replication.pm             | 526
> +++++++++++++++++++++++++++++++++++++++++
>  bin/Makefile                   |   2 +-
>  bin/pvesh                      |   8 +-
>  bin/pvesr                      |   8 +
>  bin/test/Makefile              |   6 +
>  bin/test/ReplicationTestEnv.pm | 328 +++++++++++++++++++++++++
>  bin/test/replication_test1.pl  |  47 ++++
>  bin/test/replication_test2.pl  | 102 ++++++++
>  bin/test/replication_test3.pl  |  51 ++++
>  bin/test/replication_test4.log |  13 +
>  bin/test/replication_test4.pl  |  68 ++++++
>  bin/test/replication_test5.log |  59 +++++
>  bin/test/replication_test5.pl  | 149 ++++++++++++
>  24 files changed, 2069 insertions(+), 11 deletions(-)
>  create mode 100644 PVE/API2/Replication.pm
>  create mode 100644 PVE/API2/ReplicationConfig.pm
>  create mode 100644 PVE/CLI/pvesr.pm
>  create mode 100644 PVE/Replication.pm
>  create mode 100644 bin/pvesr
>  create mode 100755 bin/test/ReplicationTestEnv.pm
>  create mode 100755 bin/test/replication_test1.pl
>  create mode 100755 bin/test/replication_test2.pl
>  create mode 100755 bin/test/replication_test3.pl
>  create mode 100644 bin/test/replication_test4.log
>  create mode 100755 bin/test/replication_test4.pl
>  create mode 100644 bin/test/replication_test5.log
>  create mode 100755 bin/test/replication_test5.pl
> 
> -- 
> 2.11.0
> 
> 




More information about the pve-devel mailing list