web-dev-qa-db-ja.com

Linux mdadmは配列をアセンブルしませんが、配列の再作成はアセンブルします

たぶん、タイトルがはっきりしていません。 mdadmを使用してraid1配列をアセンブルしようとしている場合:

Sudo mdadm --assemble /dev/md0 /dev/sdc /dev/sdd

それは私にそれを教えてくれます

mdadm: Cannot assemble mbr metadata on /dev/sdc
mdadm: /dev/sdc has no superblock - Assembly aborted

コマンドでデバイスを並べ替える場合:

Sudo mdadm --assemble /dev/md0 /dev/sdd /dev/sdc

sddについても同じことが言えます。

mdadm: Cannot assemble mbr metadata on /dev/sdd
mdadm: /dev/sdd has no superblock - Assembly aborted

ドライブに関する情報は次のとおりです。

➜  ~ Sudo mdadm --misc -E /dev/sdc 
/dev/sdc:
   MBR Magic : aa55
Partition[0] :   3907029167 sectors at            1 (type ee)
➜  ~ Sudo mdadm --misc -E /dev/sdd
/dev/sdd:
   MBR Magic : aa55
Partition[0] :   3907029167 sectors at            1 (type ee)

だが!で配列を再作成しているとき

➜  ~ Sudo mdadm --create /dev/md0 -n 2 -l 1 /dev/sdc /dev/sdd
mdadm: /dev/sdc appears to be part of a raid array:
       level=raid0 devices=0 ctime=Thu Jan  1 07:00:00 1970
mdadm: partition table exists on /dev/sdc but will be lost or
       meaningless after creating array
mdadm: Note: this array has metadata at the start and
    may not be suitable as a boot device.  If you plan to
    store '/boot' on this device please ensure that
    your boot-loader understands md/v1.x metadata, or use
    --metadata=0.90
mdadm: /dev/sdd appears to be part of a raid array:
       level=raid0 devices=0 ctime=Thu Jan  1 07:00:00 1970
mdadm: partition table exists on /dev/sdd but will be lost or
       meaningless after creating array
Continue creating array? yes
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.

新しい配列を作成する代わりに、配列を開始します!

➜  ~ ls -l /dev/mapper/MisakaMirror-alldata 
lrwxrwxrwx 1 root root 7 май 19 01:48 /dev/mapper/MisakaMirror-alldata -> ../dm-2

しかし、私はこれを達成したい

mdadm --assemble

自動的に行う。ありがとう。

2
IlyaGulya

解決

????????ℝℕ????ℕ????:以下の手順delete既存のRAIDセットアップを作成し、新しいmdを作成します/dev/sdc/dev/sddの2つのブロックデバイス全体を備えたRAID1アレイ。

  1. カーネルに、次のいずれかのコマンドがロードされたRAID 1mdモジュールがあることを確認します。

    lsmod | grep 'raid1\s'
    grep 'Personalities : .*\[raid1\]' /proc/mdstat
    
  2. 上記の出力が得られない場合は、RAID 1mdモジュールをロードします。

    Sudo modprobe raid1
    
  3. ディスクをザッピングして、mdに既存の破損したアレイを忘れさせます。

    Sudo sgdisk -Z /dev/sdc
    Sudo sgdisk -Z /dev/sdd
    

    mdadmが既存の配列を正しく検出しない場合、mdadm --zero-superblock /dev/sd{c,d}が動作しない可能性があることに注意してください。

  4. デバイス/dev/sdcおよび/dev/sdd全体を使用してRAID1アレイを再作成します。

    Sudo mdadm --create /dev/md0 -n 2 -l 1 /dev/sdc /dev/sdd
    
  5. 新しい配列を自動的にアセンブルするには、次のコマンドの内容を/etc/mdadm/mdadm.confファイルの最後に追加します。

    Sudo mdadm --detail --scan
    

    参照: 起動するたびにmdadmにRAIDを自動アセンブルさせるにはどうすればよいですか?


説明

2つのmdadm --misc -Eコマンドは、mdadmがRAIDデバイスのメタデータを認識していないことを示しています。あなたの例:

➜  ~ Sudo mdadm --misc -E /dev/sdc 
/dev/sdc:
   MBR Magic : aa55
Partition[0] :   3907029167 sectors at            1 (type ee)

/dev/sdcにはパーティション/dev/sdc1があるようです。デバイス全体をmdRAIDデバイスとして使用している場合、/dev/sdc1はありません。 (同じことがあなたの/dev/sddにも当てはまります。)

さらに、配列を再作成しようとすると、mdadmは次の奇妙な情報を検出します。

mdadm: /dev/sdc appears to be part of a raid array:
       level=raid0 devices=0 ctime=Thu Jan  1 07:00:00 1970

今日、2台のデバイスでRAID 1を使用しようとしていますが、mdadmEpoch にデバイスがないRAID0を報告します。これは明らかに正しくありません。

たぶん、ある時点で、/dev/sdc1/dev/sdd1(デバイス全体)ではなく、/dev/sdc/dev/sdd(パーティション)に配列を作成しようとしましたが、mdスーパーブロックはあなたが問題を理解するのに苦労している間、混乱しました。

このため、ディスクをザッピングして最初からやり直す必要があると思います。

2
Deltik