![使用 mdadm - RAID1 陣列不鏡像其他磁碟](https://rvso.com/image/756258/%E4%BD%BF%E7%94%A8%20mdadm%20-%20RAID1%20%E9%99%A3%E5%88%97%E4%B8%8D%E9%8F%A1%E5%83%8F%E5%85%B6%E4%BB%96%E7%A3%81%E7%A2%9F.png)
目前我正在 Ubuntu 20.04 上建置一個 nextcloud 伺服器。我有一張磁碟供作業系統在 320GB 硬碟上運行。我希望資料目錄位於 raid1 陣列中,因為如果一個磁碟機發生故障,我們仍然可以在另一個磁碟機上儲存資料。所以我在 /dev/md0 上的 raid1 陣列中獲得了 2 個 500GB 的硬碟。
當我跑步時: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
它說這個州是乾淨的。不是應該重新同步嗎?
須藤 mdadm --detail /dev/md0
mdadm: No md superblock detected on /dev/md0.
我錯過了什麼嗎?
因此 /dev/md0 掛載在 /mnt/raid1 上。我在 /mnt/raid1 中建立了一個文字檔。當我關閉電腦並拔出 raid1 陣列中的一個硬碟並啟動電腦。我找不到我在 /mnt/raid1 中建立的文字檔案。
如果我執行 cat /proc/mdstat 它會顯示狀態為非活動狀態
那麼任何人都可以幫我鏡像磁碟嗎?這樣,如果其中一個失敗,nextcloud 仍會在另一磁碟上保留日期。
如有任何幫助,將不勝感激,事先致謝
這是我遵循的教程:(https://www.linuxbabe.com/linux-server/linux-software-raid-1-setup)
直到第 5 步它對我有用。插入其中一個硬碟後,我無法再繼續操作了。
答案1
你可以強制它我猜命令是:
mdadm --assemble --force /dev/md0 /dev/sdb /dev/sdc
然而,人們會建立分區,然後在其上建立 md0 數組,因此命令將變為,
mdadm --assemble --force /dev/md0 /dev/sdb1 /dev/sdc1
(我不明白,但你可能已經在原始磁碟上創建了它......)
這會給你你的文件。
重點是磁碟顯示不活動,當您強制它時,它會顯示退化。通常,一旦陣列處於非活動狀態,您應該使用它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
意味著它已經啟動,有兩個磁碟。您寫入 md0 的任何內容都將鏡像到兩個磁碟。
在您的mdadm --detail
輸出中,clean
表示 MD 認為兩個磁碟是同步的。兩者/proc/mdstat
都會在您建立陣列後mdadm --detail
顯示resync
,同時它使兩個磁碟機同步,除非您--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
- 運行終端並寫入
- 須藤密碼根
- mdadm –create /dev/md0 --level=1 --raid-devices=2 /dev/sda1 遺失
- mdadm –create /dev/md1 --level=1 --raid-devices=2 /dev/sdb1 遺失
- 安裝Linux。週 1 突襲。如果在過程中間出現錯誤,請在終端機中寫入以下內容:
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安裝mdadm grub-install /dev/sda 退出然後重新啟動linux。
如果您將磁碟新增至同一組 (md0),請使用下列命令:
sudo mdadm --add /dev/md0 /dev/sdc2
答案4
[解決了]
所以當我拔掉一個驅動器時。我希望能夠看到另一個驅動器上的數據。我拔出一個硬碟,運行 cat /proc/mdstat 它說處於活動狀態
然後我嘗試了
sudo mdadm -S /dev/md0
阻止它
然後
sudo mdadm -A /dev/md0
激活它
並再次掛載檔案系統
sudo mount /dev/md0 /mnt/raid1