非アクティブなRAIDデバイスを再び機能させる方法は?


30

起動後、RAID1デバイス(/dev/md_d0*)が時々おかしい状態になり、マウントできません。

*もともと私は作成しました/dev/md0が、どういうわけか自分自身をに変更しました/dev/md_d0

# mount /opt
mount: wrong fs type, bad option, bad superblock on /dev/md_d0,
       missing codepage or helper program, or other error
       (could this be the IDE device where you in fact use
       ide-scsi so that sr0 or sda or so is needed?)
       In some cases useful info is found in syslog - try
       dmesg | tail  or so

RAIDデバイスが何らかの理由で非アクティブになっているようです。

# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] 
                [raid4] [raid10] 
md_d0 : inactive sda4[0](S)
      241095104 blocks

# mdadm --detail /dev/md_d0
mdadm: md device /dev/md_d0 does not appear to be active.

質問は、デバイスを再びアクティブにする方法mdmadmです(を使用して、私は推測します)?

(他の場合は、起動後に問題なく(アクティブ)であり、問​​題なく手動でマウントできます。しかし、それが入っていても自動的にマウントされません/etc/fstab

/dev/md_d0        /opt           ext4    defaults        0       0

ボーナス質問:ブート時にRAIDデバイスを自動的にマウントするにはどうすればよい/optですか?

これはUbuntu 9.10ワークステーションです。この質問の私のRAID設定に関する背景情報

編集:私の/etc/mdadm/mdadm.confように見えます。少なくとも手でこのファイルに触れたことはありません。

# by default, scan all partitions (/proc/partitions) for MD superblocks.
# alternatively, specify devices to scan, using wildcards if desired.
DEVICE partitions

# auto-create devices with Debian standard permissions
CREATE owner=root group=disk mode=0660 auto=yes

# automatically tag new arrays as belonging to the local system
HOMEHOST <system>

# instruct the monitoring daemon where to send mail alerts
MAILADDR <my mail address>

# definitions of existing MD arrays

# This file was auto-generated on Wed, 27 Jan 2010 17:14:36 +0200

では/proc/partitions最後のエントリでmd_d0デバイスが再びアクティブであることを起こる場合は、再起動後に、今以上に。(非アクティブのときに同じになるかどうかはわかりません。)

解決策ジミー・ヘドマンが示唆したように、私は次のものの出力を取りましたmdadm --examine --scan

ARRAY /dev/md0 level=raid1 num-devices=2 UUID=de8fbd92[...]

それをに追加しました/etc/mdadm/mdadm.conf。これにより、主な問題が修正されたようです。(/etc/fstab使用/dev/md0する代わりに/dev/md_d0)再度使用するように変更した後、RAIDデバイスも自動的にマウントされます!

回答:


25

ボーナスの質問:

mdadm --examine --scan >> /etc/mdadm/mdadm.conf

2
OK、mdadm --examine --scanプロデュースARRAY /dev/md0 level=raid1 num-devices=2 UUID=...(md_d0の代わりにmd0に注意してください!)mdadm.confファイルにそれを入れ(手動で、sudoと>>( "permission denied")に問題があるため、sudo 必要です)、使用するfstabも更新しましたmd0(md_d0ではない)をもう一度。これで、「非アクティブ」な問題に遭遇することはなくなり、起動時に/ optでRAIDデバイスが自動的にマウントされます。ほんとありがと!
ジョニック

3
問題が発生した理由sudo ... >> mdadm.confは、sudoが実行される前に、シェルがリダイレクトされたファイルを開くためです。コマンドsu -c '.... >> mdadm.conf'が機能するはずです。
メイ

10

/etc/mdadm/mdadm.confLinuxを再起動時にマウントするには、アレイを手動で追加する必要があることがわかりました。それ以外の場合は、ここにあるものを正確に取得します- md_d1非アクティブなデバイスなど

conf-fileは次のようになります。つまりARRAY、各mdデバイスごとに1 行です。私の場合、このファイルには新しい配列がありませんでしたが、リストに記載されている場合、これはおそらく問題の解決策ではありません。

# definitions of existing MD arrays
ARRAY /dev/md0 level=raid5 num-devices=3 UUID=f10f5f96:106599e0:a2f56e56:f5d3ad6d
ARRAY /dev/md1 level=raid1 num-devices=2 UUID=aa591bbe:bbbec94d:a2f56e56:f5d3ad6d

mdデバイスごとに1つの配列を追加し、上記のコメントの後に、またはそのようなコメントが存在しない場合はファイルの最後に追加します。以下を実行してUUIDを取得しますsudo mdadm -E --scan

$ sudo mdadm -E --scan
ARRAY /dev/md0 level=raid5 num-devices=3 UUID=f10f5f96:106599e0:a2f56e56:f5d3ad6d
ARRAY /dev/md1 level=raid1 num-devices=2 UUID=aa591bbe:bbbec94d:a2f56e56:f5d3ad6d

ご覧のとおり、スキャン結果の出力をファイルにコピーするだけです。

私はubuntuデスクトップ10.04 LTSを実行していますが、この動作を覚えている限り、Ubuntuのサーバーバージョンとは異なりますが、サーバー上でmdデバイスを作成したのはかなり前のことで、間違っている可能性があります。また、私はいくつかのオプションを逃しただけかもしれません。

とにかく、conf-fileに配列を追加するとうまくいくようです。上記のRAID 1とRAID 5を何年も問題なく実行しました。


1
つまり、本質的にあなたは現在受け入れられている答えと同じことを、より冗長に言っているのでしょうか?:)それでも、+ 1、素敵な最初の投稿。
ジョニック

7

警告:まず、次の(「--force」を使用しているため)リスクを伴うと思われます。回復不可能なデータがある場合は、いずれかの試行を開始する前に、関連するパーティションのコピーを作成することをお勧めします以下のもの。しかし、これはうまくいきました。

私は同じ問題を抱えていて、アレイが非アクティブとして表示され、ここで他の人が提案した「mdadm --examine --scan> /etc/mdadm.conf」を含めて何もしませんでした。

私の場合、ドライブの交換後にRAID-5アレイを開始しようとしたとき、それは(経由でdmesg)汚れていると言っていました。

md/raid:md2: not clean -- starting background reconstruction
md/raid:md2: device sda4 operational as raid disk 0
md/raid:md2: device sdd4 operational as raid disk 3
md/raid:md2: device sdc4 operational as raid disk 2
md/raid:md2: device sde4 operational as raid disk 4
md/raid:md2: allocated 5334kB
md/raid:md2: cannot start dirty degraded array.

で非アクティブとして表示される原因/proc/mdstat

md2 : inactive sda4[0] sdd4[3] sdc4[2] sde4[5]
      3888504544 blocks super 1.2

交換したドライブ(/dev/sdb4)を除き、すべてのデバイスで同じイベントが発生していることがわかりました。

[root@nfs1 sr]# mdadm -E /dev/sd*4 | grep Event
mdadm: No md superblock detected on /dev/sdb4.
         Events : 8448
         Events : 8448
         Events : 8448
         Events : 8448

ただし、アレイの詳細では、5つのデバイスのうち4つが使用可能であることが示されました。

[root@nfs1 sr]# mdadm --detail /dev/md2
/dev/md2:
[...]
   Raid Devices : 5
  Total Devices : 4
[...]
 Active Devices : 4
Working Devices : 4
[...]
    Number   Major   Minor   RaidDevice State
       0       8        4        0      inactive dirty  /dev/sda4
       2       8       36        2      inactive dirty  /dev/sdc4
       3       8       52        3      inactive dirty  /dev/sdd4
       5       8       68        4      inactive dirty  /dev/sde4

(上記は「状態」列のメモリからのものであり、スクロールバックバッファで見つけることができません)。

これを解決するには、アレイを停止してから再組み立てします。

mdadm --stop /dev/md2
mdadm -A --force /dev/md2 /dev/sd[acde]4

その時点で、アレイは稼働しており、5つのデバイスのうち4つで実行されていたため、交換用デバイスを追加して再構築できました。私は問題なくファイルシステムにアクセスできます。


4

Ubuntu 10.04で問題が発生し、FStabのエラーによりサーバーが起動できませんでした。

上記のソリューションで述べたように、このコマンドを実行しました。

mdadm --examine --scan >> /etc/mdadm/mdadm.conf

これにより、「mdadm --examine --scan」の結果が「/etc/mdadm/mdadm.conf」に追加されます。

私の場合、これは:

ARRAY /dev/md/0 metadata=1.2 UUID=2660925e:6d2c43a7:4b95519e:b6d110e7 name=localhost:0

これはfakeraid 0 です。自動的にマウントするための/ etc / fstabの私のコマンドは次のとおりです。

/dev/md0 /home/shared/BigDrive ext3 defaults,nobootwait,nofail 0 0

ここで重要なことは、「nobootwait」と「nofail」があることです。nobootwaitは、起動を妨げているシステムメッセージをスキップします。私の場合、これはリモートサーバー上にあったため、不可欠でした。

これが一部の人々に役立つことを願っています。


これが私のためにしたことです。PCI Express SATAカードを介してRAIDドライブを接続しているので、ブート時にシステムがそれらのドライブをまだ認識できていないと推測しています。
マイケルロビンソン

2

mdデバイスをアクティブにするには

mdadm -A /dev/md_d0

RAIDメンバーの1つが発見される前、または同様の問題が発生する前に、いくつかの起動スクリプトがすぐに開始されると思われます。迅速で汚い回避策として、この行を/etc/rc.localに追加できるはずです:

mdadm -A /dev/md_d0 && mount /dev/md_d0

編集:どうやら/etc/mdadm/mdadm.confにはまだ古い設定名が含まれています。このファイルを編集し、md0の出現箇所をmd_d0に置き換えます。


[OK]を、これらの機会にデバイスがときであるだけで、再起動後に有効mount /dev/md_d0/etc/rc.local働くの罰金。mdadm -A /dev/md_d0一方、両方のケースでそのエラーメッセージで失敗します(そのため、その&&演算子の前にそれを使用できませんでした)。とにかく、問題の半分は解決されているようで、そのために+1されます。
ジョニック

実際には、mdadm.confには、少なくとも直接には構成名が含まれていません(/proc/partitionsただし、直接参照しています)。編集した質問をご覧ください。mdadm.confに触れたことはありません-自動生成するツールは何ですか?
ジョニック

記録のために、/etc/rc.localすべてが正常に機能しているように見えるため、回避策を削除しました:superuser.com/questions/117824/… :)
Jonik

2

同様の問題がありました...関連するデバイスパーティションを拡大した後、サーバーがmd2をマウントしませんでした。このスレッドを読んで、md2 RAIDデバイスに新しいUUIDがあり、マシンが古いUUIDを使用しようとしていることがわかりました。

提案されているように...からの「md2」出力の使用

mdadm --examine --scan

編集/etc/mdadm/mdadm.confして、古いUUID行を上記のコマンドの1つの出力に置き換えたところ、問題はなくなりました。


2

あなたがそれで何かをするふりをするとき/dev/md[012346789}に行き/dev/md{126,127...}ます。 /dev/md0でマウントを続行する/dev/md126か、/dev/md127次のことを行う必要があります。

マウントする /dev/md127 またはアンマウント/dev/md126

これは、システムを停止せずにコマンドや一部のアプリケーションを実行できるようにするための一時的なものです。


1

md_d0 : inactive sda4[0](S)RAID1アレイの見た目が間違っています。アレイにアクティブなデバイスとスペアデバイスが1つないことを示唆しているようです((S)で示され、障害のあるデバイスの場合は(F)が表示され、OK /アクティブデバイスの場合は何も表示されません) -RAID1アレイの場合劣化状態で実行されていない場合は、少なくとも2つのOK /アクティブデバイスが必要です(劣化したアレイの場合は、少なくとも1つのOK /アクティブデバイス)。障害のない非スペアデバイス(スペアとしてがないRAID1アレイをアクティブにすることはできません別のドライブに障害が発生したときにアクティブになるまで、データのコピーを含めないでください)。その/proc/mdstat出力を正しく読み取っている場合、現在の状態でアレイをアクティブにすることはできません。

マシンにスピンアップに失敗した物理ドライブがありますか?んls /dev/sd*リストのすべてのドライブやパーティションは、あなたは、通常、そのマシン上で見ることを期待するということ?


ジミーの答えのアドバイスに従った後、非アクティブな状況を再現できなくなったようです(とにかく数回の再起動後、そのように見えます)。
ジョニック

この状態の質問をLinux RAIDメーリングリストに持ち込んで、次の応答を得ました:spinics.net/lists/raid/msg61352.html
nh2

ここで書いたようにecho active > /sys/block/md0/md/array_state私のために働いて、RAIDをスペアのみのRAID0ではなく、失われたディスクのRAID1として再び表示させました。
nh2

1

ハードウェアに問題がなく、アレイを起動するのに十分なドライブ/パーティションがあると仮定して、アレイを実行する簡単な方法は次のとおりです。

md20 : inactive sdf1[2](S)
      732442488 blocks super 1.2

 sudo mdadm --manage /dev/md20  --run

何らかの理由でアレイは正常であるが、何かが原因でアレイの起動または構築が妨げられた可能性があります。私の場合、これはmdadmが元のアレイ名がmd127であると知らず、そのアレイのすべてのドライブが取り外されていたためです。再接続するとき、手動でアセンブルする必要がありました(おそらく、オフラインの古いアレイ名のためにアレイがすでにアクティブであるとmdadmが判断したバグ)。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.