logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

ocf_heartbeat_mdraid - Manages Linux software RAID (MD) devices on shared storage

Author

ClusterLabscontributors(seetheresourceagentsourceforinformationaboutindividualauthors) resource-agents 4.16.0-3ubuntu 06/25/2025 OCF_HEARTBEAT_MDRAID(7)

Description

This resource agent manages Linux software RAID (MD) devices on a shared storage medium ensuring that non-clustered MD arrays are prohibited from starting cloned (which would cause data corruption (e.g., on raid6 arrays) unless forced (see force_clones parameter). Clustered MD RAID layouts (see below) will be discovered and allowed cloning by default; no need to set force_clones. It uses mdadm(8) to start, stop, and monitor the MD devices. Supported clustered (i.e., clonable active-active) arrays are linear, raid0, and clustered raid1/raid10 (i.e. mdadm(8) created with --bitmap=clustered). Option: OCF_CHECK_LEVEL When OCF_CHECK_LEVEL is set to any number greater than 0, the standard monitor operation (including probe) will check the array and attempt recovery sequence to re-add devices if any failed device exists. By default, OCF_CHECK_LEVEL is unset, and this is disabled.

Example Crm Shell

The following is an example configuration for a mdraid resource using the crm(8) shell: primitive p_mdraid ocf:heartbeat:mdraid \ params \ mdadm_conf=string \ md_dev=string \ op monitor depth="0" timeout="20s" interval="10s"

Example Pcs

The following is an example configuration for a mdraid resource using pcs(8) pcs resource create p_mdraid ocf:heartbeat:mdraid \ mdadm_conf=string \ md_dev=string \ op monitor OCF_CHECK_LEVEL="0" timeout="20s" interval="10s"

Name

ocf_heartbeat_mdraid - Manages Linux software RAID (MD) devices on shared storage

See Also

Supported Actions

This resource agent supports the following actions (operations): start Starts the resource. Suggested minimum timeout: 20s. stop Stops the resource. Suggested minimum timeout: 20s. monitor Performs a detailed status check. Suggested minimum timeout: 20s. Suggested interval: 10s. validate-all Performs a validation of the resource configuration. Suggested minimum timeout: 5s. meta-data Retrieves resource agent metadata (internal use only). Suggested minimum timeout: 5s.

Supported Parameters

mdadm_conf The MD RAID configuration file (e.g., /etc/mdadm.conf). (required, string, no default) md_dev MD array block device to use (e.g., /dev/md0 or /dev/md/3). With shared access to the array's storage, this should preferably be a clustered raid1 or raid10 array created with --bitmap=clustered, assuming its resource will be cloned (i.e., active-active access). Be sure to disable auto-assembly for the resource-managed arrays! (required, string, no default) force_stop If processes or kernel threads are using the array, it cannot be stopped. We will try to stop processes, first by sending TERM and then, if that doesn't help in seconds, using KILL. The lsof(8) program is required to get the list of array users. Of course, the kernel threads cannot be stopped this way. If the processes are critical for data integrity, then set this parameter to false. Note that in that case the stop operation will fail and the node will be fenced. (optional, boolean, default false) wait_for_udev Wait until udevd creates a device in the start operation. On a normally loaded host this should happen quickly, but you may be unlucky. If you are not using udev set this to "no". (optional, boolean, default true) force_clones Activating the same, non-clustered MD RAID array (i.e. single-host raid1/4/5/6/10) on multiple nodes at the same time will result in data corruption and thus is forbidden by default. A safe example could be an (exotic) array that is only named identically across all nodes, but is in fact based on distinct (non-shared) storage. Only set this to "true" if you know what you are doing! (optional, boolean, default false)

Synopsis

mdraid [start | stop | monitor | meta-data | validate-all]

See Also