Mdadm

使用 mdadm - RAID1 陣列不鏡像其他磁碟

  • August 18, 2020

目前我正在 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 將使您繼續執行。但是,如果您的所有硬體都出現故障,或者您的硬體或軟體損壞了數據,它對您沒有幫助。因此,如果數據很重要,請研究備份技術。

引用自:https://serverfault.com/questions/1030242