disk.md resource templateΒΆ

##############################################################################
#                                                                            #
# disk, type md                                                              #
#                                                                            #
##############################################################################

[disk#0]
;type = md

#
# keyword:          uuid
# ----------------------------------------------------------------------------
#  scopable:        True
#  required:        True
#  provisioning:    False
#  default:         None
#  inheritance:     leaf > head
#  scope order:     specific > generic
#
#  desc:  The md uuid to use with mdadm assemble commands
#
;uuid = foo

#
# keyword:          shared
# ----------------------------------------------------------------------------
#  scopable:        True
#  required:        False
#  provisioning:    False
#  default:         <false if single-node or uuid is not scoped, true otherwise>
#  inheritance:     leaf > head
#  scope order:     specific > generic
#  candidates:      True | False
#
#  desc:  Trigger additional checks on the passive nodes. If not specified,
#         the shared parameter defaults to True if no multiple nodes and
#         drpnodes are defined and no md section parameter use scoping.
#
;shared = <false if single-node or uuid is not scoped, true otherwise>

#
# keyword:          devs
# ----------------------------------------------------------------------------
#  scopable:        True
#  required:        True
#  provisioning:    True
#  default:         None
#  inheritance:     leaf > head
#  scope order:     specific > generic
#
#  desc:  The md member devices to use with mdadm create command
#
;devs = /dev/rbd0 /dev/rbd1

#
# keyword:          level
# ----------------------------------------------------------------------------
#  scopable:        True
#  required:        True
#  provisioning:    True
#  default:         None
#  inheritance:     leaf > head
#  scope order:     specific > generic
#
#  desc:  The md raid level to use with mdadm create command (see mdadm man
#         for values)
#
;level = raid1

#
# keyword:          chunk
# ----------------------------------------------------------------------------
#  scopable:        True
#  required:        False
#  provisioning:    True
#  default:         None
#  inheritance:     leaf > head
#  scope order:     specific > generic
#
#  desc:  The md chunk size to use with mdadm create command. Values are
#         converted to kb and rounded to 4.
#
;chunk = 128k

#
# keyword:          layout
# ----------------------------------------------------------------------------
#  scopable:        True
#  required:        False
#  provisioning:    True
#  default:         None
#  inheritance:     leaf > head
#  scope order:     specific > generic
#
#  desc:  The md raid layout to use with mdadm create command (see mdadm man
#         for values)
#
;layout = foo

#
# keyword:          spares
# ----------------------------------------------------------------------------
#  scopable:        True
#  required:        False
#  provisioning:    True
#  default:         None
#  inheritance:     leaf > head
#  scope order:     specific > generic
#  convert:         integer
#
#  desc:  The md number of spare devices to use with mdadm create command
#
;spares = 0

#
# keyword:          prkey
# ----------------------------------------------------------------------------
#  scopable:        True
#  required:        False
#  provisioning:    False
#  default:         None
#  inheritance:     leaf > head
#  scope order:     specific > generic
#
#  desc:  Defines a specific persistent reservation key for the resource.
#         Takes priority over the service-level defined prkey and the
#         node.conf specified prkey.
#
;prkey = foo

#
# keyword:          no_preempt_abort
# ----------------------------------------------------------------------------
#  scopable:        True
#  required:        False
#  provisioning:    False
#  default:         False
#  inheritance:     leaf > head
#  scope order:     specific > generic
#  candidates:      True | False
#  convert:         boolean
#
#  desc:  If set to 'true', OpenSVC will preempt scsi reservation with a
#         preempt command instead of a preempt and and abort. Some scsi target
#         implementations do not support this last mode (esx). If set to
#         'false' or not set, 'no_preempt_abort' can be activated on a per-
#         resource basis.
#
;no_preempt_abort = False

#
# keyword:          restart
# ----------------------------------------------------------------------------
#  scopable:        True
#  required:        False
#  provisioning:    False
#  default:         0
#  inheritance:     leaf > head
#  scope order:     specific > generic
#  convert:         integer
#
#  desc:  The agent will try to restart a resource n times before falling back
#         to the monitor action.
#
;restart = 0

#
# keyword:          tags
# ----------------------------------------------------------------------------
#  scopable:        True
#  required:        False
#  provisioning:    False
#  default:         set([])
#  inheritance:     leaf > head
#  scope order:     specific > generic
#  convert:         set
#
#  desc:  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 the 'encap' tag assigns the resource to the
#         encapsulated service, 'noaction' avoids any state changing action
#         from the driver, 'nostatus' forces the status to n/a.
#
;tags = set([])

#
# keyword:          subset
# ----------------------------------------------------------------------------
#  scopable:        True
#  required:        False
#  provisioning:    False
#  default:         None
#  inheritance:     leaf
#  scope order:     specific > generic
#
#  desc:  Assign the resource to a specific subset.
#
;subset = foo

#
# keyword:          monitor
# ----------------------------------------------------------------------------
#  scopable:        True
#  required:        False
#  provisioning:    False
#  default:         False
#  inheritance:     leaf > head
#  scope order:     specific > generic
#  candidates:      True | False
#  convert:         boolean
#
#  desc:  A down monitored resource will trigger a node suicide if the monitor
#         thinks it should be up and the resource can not be restarted.
#
;monitor = False

#
# keyword:          disable
# ----------------------------------------------------------------------------
#  scopable:        True
#  required:        False
#  provisioning:    False
#  default:         False
#  inheritance:     leaf
#  scope order:     specific > generic
#  candidates:      True | False
#  convert:         boolean
#
#  desc:  A disabled resource will be ignored on service startup and shutdown.
#
;disable = False

#
# keyword:          optional
# ----------------------------------------------------------------------------
#  scopable:        True
#  required:        False
#  provisioning:    False
#  default:         False
#  inheritance:     leaf > head
#  scope order:     specific > generic
#  candidates:      True | False
#  convert:         boolean
#
#  desc:  Possible values are 'true' or 'false'. Actions on resource will be
#         tried upon service startup and shutdown, but action failures will be
#         logged and passed over. Useful for resources like dump filesystems
#         for example.
#
;optional = False

#
# keyword:          always_on
# ----------------------------------------------------------------------------
#  scopable:        False
#  required:        False
#  provisioning:    False
#  default:         []
#  inheritance:     leaf > head
#  scope order:     specific > generic
#  candidates:      nodes | drpnodes ...
#  convert:         list
#
#  desc:  Possible values are 'nodes', 'drpnodes' or 'nodes drpnodes', or a
#         list of nodes. Sets the nodes on which the resource is always kept
#         up. Primary usage is file synchronization receiving on non-shared
#         disks. Don't set this on shared disk !! danger !!
#
;always_on = []

#
# keyword:          pre_unprovision
# ----------------------------------------------------------------------------
#  scopable:        True
#  required:        False
#  provisioning:    False
#  default:         None
#  inheritance:     leaf > head
#  scope order:     specific > generic
#
#  desc:  A command or script to execute before the resource unprovision
#         action. Errors do not interrupt the action.
#
;pre_unprovision = foo

#
# keyword:          post_unprovision
# ----------------------------------------------------------------------------
#  scopable:        True
#  required:        False
#  provisioning:    False
#  default:         None
#  inheritance:     leaf > head
#  scope order:     specific > generic
#
#  desc:  A command or script to execute after the resource unprovision
#         action. Errors do not interrupt the action.
#
;post_unprovision = foo

#
# keyword:          pre_provision
# ----------------------------------------------------------------------------
#  scopable:        True
#  required:        False
#  provisioning:    False
#  default:         None
#  inheritance:     leaf > head
#  scope order:     specific > generic
#
#  desc:  A command or script to execute before the resource provision action.
#         Errors do not interrupt the action.
#
;pre_provision = foo

#
# keyword:          post_provision
# ----------------------------------------------------------------------------
#  scopable:        True
#  required:        False
#  provisioning:    False
#  default:         None
#  inheritance:     leaf > head
#  scope order:     specific > generic
#
#  desc:  A command or script to execute after the resource provision action.
#         Errors do not interrupt the action.
#
;post_provision = foo

#
# keyword:          pre_start
# ----------------------------------------------------------------------------
#  scopable:        True
#  required:        False
#  provisioning:    False
#  default:         None
#  inheritance:     leaf > head
#  scope order:     specific > generic
#
#  desc:  A command or script to execute before the resource start action.
#         Errors do not interrupt the action.
#
;pre_start = foo

#
# keyword:          post_start
# ----------------------------------------------------------------------------
#  scopable:        True
#  required:        False
#  provisioning:    False
#  default:         None
#  inheritance:     leaf > head
#  scope order:     specific > generic
#
#  desc:  A command or script to execute after the resource start action.
#         Errors do not interrupt the action.
#
;post_start = foo

#
# keyword:          pre_stop
# ----------------------------------------------------------------------------
#  scopable:        True
#  required:        False
#  provisioning:    False
#  default:         None
#  inheritance:     leaf > head
#  scope order:     specific > generic
#
#  desc:  A command or script to execute before the resource stop action.
#         Errors do not interrupt the action.
#
;pre_stop = foo

#
# keyword:          post_stop
# ----------------------------------------------------------------------------
#  scopable:        True
#  required:        False
#  provisioning:    False
#  default:         None
#  inheritance:     leaf > head
#  scope order:     specific > generic
#
#  desc:  A command or script to execute after the resource stop action.
#         Errors do not interrupt the action.
#
;post_stop = foo

#
# keyword:          blocking_pre_unprovision
# ----------------------------------------------------------------------------
#  scopable:        True
#  required:        False
#  provisioning:    False
#  default:         None
#  inheritance:     leaf > head
#  scope order:     specific > generic
#
#  desc:  A command or script to execute before the resource unprovision
#         action. Errors interrupt the action.
#
;blocking_pre_unprovision = foo

#
# keyword:          blocking_post_unprovision
# ----------------------------------------------------------------------------
#  scopable:        True
#  required:        False
#  provisioning:    False
#  default:         None
#  inheritance:     leaf > head
#  scope order:     specific > generic
#
#  desc:  A command or script to execute after the resource unprovision
#         action. Errors interrupt the action.
#
;blocking_post_unprovision = foo

#
# keyword:          blocking_pre_provision
# ----------------------------------------------------------------------------
#  scopable:        True
#  required:        False
#  provisioning:    False
#  default:         None
#  inheritance:     leaf > head
#  scope order:     specific > generic
#
#  desc:  A command or script to execute before the resource provision action.
#         Errors interrupt the action.
#
;blocking_pre_provision = foo

#
# keyword:          blocking_post_provision
# ----------------------------------------------------------------------------
#  scopable:        True
#  required:        False
#  provisioning:    False
#  default:         None
#  inheritance:     leaf > head
#  scope order:     specific > generic
#
#  desc:  A command or script to execute after the resource provision action.
#         Errors interrupt the action.
#
;blocking_post_provision = foo

#
# keyword:          blocking_pre_start
# ----------------------------------------------------------------------------
#  scopable:        True
#  required:        False
#  provisioning:    False
#  default:         None
#  inheritance:     leaf > head
#  scope order:     specific > generic
#
#  desc:  A command or script to execute before the resource start action.
#         Errors interrupt the action.
#
;blocking_pre_start = foo

#
# keyword:          blocking_post_start
# ----------------------------------------------------------------------------
#  scopable:        True
#  required:        False
#  provisioning:    False
#  default:         None
#  inheritance:     leaf > head
#  scope order:     specific > generic
#
#  desc:  A command or script to execute after the resource start action.
#         Errors interrupt the action.
#
;blocking_post_start = foo

#
# keyword:          blocking_pre_stop
# ----------------------------------------------------------------------------
#  scopable:        True
#  required:        False
#  provisioning:    False
#  default:         None
#  inheritance:     leaf > head
#  scope order:     specific > generic
#
#  desc:  A command or script to execute before the resource stop action.
#         Errors interrupt the action.
#
;blocking_pre_stop = foo

#
# keyword:          blocking_post_stop
# ----------------------------------------------------------------------------
#  scopable:        True
#  required:        False
#  provisioning:    False
#  default:         None
#  inheritance:     leaf > head
#  scope order:     specific > generic
#
#  desc:  A command or script to execute after the resource stop action.
#         Errors interrupt the action.
#
;blocking_post_stop = foo

#
# keyword:          unprovision_requires
# ----------------------------------------------------------------------------
#  scopable:        True
#  required:        False
#  provisioning:    False
#  default:
#  inheritance:     leaf > head
#  scope order:     specific > generic
#
#  desc:  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.
#
;unprovision_requires =

#
# keyword:          provision_requires
# ----------------------------------------------------------------------------
#  scopable:        True
#  required:        False
#  provisioning:    False
#  default:
#  inheritance:     leaf > head
#  scope order:     specific > generic
#
#  desc:  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.
#
;provision_requires =

#
# keyword:          start_requires
# ----------------------------------------------------------------------------
#  scopable:        True
#  required:        False
#  provisioning:    False
#  default:
#  inheritance:     leaf > head
#  scope order:     specific > generic
#
#  desc:  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.
#
;start_requires =

#
# keyword:          stop_requires
# ----------------------------------------------------------------------------
#  scopable:        True
#  required:        False
#  provisioning:    False
#  default:
#  inheritance:     leaf > head
#  scope order:     specific > generic
#
#  desc:  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.
#
;stop_requires =

#
# keyword:          scsireserv
# ----------------------------------------------------------------------------
#  scopable:        False
#  required:        False
#  provisioning:    False
#  default:         False
#  inheritance:     leaf > head
#  scope order:     specific > generic
#  candidates:      True | False
#  convert:         boolean
#
#  desc:  If set to 'true', OpenSVC will try to acquire a type-5 (write
#         exclusive, registrant only) scsi3 persistent reservation on every
#         path to every disks held by this resource. Existing reservations are
#         preempted to not block service start-up. If the start-up was not
#         legitimate the data are still protected from being written over from
#         both nodes. If set to 'false' or not set, 'scsireserv' can be
#         activated on a per-resource basis.
#
;scsireserv = False