For 6.4+ ONTAP kernels, customers with access to ManageONTAP SDK (latest version) can use the Zephyr APIs for symlink creation. The SDK includes C, PERL and JAVA (no .NET) libraries. Windows clients can programmatically create/read/remove a symlinks on a filer using the following Zephyr APIs respectively:
 
file-create-symlink
file-read-symlink
file-delete-file
 
-----Original Message-----
From: tmac [mailto:tmacmd@gmail.com]
Sent: Monday, June 18, 2007 11:06 AM
To: Stephen C. Losen
Cc: francois.joubert@imagination.com; toasters@mathworks.com
Subject: Re: Symlinks and CIFS, FTP (and NFS)

If you want to use the symlinks.tranlslations file, I am pretty sure you must use absolute paths

On 6/18/07, Stephen C. Losen < scl@sasha.acc.virginia.edu> wrote:

> I would like to manage the symlinks in use for the whole company at a
> certain directory depth on our filers (FAS3050 + OnTap 7.2.2). I would
> like to create the following setup so that users see a single share when
> they browse the filer via CIFS and FTP but give them access to data
> spread over more than 1 aggregate, volume and qtree.
>
> Filer_1
> =======
> Aggregate_1
>       Data_volume_1
>               Qtree_1
>                       All_data (single share visible to company)
>                               Real_dir_1
>                               Symlnk_Real_dir_2
>                               Symlnk_Real_dir_3
>                               Symlnk_Real_dir_4
>
> Aggregate_2
>       Data_volume_2
>               Qtree_2
>                       Real_dir_2
>       Data_volume_3
>               Qtree_3
>                       Real_dir_3
>       Data_volume_4
>               Qtree_4
>                       Real_dir_4
>
>
> I am aware that I need to configure the widelinks option. How do I
> create the symlinks from my admin host (FreeBSD) which mounts all the
> volumes over NFS for data management purposes? I don't want to use a
> Windows machine to create the links. My users are Win2K and MacOSX
> clients and access their data using CIFS and FTP (NFS may be used later).
>
> I have a number of samba servers with this data directory setup as a
> single share visible to users but data spread over a number of disks. I
> use the unix "ln -s" command to create the necessary symlinks on the
> samba servers.
>
> Feel free to point out what may be glaringly obvious.
>

"ln -s" is what you need.  Unlike NFS where the NFS client follows
the symlink, with CIFS on a netapp, the netapp follows the symlink
so the symlink must "make sense" to the netapp.  The CIFS protocol
is not "symlink aware" while NFS is.

In particular, to link to a different volume, you will need to do
something like this:

ln -s /vol/othervol/qtree/folder linkname

This symlink may not work on a NFS client because "/vol" may not
exist on the NFS client.  But the netapp will certainly understand
it.  I have never done this, so I don't know about any issues
regarding access rights.

Within a volume you can try relative paths in your symlink.

ln -s ../../otherqtree/folder linkname

Note that if you ever have multiple filers that you are out of
luck because there is no way to symlink to another filer.  (Yes,
you can do it with NFS because the client can mount both filers
and the client follows the symlink, not the netapp.)

There are data virtualization products out there on the market
(Acopia Networks, for example: http://www.acopia.com ) that sound
kind of like what you want to do, but may be overkill for your
installation.

Steve Losen   scl@virginia.edu     phone: 434-924-0640

University of Virginia               ITC Unix Support





--
--tmac

RedHat Certified Engineer