cancel
Showing results for 
Search instead for 
Did you mean: 

CompositeFileShare subfolders not avail on HA node when created outside of VCS

bjh
Level 2

Windows 2008R2, VCS 6.0.1,

Shared subfolders are not available after switching to a second node when using CompositeFileShare with ShareSubdirectories enabled.  

On the first node, using Windows tools, a new subdirectory share becomes visible and the subdirectory is available.  However, when switching to the second node (hagrp -switch), the subfolder is no longer visible.  These are not hidden shares.  Failed with AccessBasedenumeration 0 or 1.   

5 REPLIES 5

mikebounds
Level 6
Partner Accredited

Can you give extract from main.cf of your CompositeFileShare (in program file\veritas\cluster server\conf\config).  

Also on the second node are some sub folders shared and others not or are all sub folders unshared.

Mike

Wally_Heim
Level 6
Employee

Hi bjh,

The FileShare and CompositeFileShare resources share out subfolders during the online and the monitor cycles.  Newly added subfolders should be shared during the next monitor cycle.  The main problem that I typically see is that customers change the NTFS permissions on the subfolders and the FileShare/CompositeFileShare agents do not have access to the subfolders to be able to see them or share them.  When subfolders are initially added the default permissions would allow the agents to see the subfolders and share them.  But after the NTFS permissions are modified the agents are then not able to see the folders on failover or offline/online any more.

The FileShare and CompositeFileShare agents run with the "System" account.  As such, please check the NTFS permissions on the subfolders to make sure that the "System" account has at least read permissions on the subfolders.

If that is not the case, then check the CompositeFileShare_A.txt log that is located in the %vcs_home%\log folder.  The online and monitor of the CompositeFileShare should report problems in this log.  Hopefully, it will point to where the problem might be.

Thank you,

Wally

 

bjh
Level 2

Take the example "G Drive" below.  The following directories are created.

G:\testA1
G:\testA1\testA2
G:\testA1\testA2\testA3
G:\testB1
G:\testC1

If the NTFS permissions are kept intact, VCS will immediately share on testA1, testB1 and testC1 on the next monitoring cycle.  'testA2' and 'testA3' are not shared.  All directories have full control for the SYSTEM account. This might be key if multiple levels of directories were shared.

If the 'Share and Storage Management' windows tool is used to Provision 'testA2' as a share, it becomes available on the first node.  This is not shared and visible if VCS switches to node 2.  This new share is not created under the lanman server context.

The first level shares are automatically shared as \\prfillab\testA1   while the windows tools create under the local server context \\localserver\testA1\testA2.

Interestingly, I do not see a difference in behavior using CompositeFileShare and simply FileShare resources. Both share out first level directories but no more.

* Can windows tools modify the server path when provisioning and enable VCS capture
* Can VCS share resources share multiple levels of subdirectories
* Both Fileshare and CompositeFileShare appear to have the same share subdirectory behavior, where is the difference

>>>

Partial main.cf (IP resource omitted and dependency links are standard)

CompositeFileShare PR_CFileShare_INFR_FP_VGFILESMTL01-G_Shares (

 

Critical = 0
LanmanResName = PR_Lanman_INFR_FP_FILEMTL01
MountResName = PR_MountV_INFR_FP_VGFILEMTL01-G
UserPermissions = { Everyone = FULL_CONTROL }
HiddenShare = 1
ShareSubdirectories = 1
PathAndShareName = { "\\" = GDRIVE }
AccessBasedEnumeration = 1
)
Lanman PR_Lanman_INFR_FP_FILEMTL01 (
VirtualName = prfillab
IPResName = PR_IP_INFR_FP_FILEMTL01
ADUpdateRequired = 1
ADCriticalForOnline = 1
ADContainer = "CN=VCS-VirtualServers,DC=res,DC=bngf,DC=local"
)

 

MountV PR_MountV_INFR_FP_VGFILEMTL01-G (
Critical = 0
MountPath = "G:"
VolumeName = VGFILEMTL01-G
VMDGResName = PR_VMDG_INFR_FP_VGFILEMTL01
)
VMDg PR_VMDG_INFR_FP_VGFILEMTL01 (
DiskGroupName = VGFILEMTL01
)

mikebounds
Level 6
Partner Accredited

The resource is working as expected - only the first level subfolders are shared.  Where you might use FileShare (non Composite) with ShareSubdirectories is to share something like:

G:\users

So that all users in the directory are shared, but you wouldn't want subdirectories of user directories shared.

Where you would CompositeFileShare with ShareSubdirectories is if you had something like:

G:\users

H:\users

I:\users

So here you can use a single CompositeFileShare resource as you can specify a list of paths in the PathAndShareName attribute, instead of using 3 separate FileShare resources.

So if you want to share all the directories in your example you would need to use:

PathAndShareName = { "\\" = GDRIVE, "\\testA1" = TESTA1, "\\testA1\testA2" = "TESTA2"  }

Then if you create extra folders in G:\, G:\testA1 or "G:\testA1\TestA2, then these would be shared out, but any other folders, like G:\testB1\testB2", would not be shared out and would require you to add to the PathAndShareName attribute list.

Mike

mikebounds
Level 6
Partner Accredited

Just to clarify on your questions:

* Can windows tools modify the server path when provisioning and enable VCS capture
VCS does not capture when you share additional folders using Windows tools - it only shares what is defined in the VCS configuration (main.cf), but if you change the share properties using Windows tools for a share that is defined in VCS, then if "AutoControl" attribute is set to 1 (default) then "the agent synchronizes the changes made to the share properties with those that were defined while configuring the file share service group in the cluster"

* Can VCS share resources share multiple levels of subdirectories
Not automatically - only if you specifiy the subfolders manually in the CompositeFileShare resource like my example in the last post

* Both Fileshare and CompositeFileShare appear to have the same share subdirectory behavior, where is the difference
CompositeFileShare is for sharing multiple different folders in one resource where the folders are not all subdirectories of the same folder

 

Also note that you can use UserPermissions to set permissions, but these will be set the same for all shares in the resource, so quite often the SHARE permissions are set quite open (via VCS resource), so that everyone has access to the share, and then folder permissions are set using Windows tools.

Note, nearly all customers I have come across, think if you need to share first level subdirectories, then you need to use the CompositeFileShare, buy you don't, you can use FileShare for this, but this confusion is mainly due poor documention as the Bundled Agents guide says:

 

The CompositeFileShare agent enables systems to share multiple subfolders for
each of the shared folders. The folders to be shared are stored on shared disks.
Using the CompositeFileShare agent you can also do the following:
 
■ Create hidden shares for shared folders or subfolders.
■ Dynamically share the subfolders created after the resource is brought online.
■ Configure and control existing shares.
 
The CompositeFileShare agent enables sharing folders shared outside VCS.
However, you cannot add special shares (those created by the operating system
for administrative and system use) to the VCS configuration. For example, you
cannot add the shares ADMIN$, print$, IPC$, and DriveLetter$.
 
The agent simplifies the process of configuring multiple file shares. It defines file
shares in an array, thereby eliminating the need to specify dependencies for each
FileShare resource. Each CompositeFileShare resource can be configured for a
maximum of 50 file shares.
 

So this is worded as the main use is for sharing subfolders and it is not until the 4th paragraph that it tells you what is different to FileShare - this should be mentioned first, so the opening paragraph should be something like:

 

The CompositeFileShare agent simplifies the process of configuring multiple file shares. It defines file shares in an array, thereby eliminating the need to specify dependencies for each FileShare resource. Each CompositeFileShare resource can be configured for a
maximum of 50 file shares.

Mike