Nomad v0.5.6
Ubuntu 16.04
5 node cluster on identical physical servers.
The UUIDs for each node is very similar, and the first 8 characters, which are all that is displayed in the nomad, interface is identical.
Use hardware where the first 8 characters in /sys/class/dmi/id/product_uuid are identical. Since the first bytes of the UUID are a timestamp, I believe this can be expected on hardware who's bios chips were manufactured in the same batch and manufactured at nearly the same time.
Hash the host UUID before using it to generate the nomad client-id. This will result in a random distribution of UUIDs where it will be unlikely to have a collision in the first 8 characters, while preserving the deterministic advantages of using the system UUID.
If this is a reasonable solution, I'd be happy to implement it and submit a PR.
I'm currently working around this by setting no_host_uuid to true in the client config. But I think the ability to use a deterministic but randomly distributed UUID would be nice.
Hey @clinta,
What are you suggesting? We have the deterministic ID through the host's UUID and give a way to have a random ID as you have discovered.
I like the deterministic id, but I can't use it in our cluster because the first 8 characters of the system UUID are the same on all of the servers in our cluster. This is not unexpected, because the first bytes of the UUID are a timestamp of when the bios chip was burned, and we purchased a batch of identical hardware.
Since the nomad interface only exposes the first 8 characters, this makes the interface unusable.
Hasing the system UUID gives the best of both worlds. Deterministic, and randomly distributed so that the first 8 characters of the client-id will be unique.
Most helpful comment
I like the deterministic id, but I can't use it in our cluster because the first 8 characters of the system UUID are the same on all of the servers in our cluster. This is not unexpected, because the first bytes of the UUID are a timestamp of when the bios chip was burned, and we purchased a batch of identical hardware.
Since the nomad interface only exposes the first 8 characters, this makes the interface unusable.
Hasing the system UUID gives the best of both worlds. Deterministic, and randomly distributed so that the first 8 characters of the client-id will be unique.