問題
デバイスを RAID に再追加しようとすると、次のメッセージが表示されます:
# mdadm /dev/md2 --add /dev/sda1 mdadm: Cannot open /dev/sda1: Device or resource busy
一方、mdstat コマンドは、デバイスが非アクティブであることを示します。
# cat /proc/mdstat Personalities : md2 : inactive sda1[0](S) 292928154 blocks super 1.2 unused devices: [none]
mdadm がソフトウェア RAID デバイスの作成に失敗し、デバイスまたはリソースがビジー状態であるというエラー メッセージが表示されます。
解決策
事前チェック
続行する前に、パーティションがアクティブな FS の一部であるかどうかを確認してください。
mdadm --detail /dev/md2 mdadm: md device /dev/md2 does not appear to be active. mdadm --detail --scan >> /etc/mdadm.conf mdadm: md device /dev/md2 does not appear to be active. # ls -l /etc/mdadm.conf -rw-r--r-- 1 root bin 0 Sep 18 21:17 /etc/mdadm.conf # cat /etc/mdadm.conf
問題の原因
この問題の原因は、device-mapper-multipath (または他の device-mapper モジュール) がこのデバイスを制御しているため、mdadm がアクセスできないことが考えられます。コマンド「dmsetup table」は、このデバイスがデバイス マッパーによって制御されていることを示します (詳細については、「man dmsetup」を参照してください)。
# dmsetup table
回避策
回避策として、次のコマンドを使用してデバイス マッパー テーブルからデバイスを削除できます。
# dmsetup remove [device id]
恒久的な解決策
解決策として、特定のデバイス マッパー モジュールを使用せずにサーバーを起動することができます。たとえば、dmraid では、以下に示すように、/etc/grub.conf のカーネル コマンド ラインに「nodmraid」を追加できます。
title Enterprise Linux Enterprise Linux Server (2.6.32-100.24.1.el5) root (hd0,0) kernel /vmlinuz-2.6.32-100.24.1.el5 ro root=/dev/vg00/lv00 console=tty0 nodmraid initrd /initrd-2.6.32-100.24.1.el5.img
または、device-mapper-multipath がこのデバイスを制御できる場合は、/etc/multipath.conf のブラックリスト セクションに追加できます
# vi /etc/multipath.conf blacklist { wwid [your world-wide-id for this device] }
変更を有効にするために multipathd をリロードします:
# service multipathd reload # multipath -v2
マルチパスが「multipath -ll」でこれらのデバイスのマップを作成しないことを確認してください。
# multipath -ll
デバイスマッパーは起動時に制御を取得すべきではありません。
確認
上記の手順を実行すると、ソフトウェア RAID を作成できるようになります。確認するには:
# mdadm /dev/md2 --add /dev/sda1