NFS

一、NFS简介和架构图

  • NFS是Network File System的缩写,即网络文件系统。一种使用于分散式文件协定,功能是通过网络让不同的机器、不同的操作系统能够分享个人数据,让应用程序通过网络可以访问位于服务器磁盘中的数据。
  • NFS在文件传送或信息传送的过过程中,依赖于RPC协议。RPC,远程过程调用(Remote Procedure Call),是使客户端能够执行其他系统中程序的一种机制。NFS本身是没有提供信息传输的协议和功能的,但NFS却能让我们通过网络进行资料的分享,就是因为NFS使用了RPC提供的传输协议,可以说NFS就是使用PRC的一个程序。
  • NFS存储服务器主要用于用户上传的数据,图片音频、等信息

二、NFS适用场景

  • 2.1 NFS 最好是部署在局域网 ,不要在公网上 ;
  • 2.2 NFS 只能在 linux 上使用 (如果想让 windows 和 Linux 之间实现数据共享建议使用 FTP 或者 samba);
  • 2.3 NFS 适合在中小型企业使用

三、服务端配置(IP:10.10.50.9)

  • 检查系统中是否安装 NFS 和 RPC ,并进行安装NFS 和RPC
    [root@NFS ~]# rpm -qa nfs-utils rpcbind
    [root@NFS ~]# yum -y install nfs-utils rpcbind       #使用 yum 安装nfs 和 rpc
  • 在服务端创建共享目录/data/nfs/
    [root@NFS ~]# mkdir -p /data/nfs/[root@NFS ~]# chmod 777 /data/nfs/[root@NFS ~]# ll /data/
  • 编辑配置NFS配置文件
    [root@NFS ~]# cat >>/etc/exports<<EOF> /data/nfs 10.10.15.20(rw,sync,no_subtree_check) 10.10.12.198(rw,sync,no_subtree_check)> EOF[root@NFS ~]# cat /etc/exports/data/nfs 10.10.15.20(rw,sync,no_subtree_check) 10.10.12.198(rw,sync,no_subtree_check)[root@NFS ~]#

其中:/data/nfs 是服务器端共享的目录
10.10.15.20和10.10.12.198 是共享目录的客户端ip地址(rw,sync),其中rw代表拥有读写的权限,sync代表数据同步写入NFS服务器端的硬盘中。也可以用async,async是大数据时使用,是先写到缓存区,再写到磁盘里。no_subtree_check 即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率。

    [root@NFS ~]# exportfs -r                           #让配置文件生效
  • 启动RPC和NFS服务
    service rpcbind start #启动rpc service nfs start #启动nfs service rpcbind status #查看rpc运行状态service nfs status #查看nfs运行状态
  • 查看NFS服务是否向rpc注册端口信息
    [root@NFS ~]# rpcinfo -p localhost

选项与参数:

-p :针对某 IP (未写则预设为本机) 显示出所有的 port 与 porgram 的信息;
-t :针对某主机的某支程序检查其 TCP 封包所在的软件版本;
-u :针对某主机的某支程序检查其 UDP 封包所在的软件版本;
  • 在NFS设定妥当之后,可以先在服务端自我测试一下是否可以联机!利用 showmount 这个指令来查看!
    [root@NFS ~]# showmount -e localhostExport list for localhost:/data/nfs     10.10.12.198,10.10.15.20[root@NFS ~]#

选项与参数:

    -a :显示目前主机与客户端的 NFS 联机分享的状态;-e :显示某部主机的 /etc/exports 所分享的目录数据。

参数说明:

    #rpcinfo  -p     检查nfs服务是否有注册端口信息#showmount -e    检查共享目录信息

四、客户端配置(IP:10.10.12.198,10.10.15.20)

  • 查看系统中是否有nfs和rpc
    [root@rsync ~]#  rpm -qa nfs-utils rpcbind
  • 进行安装服务,并启动服务
    [root@rsync ~]# yum -y install nfs-utils rpcbind
    [root@rsync ~]# service rpcbind start #启动rpc [root@rsync ~]# service nfs start #启动nfs
  • 创建挂载目录
    [root@rsync]# mkdir -p /data/nfs
  • 查看客户端是否可以收到服务端的共享信息
    [root@rsync nfs]# showmount -e 10.10.50.9Export list for 10.10.50.9:/data      10.10.12.198,10.10.15.20[root@rsync nfs]#
  • 进行nfs 共享目录的挂载
    mount -t nfs 10.10.50.9:/data/nfs /data/nfs
    [root@localhost nfs]# df -hFilesystem               Size  Used Avail Use% Mounted on/dev/mapper/centos-root   50G   23G   28G  45% /devtmpfs                 3.8G     0  3.8G   0% /devtmpfs                    3.8G     0  3.8G   0% /dev/shmtmpfs                    3.8G  8.9M  3.8G   1% /runtmpfs                    3.8G     0  3.8G   0% /sys/fs/cgroup/dev/mapper/centos-home  407G  6.0G  401G   2% /home/dev/sda1               1014M  147M  868M  15% /boottmpfs                    770M     0  770M   0% /run/user/010.10.50.9:/data/nfs   50G   21G   30G  42% /data/nfs

服务端:

    [root@NFS nfs]# echo "nfs" > test.txt

客户端:

    [root@rsync data]# cat /data/nfs/test.txtnfs

五、问题

1,在部署nfs的时候,共享了一个文件夹。为了让远程nfs客户端挂载这个文件夹的时候都有可读写权限,我需要把服务器上的用户uid、gid设置成nfs服务端文件夹一样的权限。不过因为之前新建的用户uid、gid都是系统自动生成的,几台服务器之前某个用户的uid、gid可能都不一样,

解决方法

1. 需要把这个uid、gid都设置成统一某个值。

# usermod -u 2005 thn
# groupmod -g 2005 thn

thn用户的家目录下面的文件属主和属组会在命令执行后自动修改成新的uid、gid对应的属主 属  组,但是其他文件目录需要手动修改。手动修改的命令也比较简单。

# find / -user 2001 -exec chown -h thn {} \;
# find / -group 2001 -exec chgrp -h thn {} \;

这样用户和组的uid、gid就修改好了。可以用id命令看下是否修改的如我们所愿。

# ls -l /home/thn/
# id -u thn
# id -g thn
# grep thn /etc/passwd
# grep thn /etc/group

2.

服务端

# echo N > /sys/module/nfsd/parameters/nfs4_disable_idmapping
# service rpcbind restart

客户端

# echo N > /sys/module/nfs/parameters/nfs4_disable_idmapping
# service rpcbind restart

现在在服务端和客户端将发送字符串主体而不是数字 ID

Linux下部署NFS服务 局域网共享文件夹相关推荐

  1. Linux 下部署 TFTP 服务

    1. TFTP服务简介 TFTP是 Trivial File Transfer Protocol 的缩写,即简单文件传输协议,是一个基于 UDP 协议实现的用于在客户机和服务器之间进行简单文件传输的协 ...

  2. linux下的nfs服务配置

    1.NFS服务器端与客户端的安装: sudo apt-get install nfs-kernel-server  nfs-common  portmap 2.配置portmap 两种方法任选一种就可 ...

  3. linux下启动nfs服务,linux下Samba服务和NFS服务配置的方法

    linux下Samba服务和NFS服务配置 一.Samba服务配置过程 samba的功能很简单,就是为了使linux和windows之间能够实现共享.并且利用samba搭建文件服务器,不仅比windo ...

  4. linux 下 安装 nfs 服务

    一.debian 配置nfs服务器 1. 安装 nfs 服务 apt-get install nfs-common nfs-kernel-server 2.创建需要共享的目录 mkdir /mnt/n ...

  5. linux下部署tomcat服务器之安装jdk

    如果一开始安装过jdk的可以卸载 rpm -qa | grep java rpm -e --nodeps java-1.6.0-openjdk-1.6.0.0-1.50.1.11.5.el6_3.x8 ...

  6. linux下部署tomcat没起成功,linux下部署tomcat 上线jpress博客系统

    tomcat Tomcat服务器是一个免费的开放源代码的Web应用服务器,属于轻量级应用服务器. tomcat有三个端口 开始部署 安装tomcat 第一步:下载tomcat 安装包 tomcat官网 ...

  7. Linux 下 离线下载服务部署 CCAA的安装使用

    Linux 下 离线下载服务部署 CCAA的安装使用 我的小站.Github CCAA 是服务器离线下载解决⽅案包,组件包含了Aria2 提供离线下载,ccaa_web⽀撑AriaNg运⾏, Aria ...

  8. Linux配置Samba实现局域网共享文件夹

    Linux配置Samba实现局域网共享文件夹 环境: ubuntu21.04 windows10 主要参考:https://blog.csdn.net/light169/article/details ...

  9. Linux下的samba服务配置详解

    Linux下的samba服务配置详解 一.Samba介绍 二.Samba工具及特性 三.搭建环境介绍 四.Samba配置步骤 1.服务端操作 2.在客户端操作 五.测试用户的权限情况 一.Samba介 ...

最新文章

  1. 研究SLAM,对编程的要求有多高?
  2. Nat. Biotech.|药物设计的AI生成模型
  3. 阿里云Redis多线程性能提升思路解析
  4. 以为来自东华理工大学学生的SCI投稿经验
  5. (26)FPGA编码器设计(第6天)
  6. axios 上传文件 封装_axios使用及封装
  7. [论文摘录] Web Service QoS的几个研究方向
  8. throw new exception后程序不停止_Java之Exception剖析
  9. 你的设备中缺少重要的安全和质量修复_2020华富管道非开挖修复工程施工欢迎前来咨询...
  10. 零基础怎样自学编程?初学者如何学习编程?编程学习入门指南(文章较长,需要耐心看完)
  11. 计算机是概念化不是程序化,走进计算思维
  12. 修改docker ip网段
  13. GTX1050和GTX1050Ti哪个值得买?
  14. 升级电脑系统或者重装WIN10后,PADS软件卡死
  15. 2023最新个人免签约免挂机即时到账码/源支付源码+店员监控插件
  16. 未连接到互联网代理服务器出现问题,或者地址有误,该如何解决?
  17. 通过短信网关发送Wappush消息
  18. Modbus RTU转Modbus TCP模块,RS232/485转WiFi模块,WJ105
  19. linux 基本命令及用法列子
  20. 楞严咒全文正确注音版_楞严咒全文注音

热门文章

  1. 学计算机需要右脑还是左脑,程序员,你是左脑工作者还是右脑工作者?
  2. python内置函数与闭包_Python进阶(五)----内置函数Ⅱ 和 闭包
  3. [C++学习日记]-08-函数
  4. html play安卓,ImgPlay安卓版
  5. 虚拟机(centos7)安装openvpn
  6. 国际号码规则,看这里
  7. C语言学习笔记之字符串拼接的2种方法
  8. 淘淘商城——Redis五种数据类型介绍
  9. 如何查找项目的源代码
  10. 百度地图API实例开发 分享