Date:2012-12-20

Version:1

一)NFS介绍:

NFS(Network File System, 网络文件系统)可以通过网络将分享不同主机(不同的OS)的目录——可以通过NFS挂载远程主机的目录, 访问该目录就像访问本地目录一样!
一般而言, 使用nfs能够方便地使各unix-like系统之间实现共享. 但如果需要在unix-like和windows系统之间共享, 就得使用samba了!
NFS运行在SUN的RPC(Remote Procedure Call, 远程过程调用)基础上, RPC定义了一种与系统无关的方法来实现进程间通信. 由此, NFS server也可以看作是RPC server.
    
正因为NFS是一个RPC服务程序, 所以在使用它之前, 先要映射好端口——通过portmap设定.
比如: 某个NFS client发起NFS服务请求时, 它需要先得到一个端口(port). 所以它先通过portmap得到port
number. (不仅NFS, 所有的RPC服务程序启动之前, 都需要设定好portmap)
    
在启动RPC服务(比如NFS)之前, 需要启动portmap服务!(关于nfs和portmap是否存在于当前系统, 看后面的"NFS安装"部分.

二)安装NFS
Debian上默认是没有安装NFS服务器的,首先要安装NFS服务程序:
root#apt-get install nfs-kernel-server
(安装nfs-kernel-server时,apt会自动安装nfs-common和portmap)
这样,宿主机就相当于NFS Server。
    
同样地,目标系统作为NFS的客户端,需要安装NFS客户端程序。如果是Debian/系统,则需要安装nfs-common。
root#sudo apt-get install nfs-common
    
nfs-common和nfs-kernel-server都依赖于portmap!

三)与NFS相关的几个文件, 命令
1, /etc/exports
    对NFS卷的访问是由exports来批准, 它枚举了若干有权访问NFS服务器上文件系统的主机名.

NFS配置文件设置

NFS服务的配置文件是etc/exports

exports文件内容格式:

<输出目录> [客户端1 选项(访问权限,用户映射,其他)] [客户端2 选项(访问权限,用户映射,其他)]

1.输出目录:

输出目录是指NFS系统中需要共享给客户机使用的目录;

2.客户端:

客户端是指网络中可以访问这个NFS输出目录的计算机

客户端常用的指定方式

指定ip地址的主机 192.168.200.62

指定子网中的所有主机 192.168.200.0/24

指定域名的主机 a.liusuping.com

指定域中的所有主机 *.liusuping.com

所有主机 *

3.选项:

选项用来设置输出目录的访问权限、用户映射等。NFS主要有3类选项:

访问权限选项

设置输出目录只读 ro

设置输出目录读写 rw

用户映射选项

all_squash 将远程访问的所有普通用户及所属组都映射为匿名用户或用户组(nfsnobody);

no_all_squash 与all_squash取反(默认设置);

root_squash 将root用户及所属组都映射为匿名用户或用户组(默认设置);

no_root_squash 与rootsquash取反;

anonuid=xxx 将远程访问的所有用户都映射为匿名用户,并指定该用户为本地用户(UID=xxx);

anongid=xxx 将远程访问的所有用户组都映射为匿名用 户组账户,并指定该匿名用户组账户为本地用户组账户(GID=xxx);

其它选项

secure 限制客户端只能从小于1024的tcp/ip端口连接nfs服务器(默认设置);

insecure 允许客户端从大于1024的tcp/ip端口连接服务器;

sync 将数据同步写入内存缓冲区与磁盘中,效率低,但可以保证数据的一致性;

async 将数据先保存在内存缓冲区中,必要时才写入磁盘;

wdelay 检查是否有相关的写操作,如果有则将这些写操作 一起执行,这样可以提高效率(默认设置);

no_wdelay 若有写操作则立即执行,应与sync配合使用;

subtree 若输出目录是一个子目录,则nfs服务器将检查其父目录的权限(默认设置);

no_subtree 即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率;

.

2, /sbin/exportfs
    维护NFS的资源共享. 可以通过它重新设定 /etc/exports 的共享目录, 卸载NFS Server共享的目录或者重新共享等.

3, /usr/sbin/showmount 
    用在 NFS Server 端,而 showmount 则主要用在 Client
端. showmount 可以用來查看 NFS 共享的目录资源.
4, /var/lib/nfs/xtab
    NFS的记录文档: 通过它可以查看有哪些Client 连接到NFS主机的记录.
下面这几个并不直接负责NFS, 实际上它们负责所有的RPC
5, /etc/default/portmap
    实际上, portmap负责映射所有的RPC服务端口, 它的内容非常非常之简单(后面详述)
6, /etc/hosts.deny
    设定拒绝portmap服务的主机
7, /etc/hosts.allow
    设定允许portmap服务的主机

四)查看/etc/exports文件

Cat /etc/exports

root@debian:~# more /etc/exports

# /etc/exports: the access control list for filesystems which may be exported

#               to NFS clients.  See exports(5).

#

# Example for NFSv2 and NFSv3:

# /srv/homes       hostname1(rw,sync,no_subtree_check) hostname2(ro,sync,no_subtree_check)

#

# Example for NFSv4:

# /srv/nfs4        gss/krb5i(rw,sync,fsid=0,crossmnt,no_subtree_check)

# /srv/nfs4/homes  gss/krb5i(rw,sync,no_subtree_check)

#

/home/share   192.168.200.0/255.255.255.0(rw,sync)    *(ro)

root@debian:~#

NFS挂载目录及权限由/etc/exports文件定义
    
比如我要将将我的home目录中的/home/share目录让192.168.200.*的IP共享, 则在该文件末尾添加下列语句:
        /home/share    192.168.200.*(rw,sync,no_root_squash) 
或者:/home/share    192.168.200.0/24(rw,sync,no_root_squash) 
192.168.200.* 网段内的NFS客户端能够共享NFS服务器/home/share目录内容.且有读,写权限, 并且该用户进入/home/share目录后的身份为root
最好加上sync, 否则 root#exportfs -r 时会给出警告, sync是NFS的默认选项.
运行 $ showmount -e 查看NFS server的export list.

root@debian:~# showmount -e localhost

Export list for localhost:

/home/share (everyone)

root@debian:~#

客户端设置;

使用apt-get install { portmap,nfs-common}

自动挂载器的介绍(automounter)

自动挂载器就是当我们网络中有一台NFS Server的时候,客户端需要去挂载NFS Server上面的资源,如果将NFS的挂载信息写在/etc/fstab这个文件里面,那么客户端只要是启动计算机,就是自动挂载NFS资源。可能有些客户端不需要去挂载NFS的资源,这样就会浪费资源。而自动挂载器就可以帮我们实现,当客户端需要去访问的时候,才挂载,不需要访问的时候,资源是断开的,所以学习自动挂载器是很有必要的。

要想实现自动挂载的功能,必须安装autofs这个包

[root@localhost ~]#apt-get install autofs5

自动挂载是通过两个文件来实现的

/etc/auto.master

/etc/auto.misc

现在我们打开/etc/auto.master这个文件,看下里面是怎么定义的。

[root@localhost ~]# vim /etc/auto.master

# $Id: auto.master,v 1.4 2005/01/04 14:36:54 raven Exp $

#

# Sample auto.master file

# This is an automounter map and it has the following format

# key [ -mount-options-separated-by-comma ] location

# For details of the format look at autofs(5).

#

/misc   /etc/auto.misc

#

# NOTE: mounts done from a hosts map will be mounted with the

#       “nosuid” and “nodev” options unless the “suid” and “dev”

#       options are explicitly given.

#

/net    -hosts

#

# Include central master map if it can be found using

# nsswitch sources.

#

# Note that if there are entries for /net or /misc (as

# above) in the included master map any keys that are the

# same will not be seen as the first read key seen takes

# precedence.

#

+auto.master

可以看到,在/etc/auto.master里面是这样定义的,

我们先看这句话

/misc   /etc/auto.misc

将/etc/auto.misc里面的内容挂载到/misc这个目录下面去。

我们再来开到/etc/auto.misc这个文件

[root@localhost ~]# vim /etc/auto.misc

#

# $Id: auto.misc,v 1.2 2003/09/29 08:22:35 raven Exp $

#

# 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

~

在/etc/auto.misc文件定义了将cdrom里面的东西挂载到cd目录下面去

注意,这里的cd目录是以/misc为根的,也就是/misc/cd目录。

我们将这两个文件整合一下,意思就是说将cdrom里面的东西挂载到/misc/cd目录下面去,就是这个意思。

现在我们将一张光盘放入光驱里面,看下能否自动挂载起来。

[root@localhost ~]# cd /misc/

[root@localhost misc]# ls

[root@localhost misc]#

我们现在已经进入了这个目录,可以看到,这个目录里面什么东西都没有,刚才哪两个文件定义说,是挂载到/misc/cd目录下面,现在我们进入cd目录。

[root@localhost ~]# cd /misc/

[root@localhost misc]# ls

[root@localhost misc]# cd cd

[root@localhost cd]# ls

AUTORUN.INF  HD4.GHO      PESETUP  README.TXT  WINPE.XPE

AXPE         OSGHOST.EXE  PESOFT   SYSTEM      WNPEFONT.BIN

[root@localhost cd]# cd ..

[root@localhost misc]# ls

cd

[root@localhost misc]#

可以看到,我们光盘里面的东西就被挂载到/misc/cd目录下面去了。

这个自动挂载的功能是系统默认就有了的,下面我们根据刚才的例子来学习如何利用自动挂载器的功能来实现挂载NFS网络资源。

首先编辑/etc/auto.master这个文件,

auto.master 文件定义本地挂载点. 本地挂载点目录/mnt

编辑auto.master 配置文件如下:

#

# $Id: auto.master,v 1.4 2005/01/04 14:36:54 raven Exp $

#

# Sample auto.master file

# This is an automounter map and it has the following format

# key [ -mount-options-separated-by-comma ] location

# For details of the format look at autofs(5).

#

/misc   /etc/auto.misc

/mnt    /etc/auto.nfs

/etc/auto.nfs这个文件可以自己命名,在/etc/auto.misc这个文件定义也是可以的。

复制一个模板文件auto.misc成auto.nfs

这个文件名一定要与/etc/master中定义的一致。

[root@localhost ~]#

[root@localhost ~]# cp /etc/auto.misc /etc/auto.nfs

编辑/etc/auto.nfs配置文件如下

# $Id: auto.misc,v 1.2 2003/09/29 08:22:35 raven Exp $

# 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

nfs                               192.168.200.91:/home/share

这个nfs目录在/mnt下面不需要有

重启一下服务

[root@localhost ~]# service autofs restart

Stopping automount:                                        [  OK  ]

Starting automount:                                          [  OK  ]

[root@localhost ~]#

服务启动成功。

root@debian:/mnt/nfs# df -h

Filesystem            Size  Used Avail Use% Mounted on

/dev/sda4             7.5G  912M  6.2G  13% /

tmpfs                 993M     0  993M   0% /lib/init/rw

udev                  988M  104K  988M   1% /dev

tmpfs                 993M     0  993M   0% /dev/shm

/dev/sda1             184M   20M  155M  12% /boot

/dev/sda3             369M   11M  340M   3% /tmp

[root@localhost ~]#

现在可以df –h 可以看到的nfs网络资源是没有挂载过来的

root@debian:/mnt/nfs# df -h

Filesystem            Size  Used Avail Use% Mounted on

/dev/sda4             7.5G  912M  6.2G  13% /

tmpfs                 993M     0  993M   0% /lib/init/rw

udev                  988M  104K  988M   1% /dev

tmpfs                 993M     0  993M   0% /dev/shm

/dev/sda1             184M   20M  155M  12% /boot

/dev/sda3             369M   11M  340M   3% /tmp

192.168.200.91:/home/share

50G  180M   47G   1% /mnt/nfs

root@debian:/mnt/nfs#

nfs 权限根服务器权限有关。

More /etc/exports

/home/share    192.168.200.*(rw,sync,anonuid=1001,anongid=1001)

把客户端访问用户映射为服务器用户rovkxu:1001:1001 文件夹权限需在服务器端修改

转载于:https://blog.51cto.com/rovkxu/1095754

linux下nfs安装配置相关推荐

  1. Linux下,安装配置Weblogic

    Linux下,安装配置Weblogic 2009-03-20 15:03 一.安装配置JDK //如果应用不需要高版本的JDK的话,可以不单独安装JDK 1. 安装JDK # chmod a+x jd ...

  2. Linux下ejabberd安装配置

    为什么80%的码农都做不了架构师?>>>    Linux下ejabberd安装配置 1.下载Ejabberd安装包 wget http://www.process-one.net/ ...

  3. linux如何安装php,Linux下如何安装配置PHP

    1)本文主要和大家分享Linux下如何安装配置PHP,下载PHP安装包,这里选用PHP 5.6版本,希望能帮助到大家. 并解压PHP安装包wget cn2.php.net/get/php-5.6.31 ...

  4. CentOS 6.3下NFS安装配置

    CentOS 6.3下NFS安装配置 一.环境介绍   NFS服务器:CentOS6.3 192.168.8.20 NFS客户端:CentOS6.5 192.168.8.39 二.服务器端安装配置   ...

  5. Linux下mongodb安装配置教程

    Linux下mongodb安装配置教程 这里写目录标题 Linux下mongodb安装配置教程 1. 在linux(ubuntu)下安装mongodb 2. 遇到的坑 1. 在linux(ubuntu ...

  6. Windows和Linux下JDK安装配置

    博客迁移了.麻烦去新地址查看. Windows和Linux下JDK安装配置 链接地址:http://www.msyy233.com/posts/1678.html#more

  7. linux php 安装图文教程下载,linux下php安装配置教程

    linux下php安装配置教程 (6页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 19.90 积分 linux 下安装下安装 apache 与与 php ...

  8. Linux下cronolog安装配置

    Linux下cronolog安装配置 Linux下cronolog安装配置 Linux下运行的Web服务器Apache,默认日志文件是不分割的,一个整文件既不易于管理,也不易于分析统计.安装crono ...

  9. Linux下ODBC安装配置

    Linux下ODBC安装配置 ODBC 原理 ODBC 是 Open Database Connect 即开放数据库互连的简称,它是由 Microsoft 公司于 1991 年提出的一个用于访问数据库 ...

  10. 在Linux下如何安装配置SVN服务

    2019独角兽企业重金招聘Python工程师标准>>> Linux下在阿里云上架一个svn  centos上安装:yum install subversion  安装成功    键入 ...

最新文章

  1. [Machine Learning]kNN代码实现(Kd tree)
  2. linux指令popd,Linux切换目录pushd、popd、dirs命令
  3. C语言编写Scheme解释器,C语言编写logo语言解释器 ,求高手指导
  4. 编译内核_将驱动编译进内核(Kernel)的步骤记录
  5. mac安装python3.7两个版本_MAC下同时安装Python2和Python3
  6. windows下编译c语言文件路径,解决JNI在Windows环境下因长路径导致编译失败问题
  7. 利用WaitForInputIdle等待初始化完成CreateProcess
  8. 手机android flash,安卓手机flash插件最新版
  9. What?!“天才黑客”竟是谣言,带你揭露阿里云守护神的秘密
  10. 被封域名什么原因?如何预防域名被封呢?
  11. 农业区块链 - 区块链在农林渔食品业的落地场景及案例汇编
  12. php ipa 版本定制,自建IOS企业包ipa包 下载服务
  13. 每日总结(2021/12/15)
  14. Xtrabackup 安装以及 mysql 使用 Xtrabackup 物理备份过程记录
  15. 2018.06.25 一个不知道叫什么好的U盘启动工具集
  16. pagerank简单实现
  17. 三星手机打不开php文件,三星手机将支持完整版Linux
  18. 视频-sps,pps
  19. 2020清华大学计算机系夏令营机试
  20. Attack on Titan(状态压缩)

热门文章

  1. Android竖屏视频录制
  2. android 小米手机如何进入开发者模式
  3. Nginx不解析PHP,无法打开PHP文件
  4. STM32—TIMx输出PWM信号驱动MG996R舵机
  5. 43. Pandas查询数据的简便方法df.query
  6. item_search_pro - 高级关键字搜索淘宝商品 API
  7. 背包问题大全(动态规划)
  8. ps修改图像像素压缩图片大小
  9. php 开源企业网站,TayCMS 免费开源企业网站建站系统 For PHP v1.8
  10. 90后绝对不是用来管的!