How can I share data between multiple Linodes simultaneously?
I can't attach a Block Storage volume to multiple Linodes. How may I share data between several Linodes at once?
3 Replies
There are a number of options to overcome Block Storage's limitation of attaching to a single Linode at a time.
Detaching and attaching between Linodes
The most basic way of sharing data between Linodes through Block Storage volumes is by detaching the Block Storage volume from your Linode, then attaching that volume to another Linode.
While this method works entirely with Block Storage's inherent capabilities, it does not permit simultaneous access of its data by multiple Linodes. The other options on this page do permit such an arrangement.
Set up a Linode as a Block Storage volume server
For sharing the contents of a Block Storage volume amongst multiple Linodes, one option worth considering would be to set up a new Linode as a file server by attaching a Block Storage volume of your desired size to this Linode on a long-term basis. Afterwards, you may define private IP addresses for this Linode and all other Linodes in the same data center which you anticipate will be utilizing this volume. You may then create SSH keypairs between these Linodes and the Linode which has the Block Storage volume attached to it and use a utility like rsync to securely transfer data between these Linodes.
Alternatively, you may want to install NFS on the file server Linode, then set up NFS shares between each of these Linodes. While NFSv3 does not offer any encryption or authentication measures, NFSv4 does offer these options if you are able and willing to set up Kerberos authentication between these Linodes or have an existing Kerberos deployment which can accommodate this deployment.
Object Storage
You may also want to consider Object Storage and allow your Linodes to share data with each other through a common bucket. You may then implement access security through Access Control Lists (ACLs) and Bucket Policies. This option would not require the use of any Block Storage volumes.
As of this writing, Object Storage is currently only available in our Newark, New Jersey data center. Should your Linode reside in other data centers, you may find that this option introduces too much latency for your needs. Nonetheless, it is an affordable and reliable option which can fulfill a wide range of use cases, so I'd definitely say it is worth considering even with this limitation. There is more information available about Object Storage from our Documentation category on this subject.
Final thoughts
Although Block Storage volumes may inherently only be attached to a single Linode at a time, there are creative ways to circumvent this limitation. This answer has just two suggestions for doing so, so please feel free to add any other suggestions you may have for sharing data between Linodes to this question!
Ever hear of NFS? It's been part of Linux since, oh, I dunno, forever…at least since kernel version 2.6. I can share my Linode's storage volumes with my Mac using NFS (although the performance of such an arrangement sucks because of distances). NFS performance among Linodes in the same subnet in the same datacenter should be pretty (damn) good.
If you're talking about databases, you can do this easily with mysql or postgres or firebird…it's what they were all designed to do.
-- sw