[pve-devel] [RFC pve-ha-manager 0/8] Do not freeze services on (gracefull) shutdown

Thomas Lamprecht t.lamprecht at proxmox.com
Fri Dec 11 20:01:37 CET 2015


This patch series changes the behaviour of the ha-manager in regards to freezing.
Now Services won't get freezed when there is a poweroff.target job running when stopping the pve-ha-lrm.
That means it won't freeze services on a graceful shutdown, so the will be fenced if the node takes to long to come back online again.
On reboot, restart of the service and stop of the service (witouth a poweroff) the behaviour stays the same as until now, the service will be freezed.

This series is quite long it, fortunately, also adds regression testing for this cases.
"Only" patch 6 and 7 implement the needed changes, the rest are changes on the Testframe work.

Note that the simulator does not the newly added 'shutdown' and 'restart' functions, but as there is nno option on the GUI to trigger them that shouldn't be a show-stopper at the moment.

Thomas Lamprecht (8):
  Hardware: remove unnecessary lock in get_node_info
  Hardware: change online computation of node slightly
  TestHardware: add helper commands functions
  TestHardware: implement 'restart' & 'shutdown' action
  TestHardware: add a more determinative delay possibility
  HA Env: add 'is_poweroff' function
  do not freeze services on a graceful poweroff
  add tests for shutdown and restart behaviour

 src/PVE/HA/Env.pm                                  |  7 ++
 src/PVE/HA/Env/PVE2.pm                             | 18 +++++
 src/PVE/HA/LRM.pm                                  | 16 +++-
 src/PVE/HA/Manager.pm                              |  3 +-
 src/PVE/HA/Sim/Env.pm                              |  5 ++
 src/PVE/HA/Sim/Hardware.pm                         | 12 +--
 src/PVE/HA/Sim/TestEnv.pm                          | 15 ++++
 src/PVE/HA/Sim/TestHardware.pm                     | 91 ++++++++++++++++++++--
 src/test/test-restart1/README                      |  2 +
 src/test/test-restart1/cmdlist                     |  4 +
 src/test/test-restart1/hardware_status             |  5 ++
 src/test/test-restart1/log.expect                  | 48 ++++++++++++
 src/test/test-restart1/manager_status              |  1 +
 src/test/test-restart1/service_config              |  5 ++
 src/test/test-shutdown1/README                     |  2 +
 src/test/test-shutdown1/cmdlist                    |  5 ++
 src/test/test-shutdown1/hardware_status            |  5 ++
 src/test/test-shutdown1/log.expect                 | 50 ++++++++++++
 src/test/test-shutdown1/manager_status             |  1 +
 src/test/test-shutdown1/service_config             |  5 ++
 src/test/test-shutdown2/README                     |  2 +
 src/test/test-shutdown2/cmdlist                    |  5 ++
 src/test/test-shutdown2/hardware_status            |  5 ++
 src/test/test-shutdown2/log.expect                 | 47 +++++++++++
 src/test/test-shutdown2/manager_status             |  1 +
 src/test/test-shutdown2/service_config             |  5 ++
 src/test/test-shutdown2/status/cluster_locks       |  1 +
 src/test/test-shutdown2/status/crm_commands        |  0
 src/test/test-shutdown2/status/groups              | 11 +++
 src/test/test-shutdown2/status/hardware.lck        |  0
 src/test/test-shutdown2/status/hardware_status     |  1 +
 src/test/test-shutdown2/status/log                 | 47 +++++++++++
 src/test/test-shutdown2/status/lrm_status_node1    |  1 +
 src/test/test-shutdown2/status/lrm_status_node2    |  1 +
 src/test/test-shutdown2/status/lrm_status_node3    |  1 +
 src/test/test-shutdown2/status/manager_status      |  1 +
 src/test/test-shutdown2/status/service_config      |  5 ++
 .../test-shutdown2/status/service_status_node1     |  1 +
 .../test-shutdown2/status/service_status_node2     |  1 +
 .../test-shutdown2/status/service_status_node3     |  1 +
 src/test/test-shutdown2/status/watchdog_status     |  1 +
 41 files changed, 419 insertions(+), 19 deletions(-)
 create mode 100644 src/test/test-restart1/README
 create mode 100644 src/test/test-restart1/cmdlist
 create mode 100644 src/test/test-restart1/hardware_status
 create mode 100644 src/test/test-restart1/log.expect
 create mode 100644 src/test/test-restart1/manager_status
 create mode 100644 src/test/test-restart1/service_config
 create mode 100644 src/test/test-shutdown1/README
 create mode 100644 src/test/test-shutdown1/cmdlist
 create mode 100644 src/test/test-shutdown1/hardware_status
 create mode 100644 src/test/test-shutdown1/log.expect
 create mode 100644 src/test/test-shutdown1/manager_status
 create mode 100644 src/test/test-shutdown1/service_config
 create mode 100644 src/test/test-shutdown2/README
 create mode 100644 src/test/test-shutdown2/cmdlist
 create mode 100644 src/test/test-shutdown2/hardware_status
 create mode 100644 src/test/test-shutdown2/log.expect
 create mode 100644 src/test/test-shutdown2/manager_status
 create mode 100644 src/test/test-shutdown2/service_config
 create mode 100644 src/test/test-shutdown2/status/cluster_locks
 create mode 100644 src/test/test-shutdown2/status/crm_commands
 create mode 100644 src/test/test-shutdown2/status/groups
 create mode 100644 src/test/test-shutdown2/status/hardware.lck
 create mode 100644 src/test/test-shutdown2/status/hardware_status
 create mode 100644 src/test/test-shutdown2/status/log
 create mode 100644 src/test/test-shutdown2/status/lrm_status_node1
 create mode 100644 src/test/test-shutdown2/status/lrm_status_node2
 create mode 100644 src/test/test-shutdown2/status/lrm_status_node3
 create mode 100644 src/test/test-shutdown2/status/manager_status
 create mode 100644 src/test/test-shutdown2/status/service_config
 create mode 100644 src/test/test-shutdown2/status/service_status_node1
 create mode 100644 src/test/test-shutdown2/status/service_status_node2
 create mode 100644 src/test/test-shutdown2/status/service_status_node3
 create mode 100644 src/test/test-shutdown2/status/watchdog_status

-- 
2.1.4




More information about the pve-devel mailing list