[ Somehow the automatic message didn't go out. ] I'm sponsoring the following for fast track approval. The timer expires 14 October 2009.
Template Version: @(#)onepager.txt 1.35 07/11/07 SMI Copyright 2007 Sun Microsystems 1. Introduction 1.1. Project/Component Working Name: SMB/CIFS Standalone DFS 1.2. Name of Document Author/Supplier: Author: Afshin Salek 1.3. Date of This Document: 10/01/09 1.4. Name of Major Document Customer(s)/Consumer(s): PSARC CIFS team 1.5. Email Aliases: 1.5.1. Responsible Manager: Barry.Greenberg at Sun.COM 1.5.2. Responsible Engineer: Afshin.Ardakani at Sun.COM 1.5.3. Marketing Manager: 1.5.4. Interest List: cifs-team at sun.com A patch binding is requested for this change. 4. Technical Description: 4.1. Details: This is a follow on case to PSARC 2009/399 "Reparse Points and Referral Umbrella Case" to introduce support for SMB/CIFS standalone DFS namespaces. INTRODUCTION The Distributed File System (DFS) is a Microsoft technology delivered over the SMB/CIFS and MSRPC protocols. DFS allows administrators to group shared folders located on different servers by transparently connecting them to one or more DFS namespaces. A DFS namespace is a virtual view of shared folders in an organization. An administrator can select which shared folders to present in the namespace, design the hierarchy in which those folders appear and determine the names that the shared folders show in the namespace. When a user views the namespace, the folders appear to reside in a single, high-capacity file system. Users can navigate the folders in the namespace without needing to know the server names or shared folders hosting the data. DFS also provides many other benefits, including fault tolerance and load-sharing capabilities, making it an attractive feature for many organizations. DFS TERMINOLOGY DFS namespace A virtual view of shared folders on different servers as provided by DFS. A DFS namespace consists of a root and many links and targets. The namespace starts with a root that maps to one or more root targets. Below the root are links that map to their own targets. DFS link A component in a DFS path that lies below the root and maps to one or more link targets. DFS path Any Universal Naming Convention (UNC) path that starts with a DFS root. DFS root The starting point of the DFS namespace. The root is often used to refer to the namespace as a whole. A root maps to one or more root targets, each of which corresponds to a shared folder on a separate server. A DFS root has one of the following formats: \\ServerName\RootName or \\DomainName\RootName. domain-based DFS namespace A DFS namespace that has configuration information stored in Active Directory (AD). The path to access the root or a link starts with the host domain name. A domain-based DFS root can have multiple root targets, which offers fault tolerance and load sharing. link referral A type of referral that contains a list of link targets for a particular link. link target The mapping destination of a link. A link target can be any UNC path. For example, a link target could be a shared folder or another DFS path. referral A list of targets, transparent to the user, that a DFS client receives from DFS when the user is accessing a root or a link in the DFS namespace. Referral information may be cached on DFS clients for a time period specified in the DFS configuration. root referral A type of referral that contains a list of root targets for a particular root. root target A physical server that hosts a DFS namespace. A domain-based DFS root can have multiple root targets, whereas a standalone DFS root can only have one root target. Root targets are also called root servers. standalone DFS namespace A DFS namespace whose configuration information is stored locally on the the root server. The path to access the root or a link starts with the root server name. A standalone DFS root has only one root target. Standalone roots are not fault tolerant; when the root target is unavailable, the entire DFS namespace is inaccessible. Fault tolerance can be added externally with the use of server clusters. SIMPLIFIED REFERRAL PROCESS FOR STANDALONE NAMESPACES 1. A user attempts to access a DFS path, such as by typing \\Software\Public\Documents in the Run dialog box. 2. The DFS client computer sends a query to the root server hosting the standalone namespace. 3. The root server returns a root referral to the client. The root referral contains the single root target. 4. The client requests a link target from the root server. 5. The root server constructs a list of link targets in the referral and returns this to the client. 6. The client selects a link target and establishes a connection. STANDALONE NAMESPACES IN SOLARIS The DFS root is a share that must reside on a ZFS dataset. A new boolean share property, dfsroot, will mark a share as a DFS root share to distinguish it from regular shares. The dfsroot property will not be defined by default, which is equivalent to a value of false. The dfsroot property can be managed locally, as a share property, or by Windows clients using Windows utilities to connect to the DFS and SRVSVC MSRPC services, which are available in the CIFS Service (PSARC 2006/715). DFS root shares need to be distinguished from regular shares so that the server can indicate to clients that a particular share is a DFS root share, which is done with a flag on tree connect responses. When connected to a DFS root share, clients use UNC paths to access objects within the namespace rather than relative paths. With regular shares, paths are assumed to be relative to the shared directory. Also, for compatibility with Windows behavior, DFS root shares cannot be removed or unshared remotely over SMB and MSRPC. Local management will be no different from regular shares. Only one standalone DFS namespace is supported per system. Multiple DFS namespace support will be available in a future project based on Active Directory (AD) domain-based DFS namespaces. Once domain-based namespaces are supported, the CIFS Service will also support multiple standalone DFS namespaces - these are tied together by the DFS support level that is announced by a server. DFS links within a namespace are represented using reparse points (PSARC 2009/387). The service type will be smb-dfs and a reparse plugin will be delivered to support this service type. The link target format used to store smb-dfs service type data can be considered opaque, even though it will be visible in the reparse point, since no local tools will be provided to create or manage DFS referrals and they will be interpreted by the dfs-smb reparse point plugin library. DFS referrals will be managed using Windows desktop or command line utilities and the referral content will be driven by the data that needs to be stored on behalf of the management applications. INTERFACE TABLE Imported interfaces |Specified | |in what | Interface Name |Document? |Comments ============================================================ XAT_REPARSE |PSARC 2009/387 |Reparse extensible |Private |attribute | | reparse_kderef |PSARC 2009/387 |Reparse kernel reparse_init | |routines reparse_parse | | reparse_free | | | | /usr/lib/ |PSARC 2009/387 |Reparse library libreparse.so.1 | |routines and ops | | Exported interfaces |Proposed |Specified | |Stability |in what | Interface Name |Classification |Document? | Comments ============================================================================== reparse point syntax |Committed | |Service type "smb-dfs" for DFS referrals |Private | | | | | /usr/lib/reparse/ |Committed | |Reparse point plugin libsmb_dfs.so.1 |Private | | | | | REFERENCES [1] DFS Technical Reference http://technet.microsoft.com/en-us/library/cc757042(WS.10).aspx [2] Distributed File System (DFS): Namespace Management Protocol Specification http://msdn.microsoft.com/en-us/library/cc227078%28PROT.10%29.aspx [3] Distributed File System (DFS): Referral Protocol Specification http://msdn.microsoft.com/en-us/library/cc226982(PROT.10).aspx 4.2. Bug/RFE Number(s): 6711751 4.6. Doc Impact: Solaris CIFS Administration Guide Modifications to sharemgr(1M) man page: ------------------------------------------------------------------- The general properties supported for SMB are: + dfsroot=boolean + + Marks a share as a DFS root share to distinguish it from regular + shares. dfsroot is not defined by default. If dfsroot is false + or not defined, the share is not a dfs root share. 6. Resources and Schedule: 6.4. Product Approval Committee requested information: 6.4.1. Consolidation or Component Name: ON 6.5. ARC review type: FastTrack