RAIDアレイのサイズを変更しようとしてたのだけど、mdadmのバグ?仕様?にはまった

元々各ディスクの使用サイズが4866861248kBのRAID5を縮めようとしていたのだけれども、まず、4866861248の数字を指定してサイズ変更必要なしと出てくることを確認したくて
同じ数字を--sizeに入れた

# mdadm /dev/md1 --grow --size=4866861248
mdadm: component size of /dev/md1 has been set to 571893952K
unfreeze

4866861248kを指定したのに571893952Kになってアレイが想定外に小さくなって(RAID superblock)が壊れた
4866861248 - 571893952 = 4294967296 なんで、uint32以上の数字を入れてはいけないみたい
これを例えば4752794Mとか指定すると大丈夫みたいなんで、kB単位で正確に4TB以上を指定しようとするとダメみたい

OSはCentOS7(x86_64)

RAID superblockのバックアップをとっておくか、もう一度createしなおせば戻せたんだけど(一度それで戻してる)、--growで大きめの数字入れて戻せば大丈夫だろうと浅い考えで--growし直して
reshapeが走って壊してしまった

デカい数字をコマンドラインで入れるのは注意が必要だね