#!/bin/bash mdadm -CR $md0 -l10 -b clustered --layout n2 -n2 $dev0 $dev1 --assume-clean ssh $NODE2 mdadm -A $md0 $dev0 $dev1 check all nosync check all raid10 check all bitmap check all state UU # switch 'clustered' bitmap to 'none', and then 'none' to 'internal' stop_md $NODE2 $md0 mdadm --grow $md0 --bitmap=none [ $? -eq '0' ] || die "$NODE1: change bitmap 'clustered' to 'none' failed." mdadm -X $dev0 $dev1 &> /dev/null [ $? -eq '0' ] && die "$NODE1: bitmap still exists in member_disks." check all nobitmap mdadm --grow $md0 --bitmap=internal [ $? -eq '0' ] || die "$NODE1: change bitmap 'none' to 'internal' failed." sleep 1 mdadm -X $dev0 $dev1 &> /dev/null [ $? -eq '0' ] || die "$NODE1: create 'internal' bitmap failed." check $NODE1 bitmap # switch 'internal' bitmap to 'none', and then 'none' to 'clustered' mdadm --grow $md0 --bitmap=none [ $? -eq '0' ] || die "$NODE1: change bitmap 'internal' to 'none' failed." mdadm -X $dev0 $dev1 &> /dev/null [ $? -eq '0' ] && die "$NODE1: bitmap still exists in member_disks." check $NODE1 nobitmap mdadm --grow $md0 --bitmap=clustered [ $? -eq '0' ] || die "$NODE1: change bitmap 'none' to 'clustered' failed." ssh $NODE2 mdadm -A $md0 $dev0 $dev1 sleep 1 for ip in $NODES do ssh $ip "mdadm -X $dev0 $dev1 | grep -q 'Cluster name'" || die "$ip: create 'clustered' bitmap failed." done check all bitmap check all state UU check all dmesg stop_md all $md0 exit 0