我注意到lvm2
对象使用混合大小写的 UUID:
~ # lvdisplay
(...)
LV UUID yD0FAx-1nHj-O8vV-qNyI-k1RA-hZsj-UF439H
~ # pvdisplay
(...)
PV UUID mXOay3-gT0A-3eVM-5nVD-RI2q-D6A9-j2o04v
考虑到这一点,是否有特殊原因标准(见6.5.4)明确不鼓励这种使用(强调我的)?
注 – 建议所有人类可读格式中使用的十六进制表示形式仅限小写字母。然而,处理这种表示的软件需要接受 6.5.2 中指定的大写和小写字母。
答案1
X.667 讨论以十六进制表示的 UUID; LVM UUID 则不然。此外,LVM UUID 中的大小写很重要:
lvdisplay select uuid=yD0FAx-1nHj-O8vV-qNyI-k1RA-hZsj-UF439H
会找到你的LV,但是
lvdisplay select uuid=YD0FAx-1nHj-O8vV-qNyI-k1RA-hZsj-UF439H
惯于。
答案2
应该是历史性的。 32 字节 UUID 可以追溯到 LVM 1。
挖掘旧资源显示在某个时刻它从 16 字节更改为 32 字节:
lvm-0.8final-2.4.0.patch:312:-#define UUID_LEN 32 /* don't change!!! */
lvm-0.8final-2.4.0.patch:313:+#define UUID_LEN 16 /* don't change!!! */
挖掘邮件列表产生一些关于早期 LVM 中 UUID 的旧讨论:
https://www.redhat.com/archives/linux-lvm/1999-August/msg00076.html
> It should be
> able to identify PVs by UUID (if this is in 0.7,
Today it identifies PVs by PV number/VG name pair.
That obviously is not unique ;*)
But it's sufficient on a single computer system.
https://www.redhat.com/archives/linux-lvm/1999-November/msg00039.html
One of my TODO items for the future still is to have UUIDs
(Uniform Unique Identifiers) for VGs and for system ownership of a VG.
https://www.redhat.com/archives/linux-lvm/2000-September/msg00043.html
I hope nobody is calling pvcreate in an rc script... From what Heinz
said about LVM 0.9, it will finally implement UUID support, so LVM
will be able to identify a PV no matter what device it is on.
我发现的 32 字节类型 UUID 的最早参考日期为 2000 年 11 月/12 月:
https://www.redhat.com/archives/linux-lvm/2000-December/msg00185.html
Subject: [linux-lvm] LVM-0.9 Touble in pvcreate
[...]
PV UUID MB5eIp-jxvc-4pup-ncSM-O6xT-fMmu-JjYgzM
所以它应该被添加到 LVM 0.9 中(如前端可见)。
但即便如此,我也找不到其中提到的确切理由。我想从那时起就没有人认为有任何理由将其更改为更“标准”的 UUID 格式。
事实上,我在 LVM2 代码中发现了对此的抱怨:
/*
* The only validity check we have is that
* the uuid just contains characters from
* '_c'. A checksum would have been nice :(
*/
我想,不可能拥有一切。 :-)