i read the info in the SAG and don't get the implication.
when i set up the symlink for the cifs.home_dir option and did a cd to the symlink i ended up in the correct place and the net use * \filer\uid worked okay.
should i be doing something with the symlink.translations file?
thanks.
i read the info in the SAG and don't get the implication.
when i set up the symlink for the cifs.home_dir option and did a cd to the symlink i ended up in the correct place and the net use * \filer\uid worked okay.
should i be doing something with the symlink.translations file?
thanks.
No you don't need to do anything with symlink.translations.
Symlinks on unix can be pretty confusing. Symlinks on a filer are even worse.
Filers must support symlinks because NFS supports symlinks. When a NFS client accesses a symlink, the NFS server passes the symlink to the client and the client follows it. And of course, NFS clients can create symlinks.
CIFS has no concept of symlinks. If a CIFS client accesses a symlink, the filer cannot pass the symlink to the CIFS client. Instead the filer must follow the symlink on behalf of the client. This is the situation where the symlink.translations file is used. From what I can tell, this file is intended to be used on mixed NFS and CIFS installations. Often symlinks only "make sense" to NFS clients. But admins want these symlinks to also "work" with CIFS. So the symlink.translations file gives the filer the hints that it needs to follow symlinks on behalf of CIFS clients.
Finally, the filer itself follows symlinks when filer configuration parameters refer to symlinks. The symlink.translations file is not consulted in these situations. The symlinks must "make sense" to the filer or they fail. Symlinks in the cifs.home_dir directory fall into this category.
Steve Losen scl@virginia.edu phone: 434-924-0640
University of Virginia ITC Unix Support
what happens when we copy our data with symlinks over to the filer and then convert to cifs? run for the hills?
Steve Losen wrote:
i read the info in the SAG and don't get the implication.
when i set up the symlink for the cifs.home_dir option and did a cd to the symlink i ended up in the correct place and the net use * \filer\uid worked okay.
should i be doing something with the symlink.translations file?
thanks.
No you don't need to do anything with symlink.translations.
Symlinks on unix can be pretty confusing. Symlinks on a filer are even worse.
Filers must support symlinks because NFS supports symlinks. When a NFS client accesses a symlink, the NFS server passes the symlink to the client and the client follows it. And of course, NFS clients can create symlinks.
CIFS has no concept of symlinks. If a CIFS client accesses a symlink, the filer cannot pass the symlink to the CIFS client. Instead the filer must follow the symlink on behalf of the client. This is the situation where the symlink.translations file is used. From what I can tell, this file is intended to be used on mixed NFS and CIFS installations. Often symlinks only "make sense" to NFS clients. But admins want these symlinks to also "work" with CIFS. So the symlink.translations file gives the filer the hints that it needs to follow symlinks on behalf of CIFS clients.
Finally, the filer itself follows symlinks when filer configuration parameters refer to symlinks. The symlink.translations file is not consulted in these situations. The symlinks must "make sense" to the filer or they fail. Symlinks in the cifs.home_dir directory fall into this category.
Steve Losen scl@virginia.edu phone: 434-924-0640
University of Virginia ITC Unix Support
what happens when we copy our data with symlinks over to the filer and then convert to cifs? run for the hills?
You could run into some problems. With NFS, the client follows the symlink. This means that a symlink in one volume can refer to an object in another volume. So long as both volumes are mounted on the NFS client, the client can follow the link. Symbolic links can even cross filers. A symbolic link on one filer can refer to an object on another filer. If the NFS client has both volumes mounted, it can follow the link. For example, suppose you have this:
filer1:/vol/vol0/qtree1 mounted on /web
filer2:/vol/vol2/qtree2 mounted on /research
The NFS client can follow this symlink just fine:
/research/project1/webpage -> /web/doc/project1
CIFS has no concept of symlinks. To use them at all you need these options.
options cifs.symlinks.enable on (necessary) options cifs.symlinks.cycleguard on (recommended)
Then the filer will attempt to follow symlinks on behalf of CIFS clients. The filer is rather picky about which symlinks it will follow. First of all, the filer will not follow an "absolute path" symlink unless you have a symlink.translations file. An absolute path starts with / like this:
link -> /dir1/dir2/whatever
Absolute path symlinks are ignored unless you have a symlink.translations file.
The symlink.translations file does not apply to relative path symlinks such as these:
file1 -> file2
link1 -> dir/whatever
link2 -> ../dir/whatever
The filer will attempt to follow these.
The filer will not follow a symlink on behalf of a CIFS client if the symlink and the object it refers to are not in the same share. It does not matter if the symlink is relative or absolute. It must refer to an object in the same share as the symlink itself. By "same share" I mean the share that the CIFS client has attached to. If a user attaches to his private share using the cifs.home_dir option, then only his home directory is in this share. Any symlink under his home directory that refers to an object outside his home directory will not work. He needs to attach to a share that encompasses both his home directory and the object the symlink refers to, which may not be possible.
It may be very difficult to get symlinks that work with NFS to work with CIFS. A filer will not follow a symlink across volumes and a filer most certainly cannot follow a symlink to another filer! You might need to look into using Windows "short cuts".
To get symlinks to work with CIFS,
1) be sure each symlink refers to an object in the same share as the symlink itself.
2) use relative paths in the symlinks as much as possible.
3) If you must use an absolute path, then you must have a symlink.translations file.
These rules only apply when a filer is following a symlink on behalf of a CIFS client.
When a filer configuration parameter refers to a symlink, the filer always follows the symlink, does not use the symlink.translations file, and the symlink must "make sense" to the filer.
Steve Losen scl@virginia.edu phone: 434-924-0640
University of Virginia ITC Unix Support