zoukankan      html  css  js  c++  java
  • NFS网络文件系统

    FFS服务端概述

    NFS,是Network File System的简写,即网络文件系统。网络文件系统是FreeBSD支持的文件系统中的一种,也被称为NFS; NFS允许一个系统在网络上与他人共享目录和文件

     NFS服务器可以让PC将网络中的NFS服务器共享的目录挂载到本地端的文件系统中,而在本地端的系统中来看,那个远程主机的目录就好像是自己的一个磁盘分区一样,在使用上相当便利;

    模式: C/S 模式

    端口: 

    NFS是Net File System的简写,即网络文件系统.NFS通常运行于2049端口。

    部署NFS

      由于在使用NFS服务进行文件共享之前,需要使用RPC(Remote Procedure Call,远程过程调用)服务将NFS服务器的IP地址和端口号等信息发送给客户端。因此,在启动NFS服务之前,还需要顺带重启并启用rpcbind服务程序。

    步骤

      首先服务器端先将自己要共享的文件和要共享给的IP指定,例如我们在NFS服务器设置好一个共享目录/home/public后,其他的有权访问NFS服务器的NFS客户端就可以将这个目录挂载到自己文件系统的某个挂载点,这个挂载点可以自己定义,至于客户端对于这个文件的权限(只读或者读写等)是在服务器端进行设置的。下面我们来详细的说一下流程:

    第一步、下载安装(客户机和服务端都必须安装

    要部署NFS服务,必须安装下面两个软件包:nfs-utils:NFS主程序   |   rpcbind:PRC主程序;  

      既然NFS是通过网络来进行服务器端和客户端之间的数据传输,那么两者之间要传输数据就要有想对应的网络端口,NFS本身是没有提供信息传输的协议和功能的,那么客户端又是如何知道NFS服务器端到底使用的是哪个端口呢?这时就需要通过远程过程调用(Remote Procedure Call,RPC)协议来实现了!

      所以要安装 NFS 的同时也要安装 RPC,rpcbind是一个RPC服务,主要是在nfs共享时候负责通知客户端,服务器的nfs端口号的。简单理解rpc就是一个中介服务。

    [root@songqi ~]# yum install rpcbind nfs-utils -y

    第二步、配置文件

    进入NFS 的配置文件 /etc/exports

    [root@localhost ~]# vim /etc/exports
       1 /songqi 192.168.5.3(rw) 192.168.5.4(rw) 192.168.5.99(rw)

    /songqi    表示共享的文件,rw表示所赋予的权限

    /data  *(rw)   表示给所有的ip共享vim

    /data  192.168.10.0/24(rw)   把网段共享出去 24表示掩码

    nfs也可以共享多个目录

    /ken 192.168.64.5(rw)
    /test 192.168.64.7(rw)

    ()里的参数可以有

    rw

    表示可读写

    ro

    Read-only表示只能读权限

    Sync

    请求或者写入数据时,数据同步写入到NFS server的硬盘中后才会返回

    no_root_squas

    访问nfs server共享目录的用户如果是root的话,它对该目录具有root权限。这个配置原本为无盘用户准备的。用户应避免使用!

    root_squash

    对于访问NFS server共享目录的用户,如果是root的话会被压缩成为nobody用户身份。

    all_squash

    不管访问nfs server共享目录的用户身份如何包括root,它的权限都将被压缩成为匿名用户,同时他们的udi和gid都会变成nobody或nfsnobody账户的uid,gid。在多个nfs客户端同时读写nfs server数据时,这个参数很有用可以确保大家写入的数据的权限是一样的。

    但不同系统有可能匿名用户的uid,gid不同。因为此处我们需要服务端和客户端之间的用户是一样的。比如说:服务端指定匿名用户的UID为2000,那么客户端也一定要存在2000这个账号才可以

    anonuid

    anonuid就是匿名的uid和gid。说明客户端以什么权限来访问服务端,在默认情况下是nfsnobody。Uid65534.

    anongid

    同anongid,就是把uid换成gid而已

    第三步  更改属主属组

    客户端访问服务端默认是使用nfsnobody这个用户来进行访问的

    [root@songqi ~]# chown -R nfsnobody: /songqi

    第四步  重启rpcbind、nfs服务

    在centos7里,nfs服务依赖于rpcbind服务,故应在rpcbind服务启动成功后再启动nfs服务

    [root@songqi ~]# systemctl restart rpcbind
    [root@songqi ~]# systemctl restart nfs

    第五步  客户端挂载使用

    在客户端上不能直接使用服务端共享的目录,就像一块磁盘必须接到电脑上才能使用一样吗,必须要挂载在客户端的本地文件上

    [root@host1 ~]# showmount -e 172.20.10.6     #查看共享(后面加的IP地址是服务端IP)
    Export list for 192.168.5.2:
    /songqi 192.168.5.0/24                  #192.168.5.0网段的主机均可以获取共享文件
    [root@host1 ~]# mkdir /test                       #创建挂载目录
    [root@host1 ~]# mount -t nfs 192.168.5.2:/songqi /test  #将服务端/songqi挂载到客户端的/test
    [root@host1 ~]# mkdir /test/ken            #测试是否共享成功
  • 相关阅读:
    一张图告诉你为什么是服务网关,文末有现金抽奖。
    Java中的宏变量,宏替换详解。
    Java中创建String的两道面试题及详解
    JSON Web Token (JWT),服务端信息传输安全解决方案。
    jdk紧急漏洞,XMLDecoder反序列化攻击
    Java对象引用四个级别(强、软、弱、虚)
    Java7任务并行执行神器:Fork&Join框架
    (2)Django-pycharm部署
    批处理编写
    (1)Django安装
  • 原文地址:https://www.cnblogs.com/tomsongqi/p/10740231.html
Copyright © 2011-2022 走看看