Subscribe
Accepted Solution

Using Widelinks in a CIFS environment

Has anyone ever setup Widelinks in a CIFS only environment?

We have a FAS 3070 cluster, and I'm trying to re-direct users from a volume on one head to a volume on a different head (or possibly even on the same head).  I was able to do this using NFS, but our NFS license was temporary, so to create any new ones, I need to do it using CIFS only.

I've read through the following documents, but they have been no help:

About Widlinks Entries: http://now.netapp.com/NOW/knowledge/docs/ontap/rel723/html/ontap/filesag/7multi53.htm

Definitive Guide to Setting up Widelinks (that's debatable): https://now.netapp.com/Knowledgebase/solutionarea.asp?id=kb7368

A more detailed explanation of what I'm trying to do:

We have several large file systems, over 2 TB each.  The users need to be able to go to a single directory within an already established DFS root (which I'll call \\Domain.com\DFSRoot) and see each of these file systems as a subdirectory of that single directory.  So, I've created a DFS link within the DFS root... we'll call it TopDirectory that points to a CIFS share/volume on Filer A with the same name.  Using NFS, I had to mount that directory to a Unix machine along with all the volumes I wanted to appear as a subdirectory (I'll call them Volume01 - Volume10, and they each reside on Filer B).  From the Unix machine, I then ran the command ln -s /mnt/Volume01 /mnt/TopDirectory/Volume01 for each of the volumes that I want to appear as subdirectories.  This created a symbolic link for each of the directories within the TopDirectory volume.

Then I had to edit the /etc/symlinks.translations file on Filer A so that the symbolic links would point to a share on Filer B.  So, the entries would look like this:

Widelink /mnt/Volume01/* \\FilerB\Volume01\*



Widelink /mnt/Volume02/* \\FilerB\Volume02*\

Widelink /mnt/Volume03/* \\FilerB\Volume03\*

Widelink /mnt/Volume04/* \\FilerB\Volume04\*

Widelink /mnt/Volume05/* \\FilerB\Volume05\*

Widelink /mnt/Volume06/* \\FilerB\Volume06\*

Widelink /mnt/Volume07/* \\FilerB\Volume07\*

Widelink /mnt/Volume08/* \\FilerB\Volume08\*

Widelink /mnt/Volume09/* \\FilerB\Volume09\*

Widelink /mnt/Volume10/* \\FilerB\Volume10\*

This works as advertised.  When I go through DFS to \\Domain.com\DFSRoot\TopDirectory I see all ten directories and can go into them to see their contents.

My question now is, how can I create the symbolic links if I don't have an NFS license?  I've been told that I can use ln.exe to create them, but I can't get it to work.  The copy of ln.exe that I have was apparently created by NetApp, but their help desk says they do not support it.  Apparently there is a version that came with Windows Resource Kit, but I think it was an older version.  I think it was replaced with linkd.exe, which I've tried, but I can't get that to work either.  I've tested linkd by creating a link on windows server to a different directory, but if I try to use a UNC path, it fails.

Can anyone tell me how to do this, or if it can even be done?

Thanks!

Re: Using Widelinks in a CIFS environment

I got some help from our technical sales on this, so I will answer my own question.

Command Line (using ln.exe):
ln /vol/volume09 \\FilerB\TopDirectory\volume09

Where  /vol/volume09 is the path to the volume on the NetApp, and the second part is the UNC path to the volume/share where you want the symbolic link to be created.  Note:  You must map a drive to the destination of the link (i.e. \\FilerB\TopDirectory) and CD to that drive/directory before running the ln command, so the ln.exe will need to be in your path.  The command will create a symbolic link in "TopDirectory" that redirects to the volume on the NetApp.

Add the following line to the symlink.translations file on the NetApp filer that the symbolic link resides on:
Widelink /vol/volume09/* \\FilerB\volume09\*

Interestingly enough, I was also able to get this to redirect to a share on a different server as well.

ln.exe is part of the Windows Resource Kit, but the version I have specifically references NetApp in the help file, so I think I may have gotten a copy of it from our technical sales rep.  I looked for a copy of it on NOW, but I wasn't able to find it anywhere.

Re: Using Widelinks in a CIFS environment

I recently did a LOT of testing with Widelinks.  The ONLY version of ln.exe that I could get to work at all is the version written by Oliver Krause of NetApp.  The version I have is dated 2002 and I got it from a friend.

Does anyone know if this utility is being maintained by NetApp?  Is Oliver still with the company?

Re: Using Widelinks in a CIFS environment

Oliver's still here.  Here's an SE manager these days.  I'm not sure if he's still maintaining the ln tool. 

I've put one together as well that seems to work well.  It's based on ONTAP APIs and doesn't need to be run from a client with a CIFS connection.

I haven't bundled it in a while, but I can try to get it out...no docs yet.

Re: Using Widelinks in a CIFS environment

When I had this problem originally, I opened up a case with NetApp, and they told me that the tool was not supported.  Then they advised me to post something here to see if anyone could help me.

Looks like I'm running the same version of ln.exe that you are.  If I run the command without any parameters I get this in the output:

ln: tool for listing and creating symbolic links on Netapp filers
         (c) 2002-2003 Network Appliance, Inc. v0.1

Re: Using Widelinks in a CIFS environment

Please do post your script/tool when you get a chance.  I'd love to see it (and I'm sure others would too).

Thanks in advance

Re: Using Widelinks in a CIFS environment

Hi all,

I joined the ln.exe from Olivier Krause we use since 7 years I believe. It works since DOT 6.3 I think. It is not supported by netapp.

I post this ln.exe on now communities some years ago, but netapp change  and my thread disapear.

We use it for 2 ways :

In a common share : to create a tree to allow access to every qtrees created on the volumes of the filers of a site + several widelinks to access other common shared localted on filers of differents sites

In "My shared" to create for every user a tree of qtree where a user have access, (it avoid to show to the user leaves where he have no access), on the filer of his site and on the filer of others site in the world.

We have 80 000 users and 100 filers like this.

The common share is also used to show our users, the same view under unix and under Windows. So the widelink we use have a meaning under unix too.

Using wireshark, you see when the workstation access the widelink, the filer send a DFS referal and then, the workstation access only to the target for the next access.

Microsoft on Windows 7/Windows 2008 provide mklink.exe to create a similar function. But if you made an wireshark trace you see that the workstation always access to the "link" before accessing to the target, so you get two requests instead of two. Even if SMB V2 is less chatty globaly, it's not optimized.

So Widelinks + SMB V2 is the best choice.

In fact, widelinks allow to create a global namespace.

Re: Using Widelinks in a CIFS environment

Ok.  Sorry I took so long, but here's the code.  I did a quick README to help with the syntax.

Feel free to use this thread to ask questions about it.  I think it's pretty straight-forward.

All you need is some admin login credentials on the controller in question.  No NAS protocol access is needed as it uses APIs to create the link.

This is not an official tool, it's as-is, best-effort support by me.

If the overall feedback is good, I'll do what I can to get it posted to the ToolChest on NOW.

-- Adam Fox

Re: Using Widelinks in a CIFS environment

I know this is a very old thread, and I don't mean to use the defibulator... but:

I am attempting to create a symbolic link on the Filer to a file server that is serving CIFS.

I figure, since the volume is formatted with NTFS that I can insert a symbolic link to a UNC destination.

How can I do this?

Thanks,

Matt Brown

[EDIT]

Think I found the answer:

http://www.computeranddata.com/doc/vendors/netapp/6.4.1/ontap/filesag/multi6.htm

You must edit

/etc/symlinks.translations

with an entry as detailed in
http://www.computeranddata.com/doc/vendors/netapp/6.4.1/ontap/filesag/multi10.htm#1047334

Message was edited by: t2mattbrown

Re: Using Widelinks in a CIFS environment

Hi

Add an entry like this template in /etc/symlink.translations

widelink /home/filerA/vol1/* \\FILERA\VOL1\*

Then create a qtree for instance : qtree create /vol/vol1/abc

Then, net use a windows share \\filerA\shared and enter

ln /home/filerA/vol1/abc \\FILERA\shared\abc

When you clic on abc, you go through DFS to \\filerA\vol1\abc