![mdadm の使用 - RAID1 アレイは他のディスクをミラーリングしません](https://rvso.com/image/756258/mdadm%20%E3%81%AE%E4%BD%BF%E7%94%A8%20-%20RAID1%20%E3%82%A2%E3%83%AC%E3%82%A4%E3%81%AF%E4%BB%96%E3%81%AE%E3%83%87%E3%82%A3%E3%82%B9%E3%82%AF%E3%82%92%E3%83%9F%E3%83%A9%E3%83%BC%E3%83%AA%E3%83%B3%E3%82%B0%E3%81%97%E3%81%BE%E3%81%9B%E3%82%93.png)
現在、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/mdstat
RAID 1 アレイが正常に機能していることが示されています。
md0 : active raid1 sdb[0] sdc[1]
488254464 blocks super 1.2 [2/2] [UU]
bitmap: 0/4 pages [0KB], 65536KB chunk
ここでは、active
2 つのディスクが稼働していることを意味します。md0 に書き込んだ内容はすべて両方のディスクにミラーリングされます。
mdadm --detail
出力では、 は、 clean
MD が両方のディスクが同期されていると認識していることを意味します。 と/proc/mdstat
は両方とも、アレイを作成した後にmdadm --detail
表示され、コマンド ラインで をresync
使用しない限り、2 つのドライブが同期されます。--assume-clean
mdadm 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
次のように試してください:
- Ubuntuを実行する
- ターミナルを実行して書き込みます
- sudo パスワード ルート
- mdadm –create /dev/md0 --level=1 --raid-devices=2 /dev/sda1 がありません
- mdadm –create /dev/md1 --level=1 --raid-devices=2 /dev/sdb1がありません
- 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