Discussion:
DFS referral
(too old to reply)
Danny
2005-01-21 22:27:03 UTC
Permalink
I have two Windows 2003 servers with DFS having root targets on both servers.
I have also setup links on both servers to provide fault tolerance. The
data is replicating as expected. We have disabled referral on our "backup"
server since the data can be accessed by multiple people at the same time,
this seemed to be the only way to insure file locks for these files. I
understand that by doing this, if our "primary" server goes down there is no
automatic fault tolerance to switch to the "backup" server. Our intent is to
use this for maintenance - if we need to take down the "primary" server, we
will disable the referrals for it and enable the referrals for the "backup"
server. My questions is, how do I enable/disable referrals if my "primary"
server goes down unexpectedly? The DFS GUI console will not show the root on
the "backup" server when the "primary" server is unavailable. I've reviewed
the command line utility for DFS, but I don't see any switches relating to
referral settings.
Dan Lovinger [MSFT]
2005-01-26 03:31:44 UTC
Permalink
This can't be done automatically. To stay on this track, you will need to
write/extend a monitoring tool and use the NetDfsSetInfo() API

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/netmgmt/netmgmt/netdfssetinfo.asp

level 101 to adjust which target is ONLINE/OFFLINE.

However, this has dramatic downsides. The reason you are doing this is to
keep all write activity, I assume, on one target. If more than one target is
being used, not only do locks not get propagated but you're also subject to
changes on either target overwriting changes on the other - the last update
"wins".

On failover, we assume all clients stop talking to the server that fails -
it explodes, etc.When it returns, clients do not have a similar hard stop
that causes them to all go back to the primary at once. In fact there is no
way to force them back without failing the backup. Marking the link target
offline does not turn off file sharing, it only removes the target from the
list of targets a client machine will get the next time it refreshes its
link target cache.

You can see this cache with "dfsutil /pktinfo".

I would suggest using a cluster for availability in this case.
--
Dan Lovinger
Microsoft Corporation
Please do not send e-mail directly to this alias. This alias is for
newsgroup purposes only.
Post by Danny
I have two Windows 2003 servers with DFS having root targets on both servers.
I have also setup links on both servers to provide fault tolerance. The
data is replicating as expected. We have disabled referral on our "backup"
server since the data can be accessed by multiple people at the same time,
this seemed to be the only way to insure file locks for these files. I
understand that by doing this, if our "primary" server goes down there is no
automatic fault tolerance to switch to the "backup" server. Our intent is to
use this for maintenance - if we need to take down the "primary" server, we
will disable the referrals for it and enable the referrals for the "backup"
server. My questions is, how do I enable/disable referrals if my "primary"
server goes down unexpectedly? The DFS GUI console will not show the root on
the "backup" server when the "primary" server is unavailable. I've reviewed
the command line utility for DFS, but I don't see any switches relating to
referral settings.
Danny
2005-01-26 13:13:02 UTC
Permalink
I understand that the clients would not be able to access the data on the
"backup" if the "primary" failed until the referral switch was changed on the
link(s). I assumed that when the "primary" came back online that we would
enable it's link(s) and disable the link(s) onthe "backup". If I understand
the referrals correctly, the clients could continue to use the "backup"
server until the cache time is reached which is defaulted to 1800 seconds.
Would that be a true statement?
Post by Dan Lovinger [MSFT]
This can't be done automatically. To stay on this track, you will need to
write/extend a monitoring tool and use the NetDfsSetInfo() API
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/netmgmt/netmgmt/netdfssetinfo.asp
level 101 to adjust which target is ONLINE/OFFLINE.
However, this has dramatic downsides. The reason you are doing this is to
keep all write activity, I assume, on one target. If more than one target is
being used, not only do locks not get propagated but you're also subject to
changes on either target overwriting changes on the other - the last update
"wins".
On failover, we assume all clients stop talking to the server that fails -
it explodes, etc.When it returns, clients do not have a similar hard stop
that causes them to all go back to the primary at once. In fact there is no
way to force them back without failing the backup. Marking the link target
offline does not turn off file sharing, it only removes the target from the
list of targets a client machine will get the next time it refreshes its
link target cache.
You can see this cache with "dfsutil /pktinfo".
I would suggest using a cluster for availability in this case.
--
Dan Lovinger
Microsoft Corporation
Please do not send e-mail directly to this alias. This alias is for
newsgroup purposes only.
Post by Danny
I have two Windows 2003 servers with DFS having root targets on both servers.
I have also setup links on both servers to provide fault tolerance. The
data is replicating as expected. We have disabled referral on our "backup"
server since the data can be accessed by multiple people at the same time,
this seemed to be the only way to insure file locks for these files. I
understand that by doing this, if our "primary" server goes down there is no
automatic fault tolerance to switch to the "backup" server. Our intent is to
use this for maintenance - if we need to take down the "primary" server, we
will disable the referrals for it and enable the referrals for the "backup"
server. My questions is, how do I enable/disable referrals if my "primary"
server goes down unexpectedly? The DFS GUI console will not show the root on
the "backup" server when the "primary" server is unavailable. I've reviewed
the command line utility for DFS, but I don't see any switches relating to
referral settings.
Dan Lovinger [MSFT]
2005-01-26 22:58:37 UTC
Permalink
That is true. However, the clients will be moving back to the primary over
that 1800 seconds, not all at once. If multiple clients are writing data,
they'll be writing into both sides of the replica during that interval.

This could work depending on the specifics of your configuration. If only
one client is writing, there would only be the skew between

1) the instant it moves from the backup to the primary
2) replication catches up and the last update it made on the backup appears
on the primary

But that is still skew. If it takes 30 seconds for FRS to move the file from
backup to primary, the client may have already been writing to the stale
copy on the primary. All of the updates on the backup are lost since the
primary now has "newer" content.

This is the major reason why DFS sticks to a specific replica target, and
does not move between them unless one is no longer available (removed from
the target list, is unreachable, and so forth).
--
Dan Lovinger
Microsoft Corporation
Please do not send e-mail directly to this alias. This alias is for
newsgroup purposes only.
Post by Danny
I understand that the clients would not be able to access the data on the
"backup" if the "primary" failed until the referral switch was changed on the
link(s). I assumed that when the "primary" came back online that we would
enable it's link(s) and disable the link(s) onthe "backup". If I understand
the referrals correctly, the clients could continue to use the "backup"
server until the cache time is reached which is defaulted to 1800 seconds.
Would that be a true statement?
Post by Dan Lovinger [MSFT]
This can't be done automatically. To stay on this track, you will need to
write/extend a monitoring tool and use the NetDfsSetInfo() API
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/netmgmt/netmgmt/netdfssetinfo.asp
level 101 to adjust which target is ONLINE/OFFLINE.
However, this has dramatic downsides. The reason you are doing this is to
keep all write activity, I assume, on one target. If more than one target is
being used, not only do locks not get propagated but you're also subject to
changes on either target overwriting changes on the other - the last update
"wins".
On failover, we assume all clients stop talking to the server that fails -
it explodes, etc.When it returns, clients do not have a similar hard stop
that causes them to all go back to the primary at once. In fact there is no
way to force them back without failing the backup. Marking the link target
offline does not turn off file sharing, it only removes the target from the
list of targets a client machine will get the next time it refreshes its
link target cache.
You can see this cache with "dfsutil /pktinfo".
I would suggest using a cluster for availability in this case.
--
Dan Lovinger
Microsoft Corporation
Please do not send e-mail directly to this alias. This alias is for
newsgroup purposes only.
Post by Danny
I have two Windows 2003 servers with DFS having root targets on both servers.
I have also setup links on both servers to provide fault tolerance.
The
data is replicating as expected. We have disabled referral on our "backup"
server since the data can be accessed by multiple people at the same time,
this seemed to be the only way to insure file locks for these files. I
understand that by doing this, if our "primary" server goes down there
is
no
automatic fault tolerance to switch to the "backup" server. Our intent
is
to
use this for maintenance - if we need to take down the "primary"
server,
we
will disable the referrals for it and enable the referrals for the "backup"
server. My questions is, how do I enable/disable referrals if my "primary"
server goes down unexpectedly? The DFS GUI console will not show the
root
on
the "backup" server when the "primary" server is unavailable. I've reviewed
the command line utility for DFS, but I don't see any switches relating to
referral settings.
Danny
2005-01-27 14:25:05 UTC
Permalink
Thanks for your help, that answers my questions. We will probably not use
multiple targeted links on our DFS where file locking is important to us.
Post by Dan Lovinger [MSFT]
That is true. However, the clients will be moving back to the primary over
that 1800 seconds, not all at once. If multiple clients are writing data,
they'll be writing into both sides of the replica during that interval.
This could work depending on the specifics of your configuration. If only
one client is writing, there would only be the skew between
1) the instant it moves from the backup to the primary
2) replication catches up and the last update it made on the backup appears
on the primary
But that is still skew. If it takes 30 seconds for FRS to move the file from
backup to primary, the client may have already been writing to the stale
copy on the primary. All of the updates on the backup are lost since the
primary now has "newer" content.
This is the major reason why DFS sticks to a specific replica target, and
does not move between them unless one is no longer available (removed from
the target list, is unreachable, and so forth).
--
Dan Lovinger
Microsoft Corporation
Please do not send e-mail directly to this alias. This alias is for
newsgroup purposes only.
Post by Danny
I understand that the clients would not be able to access the data on the
"backup" if the "primary" failed until the referral switch was changed on the
link(s). I assumed that when the "primary" came back online that we would
enable it's link(s) and disable the link(s) onthe "backup". If I understand
the referrals correctly, the clients could continue to use the "backup"
server until the cache time is reached which is defaulted to 1800 seconds.
Would that be a true statement?
Post by Dan Lovinger [MSFT]
This can't be done automatically. To stay on this track, you will need to
write/extend a monitoring tool and use the NetDfsSetInfo() API
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/netmgmt/netmgmt/netdfssetinfo.asp
level 101 to adjust which target is ONLINE/OFFLINE.
However, this has dramatic downsides. The reason you are doing this is to
keep all write activity, I assume, on one target. If more than one target is
being used, not only do locks not get propagated but you're also subject to
changes on either target overwriting changes on the other - the last update
"wins".
On failover, we assume all clients stop talking to the server that fails -
it explodes, etc.When it returns, clients do not have a similar hard stop
that causes them to all go back to the primary at once. In fact there is no
way to force them back without failing the backup. Marking the link target
offline does not turn off file sharing, it only removes the target from the
list of targets a client machine will get the next time it refreshes its
link target cache.
You can see this cache with "dfsutil /pktinfo".
I would suggest using a cluster for availability in this case.
--
Dan Lovinger
Microsoft Corporation
Please do not send e-mail directly to this alias. This alias is for
newsgroup purposes only.
Post by Danny
I have two Windows 2003 servers with DFS having root targets on both servers.
I have also setup links on both servers to provide fault tolerance.
The
data is replicating as expected. We have disabled referral on our "backup"
server since the data can be accessed by multiple people at the same time,
this seemed to be the only way to insure file locks for these files. I
understand that by doing this, if our "primary" server goes down there
is
no
automatic fault tolerance to switch to the "backup" server. Our intent
is
to
use this for maintenance - if we need to take down the "primary"
server,
we
will disable the referrals for it and enable the referrals for the "backup"
server. My questions is, how do I enable/disable referrals if my "primary"
server goes down unexpectedly? The DFS GUI console will not show the
root
on
the "backup" server when the "primary" server is unavailable. I've reviewed
the command line utility for DFS, but I don't see any switches relating to
referral settings.
Louis Elias
2005-02-02 21:47:04 UTC
Permalink
Danny,

We make a product called StorageX that automatically monitors and fails dfs
links to alternate targets. It can also help you with data
migrations/consolidations and makes building and managing the namespace very
simple. If you think it may help you check it out at http://www.nuview.com.

Louis
Post by Danny
I have two Windows 2003 servers with DFS having root targets on both servers.
I have also setup links on both servers to provide fault tolerance. The
data is replicating as expected. We have disabled referral on our "backup"
server since the data can be accessed by multiple people at the same time,
this seemed to be the only way to insure file locks for these files. I
understand that by doing this, if our "primary" server goes down there is no
automatic fault tolerance to switch to the "backup" server. Our intent is to
use this for maintenance - if we need to take down the "primary" server, we
will disable the referrals for it and enable the referrals for the "backup"
server. My questions is, how do I enable/disable referrals if my "primary"
server goes down unexpectedly? The DFS GUI console will not show the root on
the "backup" server when the "primary" server is unavailable. I've reviewed
the command line utility for DFS, but I don't see any switches relating to
referral settings.
Continue reading on narkive:
Loading...