sync.zfssnap

Simplest configuration:

[sync#0]
type = zfssnap
dataset = svc1fs/data svc1fs/log
svcmgr -s <svcname> set --kw sync#0.type=zfssnap --kw sync#0.dataset=svc1fs/data svc1fs/log

dataset

scopable True
required True
provisioning False
default None
inheritance leaf > head
scope order specific > generic
convert list

A whitespace separated list of datasets to snapshot.

keep

scopable True
required False
provisioning False
default 3
inheritance leaf > head
scope order specific > generic
convert integer

The maximum number of snapshots to retain.

name

scopable True
required False
provisioning False
default None
inheritance leaf > head
scope order specific > generic

A name included in the snapshot name to avoid retention conflicts between multiple zfs snapshot resources. A full snapshot name is formatted as <subvol>.<name>.snap.<datetime>. Example: data.weekly.snap.2016-03-09.10:09:52

recursive

scopable True
required False
provisioning False
default True
inheritance leaf > head
scope order specific > generic
convert boolean

Set to true to snap recursively the datasets.

blocking_post_provision

scopable True
required False
provisioning False
default None
inheritance leaf > head
scope order specific > generic

A command or script to execute after the resource provision action. Errors interrupt the action.

blocking_post_start

scopable True
required False
provisioning False
default None
inheritance leaf > head
scope order specific > generic

A command or script to execute after the resource start action. Errors interrupt the action.

blocking_post_stop

scopable True
required False
provisioning False
default None
inheritance leaf > head
scope order specific > generic

A command or script to execute after the resource stop action. Errors interrupt the action.

blocking_post_sync_drp

scopable True
required False
provisioning False
default None
inheritance leaf > head
scope order specific > generic

A command or script to execute after the resource sync_drp action. Errors interrupt the action.

blocking_post_sync_nodes

scopable True
required False
provisioning False
default None
inheritance leaf > head
scope order specific > generic

A command or script to execute after the resource sync_nodes action. Errors interrupt the action.

blocking_post_sync_restore

scopable True
required False
provisioning False
default None
inheritance leaf > head
scope order specific > generic

A command or script to execute after the resource sync_restore action. Errors interrupt the action.

blocking_post_sync_resync

scopable True
required False
provisioning False
default None
inheritance leaf > head
scope order specific > generic

A command or script to execute after the resource sync_resync action. Errors interrupt the action.

blocking_post_sync_update

scopable True
required False
provisioning False
default None
inheritance leaf > head
scope order specific > generic

A command or script to execute after the resource sync_update action. Errors interrupt the action.

blocking_post_unprovision

scopable True
required False
provisioning False
default None
inheritance leaf > head
scope order specific > generic

A command or script to execute after the resource unprovision action. Errors interrupt the action.

blocking_pre_provision

scopable True
required False
provisioning False
default None
inheritance leaf > head
scope order specific > generic

A command or script to execute before the resource provision action. Errors interrupt the action.

blocking_pre_start

scopable True
required False
provisioning False
default None
inheritance leaf > head
scope order specific > generic

A command or script to execute before the resource start action. Errors interrupt the action.

blocking_pre_stop

scopable True
required False
provisioning False
default None
inheritance leaf > head
scope order specific > generic

A command or script to execute before the resource stop action. Errors interrupt the action.

blocking_pre_sync_drp

scopable True
required False
provisioning False
default None
inheritance leaf > head
scope order specific > generic

A command or script to execute before the resource sync_drp action. Errors interrupt the action.

blocking_pre_sync_nodes

scopable True
required False
provisioning False
default None
inheritance leaf > head
scope order specific > generic

A command or script to execute before the resource sync_nodes action. Errors interrupt the action.

blocking_pre_sync_restore

scopable True
required False
provisioning False
default None
inheritance leaf > head
scope order specific > generic

A command or script to execute before the resource sync_restore action. Errors interrupt the action.

blocking_pre_sync_resync

scopable True
required False
provisioning False
default None
inheritance leaf > head
scope order specific > generic

A command or script to execute before the resource sync_resync action. Errors interrupt the action.

blocking_pre_sync_update

scopable True
required False
provisioning False
default None
inheritance leaf > head
scope order specific > generic

A command or script to execute before the resource sync_update action. Errors interrupt the action.

blocking_pre_unprovision

scopable True
required False
provisioning False
default None
inheritance leaf > head
scope order specific > generic

A command or script to execute before the resource unprovision action. Errors interrupt the action.

comment

scopable False
required False
provisioning False
default  
inheritance leaf > head
scope order specific > generic

Helps users understand the role of the service and resources, which is nice to on-call support people having to operate on a service they are not usually responsible for.

disable

scopable True
required False
provisioning False
default False
inheritance leaf
scope order specific > generic
candidates True | False
convert boolean

A disabled resource will be ignored on service startup and shutdown. Its status is always reported n/a.

Set in DEFAULT, the whole service is disabled. A disabled service does not honor start and stop actions. These actions immediately return success.

sudo svcmgr -s <path> disable only sets DEFAULT.disable. As resources disabled state is not changed, sudo svcmgr -s <path> enable does not enable disabled resources.

encap

scopable True
required False
provisioning False
default False
inheritance leaf > head
scope order specific > generic
candidates True | False
convert boolean

Set to True to ignore this resource in the nodes context and consider it in the encapnodes context. The resource is thus handled by the agents deployed in the service containers.

monitor

scopable True
required False
provisioning False
default False
inheritance leaf > head
scope order specific > generic
candidates True | False
convert boolean

A down monitored resource will trigger a node suicide if the monitor thinks it should be up and the resource can not be restarted.

optional

scopable True
required False
provisioning False
default True for tasks, syncs and resources tagged 'noaction', else False
inheritance leaf > head
scope order specific > generic
convert tristate

Action failures on optional resources are logged but do not stop the action sequence. Also the optional resource status is not aggregated to the instance 'availstatus', but aggregated to the 'overallstatus'. Resource tagged 'noaction' and sync resources are automatically considered optional. Useful for resources like dump filesystems for example.

pg_blkio_weight

scopable True
required False
provisioning False
default None
inheritance leaf
scope order specific > generic
depends create_pg in [True]
convert integer

Block IO relative weight. Value: between 10 and 1000. Kernel default: 1000.

pg_cpu_quota

scopable True
required False
provisioning False
default None
inheritance leaf
scope order specific > generic
depends create_pg in [True]

The percent ratio of one core to allocate to the process group if % is specified, else the absolute value to set in the process group parameter. For example, on Linux cgroups, -1 means unlimited, and a positive absolute value means the number of microseconds to allocate each period. 50%@all means 50% of all cores, and 50%@2 means 50% of two cores.

pg_cpu_shares

scopable True
required False
provisioning False
default None
inheritance leaf
scope order specific > generic
depends create_pg in [True]
convert integer

Kernel default value is used, which usually is 1024 shares. In a cpu-bound situation, ensure the service does not use more than its share of cpu ressource. The actual percentile depends on shares allowed to other services.

pg_cpus

scopable True
required False
provisioning False
default None
inheritance leaf
scope order specific > generic
depends create_pg in [True]

Allow service process to bind only the specified cpus. Cpus are specified as list or range : 0,1,2 or 0-2

pg_mem_limit

scopable True
required False
provisioning False
default None
inheritance leaf
scope order specific > generic
depends create_pg in [True]
convert size

Ensures the service does not use more than specified memory (in bytes). The Out-Of-Memory killer get triggered in case of tresspassing.

pg_mem_oom_control

scopable True
required False
provisioning False
default None
inheritance leaf
scope order specific > generic
depends create_pg in [True]
convert integer

A flag (0 or 1) that enables or disables the Out of Memory killer for a cgroup. If enabled (0), tasks that attempt to consume more memory than they are allowed are immediately killed by the OOM killer. The OOM killer is enabled by default in every cgroup using the memory subsystem; to disable it, write 1.

pg_mem_swappiness

scopable True
required False
provisioning False
default None
inheritance leaf
scope order specific > generic
depends create_pg in [True]
convert integer

Set a swappiness value for the process group.

pg_mems

scopable True
required False
provisioning False
default None
inheritance leaf
scope order specific > generic
depends create_pg in [True]

Allow service process to bind only the specified memory nodes. Memory nodes are specified as list or range : 0,1,2 or 0-2

pg_vmem_limit

scopable True
required False
provisioning False
default None
inheritance leaf
scope order specific > generic
depends create_pg in [True]
convert size

Ensures the service does not use more than specified memory+swap (in bytes). The Out-Of-Memory killer get triggered in case of tresspassing. The specified value must be greater than pg_mem_limit.

post_provision

scopable True
required False
provisioning False
default None
inheritance leaf > head
scope order specific > generic

A command or script to execute after the resource provision action. Errors do not interrupt the action.

post_start

scopable True
required False
provisioning False
default None
inheritance leaf > head
scope order specific > generic

A command or script to execute after the resource start action. Errors do not interrupt the action.

post_stop

scopable True
required False
provisioning False
default None
inheritance leaf > head
scope order specific > generic

A command or script to execute after the resource stop action. Errors do not interrupt the action.

post_sync_drp

scopable True
required False
provisioning False
default None
inheritance leaf > head
scope order specific > generic

A command or script to execute after the resource sync_drp action. Errors do not interrupt the action.

post_sync_nodes

scopable True
required False
provisioning False
default None
inheritance leaf > head
scope order specific > generic

A command or script to execute after the resource sync_nodes action. Errors do not interrupt the action.

post_sync_restore

scopable True
required False
provisioning False
default None
inheritance leaf > head
scope order specific > generic

A command or script to execute after the resource sync_restore action. Errors do not interrupt the action.

post_sync_resync

scopable True
required False
provisioning False
default None
inheritance leaf > head
scope order specific > generic

A command or script to execute after the resource sync_resync action. Errors do not interrupt the action.

post_sync_update

scopable True
required False
provisioning False
default None
inheritance leaf > head
scope order specific > generic

A command or script to execute after the resource sync_update action. Errors do not interrupt the action.

post_unprovision

scopable True
required False
provisioning False
default None
inheritance leaf > head
scope order specific > generic

A command or script to execute after the resource unprovision action. Errors do not interrupt the action.

pre_provision

scopable True
required False
provisioning False
default None
inheritance leaf > head
scope order specific > generic

A command or script to execute before the resource provision action. Errors do not interrupt the action.

pre_start

scopable True
required False
provisioning False
default None
inheritance leaf > head
scope order specific > generic

A command or script to execute before the resource start action. Errors do not interrupt the action.

pre_stop

scopable True
required False
provisioning False
default None
inheritance leaf > head
scope order specific > generic

A command or script to execute before the resource stop action. Errors do not interrupt the action.

pre_sync_drp

scopable True
required False
provisioning False
default None
inheritance leaf > head
scope order specific > generic

A command or script to execute before the resource sync_drp action. Errors do not interrupt the action.

pre_sync_nodes

scopable True
required False
provisioning False
default None
inheritance leaf > head
scope order specific > generic

A command or script to execute before the resource sync_nodes action. Errors do not interrupt the action.

pre_sync_restore

scopable True
required False
provisioning False
default None
inheritance leaf > head
scope order specific > generic

A command or script to execute before the resource sync_restore action. Errors do not interrupt the action.

pre_sync_resync

scopable True
required False
provisioning False
default None
inheritance leaf > head
scope order specific > generic

A command or script to execute before the resource sync_resync action. Errors do not interrupt the action.

pre_sync_update

scopable True
required False
provisioning False
default None
inheritance leaf > head
scope order specific > generic

A command or script to execute before the resource sync_update action. Errors do not interrupt the action.

pre_unprovision

scopable True
required False
provisioning False
default None
inheritance leaf > head
scope order specific > generic

A command or script to execute before the resource unprovision action. Errors do not interrupt the action.

provision

scopable True
required False
provisioning False
default True
inheritance leaf > head
scope order specific > generic
candidates True | False
convert boolean

Set to false to skip the resource on provision and unprovision actions. Warning: provisioning implies destructive operations like formating. Unprovisioning does not keep a copy of the service data.

provision_requires

scopable True
required False
provisioning False
default  
inheritance leaf > head
scope order specific > generic

A whitespace-separated list of conditions to meet to accept running a 'provision' action. A condition is expressed as <rid>(<state>,...). If states are omitted, 'up,stdby up' is used as the default expected states.

restart

scopable True
required False
provisioning False
default 0
inheritance leaf > head
scope order specific > generic
convert integer

The agent will try to restart a resource n times before falling back to the monitor action. A resource restart is triggered if the resource is not disabled and its status is not up, and the node is not frozen, and the service instance is not frozen and its local expect is set to 'started'. If a resource has a restart set to a value >0, its status is evaluated at the frequency defined by DEFAULT.monitor_schedule instead of the frequency defined by DEFAULT.status_schedule.

schedule

scopable True
required False
provisioning False
default None
inheritance leaf > head
scope order specific > generic

Set the this resource synchronization schedule. See usr/share/doc/node.conf for the schedule syntax reference.

shared

scopable True
required False
provisioning False
default False
inheritance leaf > head
scope order specific > generic
candidates True | False
convert boolean

Set to True to skip the resource on provision and unprovision actions if the action has already been done by a peer. Shared resources, like vg built on SAN disks must be provisioned once. All resources depending on a shared resource must also be flagged as shared.

standby

scopable True
required False
provisioning False
default False
inheritance leaf > head
scope order specific > generic
candidates True | False
convert boolean

Always start the resource, even on standby instances. The daemon is responsible for starting standby resources. A resource can be set standby on a subset of nodes using keyword scoping.

A typical use-case is sync'ed fs on non-shared disks: the remote fs must be mounted to not overflow the underlying fs.

Warning

Don't set shared resources standby: fs on shared disks for example.

start_requires

scopable True
required False
provisioning False
default  
inheritance leaf > head
scope order specific > generic

A whitespace-separated list of conditions to meet to accept running a 'start' action. A condition is expressed as <rid>(<state>,...). If states are omitted, 'up,stdby up' is used as the default expected states.

stop_requires

scopable True
required False
provisioning False
default  
inheritance leaf > head
scope order specific > generic

A whitespace-separated list of conditions to meet to accept running a 'stop' action. A condition is expressed as <rid>(<state>,...). If states are omitted, 'up,stdby up' is used as the default expected states.

subset

scopable True
required False
provisioning False
default None
inheritance leaf
scope order specific > generic

Assign the resource to a specific subset.

sync_break_requires

scopable True
required False
provisioning False
default  
inheritance leaf > head
scope order specific > generic

A whitespace-separated list of conditions to meet to accept running a 'sync_break' action. A condition is expressed as <rid>(<state>,...). If states are omitted, 'up,stdby up' is used as the default expected states.

sync_drp_requires

scopable True
required False
provisioning False
default  
inheritance leaf > head
scope order specific > generic

A whitespace-separated list of conditions to meet to accept running a 'sync_drp' action. A condition is expressed as <rid>(<state>,...). If states are omitted, 'up,stdby up' is used as the default expected states.

sync_max_delay

scopable False
required False
provisioning False
default 1d
inheritance leaf > head
scope order specific > generic
convert duration_minute

Unit is minutes. This sets to delay above which the sync status of the resource is to be considered down. Should be set according to your application service level agreement. The scheduler task frequency should be set between 'sync_min_delay' and 'sync_max_delay'.

sync_nodes_requires

scopable True
required False
provisioning False
default  
inheritance leaf > head
scope order specific > generic

A whitespace-separated list of conditions to meet to accept running a 'sync_nodes' action. A condition is expressed as <rid>(<state>,...). If states are omitted, 'up,stdby up' is used as the default expected states.

sync_restore_requires

scopable True
required False
provisioning False
default  
inheritance leaf > head
scope order specific > generic

A whitespace-separated list of conditions to meet to accept running a 'sync_restore' action. A condition is expressed as <rid>(<state>,...). If states are omitted, 'up,stdby up' is used as the default expected states.

sync_resync_requires

scopable True
required False
provisioning False
default  
inheritance leaf > head
scope order specific > generic

A whitespace-separated list of conditions to meet to accept running a 'sync_resync' action. A condition is expressed as <rid>(<state>,...). If states are omitted, 'up,stdby up' is used as the default expected states.

sync_update_requires

scopable True
required False
provisioning False
default  
inheritance leaf > head
scope order specific > generic

A whitespace-separated list of conditions to meet to accept running a 'sync_update' action. A condition is expressed as <rid>(<state>,...). If states are omitted, 'up,stdby up' is used as the default expected states.

tags

scopable True
required False
provisioning False
default  
inheritance leaf > head
scope order specific > generic
convert set

A list of tags. Arbitrary tags can be used to limit action scope to resources with a specific tag. Some tags can influence the driver behaviour. For example 'noaction' avoids any state changing action from the driver and implies optional=true, 'nostatus' forces the status to n/a.

unprovision

scopable True
required False
provisioning False
default True
inheritance leaf > head
scope order specific > generic
candidates True | False
convert boolean

Set to false to skip the resource on unprovision actions. Warning: Unprovisioning does not keep a copy of the service data.

unprovision_requires

scopable True
required False
provisioning False
default  
inheritance leaf > head
scope order specific > generic

A whitespace-separated list of conditions to meet to accept running a 'unprovision' action. A condition is expressed as <rid>(<state>,...). If states are omitted, 'up,stdby up' is used as the default expected states.