当前位置: 首页 > news >正文

nfs服务

  • 用一个磁盘来进行挂载

  • 创建一个nfs的目录,然后写入到配置文件中去,允许客户端可以访问挂载

  • 但是大小不知道,因此我就有一个磁盘100G的大小,直接挂载到这个nfs目录上面去,因此这个目录就有100G的大小了

  • 然后客户端将这个100G目录挂载到我本地的/mnt目录下,我也就有了100G的大小了,实现了同步了

一、NFS存储服务

1、概念说明

  • nfs就是network file system 是网络文件共享系统

  • 通过网络让不同主机系统之间可以共享文件或者目录

  • nfs客户端通过挂载的方式将nfs服务器端共享的数据目录挂载到客户端上面,从客户端上来看的话,这个共享的目录就好像是自己的磁盘分区或者目录,但是其实是远端nfs服务器的目录

img

2、存储的分类

  • ftp和samba,可以实现windows和linux之间的文件共享

  • nfs只能实现linux和linux之间的共享数据

二、NFS部署

1、nfs服务启动流程

  • 第一步:启动RPC服务(中介)

  • 第二步: 启动NFS进程,将nfs服务端口信息告知rpc服务进程管理

  • 第三步:客户端访问rpc服务,询问nfs服务端口信息

  • 第四步:rpc服务返回客户端信息(nfs端口信息)

  • 第五步;客户端根据这个端口访问nfs服务器,实现文件共享

img

2、nfs部署流程

1、服务端部署

  • 第一步:安装nfs和rpc软件
yum -y install nfs-utils rpcbind
  • 第二步:编写nfs软件
# 服务的配置文件
[root@master ~]# ll /etc/exports
-rw-r--r--. 1 root root 0 Jun 23  2020 /etc/exports[root@master ~]# cat /etc/exports
/nfs-share 192.168.50.0/24(rw,sync)# 第一列 设置nfs存储目录# 第二列 设置nfs服务访问的白名单# 第三列 设置存储目录权限等等其他的功能
  • 第三步:创建存储目录,对目录设置+w权限
[root@master ~]# mkdir /nfs-share
[root@master ~]# touch /nfs-share/nfs-flag
[root@master ~]# ll /nfs-share/
total 0
-rw-r--r--. 1 root root 0 Sep  8 19:56 nfs-flag
[root@master ~]# ll /nfs-share/ -d 
drwxr-xr-x. 2 root root 22 Sep  8 19:56 /nfs-share/
[root@master ~]# chmod +w /nfs-share/
[root@master ~]# ll /nfs-share/ -d 
drwxr-xr-x. 2 root root 22 Sep  8 19:56 /nfs-share/# 设置其他用户对这个目录,有写的权限
[root@master ~]# chmod o+w /nfs-share/
[root@master ~]# ll /nfs-share/ -d 
drwxr-xrwx. 2 root root 22 Sep  8 19:56 /nfs-share/# 或者修改拥有用户和拥有组为nfsnobody,因为这个是nfs自动创建虚拟用户,用于管理存储目录的
  • 第四步:启动nfs服务,防火墙操作
# 防火墙放行nfs,rpc-bind,mountd这些
[root@master ~]# firewall-cmd --permanent --add-service=nfs
success
[root@master ~]# firewall-cmd --permanent --add-service=rpc-bind
success
[root@master ~]# firewall-cmd --permanent --add-service=mountd
success
# 立刻生效
[root@master ~]# firewall-cmd --reload 
success# selinux不用修改,samba需要修改,这个是linux之间共享的文件,都是linux之间内部的信息,所以的话,不需要修改# 启动nfs服务
systemctl enable nfs-server --now
systemctl enable rpcbind --now[root@master ~]# netstat -pant|grep rpc
tcp        0      0 0.0.0.0:20048           0.0.0.0:*               LISTEN      5023/rpc.mountd     
tcp        0      0 0.0.0.0:36517           0.0.0.0:*               LISTEN      5016/rpc.statd      
tcp6       0      0 :::20048                :::*                    LISTEN      5023/rpc.mountd     
tcp6       0      0 :::51059                :::*                    LISTEN      5016/rpc.statd 

2、nfs客户端部署

  • 安装nfs软件
[root@node1 ~]# yum -y install nfs-utils
  • 挂载nfs服务器的共享目录
# mount -t nfs协议 nfs服务器:共享目录 挂载到本地的那一个目录上面去[root@node1 ~]# mount -t nfs 192.168.50.10:/nfs-share /mnt/
[root@node1 ~]# ls /mnt/
nfs-flag
[root@node1 ~]# touch /mnt/node1.txt
[root@node1 ~]# df -hT /mnt
Filesystem               Type  Size  Used Avail Use% Mounted on
192.168.50.10:/nfs-share nfs4   50G  2.2G   48G   5% /mnt# 企业中的话,会有一个几个T的盘挂载到这个共享目录上面去,即可

三、NFS工作原理和配置参数

1、原理

  • 服务端工作原理

    • 启动rpc服务,开启111端口

    • 启动nfs服务

    • 实现nfs服务进程和端口信息向rpc服务注册

  • 客户端工作原理

    • 客户端和服务端建立tcp网络连接

    • 客户端执行挂载命令,进行远程挂载

    • 实现数据传输

2、配置参数

img

  • rw 存储目录是否有读写权限

  • ro 存储目录是否时只读权限

  • sync 同步方式存储数据 直接将数据保存到磁盘(数据存储安全)

  • async 异步方式存储数据 直接将数据保存到内存(提高数据存储效率)

  • no_root_squash 不要将root用户身份转换(默认参数)

  • root_squash 将root用户身份转换为nfsnobody

  • all_squash 将所有普通用户转换

  • no_all_squash 不要将所有用户转换

  • all_squash功能

# nfs服务端修改配置文件参数
[root @nfs ~ ]# cat /etc/exports
/date	172.16.1.0/24(rw,sync,all_squash)[root @nfs ~ ]# systemctl restart nfs# 客户端backup挂载存储目录,创建数据。(需要重新挂载共享目录)
[root @backup ~ ]# mount -t nfs 172.16.1.31:/date /mnt/nfs
[root @backup ~ ]# su - xuan
[xuan @backup ~ ]$ touch /mnt/nfs/xuan_backup.txt[xuan @backup ~ ]$ ll /mnt/nfs/xuan_backup.txt
-rw-rw-r-- 1 nfsnobody nfsnobody 0 Sep  3 08:55 /mnt/nfs/xuan_backup.txt
  • no_all_squash功能
# nfs服务端修改配置文件参数
[root @nfs ~ ]# cat /etc/exports
/date	172.16.1.0/24(rw,sync,no_all_squash)# 客户端操作,没有权限创建。原因:no_all_squash取消其他用户映射nfsnobody身份,以共享目录其他身份权限操作
[xuan @backup ~ ]$ touch /mnt/nfs/xuan_backup_no_squash.txt
touch: cannot touch ‘/mnt/nfs/xuan_backup_no_squash.txt’: Permission denied解决权限问题:
1.修改目录属主信息
2.修改目录其他用户权限chmod o+w /date

四、总结

1、权限这个问题的话

  • 首先就是配置文件的权限,

  • 还有就是共享目录的权限

2、配置文件参数

  • root_squash,all_squash,就是会将用户转换为nfsnobody,如果将共享目录属主和属组都改为nfsnobody就能直接操作了

  • no_root_squash,no_all_squash,不会将用户进行转换,也就是需要将共享目录o+w才能修改了

  • 单独是一个用户修改的话,可以将共享目录修改为这个用户

http://www.agseo.cn/news/359/

相关文章:

  • 低功耗蓝牙BLE与小程序通讯
  • 同事突然关心有没有对象?这可能是职场发展的隐形陷阱
  • TTS微软Azure
  • 12.6 类的封装
  • 深度解码你自己看着办:职场新人必须掌握的潜台词破解术
  • 6 个替代 Jira 的开源项目管理工具推荐
  • 记录一个Windows上的键盘鼠标模拟库和沟子库--Input
  • 惊世骇俗:《易经》六十四卦与数学公理完整映射表
  • 解决docker: Error response from daemon: Get “https://registry-1.docker.io/v2/“:连接超时问题
  • 27届春招备战一轮复习--第三期(推荐)
  • 数据集和数据系统_AI成为工作中很好用的协同成员了
  • IDM超详细图文安装激活教程,一次安装免费使用 Internet Download Manager
  • 标题
  • 12.5 多态与多态性
  • 集训日记
  • 数字孪生技术如何破解产线效率瓶颈? - 智慧园区
  • 三期集训 日记?
  • 需求爆炸?领歌3步科学精简法,让团队重获掌控力!
  • 从想法到代码:AI编程时代,我们如何高质量“喂养”AI?
  • 12.4 菱形继承问题(了解)
  • 25年CSP前ds做题记录
  • 极域电子学生机无法连接教师机
  • Python Flask框架入门_2.API增加授权验证
  • 12.2 类的派生
  • CSP-S模拟18
  • 在服务器后台运行python服务
  • HCIP回顾—2 OSPF工作过程及状态机制
  • python基础——函数小进阶
  • 你的开发服务器在说谎-热重载与热重启的关键区别
  • 在疼痛中,在喧嚣 失聪与惶惑中