Mdadm

將 UUID 與 mdadm 一起使用

  • October 3, 2014

我使用 GPT 作為我的分區方案。我檢查了我的分區的 UUID:

# ls -l /dev/disk/by-partuuid/
total 0
lrwxrwxrwx 1 root root 10 Oct 18 22:39 0793009a-d460-4f3d-83f6-8103f8ba24e2 -> ../../sdb3
lrwxrwxrwx 1 root root 10 Oct 18 22:39 13f83c47-ad62-4932-8d52-e93626166e7f -> ../../sdc3
lrwxrwxrwx 1 root root 10 Oct 18 22:39 1b247b1f-0b7b-419e-bc3b-0f90cbadb87c -> ../../sdc2
lrwxrwxrwx 1 root root 10 Oct 18 22:39 224d5933-7a23-4833-b785-79a67c9b9306 -> ../../sda1
lrwxrwxrwx 1 root root 10 Oct 18 22:39 2ff625b2-b96b-4ce5-b752-57cdf7092258 -> ../../sda3
lrwxrwxrwx 1 root root 10 Oct 18 22:39 449956f9-7289-49ed-9a37-ed6be9264d1c -> ../../sdb1
lrwxrwxrwx 1 root root 10 Oct 18 22:39 a2a95e45-7e4c-4b20-a2bd-66d96e737590 -> ../../sdb2
lrwxrwxrwx 1 root root 10 Oct 18 22:39 a8c07f74-9d6d-4f45-9453-dd2e6998f100 -> ../../sda2
lrwxrwxrwx 1 root root 10 Oct 18 22:39 c2c9e94c-9c73-4d6e-a4ec-2229f56152e8 -> ../../sdc1

/dev/sdc2使用其 UUID 添加:

# mdadm /dev/md0 --add /dev/disk/by-partuuid/1b247b1f-0b7b-419e-bc3b-0f90cbadb87c
mdadm: added /dev/disk/by-partuuid/1b247b1f-0b7b-419e-bc3b-0f90cbadb87c

但是當我查看 RAID 陣列的詳細資訊時,它會報告/dev/sdc2而不是 UUID。

# mdadm --detail /dev/md0
/dev/md0:
       Version : 1.2
 Creation Time : Thu Oct 18 21:52:43 2012
    Raid Level : raid1
    Array Size : 1048564 (1024.16 MiB 1073.73 MB)
 Used Dev Size : 1048564 (1024.16 MiB 1073.73 MB)
  Raid Devices : 2
 Total Devices : 2
   Persistence : Superblock is persistent

   Update Time : Fri Oct 19 15:57:19 2012
         State : clean
Active Devices : 2
Working Devices : 2
Failed Devices : 0
 Spare Devices : 0

          Name : cow:0  (local to host cow)
          UUID : 9e691db1:f8fcc7d8:f56d9c11:1c202693
        Events : 47

   Number   Major   Minor   RaidDevice State
      2       8       34        0      active sync   /dev/sdc2
      1       8       18        1      active sync   /dev/sdb2
  1. 使用 UUID 建構 RAID 陣列是不可能的嗎?
  2. 還是使用 UUID 但報告正常名稱以增加可讀性?在那種情況下,我怎麼知道?
  3. 我想使用 UUID,這樣我就可以在機器中自由移動磁碟而不會破壞任何東西。這聽起來不是個好主意嗎?

mdraid 始終允許您在機器中自由移動磁碟,無論您如何將磁碟添加到陣列。它通過儲存在磁碟上的 RAID 元數據(超級塊)來跟踪磁碟。

請注意,這假設 mdadm 在組裝陣列時可以找到磁碟。預設值(在 中指定/etc/mdadm/mdadm.conf)是 normal DEVICE partitions,這意味著查看所有分區(在所有磁碟上)檢查 RAID 超級塊。它檢查數組名稱或 UUID 是否匹配(取決於您在該配置文件中所說的操作),注意兩者在您的--detail輸出中的方式。

例子:

DEVICE partitions
:
ARRAY /dev/md0 metadata=1.2 UUID=9e691db1:f8fcc7d8:f56d9c11:1c202693

當被告知 assemble/dev/md0時,mdadm 將掃描系統上的所有分區,尋找 UUID 為 9e691db1:f8fcc7d8:f56d9c11:1c202693 的 1.2 超級塊。它將讀取每個設備號等,並使用該資訊來組裝陣列。

DEVICE如果掃描所有分區很昂貴,您只會更改該行。例如,如果您有數百個,則通過網路。然後你可以在那裡列出相關的設備,但是你想(通過 UUID 應該可以正常工作)。

引用自:https://unix.stackexchange.com/questions/52321