mdadm の使用 - RAID1 アレイは他のディスクをミラーリングしません

mdadm の使用 - RAID1 アレイは他のディスクをミラーリングしません

現在、Ubuntu 20.04 で nextcloud サーバーを構築しています。OS を実行するためのディスクを 1 つ、320 GB のハードディスク上に用意しました。また、データ ディレクトリを raid1 アレイに配置したいのですが、これは、1 つのドライブに障害が発生しても、もう 1 つのドライブにデータが残っているためです。そこで、/dev/md0 の raid1 アレイに 500 GB のハードディスクを 2 つ用意しました。

実行すると:cat /proc/mdstat

Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10]
md0 : active raid1 sdb[0] sdc[1]
      488254464 blocks super 1.2 [2/2] [UU]
      bitmap: 0/4 pages [0KB], 65536KB chunk

unused devices: <none>

次のコマンドを実行すると、アクティブであると表示されます: sudo mdadm --detail /dev/md0

/dev/md0:
           Version : 1.2
     Creation Time : Fri Aug 14 16:50:18 2020
        Raid Level : raid1
        Array Size : 488254464 (465.64 GiB 499.97 GB)
     Used Dev Size : 488254464 (465.64 GiB 499.97 GB)
      Raid Devices : 2
     Total Devices : 2
       Persistence : Superblock is persistent

     Intent Bitmap : Internal

       Update Time : Sat Aug 15 14:50:13 2020
             State : clean
    Active Devices : 2
   Working Devices : 2
    Failed Devices : 0
     Spare Devices : 0

Consistency Policy : bitmap

              Name : nextcloudserver:0  (local to host nextcloudserver)
              UUID : e525d3e8:2d738f44:59d495fa:2fdcce41
            Events : 9032

    Number   Major   Minor   RaidDevice State
       0       8       16        0      active sync   /dev/sdb
       1       8       32        1      active sync   /dev/sdc

状態はクリーンであると表示されます。再同期するべきではないでしょうか?

sudo mdadm --detail /dev/md0

mdadm: No md superblock detected on /dev/md0.

何か見逃したでしょうか?

したがって、/dev/md0 は /mnt/raid1 にマウントされます。/mnt/raid1 にテキスト ファイルを作成しました。PC をシャットダウンし、raid1 アレイの HDD を 1 つ取り外して PC を起動すると、/mnt/raid1 に作成したテキスト ファイルが見つかりません。

cat /proc/mdstatを実行すると、ステータスが非アクティブであると表示されます

ディスクのミラーリングについて誰か助けていただけませんか。 そうすれば、1 つのディスクに障害が発生しても、NextCloud は他のディスクの日付を保持できます。

ご協力いただければ幸いです。よろしくお願いします

これは私が従ったチュートリアルです:(https://www.linuxbabe.com/linux-server/linux-software-raid-1-setup

ステップ 5 まではうまくいきます。ハードドライブの 1 つを取り外した後は、それ以上進めなくなります。

答え1

強制的に実行できます。コマンドは次のようになります:

mdadm --assemble --force /dev/md0 /dev/sdb /dev/sdc

ただし、パーティションを作成し、その上にmd0配列を作成すると、コマンドは次のようになります。

mdadm --assemble --force /dev/md0 /dev/sdb1 /dev/sdc1

(分かりませんでしたが、raw ディスク上に作成したのかもしれません…)

ファイルが提供されます。

ポイントは、ディスクが非アクティブとして表示されることです。強制すると、ディスクはデグレードされた状態として表示されます。通常、アレイが非アクティブになると、mdadm --scan --detail何が起こっているのか把握するために を使用してください。ドライブが故障した場合は、を使用して--fail故障としてレンダリングする必要があります。その後、sgdisk動作中のディスクの gpt テーブルを新しいディスクにコピーし、新しいディスクの uuid を変更してアレイを再構築します。

ただし、単一のディスクを強制的に使用してアレイを作成することもできます。

ここでの大きな問題は、適切な毎日のバックアップの代わりに RAID1 を使用することです。RAID は中断のない操作を目的としており、ディスクに障害が発生すると/proc/mdstatそれが表示され、ディスクが故障しても操作を続行し--failて再同期し、操作を停止せずに自動的に再構築できます...

これをチェックしてください:

https://www.thomas-krenn.com/en/wiki/Mdadm_recovery_and_resync

答え2

からの出力には、cat /proc/mdstatRAID 1 アレイが正常に機能していることが示されています。

md0 : active raid1 sdb[0] sdc[1]
      488254464 blocks super 1.2 [2/2] [UU]
      bitmap: 0/4 pages [0KB], 65536KB chunk

ここでは、active2 つのディスクが稼働していることを意味します。md0 に書き込んだ内容はすべて両方のディスクにミラーリングされます。

mdadm --detail出力では、 は、 cleanMD が両方のディスクが同期されていると認識していることを意味します。 と/proc/mdstatは両方とも、アレイを作成した後にmdadm --detail表示され、コマンド ラインで をresync使用しない限り、2 つのドライブが同期されます。--assume-cleanmdadm create

その後の問題はすべて、RAID アレイが起動時に起動せず、作成したファイルシステムが起動時にマウントされていないことが原因であると私は考えています。たとえば、以下の出力では、アレイが明らかに実行されていません。

sudo mdadm --detail /dev/md0
mdadm: No md superblock detected on /dev/md0.

起動後にアレイが実行されていない場合は、次のように手動で組み立てることができます。

mdadm --assemble /dev/md0 /dev/sdb /dev/sdc

次に、ファイルシステムをマウントします。

mount /dev/md0 /mnt/raid1

起動時にアレイを自動的に起動するには、 で を設定する必要があります。最も簡単な方法は、アレイの実行中に/etc/mdadm.confの出力を に送信することです。mdadm --detail --scan

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

起動時にファイルシステムをマウントするには、 に追加します/etc/fstab。そこに記載されている指示に従うか、他のエントリのいずれかのように設定します。

他の回答者が言ったように、RAID はバックアップ ソリューションではありません。RAID は、ハードウェアの一部が故障しても稼働を継続させます。ただし、すべてのハードウェアが故障した場合、またはハードウェアまたはソフトウェアによってデータが破損した場合は役に立ちません。したがって、データが重要な場合は、バックアップ手法を検討してください。

答え3

次のように試してください:

  1. Ubuntuを実行する
  2. ターミナルを実行して書き込みます
  • sudo パスワード ルート
  • mdadm –create /dev/md0 --level=1 --raid-devices=2 /dev/sda1 がありません
  • mdadm –create /dev/md1 --level=1 --raid-devices=2 /dev/sdb1がありません
  1. Linux をインストールします。1 つの RAID を選択します。プロセスの途中でエラーが発生した場合は、ターミナルに次のように入力します。

ls -l /dev/sd*

mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/sda1 /dev/sdb1

重要: DEVはUSBキーです

df -h

mount --bind /dev /target/dev mount --bind /sys /target/sys mount --bind /proc /target/proc cp /etc/resolv.conf /target/etc/resolv.conf chroot /target/ apt install mdadm grub-install /dev/sda exit を実行して Linux を再起動します。

同じグループ (md0) にディスクを追加する場合は、次のコマンドを使用します。

sudo mdadm --add /dev/md0 /dev/sdc2

答え4

[解決済み]

それで、1台のドライブを取り外したとき、もう1台のドライブのdatoを確認できるようにしたかったのです。1台のハードドライブを取り外し、cat /proc/mdstatを実行したところ、アクティブであると表示されました。

それから私は試した

sudo mdadm -S /dev/md0 それを止めるために

それから

sudo mdadm -A /dev/md0 それを活性化する

ファイルシステムを再度マウントする sudo mount /dev/md0 /mnt/raid1

関連情報