最近实验室新配置的两台戴尔的服务器,用于数据计算,两台都是安装CentOS 最近版本,想让两台服务器连起来,开始想用rsh的,配置半天没成功,就用的ssh链接。没配置nfs服务器时,两台服务器之间的数据传输都是用的scp,麻烦,并且有的数据都要弄两份来分开并行计算,很不方便。如今配置好了nfs服务器后,就行了,目录能够共享了,不用把数据倒来倒去了。讲讲怎么配置吧,听纠结的,半天才配置成功。php
硬件:两台戴尔服务器+两根网线html
环境:两台服务器都是CentOS最新系统centos
参数:第一台服务器计算机名为cpst01 ,第二台为cpst02。安全
1.cpst01 外网ip为*.*.*.*(这个最好能连上互联网,由于若是你没有安装盘里的一些rpm吧,那里能够用wget从网上下载,也能够yum search,这须要一根网线接到外面),内网IP为192.168.1.10(ip设置这里就不讲了,本身搜搜,注意是哪一个网卡)服务器
em2 Link encap:Ethernet HWaddr D4:AE:52:91:F8:11 app
inet addr:192.168.1.10 Bcast:192.168.1.255 Mask:255.255.255.0ssh
inet6 addr: fe80::d6ae:52ff:fe91:f811/64 Scope:Linkasync
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1tcp
RX packets:7281946 errors:0 dropped:0 overruns:0 frame:0测试
TX packets:10709199 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:7212522964 (6.7 GiB) TX bytes:14043999341 (13.0 GiB)
Interrupt:17
我这个是在2号网卡(1号网卡连外网,服务器的网线插口上有编号1或者2)
cpst02 不用连外网了,设置个内网IP 192.168.1.20,以下:
em2 Link encap:Ethernet HWaddr D4:AE:52:91:F6:DC
inet addr:192.168.1.20 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::d6ae:52ff:fe91:f6dc/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:10709309 errors:0 dropped:0 overruns:0 frame:0
TX packets:7282075 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:14044008517 (13.0 GiB) TX bytes:7212663244 (6.7 GiB)
Interrupt:17
这里也是2号网卡。
这时用剩下的一根网线将cpst01,cpst02的2 号网卡链接起来,这时应该ping的通。
2.这里我将cpst01做为nfs服务器端,cpst02最为客户端。(nfs服务器端须要安装nfs,portmap,rpcbind)
首先检查服务器端是否已经安装上述三个rpm
[root@cpst01 test]# rpm -qa | grep nfs
nfs-utils-lib-1.1.5-4.el6.x86_64
nfs4-acl-tools-0.3.3-5.el6.x86_64
nfs-utils-1.2.3-15.el6.x86_64
[root@cpst01 test]# rpm -qa | grep portmap
portmap-4.0-65.2.2.1.x86_64
[root@cpst01 test]# rpm -qa | grep rpcbind
rpcbind-0.2.0-8.el6.x86_64
[root@cpst01 test]#
若是没有的话,能够在安装盘里找,再不行就去网上搜 yum search
这里有个rpm的官网,上面有好多东西能够去看看:
portmap 下载地址 http://rpm.pbone.net/index.php3/stat/4/idpl/17838805/dir/centos_5/com/portmap-4.0-65.2.2.1.x86_64.rpm.html
nfs和rpcbind通常是安装系统的时候能够一块儿安装的,没有的话就去搜搜 yum search nfs 也行,
这里在安装portmap时有点纠结(它须要libwrapper.so.0这个库文件,tcp_wrappers-7.6-57.el6.x86_64.rpm 这个包里面有,能够先安装它,再安装portmap)。
3.安装完上述包后,能够进行下测试,就是启动和中止上述几个服务,网上说的是启动时是安装rpcbind,portmap,nfs的顺序启动,中止时反着来,启动(service rpcbind start ,service portmap start,service nfs start ,/etc/init.d/nfs start也行),启动后查看服务运行状态,service nfs status, 结果就portmap有问题,查了下网上说,新版本的 portmap 使用 hosts.deny 和 hosts.allow 文件来控制访问源(http://www.centos.bz/2012/02/centos-install-deploy-nfs-file-system/) ,这里修改下/etc/hosts.deny 添加一行portmap:all,同时修改下/etc/hosts.allow 添加一行portmap:192.168.1.20 ,这里有人会问不是已经deny all 了吗,后面的allow不是不行吗, allow的优先级高些,先看它。弄好了后,能够把上面的三个服务停下,再启动,查看,应该没问题。
4.这里开始设置cpst01下面的共享目录,我设置的是/test目录 在起下面建立了用户rg,用户组soft,nfs服务器共享目录的关键就是/etc/exports文件。
vi下,添加/test 192.168.1.20(rw)
这里我只设置了read 和write权限,意思就是192.168.1.20也就是cpst02 在/test目录下有读和写的权限,固然还有其余不少权限
----------------------------------------------------------
w:read-write,可读写;
ro:read-only,只读;
sync:文件同时写入硬盘和内存;
async:文件暂存于内存,而不是直接写入内存;
no_root_squash:NFS客户端链接服务端时若是使用的是root的话,那么对服务端分享的目录来讲,也拥有root权限。显然开启这项是不安全的。
root_squash:NFS客户端链接服务端时若是使用的是root的话,那么对服务端分享的目录来讲,拥有匿名用户权限,一般他将使用nobody或nfsnobody身份;
all_squash:不论NFS客户端链接服务端时使用什么用户,对服务端分享的目录来讲都是拥有匿名用户权限;
anonuid:匿名用户的UID值,一般是nobody或nfsnobody,能够在此处自行设定;
anongid:匿名用户的GID值。
---------------------------------------------------------------------
有的搞不懂,就没弄了(http://www.centos.bz/2012/02/centos-install-deploy-nfs-file-system/)
若是上一步的三个服务你尚未stop,那这里就要用exportfs -rv来将设置的共享信息从新输出下,若是是vi 了/etc/exports后再来启动服务的话就不用了,和source export差很少。
5.这时在客户端,能够查看服务器端挂载状况,
使用showmount -e 192.168.1.10
Export list for 192.168.1.10:
/test 192.168.1.20
即为/etc/exports下设置的,这就证实与nfs服务器连通了,
可是如今还不能共享cpst01下面的/test目录,由于你没有将/test目录挂载在客户端的目录上。
这里我在cpst02建立了用户rg(网上说要与服务器端/test目录拥有一样的用户与用户组),不必定要挂载在cpst02的/test目录下,其余目录也行,这里能够在cpst02使用chown -R rg:soft /test 修改权限。
如今就是挂载了:
mount -t nfs 192.168.1.10:/test /test
很快就挂载上了就是成功了,若是错误了,就好像是防火墙的问题,在服务器端service iptables stop,再在客户端执行mount就行,
这时cpst01 下的/test就挂载在cpst02 的/test下了,能够共享目录了。
6.若是想在cpst02 开机时就自动挂载cpst01 下的/test的话,就要在cpst02 下的/etc/fstab添加东西了
192.168.1.10:/test /test nfs defaults 0 0
这样就好了,也不用每次都本身mount。
7.固然你要能够添加其余共享目录了
未完待续。。。。