我有一个在 Linux 上运行的应用程序。每个人都会尝试从操作系统获取 UUID 并向中央服务器报告。我想确保所有实例都使用全局唯一的 UUID 运行。

如果 linux 在裸机上,它只能读取 UUID(例如,从 dmidecode 命令)。但如果它在 VM 上,则 UUID(来自 dmidecode)可能相等,因为 VM 可以被复制或移动。

有任何想法吗?

顺便说一句,对于运行在物理硬件(而不是 VM)上的 Linux,如果用户更改内存、网卡等,UUID 会改变吗?

提前致谢。

最佳答案



VMware 产品实际上并非如此。 BIOS UUID(dmidecode 返回的)用作 ESX 主机和 vCenter 的 list UUID 属性,并且不允许在同一系统上重复 UUID。这意味着每个 vCenter 只有一台机器可以拥有该 UUID,如果没有 vCenter,则每个主机都可以拥有该 UUID。我过去曾成功使用此 UUID 作为标识符。

要多次运行您的程序,他们必须将其安装在单独主机上的虚拟机中,或者安装在完全不同的 vCenter 中。仅仅运行一个以上的程序就需要大量的资源,我认为这远远超出了许可证执行的 yield 递减。

Workstation 使用与 ESX/vCenter 相同的数据布局,因此我希望它具有相同的限制。

关于linux - Linux 中是否有可以唯一标识 VM 实例的 UUID 类型的值?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8722050/

10-14 16:00
查看更多