1.要解决的问题
当多个服务器使用NFS来共享文件时,如果共享文件的服务器数量增加并且访问频率过高,NFS部分的性能损失将会变得非常严重。
2.云模式的说明
这个模式能提高引用性能,尤其是针对存储共享文件的NFS性能的下降。为每一个服务器单独准备一个虚拟磁盘,然后拷贝NFS服务器上的共享文件。这就让每一个服务器都能使用一个虚拟磁盘作为NFS副本来进行引用。
3.实施
将NFS服务器的文件拷贝至EBS,即每一个EC2实例的虚拟磁盘。每一个EC2实例可以读取对应的EBS文件,从而提高了对NFS服务器的访问性能。
在一个EC2实例上构建NFS服务器,再将共享文件放在上面。
先创建一个EC2实例(web服务器)用于自动扩展。当它被启动后,连接至NFS服务器,然后将NFS服务器上的内容拷贝至它的EBS上。
设置EBS作为每一个EC2实例上的应用程序的引用目标。
4.配置
5.好处
当NFS服务器上的共享文件被更新时,这个文件会被之后启动的EC2实例使用。
因为共享文件存放于每个EC2实例的EBS上,所以不需要访问NFS服务器,因此访问性能将不再是问题。
即使NFS服务器宕机了,但保存在每个EBS上的内容仍然存在,所以NFS服务器不再是单一故障点。
6.注意事项
当更新共享文件时,仅仅在NFS服务器上更新的文件不会被反映到每一个EC2实例上。你必须使用rsync等来执行同步。
7.其他
你可以使用EC2实例上的本地磁盘来提高性能并降低成本,即实例存储(临时磁盘), 而不是使用EBS来作为本地磁盘。