#!/bin/bash -x
# ALUA模式，mdadm raid 要交给集群管理
# 确保只在一个节点上操作mdadm，避免引起数据损坏

if [ -z "$SSH" ];then
    source /unas/sbin/dualcontroller/config/prepare
fi

if [ -z "$PCS" ];then
    PCS=pcs
fi

local_mdadm_conf=/unas/etc/dualcontroller/mdadm.conf
touch "$local_mdadm_conf"

$PCS resource create MDADM_GROUP_DUMMY ocf:heartbeat:Dummy --group MDADM_GROUP

while IFS= read -r md; do
    [ -z "$md" ] && continue
    md_dev=$(realpath "$(echo "$md" | awk '{print $2}')")
    # 判断是不是系统盘
    for mountpoint in $(lsblk -no MOUNTPOINT "$md_dev"); do
        if [ "$mountpoint" == "/" ]; then
            echo "Keeping $md_dev for root filesystem"
            continue;
        fi
    done
    echo "Adding $md_dev to mdadm.conf"
    echo "$md" >> "$local_mdadm_conf"
    # pcs资源 时序控制
    $PCS resource create MD_$(basename "$md_dev") ocf:heartbeat:mdassemble \
        md_dev="$md_dev" \
        mdadm_conf="$local_mdadm_conf" \
        op monitor interval=10s timeout=20s \
        op start interval=0s timeout=180s \
        op stop interval=0s timeout=180s \
        --group MDADM_GROUP
done < <(mdadm --examine --scan)

$PCS constraint colocation add MDADM_GROUP with UNAS_Heartbeat_IP INFINITY
$PCS constraint order UNAS_Heartbeat_IP then MDADM_GROUP INFINITY

/unas/sbin/dualcontroller/tool/distribute "$local_mdadm_conf"
