天天看点

NFS

nfs(network file system)

nfs允许一个系统在网络上与它人共享目录和文件。通过使用nfs,用户和程序可以象访问本地文件一样访问远

端系统上的文件。

优点:

    本地工作站使用更少的磁盘空间,因为通常的数据可以存放在一台机器上而且可以通过网络访问到。

     用户不必在每个网络上机器里头都有一个home目录。home目录 可以被放在nfs服务器上并且在网络上处处

可用。

     诸如软驱,cdrom,和 zip? 之类的存储设备可以在网络上面被别的机器使用。这可以减少整个网络上的

可移动介质设备的数量。

配置:(依然建议在selinux关闭下做实验。)

软件包:nfs-utils  portmap

安装:yum install -y  nfs-utils portmap

守护进程: rpc.nfsd 、rpc.lockd、rpciod、rpc.mountd、rpc.rquotad、rpc.startd

rpc.nfsd:它是基本的nfs守护进程,主要功能是管理客户端是否能够登录服务器

rpc.mountd:它是rpc安装守护进程,主要功能是管理nfs的文件系统。当客户端顺利通过rpc.nfsd登录nfs服务

后,在使用nfs服务所提供的文凭前,还必须通过文件使用权限的验证。它会读取nfs的配置文件/etc/exports

来对比客户端权限。

portmap:portmap的主要功能是进行端口映射工作。当客户端尝试连接并使用rpc服务器提供的服务(如nfs服

务)时,portmap会将所管理的与服务对应的端口提供给客户端,从而使客户可以通过该端口向服务器请求服务

(这三个服务进程是运行nfs服务器所必须的服务。)

脚本:/etc/init.d/nfs 、/etc/init.d/nfslock(这个文件是nfs的主要配置文件,不过系统并没有默认值,所

以这个文件不一定会存在,可能要使用vim手动建立,然后在文件里面写入配置内容。)

端口:2049(nfsd) ,其他端口portmap(111)分配

配置文件:/etc/exports  、/etc/sysconfig/nfs

校验服务是否运行:

    rpcinfo -p

    service portmap  status

    service nfs    status

启动服务  

    service nfs  start

停止服务

    service  nfs  stop

重启服务

    service nfs   restart

当修改了/etc/exports文件后,

exportfs -r 命令会刷新服务器的共享列表

exportfs -v 命令会显示服务器上的共享目录和选项列表

exportfs -a 命令会导出/etc/exports中列出的所有共享或者以参数命名的共享

exportfs -u 命令会取消导出以参数命名的共享;

显示主机的nfs服务器信息:showmouont [nfs服务器主机地址]

显示nfs服务器的输出列表:showmount –e [nfs服务器主机地址]

显示nfs服务器中被挂载的共享目录:showmount –d [nfs服务器主机地址]

显示nfs服务器的客户机与被挂载的目录:showmount –a [nfs服务器主机地址]

nfs服务器

在/etc/exports文件中定义导出目录

每个条目都指定文件系统被导出到的主机,以及相关的权限和选项

例如:

/var/ftp/pub                    *.example(ro,sync) bigserver.redhat.com(rw,sync)

/root/presentations             server2.example.com(rw,sync)

/data                           192.168.10.0/255.255.255.0(sync)

   每个条目指定一个导出的目录和他的访问权限。可以指定一对或多对主机/权限,但是不能将条目分成若干

行。主机名可以包含通配符,如上所示。也可用通配符来匹配主机名或域名:station1*将与station1、

station2、station11等等匹配;*.example.com将与station1.example.com等等匹配。

   主机的ip地址可以被单独指定,也可以是网络/子网掩码格式。默认情况下,/etc/exports中的条目以只读

形式导出。

    选项和主机之间必须不能使用空格间隔。

指定的选项有以下几种:

ro:只读访问

rw:读写访问

sync:所有数据在请求时写入共享

async:nfs在写入数据前可以相应请求

all_squash:共享文件的uid和gid映射匿名用户anonymous,适合公用目录。

no_all_squash:保留共享文件的uid和gid(默认)

root_squash:root用户的所有请求映射成如anonymous用户一样的权限(默认)

no_root_squas:root用户具有根目录的完全管理访问权限

用于防火墙的端口选项

   要在nfs中使用防火墙,必须使用通常有portmap分配的端口的服务器使用静态端口。这些服务包括:mountd

、statd和lockd守护进程。

   nfs脚本在/etc/sysconfig/nfs文件中查找在启动守护进程是使用的选项。mountd_port、statd_port、

rquotad_port、statd_outing_port、lockd_tcpport和lockd_udpport变量都可以使用强制这些选项守护进程在

指定的端口启动。该文件默认安装中可能不存在,可以自行创建即可。

客户端nfs

   用/etc/fstab文件指定网络挂载目录

   或者直接用mount 命令 挂载即可

   如:mount -t nfs -o -w=1024 192.168.0.170:/sharedfs /project

客户端nfs自动挂载

  方法一,/etc/fstab

netfs服务会使用文件/etc/fstab作为参考, 所以像nfs共享的会被自动执行。

如下是一个/etc/fstab中的挂载nfs的一条记录。

        server1.example.com:/share/directory /mnt/share nfs defaults 0 0

方法二, autofs 服务:

使用/etc/fstab的一个缺点是:不管用户访问nfs的次数和时间,系统总是会使用资源来维护这个nfs挂载。虽

然对于一两个nfs挂载的时候这不是问题,但是如果系统在维护很多nfs挂载的时候,系统性能会受到影响,一

个替代方法就是使用基于kernel的自动挂载工具:他可以在需要的时候自动的挂载nfs。

autofs 服务会根据/etc/auto.master文件来控制自动挂载命令:automount的命令可以更加方便的指定挂载点

,主机名, 输出目录等等。

autofs的配置文件以父-子关系来组织,主配置文件(/etc/auto.master) 列出了所有的挂载点,然后他会连接

到一个特定的映射类型, 这个类型可以是配置文件,程序, nis映射或者其他挂载方式,auto.master文件包含

了如下内容。

    <mount-point> <map-type> <mount-point>用于指定本地挂载点,<map-type>指定如何挂载,最通常的nfs

挂载做法是使用一个文件,这个文件通常命名成auto.<mount-point>, <mount-point>是在auto.master指定的

挂载点,一个nfs类型的auto.<mount-point>的内容如下:

    </local/directory> -<options> <server>:</remote/export> 使用本地挂载点替换

</local/directory;> ,该目录必须手动创建。

可以使用nfs的选项替换 <options> ,多个选项之间使用“,”分开,如果需要更多的信息查看man fstab. 确

定在options列表前使用了符号"-"。

使用你的nfs服务器替换如上的 <server> ,

使用nfs服务器的输出路径替换如上的 </remote/export> .

可以使用nfs的选项替换 <options>

autofs配置文件可以用于很多中挂载方式和不同的文件系统上,特使是在nfs的挂载上特别有用,举例来说,有

些单位把所有的/home目录集中于一台nfs服务器上, 然后在每个节点上配置auto.master指向auto.home,使得

每个节点都可以通过autofs挂载/home目录。所有的用户都可以在任何一台工作站上访问自己/home/下的的数

据和配置文件,该案中的auto.master看起来会像如下所示。

    /home /etc/auto.home 这个文件设置了/home/挂载点被配置到了/etc/auto.home文件上,auto.home看起

来应该如下:

    * -fstype=nfs,soft,intr,rsize=8192,wsize=8192,nosuid,tcp server.example.com

例如操作步骤:

     1、vim /etc/auto.master

        /mnt   /etc/zuto.shared

     2、vim /etc/auto.shared

        shared     -soft,intr,rw    192.168.0.170:/shared

        *          -soft,intr,rw    192.168.0.170:/shared/&

  重启服务即可。

继续阅读