If the last Stratum 1 server dies, will clients automatically start using a Stratum 0 server?


after setting up Stratum 0 server, I want to create a Stratum-1 replica, but from the instructions it is not very clear to me whether the Stratum 0 server will start serving the clients automatically if all Stratum 1 servers go down for some reason?


That setup would be a bit unusual, I think - usually clients are not configured to read from the Stratum 0 directly. You could include it in the list of CVMFS_SERVER_URL, but it won’t be declared as a fallback like this.

We do have the option of using fallback proxies though - maybe you could add one that reads from the Stratum 0? See Client Configuration — CernVM-FS 2.11.2 documentation

We do have the option of using fallback proxies though - maybe you could add one that reads from the Stratum 0?

Proxies are expected to be forward proxies that will accept whichever URL is passed to it by the client, so it wouldn’t be a good idea to configure that proxy to only read from a stratum 0.

Perhaps what I had in mind is actually not the best approach. We are experimenting with CernVM-FS to give access to a curated selection of codes at our institute. Clients will be some workstations and some laptops, but all accessing the internal network, either directly at our premises or if outside, connected to the internal network via VPN. Clients will not be so many, perhaps ~200 machines, and by using large caches I’m hoping to avoid most traffic to the servers.

Nevertheless, to keep the service running in case of a machine going down, I was hoping to have a Stratum-0 and a Stratum-1, hoping one could cover for the other in case of a hardware failure. But since apparently I was mistaken here, and this is not a usual approach, I could have a third machine, so that I could have a Stratum-0 and two Stratum-1 servers.

Since this is only for internal users, I was hoping to avoid proxies and allow direct access to our users to our Stratum-1 servers. Does this sound reasonable? In this case with two Stratum-1 servers, if one dies, the other will continue providing the service transparently for the clients?

Many thanks

Hi Angel,
Using CVMFS within a private network in just one institute is perhaps a somewhat less common use case (compared to large scale geographical distribution) but still perfectly valid and a good approach for distributing software.

In a large scale deployment with multiple stratum 1 servers distributed across a region or the world, the best practice is to prevent clients from directly accessing the stratum 0, to preserve and prioritize the capacity of the s0 for replicating data to the s1 servers instead. In a localized deployment I don’t think the same considerations are quite as applicable. I know of other campus-based deployments that also use the s0 as a s1 and allow direct client access to it; it is pragmatic, simple and efficient for small deployments. As far as clients are concerned there is not really a functional difference between accessing a s0 and s1. With the scale of the deployment you describe, I don’t think there would be a significant risk of client access overwhelming the s0 and interfering with replication to the s1, so in practice I expect it would prove to be okay. Using DNS aliases in client config would allow you to potentially move client access from the s0 to a 2nd s1 that you could deploy later if needed. That being said if the cost of deploying and maintaining another server is low enough, you could just do it and not have to worry.

Proxy servers are an important layer of the hierarchical distribution network for large scale geo distributed deployments, where each site has its own dedicated forward proxies for local low latency caching. But your entire deployment is local, one site with a single flat private network, so proxies don’t make much sense in this context (e.g. it would not be worth the bother to segment the network into even smaller pieces and have a proxy for each team or building). This also just comes down to a scale/load question, for the scale you describe I think this should also prove to be simplest and work fine in practice.

1 Like

Thanks a lot for the reply. In the end I took another server and configured it as Stratum-1, so I now have two Stratum-1’s and one Stratum-0, no proxies, and all seems to be working OK.
I will start using and monitoring this setting and I’m sure I’ll be back with more questions in due time.