I am sponsoring the following fast-track for Alan Wright.  It
introduces a new property on ZFS datasets to improve support SMB
clients.

Requested binding is micro, timeout is 3/4/2009.

Template Version: @(#)sac_nextcase 1.68 02/23/09 SMI
This information is Copyright 2009 Sun Microsystems
1. Introduction
    1.1. Project/Component Working Name:
         ZFS dataset property to support SMB
    1.2. Name of Document Author/Supplier:
         Author:  Alan Wright
    1.3  Date of This Document:
        26 February, 2009

4. Technical Description

        This case proposes a new property for ZFS datasets, primarily to
        support Windows interoperability, based on the following RFEs.

        6808472 SMB name space caching on clients

        Name space caching allows SMB clients to cache the directory and
        file layout on a server.  All of the caching logistics are handled
        by the clients.  On the server-side, the requirement is that the
        server does not generate short names for files on the specified
        file system; short names are the DOS 8.3 compatibility names that
        are either space padded or contain an abbreviated form of a long
        name with a '~'.  Short names are generated by the server and
        only the server can decipher them thus the client may be unable
        to associate a short name with the original name in its cache.
        In SMB terms, the server must generate unique names, which requires
        a dataset-wide property to ensure that short names are not generated
        on any share of a dataset on which name space caching is permitted.

        6582167 Drive letter and volume label support

        Windows allows volumes to be named and some Windows applications
        embed the volume name in files, which can cause problems after
        network volume migration from, say, Samba to the CIFS service.
        For example, the Thumbs Plus photo indexing application keeps
        track of non-local volumes by volume label since network drives
        can show up on different drive letters.  After switching from
        Samba to the CIFS service, the volume label changed, which
        invalidated the Thumbs Plus application database containing all
        the keyword-to-image mapping information.  It is desirable to
        provide a property to allow users to label a ZFS dataset.

        Server-side drive letters are required by some over-the-wire Windows
        backup applications.  When these applications convert a share name
        to the absolute path on the server the path must be prefixed by a
        server-side drive letter.

        6600891 Need to be able to enable/disable oplocks per ZFS dataset

        Opportunistic locks (oplocks) are used to coordinate SMB delegation,
        which must be consistent across a dataset to ensure file content
        integrity.  Delegation is a mechanism for managing exclusive or
        shared network access to files.  For example, a client that has
        been granted exclusive access to a file can cache the file content
        locally, secure in the knowledge it will be informed if another
        client or a server process tries to access the file, and it will be
        given an opportunity to sync locally cached data back to the server
        prior to another access being granted.

        The proposed property is smb.  The default value will be none.
        The property is inherited, but individual values have different
        inheritance rules as described below.  Non-inherited values are
        stripped out by libzfs before being passed to higher level
        software.

        The following values are defined:

                shortnames=enabled | disabled

                Controls whether or not short names will be generated for
                objects in this file system.  When the value is set to
                disabled, the CIFS service will not generate short names
                and indicate to SMB clients that name space caching is
                allowed.  Otherwise, the CIFS service will generate short
                names and will not indicate that name space caching is
                allowed.  Short names will be generated by default.  This
                is an inheritable value.

                label=[<drive-letter>:]name

                Specifies a name for this file system.  The name cannot
                contain control characters (values 0x00 through 0x31) or
                any of the following characters:

                < > : " / \ | ? * ,

                Optionally, the name may be prefixed by an alphabetic
                character (drive letter) and a colon.  The drive letter
                may be used by clients as an alias for the volume name.

                The default value of the label property will be the final
                component of the mountpoint property, and there is no
                requirement for the label to be unique on the server.
                This is a non-inheritable value.

                oplocks=enabled | disabled

                Controls whether or not opportunistic locks (oplocks) will
                be granted on this file system.  The default value will be
                enabled.  This is an inheritable value.

        Example

                The following command disables short name and specifies a
                label for the dataset.  The oplocks value is not specified
                and will default to enabled.  The property as inherited by
                children will appear as simply 'shortnames=disabled'.

                # zfs set smb=shortnames=disabled,label=mylabel

6. Resources and Schedule
    6.4. Steering Committee requested information
        6.4.1. Consolidation C-team Name:
                ON
    6.5. ARC review type: FastTrack
    6.6. ARC Exposure: open

Reply via email to