nfs文件共享服务器应用实战(一)

一、NFS文件共享服务器概念:

NFS是network file sytem的缩写,它允许网络中的计算机之间共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。

二、NFS工作原理:

 

  1. 首先NFS服务器端开启rpcbind;
  2. 然后服务端开启NFS服务,这时NFS的各项功能都需要向RPC服务注册,这时rpc会通知portmap模块将可用的端口分配给statd,rquotad进程等;
  3. 然后NFS客户端RPC服务就会通过网络向NFS服务端的RPC服务的111端口发出NFS文件存取功能的询问请求。
  4. NFS服务端的RPC服务找到对应的已注册的NFS daemon端口后,通知NFS客户端的RPC服务。
  5. 此时NFS客户端就可获取到nfs服务端各个进程的正确端口,然后通过客户端rpc就直接与NFS服务器的rpc进行存取数据了(rpc知道了nfs的具体端口,就可以实现远程调用,即传输)。
ps:有一点需要注意的是nfs并不是单独存在的,而是由NFS-server,RPC,PORTMAP这三个模块组成。

NFS-server只负责将数据通过以文件系统的方式共享出去,
并进行登录管理和权限管理,并不负责数据的传输,而数据的传输则有RPC来完成。

PORTMAP主要是来分配端口给statd,rquotad等进程,NFS服务除了启动nfsd本身监听的端口2049/tcp和2049/udp,
还会启动以上进程来完成文件共享。

三、NFS安装部署:

服务器客户端都装好nfs服务组件:

yum -y install nfs-utils

配置服务端:

1、编辑/etc/exports文件

/data/lutixia  192.168.0.0/24(rw,sync)

/data/lutixia   是服务端想要共享出去的目录,提前创建好。
192.168.0.0/24  表示这个网段都可以来挂载,也可以设置具体某个ip。
(rw,sync)  表示客户端挂载服务端目录后的权限,这里表示可读可写,
以及实时同步,还有其他选项,后面介绍。

2、导出(广播)编辑的文件,并启动rpc和nfs服务

exportfs -r
systemctl start rpcbind
systemctl start nfs

配置客户端:

1、可用showmount搜索网络中可用的共享文件

[root@localhost nfs]# showmount -e 192.168.0.187
Export list for 192.168.0.187:
/data/lutixia 192.168.0.0/24

# 192.168.0.187  服务端的IP

2、创建目录,用于挂载

mkdir /mnt/nfs

3、挂载

mount -t nfs  192.168.0.187:/data/lutixia /mnt/nfs
[root@localhost ~]# df -h
Filesystem                   Size  Used Avail Use% Mounted on
/dev/sda3                     20G  1.6G   18G   9% /
...
/dev/sda1                    297M  108M  190M  37% /boot
192.168.0.187:/data/lutixia   20G  5.0G   15G  26% /mnt/nfs

#可以看到已经挂载上了。

4、挂载完成之后,进入目录,可能会发现无法创建和修改文件

[root@localhost nfs]# mkdir abc
mkdir: cannot create directory ‘abc’: Permission denied

这主要是因为客户端访问服务器时,身份被压缩成nobody,相对服务器文件系统来说,就是其他用户。所以要想编辑,需要在服务端对文件授权或者更改exports文件,设置no_root_squash(不压缩客户端root身份)。

nfs服务端修改exports文件,加上no_root_squash参数:

/data/lutixia 192.168.0.0/24(rw,sync,no_root_squash)
然后重新导出:
exportfs -r

nfs客户端再次创建文件:
[root@localhost nfs]# mkdir abc
[root@localhost nfs]# ls
abc

服务端的/etc/exports文件详解:

[root@localhost ~]# exportfs -v
/data/lutixia  	192.168.0.0/24(sync,wdelay,hide,no_subtree_check,sec=sys,rw,secure,no_root_squash,no_all_squash)

其中:
rw:可读可写
ro:仅可读
sync:是指数据同步写入内存和磁盘
root_squash:如果客户端用root身份访问,则被压缩成nobody,权限也将受到限制。
no_root_squash:也就是不压缩,客户端使用root身份登录,全有所有权限,很危险。
all_squash:不管访问者是什么身份,包括root,全部压缩至匿名用户。
no_all_squash:保留访问用户的身份uid以及gid,一般只能查看,不能修改,权限问题,但是可以强制保存。
secure:nfs通过1024以下的安全TCP/IP端口发送

异常报错:

卸载时报错:

umount.nfs4: /mnt/nfs: device is busy
#使用以下命令强行解除挂载
umount -l /mnt/nfs   

或者使用
#将会显示使用这个模块的pid
fuser -m /mnt/nfs 
#将会直接kill那个pid
fuser -mk /mnt/nfs

以上简单几个步骤即可实现nfs文件共享服务器的搭建部署,下一章节继续聊聊nfs的自动挂载技术

获取文章更新,以及常用软件,可以关注公众号: 笨办法学linux

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

运维朱工

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值