NFS服务简述

NFS是什么

NFS是附加在本地文件系统之上的一层虚拟层,这个虚拟层可以使一个本地文件系统通过网络输出给其他主机访问,所以NFS叫做网络附加存储。NFS只适用于linux或unix主机之间的网络共享,不支持windows主机。

NFS实现过程

比如服务器端有一个xfs文件系统通过监听的套接字向外输出,它通过内核中的nfs模块把本地的xfs接口转成了nfs接口变成nfs服务端向外输出。客户端要使用nfs服务器提供的网络附加存储时,先用mount命令把nfs服务器提供输出的文件系统挂载至本地的文件系统路径下,此时客户端查看挂载的目录是nfs文件系统,当访问这个挂载的目录时,所有的请求都通过这个协议远程传输到nfs服务器,服务端会将客户端的nfs请求通过内核nfs模块再转成服务器本地磁盘上的xfs文件来操作。


图片.png

NFS配置

环境配置

192.168.10.10 nfs服务器
192.168.10.11 客户机

配置服务端
[root@localhost ~]# yum -y install nfs-utils
[root@localhost ~]# mkdir -pv /data/mysql/test
[root@localhost ~]# useradd -u 1001 lsh
[root@localhost ~]# chown -R 1001.1001 /data/mysql/test/
[root@localhost ~]# ll -d /data/mysql/test/
drwxr-xr-x 2 lsh lsh 6 Jun 18 22:30 /data/mysql/test/
#把test目录赋值属主属组为1001
[root@localhost ~]# vim /etc/exports
/data/mysql 192.168.10.11(rw) 192.168.0.0/16(ro)
[root@localhost ~]# systemctl start nfs.service
客户机挂载测试
[root@localhost ~]# yum -y install nfs-utils #客户端也要安装nfs包才能识别挂载

[root@localhost data]# mount -t nfs 192.168.10.10:/data/mysql /mnt

[root@localhost data]# mount | grep /data/mysql
192.168.10.10:/data/mysql on /mnt type nfs4 (rw,relatime,vers=4.1,rsize=65536,wsize=65536,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=192.168.10.11,local_lock=none,addr=192.168.10.10)
#查看挂载信息,挂载成功

[root@localhost ~]# cd /mnt/test/
[root@localhost test]# touch a.txt
touch: cannot touch ‘a.txt’: Permission denied
#进入挂载的目录创建文件失败,因root管理员权限在服务端被映射成nfsnobody没有写权限

[root@localhost ~]# useradd -u 1001 lsh
[root@localhost ~]# su - lsh
[lsh@localhost ~]$ cd /mnt/test/
[lsh@localhost test]$ touch a.txt
[lsh@localhost test]$ ll
total 0
-rw-rw-r-- 1 lsh lsh 0 Jun 18 22:46 a.txt
#客户机登录属主属组ID为1001的用户就拥有对挂载目录的读写权限
配置客户端root在挂载目录中映射成1001用户

服务端

[root@localhost ~]# vim /etc/exports
/data/mysql 192.168.10.11(rw,anonuid=1001,anongid=1001) 192.168.0.0/16(ro)
[root@localhost ~]# exportfs -rav

客户端

[root@localhost ~]# mount -t nfs 192.168.10.10:/data/mysql /mnt
[root@localhost ~]# cd /mnt/test/
[root@localhost test]# touch root.txt
[root@localhost test]# ll
total 0
-rw-rw-r-- 1 lsh lsh 0 Jun 18 22:46 a.txt
-rw-r--r-- 1 lsh lsh 0 Jun 18 23:09 root.txt
#用root可以在目录下创建文件,root映射成了属主lsh

用另一台主机192.168.10.12测试

[root@localhost ~]# yum -y install nfs-utils
[root@localhost ~]# mount -t nfs 192.168.10.10:/data/mysql /mnt
[root@localhost ~]# cd /mnt/test/
[root@localhost test]# ll
total 0
-rw-rw-r-- 1 1001 1001 0 Jun 18 22:46 a.txt
-rw-r--r-- 1 1001 1001 0 Jun 18 23:09 root.txt
[root@localhost test]# touch hi.txt
touch: cannot touch ‘hi.txt’: Read-only file system
#挂载成功,但是此ip段在服务器上只定义了读权限,没有写权限
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1、第八章 Samba服务器2、第八章 NFS服务器3、第十章 Linux下DNS服务器配站点,域名解析概念命令:...
    哈熝少主阅读 3,775评论 0 10
  • 《鸟哥Linux私房菜》《老男孩Linux运维》 NFS介绍 NFS维基百科:网络文件系统(英语:Network ...
    Zhang21阅读 4,308评论 0 13
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,991评论 19 139
  • NFS服务介绍NFS配置文件NFS工具自动挂载实验:实现基于NFS共享的LAMP wordpress的应用 一、N...
    哈喽别样阅读 819评论 0 0
  • feisky云计算、虚拟化与Linux技术笔记posts - 1014, comments - 298, trac...
    不排版阅读 3,926评论 0 5