system3之:6-NFS服务

来源:互联网 发布:java 递归算法阶乘 编辑:程序博客网 时间:2024/05/23 01:08
NFS服务

概念:
nfs:网络文件系统
主要用于类unix系统上进行文件共享服务,在windows上也可以开启nfs服务。
但是只有windows或windows server 2008支持NFS客户端,NFS服务端只有windows server版本支持。
NFS要基于RPC才能提供网络共享服务

不适合互联网,更适合局域网,比ftp更快捷方便,效率更高,因为其设置更加简单。
如果依赖的服务没有开启是没有办法启动的。

nfsd:2049
portmap:111

/etc/servers下可查看端口信息

/etc/sysconfig/nfs文件:nfs的一些端口配置

NFS与RPC的关系:
6.3.png


NFS的守护进程:
6.6.png

NFS服务概述:
6.7.png




[root@koukou tan_shell]# cat /etc/services |grep 111/tcp
sunrpc          111/tcp         portmapper rpcbind      # RPC 4.0 portmapper TCP

服务端口:sunrpc   111/tcp

客户端RPC要开启,nfs不用开,服务端要开启nfs,RPC要先于nfs重启,nfs才能注册


[root@koukou tan_shell]# service nfs restart
关闭 NFS 守护进程:                                        [确定]
关闭 NFS mountd:                                          [确定]
关闭 NFS quotas:                                          [确定]
启动 NFS 服务:                                            [确定]
关掉 NFS 配额:                                            [确定]
启动 NFS mountd:                                          [确定]
正在启动 RPC idmapd:                                      [确定]
正在启动 RPC idmapd:                                      [确定]
启动 NFS 守护进程:                                        [确定]
[root@koukou tan_shell]#




NFS相关文件:
6.9.png
日志作用不大,可看可不看。


主配置文件:
6.10.png

6.11.png
必须是绝对路径,而且必须是存在的。

6.12.png


6.15.png

6.18.png
touch无权限,修改权限应该改10.10.10.1(服务器端共享目录的权限)



6.17.1.png
挂载后,挂载目录的节点号就是源文件的节点号。

6.20.png
自己创建的可以删除,要限制别的用户不能删除,则o+t权限


6.21.png

6.22.png

上图为什么两边的xixi所属用户不同??
UID影响,唯一标识,在客户端普通用户xixi下建立一个文件xixi,客户端显示的是属于xixi用户图6.22,但是在服务器上确实显示的haha图6.21,那是因为uid一样造成的。




exportfs命令:
6.29.png


===============

NFS服务配置步骤:

服务器端:
安装NFS服务器软件包
启动NFS服务器程序
设置NFS共享目录输出

RHEL5使用portmap开启111端口
RHEL6使用rpcbind开启111端口

nfs的exports文件中的语法:
共享目录    运行访问的客户机(共享的选项)

按照从左到右的顺序匹配,建议小范围放前面,大范围放后面。
有效权限:本地权限、NFS权限、mount权限取交集的到的权限就是最终客户端权限。




客户端:
使用mount命令挂载NFS服务器中的NFS共享目录到文件系统中
通过挂载点访问服务端的共享内容

挂载的时候也可以用-o限制权限
6.24.png

6.27.png


nfs挂载共享实验:

服务器:
[root@koukou share]# vim /etc/exports
[root@koukou share]# cat /etc/exports
/share   *(sync,ro)

[root@koukou share]# netstat -ntpl|grep :111   先找到服务对应的命令,不同系统可能不同,5里面是portmap
tcp        0      0 0.0.0.0:111                 0.0.0.0:*                   LISTEN      1710/rpcbind        
tcp        0      0 :::111                      :::*                        LISTEN      1710/rpcbind        
[root@koukou share]# service rpcbind  restart
停止 rpcbind:                                             [确定]
正在启动 rpcbind:                                         [确定]
[root@koukou share]#
[root@koukou share]# service nfs restart
关闭 NFS 守护进程:                                        [确定]
关闭 NFS mountd:                                          [确定]
关闭 NFS quotas:                                          [确定]
启动 NFS 服务:                                            [确定]
关掉 NFS 配额:                                            [确定]
启动 NFS mountd:                                          [确定]
正在启动 RPC idmapd:                                      [确定]
正在启动 RPC idmapd:                                      [确定]
启动 NFS 守护进程:                                        [确定]





客户端:

[root@localhost ~]# cd /music
[root@localhost music]# ll
总用量 0
-rw-r--r--. 1 root root 0 8月   1 06:45 a
-rw-r--r--. 1 root root 0 8月   1 06:45 b
-rw-r--r--. 1 root root 0 8月   1 06:45 c
[root@localhost music]# cd ../
[root@localhost /]# mount 10.0.1.126:/share  /music   /share是绝对路径则ip后面是:,如果是相对路径则直接接/
[root@localhost /]# cd /music
[root@localhost music]# ll
总用量 0
-rw-r--r--. 1 nobody nobody 0 8月   1 2013 a
-rw-r--r--. 1 nobody nobody 0 8月   1 2013 b
-rw-r--r--. 1 nobody nobody 0 8月   1 2013 c
[root@localhost music]# rm a -rf
rm: 无法删除"a": 只读文件系统
[root@localhost music]#

[root@koukou share]# showmount -e     显示共享目录表,在客户机上查看则用showmount  -e 10.0.3.99
Export list for koukou.sxkeji.com:
/share *

注意:
要修改权限的话必须:1./etc/exports 里面修改,
                            2.然后还要修改服务器共享文件目录的权限
                            3.还要看mount时候的权限

因为权限是三者的交集


[root@koukou ~]# chmod o+w /share



[root@koukou share]# rpcinfo -p    rpcinfo无法输出的话就可能要 重启portmap与nfs
   program vers proto   port  service
    100000    4   tcp    111  portmapper
    100000    3   tcp    111  portmapper
    100000    2   tcp    111  portmapper
    100000    4   udp    111  portmapper
    100000    3   udp    111  portmapper
    100000    2   udp    111  portmapper
[root@koukou share]# rpcinfo -p  10.0.1.126
   program vers proto   port  service
    100000    4   tcp    111  portmapper
    100000    3   tcp    111  portmapper
    100000    2   tcp    111  portmapper
    100000    4   udp    111  portmapper
    100000    3   udp    111  portmapper
    100000    2   udp    111  portmapper
[root@koukou share]# rpcinfo -p  10.0.3.99



windows里面nfs挂载共享实验:

利用前面的NFS共享目录

先添加nfs服务
两种mount的方式:
6.251.png
图下方是挂载点的显示情况

6.252.png


自动挂载器

当需要访问某个分区或者共享目录的时候,可以自动挂载这个分区或者共享目录,不需要的时候则会自动卸载。
会自动监控某个神奇的目录,一旦你访问这个目录下某个挂载点里的对象的时候,就会自动挂载。

软件包:autofs    可以直接用yum install autofs下载

[root@koukou ~]# service autofs status   没有下载
autofs: 未被识别的服务
下载后:
[root@koukou misc]# service autofs restart
停止 automount:                                           [确定]
正在启动 automount:                                       [确定]
[root@koukou misc]# service autofs status
automount (pid  12690) 正在运行...
[root@koukou misc]#

只需修改两个文件内容:

1./etc/auto.master  主配置文件,设置神奇目录
路径       对应文件
/misc   /etc/auto.misc
 
这里/misc路径名可以自己重新定义,auto.misc也可以自己重新建立,里面的内容从/etc/auto.misc中拷贝过来就ok了。
只要路径和对应文件相对应不要弄错就好。后面则是修改自己创建的哪个文件。

2./etc/auto.misc   神奇目录配置文件,  设置挂载点

[root@koukou ~]# cat  /etc/auto.misc
#
# This is an automounter map and it has the following format
# key [ -mount-options-separated-by-comma ] location
# Details may be found in the autofs(5) manpage

cd        -fstype=iso9660,ro,nosuid,nodev    :/dev/cdrom

# the following entries are samples to pique your imagination
#linux        -ro,soft,intr        ftp.example.org:/pub/linux
#boot        -fstype=ext2        :/dev/hda1
#floppy        -fstype=auto        :/dev/fd0
#floppy        -fstype=ext2        :/dev/fd0
#e2floppy    -fstype=ext2        :/dev/fd0
#jaz        -fstype=ext2        :/dev/sdc1
#removable    -fstype=ext2        :/dev/hdd
[root@koukou ~]#

这里按照对应的类型来修改,如果是光盘,则是按照:
cd        -fstype=iso9660,ro,nosuid,nodev    :/dev/cdrom   这种格式,查看挂载文件的时候就直接去/misc/cd下查看,/misc/cd为挂载点(rhel5里面默认是/misc/cd/Server)。

如果是硬盘则是:                                         #jaz        -fstype=ext2        :/dev/sdc1   这种格式
如果是文件(包括共享文件)则是  :            #linux        -ro,soft,intr        ftp.example.org:/pub/linux  这种格式


注意:

绝对路径:master的路径加上misc中的“cd”,cd只是个名字,可以改变,挂载路径里面最好是空的,不然挂载几分钟后会消失。

修改配置文件之后一定要重启服务。

自动挂载的好处就是用的时候自动挂载,不用的时候则一段时候后会消失。

不要把监控目录指定为根目录,否则汇出问题。如上面的/misc就是监控目录。

mount命令的一些用法:

mount  -o soft,timeo=2   10.10.10.1:/share  /mnt  该命令可以限制等待时间,超过这个时间还未收到响应则中断连接,重新请求
mount -o  remount,rw  /mnt   重新挂载


NFS常见错误提示:

6.33.png