Hello,

I currently have 3 droplets, one for Nginx and two for php-fpm and therefore i need the data synced and replicated between them, i tried Glusterfs but it is very slow in our case, any thoughts on how to approach this using Digital Ocean ?

These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.

×
1 answer

Hi @InnoCloud,

There are a couple of things that I could suggest.

  • Lsyncd:

For similar setups, I’ve been using lsyncd and it works pretty well, you can take a look at this tutorial here on how to do that:

https://www.digitalocean.com/community/tutorials/how-to-mirror-local-and-remote-directories-on-a-vps-with-lsyncd

One problem that I’ve had in the past is that if there are too many files to be synced, you might start hitting some Kernel limits which could cause unexpected behavior.

  • NFS:

Another thing you could do is to use NFS and mount a shared directory on your second Droplet:

https://www.digitalocean.com/community/tutorials/how-to-set-up-an-nfs-mount-on-ubuntu-18-04

Hope that this helps!
Regards,
Bobby

by Justin Ellingwood
While administrating web and application servers, there are many times when it is useful to mirror directories. The lsyncd service can mirror local and remote directories in order to propagate changes from one location to another. This guide will cover the basic usage of this tool.
  • I took a look at Lsyncd however it will be difficult to maintain over 3 droplets and we plan to increase them, more nginx and fpm droplets, also NFS will create a bottleneck

    • Hi @InnoCloud,

      Yes, indeed both are valid points.

      What I would usually do is to setup Lsyncd on one server and use it as the manager node, that way I only do file for my core app on the main server then those changes get replicated over to the other servers. Then for other things that should be shared like sessions I would use a caching solution like Redis or Memcached, this allows me to share my sessions between all my webservers.

      Speaking from my personal experience, NFS mainly creates bottlenecks in case of very heavy networking traffic. For most other cases it is quite stable.

      One more thing that I could suggest is voting for this idea here for attaching block storage volumes to multiple Droplets:

      https://ideas.digitalocean.com/ideas/DO-I-739

      Regards,
      Bobby

Submit an Answer