当网站存在有大量数据的,会单独把某类数据放在某台(或集群)中来提高系统性能,这个时候就需需要访问到其他机器数据,这个时候可以用NFS,网络共享目录存储。
百科中介绍NFS服务: NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。
配置NFS服务
只要编辑配置文件/etc/exports。
cat /etc/exports /home/ 10.0.2.0/24(rw,sync,all_squash,anonuid=501,anongid=501)分为三部分,第一部分就是本地要共享出去的目录,第二部分为允许访问的主机(可以是一个IP也可以是一个IP段),第三部分就是小括号里面的,为一些权限选项。
rw :读写;
ro :只读;
sync :同步模式,内存中数据时时写入磁盘;
async :不同步,把内存中数据定期写入磁盘中;
no_root_squash :加上这个选项后,root用户就会对共享的目录拥有至高的权限控制,就像是对本机的目录操作一样。不安全,不建议使用;
root_squash :和上面的选项对应,root用户对共享目录的权限不高,只有普通用户的权限,即限制了root;
all_squash :不管使用NFS的用户是谁,他的身份都会被限定成为一个指定的普通用户身份;
anonuid/anongid :要和root_squash 以及 all_squash一同使用,用于指定使用NFS的用户限定后的uid和gid,前提是本机的/etc/passwd中存在这个uid和gid。
使用NFS
启动NFS服务
service portmap start; service nfs startNFS是依托portmap的,所以首先要启动portmap,然后启动NFS才能是刚才的配置生效。
mount -t nfs 10.0.2.69:/home /mnt (client上) showmount -a (nfs服务器上) All mount points on localhost: 10.0.2.69:/homemount 命令为挂载NFS共享目录;showmount -a 命令列出所有的clinet。
使用exportfs命令,当改变/etc/exports配置文件后,不用重启nfs服务直接用这个exportfs即可。
exportfs -arv (nfs服务器上) exporting 10.0.2.0/24:/tmp更改目录后,直接exportfs -arv即可生效。
在上面使用到了mount命令来挂载nfs。首先是用-t nfs 来指定挂载的类型为nfs,另外在使用nfs时,常用一个选项就是nolock了,即在挂载nfs服务时,不加锁。
mount -t nfs -o nolock 10.0.2.69:/tmp /mnt/ showmount -a All mount points on localhost: 10.0.2.69:/home 10.0.2.69:/tmp