web-dev-qa-db-ja.com

ドライブをアレイに組み立てることができませんでした

走った

mdadm -A /dev/md0 /dev/sda1 /dev/sdb1

ただし、/dev/sdb1のみが配列にロードされました。同じ2つのドライブにもいくつかのアレイがあります。 sdaのパーティションが失敗するたび。 dmesgsdaが同期していないと言った...これはレスキューCDからのものだったので。 sda(ハードウェアに関して)を切断したのは、起動が妨げられていたためです。

どうすればよいですか?これがドライブの中断の原因である可能性がありますか?先日、追跡できなかった奇妙なfsの問題がいくつかありました(おそらく前兆):後で魔法のように再表示されたファイルの欠落。たぶんケーブルがありませんか?

主な質問は、ドライブを再同期するにはどうすればよいですか?

cat /proc/mdstat
Personalities : [raid10] 
md3 : active raid10 sda4[1]
      955683840 blocks super 1.2 512K chunks 2 far-copies [2/1] [_U]

md2 : active raid10 sda3[1]
      10483712 blocks super 1.2 512K chunks 2 far-copies [2/1] [_U]

md1 : active raid10 sda2[1]
      10484736 blocks 512K chunks 2 far-copies [2/1] [_U]

md0 : active raid10 sda1[1]
      101376 blocks 512K chunks 2 far-copies [2/1] [_U]

unused devices: <none>

更新

他のドライブ全体でbadblocksを実行し、長いsmartctlテストを実行しましたが、問題は見つかりませんでした。

mdadm -D /dev/md0(他に必要な場合はmd0-3があります)の要求出力

/dev/md0:
        Version : 0.90
  Creation Time : Mon May 31 20:24:14 2010
     Raid Level : raid10
     Array Size : 101376 (99.02 MiB 103.81 MB)
  Used Dev Size : 101376 (99.02 MiB 103.81 MB)
   Raid Devices : 2
  Total Devices : 1
Preferred Minor : 0
    Persistence : Superblock is persistent

    Update Time : Mon Oct 25 07:58:25 2010
          State : clean, degraded
 Active Devices : 1
Working Devices : 1
 Failed Devices : 0
  Spare Devices : 0

         Layout : far=2
     Chunk Size : 512K

           UUID : 30ffe1d2:f5759995:820bb796:b5530bd2 (local to Host slave-iv)
         Events : 0.212

    Number   Major   Minor   RaidDevice State
       0       0        0        0      removed
       1       8        1        1      active sync   /dev/sda1

ドライブに実際の問題は見つかりませんでしたが、明らかに問題が発生したので、次に何をすべきか疑問に思います。 今日現在、重要なデータの完全バックアップが実施されています

pdate 2sdaであったものを(少なくともワイプせずに)追加しようとすると、カーネルマジックナンバーエラーでブートプロセスが台無しになります。カーネルバージョンが同期しなくなったためだと思います。現在、このドライブはsddとして外部エンクロージャーにあります。 USB経由で接続しているときに、このドライブを再追加(再同期)する必要がありますか?それは問題を引き起こしますか?

df
Filesystem            Size  Used Avail Use% Mounted on
udev                   10M  284K  9.8M   3% /dev
/dev/md1              9.9G  7.0G  2.4G  75% /
shm                   3.0G  1.5M  3.0G   1% /dev/shm
/dev/md0               96M   15M   77M  16% /boot
/dev/md2              9.9G  6.5G  3.0G  69% /var
/dev/md3              898G  451G  402G  53% /home
none                  1.0G   45M  980M   5% /tmp
/dev/sdb1             992M   36M  956M   4% /media/D4A4-B7C1

各mdドライブには、対応するsda/sdbがあります。プルしなければならなかったのは、アレイ内のsdaドライブ(または0ドライブ)でした。

2
xenoterracide

さて、明らかに、ディスクの1つが現在アレイでアクティブではありません。現在の列挙では、_/dev/md0_に_/dev/sdb1_がない場合を考えてみましょう。

_/dev/sdb1_を以前の状態に戻すには:

_mdadm -a --re-add /dev/md0 /dev/sdb1
_

配列を再チェックして、データがすべて一貫していることを確認することをお勧めします。

_echo check >>/sys/block/md0/md/sync_action
_

最初から再ミラーリングするには:

_/dev/sdb1_がアレイから完全に削除されていることを確認してください。

_mdadm -f /dev/md0 /dev/sdb1
mdadm -r /dev/md0 /dev/sdb1
_

_/dev/sdb1_の構成を消去して、mdadmが完全に新しいディスクであるかのようにアレイに追加し直します。

_mdadm --zero-superblock /dev/sdb1
_

_/dev/sdb1_をメンバーとして配列に追加し直します。

_mdadm -a /dev/md0 /dev/sdb1
_

USB上のディスクの同期はゆっくりと機能します。

ただし、問題は、ブートローダーが2番目のドライブに正しくインストールされていないため、挿入されたときに起動できないことだと思います。

これらの2つのドライブの順序を入れ替えて、システムが既知の適切な構成でドライブから起動するようにすることができます。

起動して両方のドライブを同期できるようになったら、両方のドライブにブートローダーを再インストールする必要があります。このようにして、どのドライブが欠落しているか、最初に列挙しても、いつでも起動できます。

ブートローダーを再インストールする方法はさまざまです。

  • lilo≥22.0を使用している場合は、_boot = /dev/md0_に_raid-extra-boot = mbr_と_/etc/lilo.conf_を指定し、liloを再実行します。古いliloを使用している場合は、アレイ内のディスクごとに1つずつ、2つのlilo構成を作成し、liloを各ディスクに個別にインストールします。
  • Grubを使用している場合は、_grub-install /dev/sda_および_grub-install /dev/sdb_を実行してみてください。それが失敗した場合は、Grubシェルを使用してsetup (hd0)およびsetup (hd1)(_cat /boot/grub/device.map_を使用して、Grubのハードディスク番号を確認してください)を試してください。
3
ephemient