1. NFS介绍
在Windows操作系统可以通过设置网上邻居的属性来限制或允许访问共享资源,而在Linux操作系统的NFS(network file system)同样具有此功能。它也可以让用户体验具有网上邻居的共享服务。
NFS是一个基于TCP/IP网络的文件共享协议,让不同计算机的不同操作系统间彼此共享文件。NFS开始是UNIX操作系统间共享文件和操作系统的一种方法,后来被Linux继承。NFS的最大功能是透过网络,让不现机器可以相互共享资源。
2. NFS安装
portmap
该套件借助RPC服务的帮助,负责端口映射使NFS服务的正常运行。
nfs-utils
为NFS的主要套件,提供rpc.nfsd和rpc.mounted这两个守护进程。
rpm -qa|grep nfs-utils
rpm-qa|grep portmap
或者使用 yum
yum list | grep nfs
yum list | grep portmap
在centos 6中,portmap被集成到了rpcind中了。
3.配置NFS服务
创建/etc/exports,这个文件定义了服务器上的某几个部分与网络中的其他计算机共享,以及共享的规则等等。
/tmp 222.27.253.108(ro) localdomain(rw) *(ro,sync)
/home 222.27.253.108(ro) localdomain(rw) *(ro,sync)
#[共享目录] [第一台主机(权限)] [可用主机名] [其它主机(可用通配符)]
ro-只读 read-only
rw-读写 read-write
sync 数据同步写入内存与硬盘中
async 数据先写入内存,而非直接写入硬盘中去
上面的配置中有两个共享目录,分别是 /tmp和/home.
如果只改变了/etc/exports中的内容,无需重启NFS,那么只需要扫行以下指令使之生效.
exportfs -arv
/etc/hosts.allow 与/etc/hosts.deny
指定哪些主机可以使用nfs服务,哪些主机不可以。
基本格式:
程序列表:服务器IP地址
如: portmap 192.168.2.
4.NFS的启动与停止
启动:
service portmap start #( 在centos 6.xxzhong ,portmap 服务不必单独开启,因为它被集成到了rpcind中,自动开启 ??)
service nfs start
停止:
service nfs stop
重新启动:
service nfs restart
查看状态:
service nfs status
service portmap status
5.客户端访问NFS
默认情况下,SELinux的存在会造成客户端访问服务器有问题,为了避免这种情况,得执行一下以下命令:
setsebool -P portmap_disable_trans=1
setsebool -P nfs_export_all_pro=1
(1)Windows下访问NFS:
安装SFU组件,提供了Windows用户与Linux用户之间相互映射。
将 /etc/passwd和/etc/group复制到windows下,在安装的过程中将其路径填入。如 D:/passwd和 D:/group
在cmd中直接输入: //222.27.253.108
就能看到共享的目录了,如/tmp与/home.
(2)Linux下访问NFS
如: 在IP为222.27.253.108的服务器上加载 /exports/rhel目录
(1)创建一个本地目录用来加载NFS服务器上的输出目录
mkdir /mnt/nfs
(2)使用相应的mount来加载服务器目录
mount -t nfs 222.27.253.108/:exports/rhel /mnt/nfs
如果需要umount共享目录则输入:
umount /mnt/nfs
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
1. 准备工作:
用NFS-Client表示Web应用所在的机器,其IP为Client_IP;用NFS-Server表示上传文件所在的机器,其IP为Server_IP。
NFS-Server上,上传文件所在文件夹为/root/uploadfiles/, NFS-Client上指向NFS-Server:/root/uploadfiles的文件夹是/web/app1/uploads。
2. 在NFS-Client和NFS-Server上安装nfs和portmap
一般来说,CentOS安装好之后,就已经安装了nfs和portmap。可以通过CentOS的“软件包管理者”查看一下,如果没有安装,勾选nfs-utils-***, nfs-utils-lib-***, portmap-***这三项,安装。也可以使用下面的命令安装:
# yum install nfs-utils portmap
3. 在NFS-Server上配置NFS服务
1 [NFS-Server]#vim /etc/exports 2 /root/uploadfiles Client_IP(rw,sync, no_root_squash) 3 保存exports文件 4 [NFS-Server]#chkconfig portmap on 5 [NFS-Server]#chkconfig nfs on 6 [NFS-Server]#vim /etc/hosts.deny 7 portmap:ALL 8 保存 9 [NFS-Server]#vim /etc/hosts.allow 10 portmap:Client_IP
上述代码中,rw表示NFS-Client对/root/uploadfiles文件夹只具有读写权限。sync表示要以同步方式将文件传到NFS-Server。no_root_squash表示当NFS-Client是以root用户登录时,在访问/root/uploadfiles时不会变为nobody用户。而后面两句chkconfig是把portmap和nfs两个服务设置为开机自动启动。需要特别注意的是第二行代码中,Client_IP和后面的"("之间不能有空格。
4. 在NFS-Server上为mountd, rquotad, lockd配置固定的端口
因为NFS会为以上三个服务分配临时端口,所以很难在防火墙上控制要开放哪些端口。所以要将几个端口固定住。
1 [NFS-Client]#service portmap start; 2 [NFS-Client]#showmount -e Server_IP 3 会显示NFS-Server是否有共享目录 4 [NFS-Client]#mount -t nfs4 Server_IP:/root/uploadfiles /web/app1/uploads 5 [NFS-Client]#df -H 6 能看到多出一个挂载点,说明成功。
下面就可以在NFS-Client机器上往/web/app1/uploads里操作目录和文件,实际变化的是NFS-Server的/root/uploadfiles。