使用 mdadm - RAID1 陣列不鏡像其他磁碟
目前我正在 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 步它對我有用。在插入其中一個硬碟驅動器後,我無法再跟隨了。
你可以強制它我猜命令是:
mdadm --assemble --force /dev/md0 /dev/sdb /dev/sdc
但是人們創建分區,然後在它們上創建 md0 數組,因此命令將變為,
mdadm --assemble --force /dev/md0 /dev/sdb1 /dev/sdc1
(我不明白,但您可能已經在原始磁碟上創建了它……)
這會給你你的文件。
關鍵是磁碟顯示不活動,當你強制它會顯示分離。Normall 一旦陣列處於非活動狀態,您應該使用它
mdadm --scan --detail
來弄清楚發生了什麼。如果驅動器發生故障,您應該使用--fail
它來使其發生故障。然後使用sgdisk
將工作磁碟的 gpt 表複製到新磁碟並更改新磁碟 uuid 並重建陣列。但是您始終可以強制單個磁碟創建陣列。
這裡的大問題是使用 raid1 而不是正確的每日備份。Raid 用於不間斷操作,當磁碟發生故障時
/proc/mdstat
會顯示它,您甚至可以繼續操作--fail
磁碟並重新同步它,它會自動重建而不停止操作…看一下這個:
https://www.thomas-krenn.com/en/wiki/Mdadm_recovery_and_resync
您的輸出
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 將使您繼續執行。但是,如果您的所有硬體都出現故障,或者您的硬體或軟體損壞了數據,它對您沒有幫助。因此,如果數據很重要,請研究備份技術。