POSIX compliance

The following are exceptions to Google Cloud Managed Lustre's POSIX compliance:

  • atime updates: By default, atime is enabled in Lustre, but for performance reasons, its updates might be deferred. This means that the access time of a file might not be updated immediately after every read operation.

  • flock/lockf: These refer to two main file-locking APIs: flock(2) and fcntl(2).

    • flock: This is a BSD-style, whole-file advisory lock that is not defined by POSIX. Lustre fully supports BSD-style flock semantics across the cluster by default.
    • fcntl: This is the POSIX-defined locking API, supporting byte-range locks. Lustre's implementation of fcntl locks is nearly POSIX-compliant and works as expected for most applications. However, since fcntl was originally designed for local filesystems, no distributed file system can 100% match all of POSIX's fcntl requirements, including Lustre. For example, fcntl() specifies that locks must be released immediately when the owning process exits, but Lustre lock release may be delayed if the client crashes.

See the Lustre FAQ for details.