---
name: "ocf_heartbeat_mdraid"
section: "7"
platform: "linux"
package: "resource-agents"
version: "1:4.16.0-3+deb13u2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/ocf_heartbeat_mdraid"
---

# ocf\_heartbeat\_mdraid(7)

Manages Linux software RAID (MD) devices on shared storage

## NAME

ocf\_heartbeat\_mdraid - Manages Linux software RAID (MD) devices on shared storage

## SYNOPSIS

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

## 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)](/mdadm/8.md) 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)](/mdadm/8.md) 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.

## 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)](/lsof/8.md) 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)

## 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.

## EXAMPLE CRM SHELL

The following is an example configuration for a mdraid resource using the [**crm**(8)](/crm/8.md) 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/8.md)

```
pcs resource create p_mdraid ocf:heartbeat:mdraid \
  mdadm_conf=string \
  md_dev=string \
  op monitor OCF_CHECK_LEVEL="0" timeout="20s" interval="10s"
```

## SEE ALSO

**http://clusterlabs.org/**

## AUTHOR

**ClusterLabs contributors (see the resource agent source for information about individual authors)**
