在mdadm中使用UUID


10

我正在使用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,以便我可以在计算机中自由移动磁盘而不会损坏任何东西。听起来不是个好主意吗?

Answers:


14

无论您如何将磁盘添加到阵列中,mdraid始终允许您在计算机中自由移动磁盘。它通过磁盘上存储的RAID元数据(超级块)跟踪磁盘。

请注意,这假设mdadm在组装阵列时可以找到磁盘。默认值(在中指定/etc/mdadm/mdadm.conf)通常为DEVICE partitions,这意味着要查看所有分区(在所有磁盘上)以检查RAID超级块。它检查数组名称或UUID是否匹配(取决于您说要在该配置文件中执行的操作),请注意两者在--detail输出中的情况。

例:

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

当被告知进行组装时/dev/md0,mdadm将扫描系统上的所有分区,以查找UUID 9e691db1:f8fcc7d8:f56d9c11:1c202693的​​1.2个超级块。它将从每个设备中读取设备编号等,并使用该信息来组装阵列。

DEVICE当扫描所有分区的成本很高时,才更改行。例如,如果您有数百个,则通过网络。然后,您可以在此处列出相关设备,但是可以(通过UUID可以正常工作)。


谢谢!默认情况下,我/etc/mdadm/mdadm.conf# by default (built-in), scan all partitions (/proc/partitions) and all containers for MD superblocks. alternatively, specify devices to scan, using wildcards if desired.DEVICE对于Ubuntu,默认情况下该行是多余的。但是我想默认行为会非常完美!(我不需要扫描的内容太多)
删除

如何知道超级块的UUID放入配置文件?
2014年

@Dims mdadm将为您提供数组的UUID,blk​​id以及用于块设备的其他几个工具...也许对此有详细问题?
derobert 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.