Subject: [nfsv4] What UUID version to use for FSNs?

From: Daniel Ellard <[email-masked]>
Date: Tue, 17 Jul 2012 14:48:44 -0400

I have edited the subject because I think that the LDAP aspects are
fine, but I want to deprecate using version 1 UUIDs.

On Tue, Jul 17, 2012 at 2:35 PM, Chuck Lever <[email-masked]> wrote:

>>    To minimize the probability of two UUIDs colliding, a consistent
>>    procedure for generating UUIDs SHOULD be used throughout a
>>    federation.  Within a federation, UUIDs SHOULD be generated using the
>>    procedure described for version 1 of the UUID variant specified in
>>    [RFC4122].  This is the time-based UUID variant provided by many UUID
>>    programming libraries (e.g., the OSF DCE uuid_generate_time(1) API).
>>

UUID version 1 depends on the notion that the hardware MAC is unique
across machines; it has two primary fields: time, and machine
identifier.  Time, of course, is not unique across machines, which
means that the uniqueness of each UUID hinges on the uniqueness of the
MAC.  At the time when 4122 was written, it might have been reasonable
to assume that this would be the case, but it is no longer a safe
assumption.  MACs can be overridden in software, and VMs tend to use
MACs selected from very small pools.  This does not cause a problem
because it is acceptable to risk collisions at the MAC layer because
they can be easily resolved, and only need to be unique across one
bridge or switch.  The growing trend, however, is that they are not a
valid source of global uniqueness.

I strongly recommend version 4 be used instead  (even though 4 years
ago or so, I was one of the people who advocated version 1...  I've
learned my lesson).

-Dan

---

From: Chuck Lever <[email-masked]>
Date: Tue, 17 Jul 2012 14:53:43 -0400

Hi-

> fine, but I want to deprecate using version 1 UUIDs.

We've already got that in plan.  Have a look at:

  http://www.ietf.org/mail-archive/web/nfsv4/current/msg10421.html

I also advocate for type 4 UUIDs, and an expansion of the draft's discussion of our UUID uniqueness requirements.

-- 
Chuck Lever
chuck[dot]lever[at]oracle[dot]com