CDP:NFS Sharing Pattern
Using Shared Content
Problem to Be Solved
Content synchronization is necessary when distributing loads over multiple servers. While periodic one-way synchronization from master servers to slave servers is easy, there is a problem of a time delay when using periodic synchronization. Moreover, if a record or file is written in the slave server, there is still the problem of how to reflect the changes to the master server and the other servers.
Explanation of the Cloud Solution/Pattern
This pattern lets you write identical content between multiple servers in real-time. The master virtual server that stores the shared content is defined as the Network File System (NFS) server, and the slave server is defined as an NFS client. This lets you update the content from any server, enabling sharing in real-time.
- Build an NFS server on an EC2 instance.
- Place the content to be shared on the NFS server.
- Have the scale-out servers reference the content on the NFS server.
- Placing the shared content on the NFS server enables real-time synchronization.
- Content can be shared by merely mounting the NFS server, simplifying setup.
- The synchronization of disks as explained in the Clone Server Pattern can coexist with NFS. Content that is updated frequently should be shared through NFS.
- The NFS server requires administration.
- You have to take into consideration the NFS access performance when the number of EC2 instances is large.
- To prevent the NFS server from becoming a SPOF, think about solutions such as GlusterFS.
See the NFS Replica Pattern.