zoukankan      html  css  js  c++  java
  • 处理器开发平台4412开发板学习-NFS服务器的搭建方法

    先来介绍一下NFS

    NFS Network File System的缩写,即网络文件系统。一种使用于分散式文件系统的协定,由Sun公司开发,于1984年向外公布。功能是通过网络让不同的机器、不同的操作系统能够彼此分享个别的数据,让应用程序在客户端通过网络访问位于服务器磁盘中的数据,是在类Unix系统间实现磁盘文件共享的一种方法。NFS 的基本原则是容许不同的客户端及服务端通过一组RPC分享相同的文件系统,它是独立于操作系统,容许不同硬件及操作系统的系统共同进行文件的分享。NFS在文件传送或信息传送过程中依赖于RPC协议。RPC,远程过程调用 (Remote Procedure Call) 是能使客户端执行其他系统中程序的一种机制。NFS本身是没有提供信息传输的协议和功能的,但NFS却能让我们通过网络进行资料的分享,这是因为NFS使用了一些其它的传输协议。而这些传输协议用到这个RPC功能的。可以说NFS本身就是使用RPC的一个程序。或者说NFS也是一个RPC SERVER。所以只要用到NFS的地方都要启动RPC服务,不论是NFS SERVER或者NFS CLIENT。这样SERVERCLIENT才能通过RPC来实现PROGRAM PORT的对应。可以这么理解RPCNFS的关系:NFS是一个文件系统,而RPC是负责负责信息的传输。
    NFS分服务器和客户机,当使用远端文件时只要用mount命令就可把远端NFS服务器上的文件系统挂载在本地文件系统之下,操作远程文件与操作本地文件没有不同。NFS服务器所共享文件或目录记录在/etc/exports文件中。
           嵌入式Linux开发中,会经常使用NFS,目标系统通常作为NFS客户机使用,Linux主机作为NFS服务器。在目标系统上通过NFS,将服务器的NFS共享目录挂载到本地,可以直接运行服务器上的文件。在调试系统驱动模块以及应用程序,NFS都是十分必要的,并且Linux还支持NFS根文件系统,能直接从远程NFS root启动系统,这对嵌入式Linux根文件系统裁剪和集成也是十分有必要的。


    接下来说说如何搭建NFS服务器

    1、安装nfs服务
    apt-get install nfs-kernel-server
    2、接下来需要配置/etc/exports,使用 vi 命令打开/etc/exports在其中增加NFS服务器目录。 一个NFS服务器可以共享多个NFS目录,在/etc/exports文件中,每个目录的设置独占一行,编写格式如下:
    NFS共享目录路径    客户机IP或者名称(参数1,参数2,...,参数n)
     
    参数
    说明
    ro
    只读访问
    rw
    读写访问
    sync
    所有数据在请求时写入共享
    async
    nfs在写入数据前可以响应请求
    secure
    nfs通过1024以下的安全TCP/IP端口发送
    insecure
    nfs通过1024以上的端口发送
    wdelay
    如果多个用户要写入nfs目录,则归组写入(默认)
    no_wdelay
    如果多个用户要写入nfs目录,则立即写入,当使用async时,无需此设置
    hide
    nfs共享目录中不共享其子目录
    no_hide
    共享nfs目录的子目录
    subtree_check
    如果共享/usr/bin之类的子目录时,强制nfs检查父目录的权限(默认)
    no_subtree_check
    不检查父目录权限
    all_squash
    共享文件的UIDGID映射匿名用户anonymous,适合公用目录
    no_all_squash
    保留共享文件的UIDGID(默认)
    root_squash
    root用户的所有请求映射成如anonymous用户一样的权限(默认)
    no_root_squash
    root用户具有根目录的完全管理访问权限
    anonuid=xxx
    指定nfs服务器/etc/passwd文件中匿名用户的UID
    anongid=xxx
    指定nfs服务器/etc/passwd文件中匿名用户的GID
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
    例如可写成/home/topeet/linux/ *(rw,sync,no_root_squash),*表示允许所有网络段访问,如果只允许指定的网段访问可更改为192.168.1.*
    3、启动nfs服务
    重启 portmap 服务,输入/etc/init.d/portmap restartservice portmap start) 命令,nfs是一个RPC程序,使用它前,需要映射好端口,通过portmap设定
    重启 nfs 服务,输入/etc/init.d/nfs-kernel-server restart 命令
    4、测试nfs服务
    mount -t nfs localhost: /home/topeet/minilinux/system /mnt
    -t nfs:指定格式为nfs
    localhost: /home/topeet/minilinux/system服务器地址+共享的目录
    /mnt 本机的目录
    使用df -l即可查看是否挂载成功
    5、几个常见问题
    1)服务端和客户端都需要开启portmap服务。RCPnfs mountumount时通信的方式。
    2)假如客户端portmap没有启动,mount时,会非常慢,最终会失败。umount时,即使本地的portmap是关闭的,也能umount成功。 www.2cto.com  
    3)挂载完成后,服务端的portmap停止后,nfs仍然工作正常,但是umout财会提示: not found / mounted or server not reachable。重启服务器的portmap也无济于事。
    4)假如服务端的portmap重启了,那么nfs也要跟着重启,否则nfs工作仍然是不正常的。
    5)假如服务端nfs关闭(IP是通的),这时客户端会无法umount,这时使用umount -f /nfs一般能成功,当服务端死机时,umount -f /nfs 有可能会失败,这时可以使用 umount -l /nfs .
     
    几个建议:
    1)使用NFS,就要使用portmapNFS严重依赖于portmap,所以不要试图去停止它(portmap)
    2)当不能umount /nfs 分区时,试着使用umount -f /nfs,一般都能成功。
    3)umount -f /nfs不能umount时,可以试试umount -l /nfs. umount -l是最终级的umount
     
     
  • 相关阅读:
    服务器状态码
    QuerySet中添加Extra进行SQL查询
    django配置一个网站建设
    MySQL数据库查询中的特殊命令
    125. Valid Palindrome
    121. Best Time to Buy and Sell Stock
    117. Populating Next Right Pointers in Each Node II
    98. Validate Binary Search Tree
    91. Decode Ways
    90. Subsets II
  • 原文地址:https://www.cnblogs.com/linda332/p/6943414.html
Copyright © 2011-2022 走看看