NFS 服务配置

NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样

服务端配置NFS

在 CentOS 上使用 NFS 服务需要安装两个包( nfs-utils 和 rpcbind ),不过当使用 yum 工具安装 nfs-utils 是会把 rpcbin 包也安装上。

# yum install -y nfs-utils

在之前的CentOS版本中,是需要安装portmap包的,从CentOS6开始,就改为rpmbind了。NFS配置起来还是蛮简单的,只需要编辑配置文件/etc/exports即可。下面就先创建一个简单的NFS服务器。

首先是修改配置文件,默认该文件为空,现在编辑它:

# vim /etc/exports

写入一下内容:

/home/rong 192.168.137.55/24(rw,sync,all_squash,anonuid=501,anongid=501)

这个配置文件就这样简单一行。共分为三部分,第一部分就是本地要共享出去的目录,第二部分为允许访问的主机(可以是一个IP也可以是一个IP段)第三部分就是小括号里面的,为一些权限选项。关于第三部分,阿铭简单介绍一下:

rw :读写;

ro :只读;

sync :同步模式,内存中数据时时写入磁盘;

async :不同步,把内存中数据定期写入磁盘中;

no_root_squash :加上这个选项后,root用户就会对共享的目录拥有至高的权限控制,就像是对本机的目录操作一样。不安全,不建议使用;

root_squash:和上面的选项对应,root用户对共享目录的权限不高,只有普通用户的权限,即限制了root;

all_squash:不管使用NFS的用户是谁,他的身份都会被限定成为一个指定的普通用户身份;

anonuid/anongid :要和root_squash 以及all_squash一同使用,用于指定使用NFS的用户限定后的uid和gid,前提是本机的/etc/passwd中存在这个uid和gid。


介绍了上面的相关的权限选项后,再来分析一下刚刚配置的那个/etc/exports文件。其中要共享的目录为/home,信任的主机为192.168.137.55/24这个网段,权限为读写,同步,限定所有使用者,并且限定的uid和gid都为501。

编辑好配置文件后,就该启动NFS服务了:

# /etc/init.d/rpcbind start

# /etc/init.d/nfs start

在启动nfs服务之前,需要先启动rpcbind服务不然会报错。

启动 NFS 服务:                                            [确定]
启动 NFS mountd:                                          [失败]
启动 NFS 守护进程:rpc.nfsd: writing fd to kernel failed: errno 111 (Connection refused)
rpc.nfsd: unable to set any sockets for nfsd  [失败]


客户机挂载NFS

客户端在挂载NFS之前,我们需要先看一看服务端都共享了哪些目录,这需要使用showmount命令,但是这个命令是nfs-utils这个包所带的,所以同样需要安装nfs-utils:

# yum install -y nfs-utils

安装 nfs-utils 包后,可以使用 showmount 命令查看:

# showmount -e 192.168.137.11

Export list for 192.168.137.11:
/home/rong 192.168.137.55/24

可以看到刚才我们在服务端配置的 nfs 共享信息,showmount -e IP 就可以查看 NFS 的共享情况,上列中,就可以看到192.168.137.11共享的目录/home/rong ,信任主机为192.168.137.55/24 这个网段。

下面在客户端上挂载服务端的 nfs :

# mount -t nfs 192.168.137.11:/home/rong /mnt/

# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda3              18G  3.1G   14G  19% /
tmpfs                 504M     0  504M   0% /dev/shm
/dev/sda1             190M   24M  157M  13% /boot
192.168.137.11:/home/rong 18G  2.5G   15G  15% /mnt

使用命令 df -h 可以看到增加了一个 /mnt 分区,它就是 NFS 共享的目录了。

命令exportfs

每次修改共享的目录,都要重启nfs服务是不是很麻烦。exportfs 命令就可以解决这个问题。

在这一章节里,使用的命令不多,另外还有一个常用的命令那就是exportfs,它的常用选项为[-aruv].

-a :全部挂载或者卸载;

-r :重新挂载;

-u :卸载某一个目录;

-v :显示共享的目录;

使用exportfs命令,当改变/etc/exports配置文件后,不用重启nfs服务直接用这个exportfs即可。

先改一下服务端的配置文件:

# vim /etc/exports

增加一行:

/home/test 192.168.137.0/24(rw,sync)

然后在服务端上执行如下命令:

# exportfs -arv
exporting 192.168.137.0/24:/home/test
exporting 192.168.137.55/24:/home/qiang

另外在使用挂载 nfs 服务时,常用一个选项就是 -o nolock (不加锁), -o nolock 就是防止两台服务器同时编辑一个文件,

假如一台服务器正在写那个文件,另一台服务器就不可以写,这样就是锁 ,会影响性能。

在客户端上执行:

# mount -t nfs -o nolock 192.168.137.11:/home/test /mnt/

使用命令 mount 你就会发现,最后一行有 nolock 。

# mount 

192.168.137.11:/home/test on /mnt type nfs (rw,nolock,vers=4,addr=192.168.137.11,clientaddr=192.168.137.55)

我们还可以把要挂载的nfs目录写到client上的 /etc/fstab 文件中,在 /etc/fstab里加一行,下次开机的时候它就会自己挂载:

192.168.137.11:/home/test /mnt                  nfs     nolock          0 0

挂载之后我们可以模拟一下:

# umount /mnt

# mount -a

你也可以在 /etc/rc.local ,加入一行:

mount -t nfs -o nolock 192.168.137.11:/home/test /mnt/

他和在  /etc/fstab 添加都是一样的,这样的好处就是以后开机就会自己挂载 NFS 。





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值