服务器集群搭建后,若系统中存在文件的上传功能,那么如何保证上传文件的一致性呢?通常的解决思路有两种:第一种是建立文件服务器,所有的文件上传都到该服务器上;第二种就是做文件共享,每一台服务器的文件都相同。本文以第二种为例,介绍NFS文件共享集群。
NFS介绍
NFS(Network File System)网络文件系统,可以透明的让客户端像读取本地文件一样,读取远程服务器上的文件。同时在上传文件时,向任意一台客户端上传,可以透明的上传到服务器上,从而使链接的每台客户端都可以共享同样的内容。
利用该方式不仅使用透明,而且配置简单,可以方便的实现文件共享集群。
NFS集群搭建实例
环境介绍
Ubuntu 12.04 64位
服务器:172.29.131.126
客户端1:172.29.131.139
客户端2:172.29.131.140
NFS服务器
安装NFS服务器
sudo apt-get install nfs-kernel-server
#或
dpkg -i nfs-kernel-server_1.2.5-3ubuntu3.2_amd64.deb
配置NFS服务器
#配置共享目录
vim /etc/exports
#创建共享目录
mkdir /nfs
#最后面添加一行:
/nfs *(insecure,rw,sync,no_root_squash,no_subtree_check)
/nfs为root目录下新建的一个文件夹,这个文件夹就是nfs服务对外的共享目录,名字可以随便。(必须在Root目录下,不可以用其他用户随便创建)
启动NFS服务器
#启动服务器(关闭好防火墙)
service nfs-kernel-server start|restart|stop
#每修改过/etc/exportfs 后需要执行一次
exportfs -a
NFS客户端
假设客户端tomcat1和tomcat2都会上传文件到/upload目录下(两台服务器各自有该目录),分别执行下面命令:
#安装nfs-utils
apt-get install nfs-common
#设置权限
chmod -R 777 /upload
#挂载目录内容到NFS服务器共享目录下
mount -t nfs 172.29.131.126:/nfs /upload
#查看是否挂载成功
showmount -e 172.29.131.126
若挂在成功,即完成搭建,可以测试向任一台客户端中上传文件,从其他客户端中可以像操作本地文件一样透明的操作该文件。