HomeClusterLabs Projects

podman: only use exec to manage container's lifecycle

Description

podman: only use exec to manage container's lifecycle

Under heavy IO load, podman may be impacted and take a long time
to execute some actions. If that takes more than the default
20s container monitoring timeout, containers will restart unexpectedly.

Replace all IO-sensitive podman calls (inspect, exists...) by
equivalent "podman exec" calls, because the latter command seems
less prone to performance degradation under IO load.

With this commit, the resource agent now requires podman 1.0.2+,
because it relies on of two different patches [1,2] that improve
IO performance and enable to distinguish "container stopped"
"container doesn't exist" error codes.

Tested on an OpenStack environment with podman 1.0.2, with the
following scenario:

. regular start/stop/monitor operations
. probe operations (pcs resource cleanup/refresh)
. unmanage/manage operations
. reboot

[1] https://github.com/containers/libpod/commit/90b835db69d589de559462d988cb3fae5cf1ef49
[2] https://github.com/containers/libpod/commit/a19975f96d2ee7efe186d9aa0be42285cfafa3f4

Details

Provenance
Damien Ciabrini <dciabrin@redhat.com>Authored on Jun 28 2019, 7:34 AM
Parents
rRe8d1b99cfb41: Merge pull request #1362 from ytakeshita/fix_bind_mount
Branches
Unknown
Tags
Unknown

Event Timeline