简介:
unix/linux系统一种远程文件目录共享的服务,可以把某一个远程的文件目录共享到本地,进而像操作本地文件一样,操作这个远程的目录。
例如:a主机作为服务端,共享出来test1这个目录,b主机作为客户端,b以其test2目录挂载a主机的test1目录,那么这个时候查看b主机的test2中的内容则会与a主机的test1中一样,对b主机test2目录的操作就是在操作a主机的test1目录(增删改查,当然要设置足够的权限)。
注:我配置的时候,因为只有一台linux主机,所以这里服务端和客户端都在一台机器上,读者可不必注意。
【服务端】
---------------------------------------------------
一、NFS服务器的安装
检查linux系统中是否安装了nfs-utils和portmap两个软件包(RHEL4系统默认已经安装了这两个软件包)。
以root方式登入linux系统,执行命令查看是否安装nfs服务的命令
命令:
-----------------------------------------
# rpm -q portmap
# rpm -qa | grep nfs
如果显示安装则会显示版本信息
-----------------------------------------
二、启动服务
如果服务器没有启动,则开启服务(默认服务下nfs没有完全开启)
注意:启动时,portmap一定要先启动,关闭时,portmap一定要后关闭
启动命令:
-----------------------------------------
# service portmap start //restart 重启
# service nfs start
//restart 重启
-----------------------------------------
--如果启动完成会显示ok
三、检查RPC程序是否启动
由于NFS是通过RPC(远程过程调用)协议来使用远程计算机上的文件,因此系统中的RPC服务必须启动。
命令:
-----------------------------------------
# rpcinfo | more
# rpcinfo -p | more
-----------------------------------------
--如果成功可以看到
--proto port
--tcp 111
--udp 111
四、设置要共享的目录
(1),准备好要共享的目录,比如服务端想要共享出文件系统下/java/tomcat1目录。
在文件系统下新建/java/tomcat1目录
命令:
-----------------------------------------
# mkdir /java
# mkdir /java/tomcat1
然后在tomcat1中新建2文件夹,便于等会配置成功后观察效果(也可以直接手动)。
# mkdir /java/tomcat1/t1
# mkdir /java/tomcat1/t2
# mkdir /java/tomcat1/t3
-----------------------------------------
--这样就可以看到在/java/tomcat1目录下有3个文件夹
(2),设置要共享出去的目录
找到文件系统下/etc/exports文件,打开编辑添加如下内容,格式如下:
-----------------------------------------------------------
/java/tomcat1 192.168.56.101(rw,sync,no_root_squash)
-----------------------------------------------------------
--这里代表的含义:192.168.56.101这台主机可以以这样的权限(rw,sync,no_root_squash)来访问我本台机器的/java/tomcat1这个目录
--然后保存退出。
--这里的ip:192.168.56.101是我虚拟机中linux系统的ip,可以在linux命令行通过ifconfig查看此ip
参数配置解释:
/java/tomcat1 --要共享出去的目录名
可访问的主机地址 --192.168.56.101
exports文件中“客户端主机地址”字段可以使用多种形式表示主机地址
192.168.152.13 指定IP地址的主机
nfsclient.test.com 指定域名的主机
192.168.1.0/24 指定网段中的所有主机
*.test.com 指定域下的所有主机
* 所有主机
(rw,sync,no_root_squash) --访问的权限
rw:读/写权限,与ro不能共同使用
ro:只读权限,与rw不能共同使用
sync:数据同步写入内存和硬盘,这样不会轻易丢失数据,建议所有的NFS共享目录都使用该选项 。
也可以使用async,此时数据会先暂存于内存中,而不立即写入硬盘。
no_root_squash:NFS 服务器共享目录用户的属性,如果用户是 root,那么对于这个共享目录来说就具有 root 的权限。
(3)、重新输出共享目录格式
修改了配置文件/etc/exports需要重新输出共享目录格式(或者手动重启服务)
重新输出共享目录格式命令:
--------------------------------
exportfs -rv
--------------------------------
--执行之后可以看到从新输出的信息
(4),显示主机中共享出去的输出目录列表
命令:
--------------------------------
# showmount -e (nfs服务器ip地址)
--------------------------------
--如果不写ip则默认显示当前主机中输出目录列表。
--我这里直接写的我的地址192.168.56.101,也可以不写。
--执行这个命令可以看到输入的目录中有/java/tomcat1,并且有相应的访问权限信息。
【客户端】
---------------------------------------------------
五、挂载nfs
这里也相当于就是把之前设置出来的共享目录,挂载某一台主机上去。
一般来说是在客户端的机器上操作,我这里只有一台linux,所以就直接在这里操作,可以达到同样的目的。
(1),创建挂载点
命令:
---------------------------------
# mkdir /java/tomcat2
---------------------------------
--这个的意思是,要把远程的地址挂载到本地哪一个目录上,我这里直接新建一个目录来作为挂载点。
(2)、执行挂载命令:
--------------------------------------------
# mount 192.168.56.101:/java/tomcat1 /java/tomcat2
--------------------------------------------
--格式:mount nfs服务器地址:/共享目录 /挂载点
--执行成功无显示信息
(3),查看nfs挂载的共享目录
命令:
----------------------------------------
# df -h
----------------------------------------
--通过查看命令可以看到挂载了哪些远程地址的共享目录,分别挂载到了那个挂载点上。
--如果有看到192.168.56.101下面的/java/tomcat1被挂载到本机的/java/tomcat2上证明成功了。
(4)、查看挂载目录下的信息是否与远程目录一致
命令
----------------------------------------
# ls /java/tomcat2
----------------------------------------
--如果显示出目录下有t1,t2,t3三个文件夹则是正确的。注:t1,t2,t3为共享目录/java/tomcat1中的内容,这里显示则证明共享成功了。
--还可以在tomcat1或者tomcat2中删除某个文件夹,看对方文件夹是否有变化,来证明挂载正确。
(5),卸载挂载点
命令:
----------------------------------------
# umount /java/tomcat2
----------------------------------------
--通过这个命令可取消/java/tomcat2这个挂载点,执行命令后从新查看/java/tomcat2中的内容发现,没有了t1,t2,t3等内容了。
--注意,卸载的时候【盘符】一定不能再当前目录进行卸载,也就是说你不能在/java/tomcat2目录中对/java/tomcat2进行卸载,一定要退出去。
六、设置开机自动挂载NFS共享
写入/etc/fstab配置文件
格式:
NFS共享地址:/共享目录 本机挂载点 文件系统 权限 是否检测 检测顺序
示例:
192.168.56.101:/java/tomcat1 /java/tomcat2 nfs rw 0 0
参考资料:http://hi.baidu.com/guoqs/item/8057c927e5800e889c63d1bc
linux配置nfs服务