8 Krypton

Why it is recommeneded to use static IPs for SMB shares?

Jump to solution

What happens if we keep using dynamic IP pool for SMB shares?

Labels (1)
Tags (1)
1 Solution

Accepted Solutions
8 Krypton

Re: Why it is recommeneded to use static IPs for SMB shares?

Jump to solution

If you're using dynamic addresses and the node goes down, the IP address moves.  SMB, however, will be confused, because you've lost the state.

If you're only reading, you're probably OK - the client sees this and will reopen the file.  If you have files open for write, you'll annoy it and will lose your writes - your client will figure out that your server has gone away and will no longer be able to save your file.  If you do this with something like an Access database or Outlook PST open on your share, you'll be very unhappy.  At best, you'll need to restart Outlook.  Worst case, you'll corrupt the PST.

This is the same thing as would happen if you had a traditional Microsoft cluster with a floating IP between 2 nodes.  When you fail over, you'll see a brownout.

9 Replies
8 Krypton

Re: Why it is recommeneded to use static IPs for SMB shares?

Jump to solution

Hello,

SMB uses TCP protocol which does require acknowledgement when a write happens so if you use dynamic Ip pool  so if a node goes down handshake will break. wherein NFS is mostly used for media streaming and broadcast irrespective of data receiving end NFS does not looks for data integrity at the receiver end as SMB does.

More information given in link below.

https://msdn.microsoft.com/en-us/library/windows/desktop/aa365236(v=vs.85).aspx

Server Message Block - Wikipedia, the free encyclopedia

8 Krypton

Re: Why it is recommeneded to use static IPs for SMB shares?

Jump to solution

> NFS does not looks for data integrity at the receiver end as SMB does

Let us hope this is not the case

The NFS server is "stateless" with respect to client connections,

e.g. the client MUST NOT rely on writes unless commits have been acknowledged

by the server, so much is true. And this is on purpose because this

is exactly what enables NFS mounts to fail-over from one server (node here) to another.

SMB maintains complex "state" information per session on the server side,

so in case of disruption and subsequent trial to fail-over to another server (node),

there is no guarantee that the new server/node can continue the session

from the exact point where the first one had left.

So don't fool the client into a non-working failover (same IP, other node),

but let the client re-connect to another  IP address on another node instead.

Makes sense?

-- Peter

8 Krypton

Re: Why it is recommeneded to use static IPs for SMB shares?

Jump to solution

> NFS is mostly used for media streaming and broadcast

It's used for a LOT more than that.  Almost all Linux and other Unixy shared storage uses NFS.  We pound on it a lot - up to 1 Million NFS operations per second on one of my clusters - using only NFS.  We're just starting to get into SMB here.

How does one load balance the workload across the cluster if you're using the static pool?  I've got one client that will need to do a lot of I/O to a set of SMB volumes on the same cluster.  How is this typically handled?

0 Kudos
8 Krypton

Re: Why it is recommeneded to use static IPs for SMB shares?

Jump to solution

If you're using dynamic addresses and the node goes down, the IP address moves.  SMB, however, will be confused, because you've lost the state.

If you're only reading, you're probably OK - the client sees this and will reopen the file.  If you have files open for write, you'll annoy it and will lose your writes - your client will figure out that your server has gone away and will no longer be able to save your file.  If you do this with something like an Access database or Outlook PST open on your share, you'll be very unhappy.  At best, you'll need to restart Outlook.  Worst case, you'll corrupt the PST.

This is the same thing as would happen if you had a traditional Microsoft cluster with a floating IP between 2 nodes.  When you fail over, you'll see a brownout.

8 Krypton

Re: Why it is recommeneded to use static IPs for SMB shares?

Jump to solution

SmartConnect's DNS-based mechanisms like round robin etc

are completely independent of wether an address pool is dynamics or static...

With static address, as there is no fail-over, there is no fail-back either,

and thus you can't re-balance existing connections. But upfront

balancing via DNS is still working.

-- Peter

0 Kudos
8 Krypton

Re: Why it is recommeneded to use static IPs for SMB shares?

Jump to solution

So is a Windows server (2012 in my case) smart enough to know that if I mount \\onefs-static\a and \\onefs-static\b that it won't cache the IP address and make both connections to the same node if the pool is static and with round-robin enabled?

0 Kudos
8 Krypton

Re: Why it is recommeneded to use static IPs for SMB shares?

Jump to solution

The usual Windows 1 second caching issue applies... as it does in case of dynamic pools.

The DNS balancing has nothing to do with the stage where IP addresses

get assigned to physical node:interfaces, i.e during initial assigning and failing over/back.

0 Kudos
8 Krypton

Re: Why it is recommeneded to use static IPs for SMB shares?

Jump to solution

OK, I understand this is the case with dynamic address(IP moves to other nodes ).

How SMB improves the connection with Static IP?

It willl try to connect the same IP for some point of time and again it goes to failure state. It has to connect to SIP again to establish a new session.

What is the advantage on using static here?

The client after a multiple failures contacts DNS for a new IP from the smart connect zone.

Am I correct?

0 Kudos
8 Krypton

Re: Why it is recommeneded to use static IPs for SMB shares?

Jump to solution

one thing that you will hear some people bring up is that in some shops folks like to rebalance dynamic pools from time to time because the workload clients could gang up on an individual node. Well NFS clients handle it pretty well , not so much for SMB. This was another reason why we were encouraged to use static pools for SMB.

Ed,

I have around 5k SMB client connections per cluster, i use connection count based balancing for my static pools. Likewise SMB process used to flake out on us if we had have more than 500 client sessions per node. This was back in 6.5 ..i am hoping it got better in 7.x