zoukankan      html  css  js  c++  java
  • 三、【NFS服务器】虚拟机nfs服务器搭建

    一、NFS服务器简介

    1、什么是NFS?

    • NFS就是Network File System的缩写,它最大的功能就是可以通过网络,让不同的机器、不同的操作系统可以共享彼此的文件
    • NFS服务器可以让PC将网络中的NFS服务器共享的目录挂载到本地端的文件系统中,而在本地端的系统中来看,那个远程主机的目录就好像是自己的一个磁盘分区一样,在使用上相当便利;
    • NFS一般用来存储共享视频图片等静态数据。

    2、nfs挂载原理

                                                                     

    如上图示:

      当我们在NFS服务器设置好一个共享目录/home/public后,其他的有权访问NFS服务器的NFS客户端就可以将这个目录挂载到自己文件系统的某个挂载点,这个挂载点可以自己定义,如上图客户端A与客户端B挂载的目录就不相同。并且挂载好后我们在本地能够看到服务端/home/public的所有数据。如果服务器端配置的客户端只读,那么客户端就只能够只读。如果配置读写,客户端就能够进行读写。挂载后,NFS客户端查看磁盘信息命令:df –h

      既然NFS是通过网络来进行服务器端和客户端之间的数据传输,那么两者之间要传输数据就要有想对应的网络端口,NFS服务器到底使用哪个端口来进行数据传输呢?基本上NFS这个服务器的端口开在2049,但由于文件系统非常复杂。因此NFS还有其他的程序去启动额外的端口,这些额外的用来传输数据的端口是随机选择的,是小于1024的端口;既然是随机的那么客户端又是如何知道NFS服务器端到底使用的是哪个端口呢?这时就需要通过远程过程调用(Remote Procedure Call,RPC)协议来实现了!

    二、挂载过程

    现在我需要挂载nfs服务器去实现主机和开发板之间共享文件。

    1、安装软件包

    sudo apt-get update 	
    sudo apt-get install nfs-common nfs-kernel-server  
    

    2、配置服务器

    打开/etc/export文件去配置服务器

    •  /opt/nfs:要共享的目录
    • * :允许所有的网段访问
    • rw :指客户端拥有读写权限,还是有一个ro选项,代表只读
    • sync:指同步写入资料到内存和硬盘中,与之相反的选项是async.
    • no_subtree_check: 不检测子目录,提高性能。
    • root_squash:如果客户端使用root访问目录,会被当做匿名用户(也就是说,权限比较小,比较安全)。
    • no_root_squash:客户使用root访问共享目录时,还是拥有root权限,极不安全。
    • all_squash:无论客户端使用什么用户访问共享目录都会被当作匿名用户。  

    3、重启服务器及查看服务器状态

    sudo /etc/init.d/nfs-kernel-server restart 		--重启nfs服务器
    sudo /etc/init.d/nfs-kernel-server status   		--查看nfs是否开启
    netstat -a | grep nfs                 	                --或用这个查看nfs是否开启 

    4、创建共享目录

    刚才在/etc/exports文件中我们配置了/opt/nfs目录为共享目录,那我们在opt下创建nfs目录,并修改目录权限。此时我们服务器就安装配置完成了。

    5、开发板端挂载虚拟机的nfs共享目录。

    挂载之前我们要保证开发板和主机之间时可以ping通的,然后再进行挂载。

    开发板挂载命令:

    mount -t nfs -o nolock 虚拟机IP:/opt/nfs   share     --其中share是开发板上新建的共享目录
    

    6、挂载成功后我们在虚拟机的/opt/nfs下创建一个test文件  

    此时我们开发板的目录下也会出现这个新建的test文件,如此就实现了虚拟机和主板的文件共享。

     

     

  • 相关阅读:
    学习Kubernetes,这些负载均衡知识点得知道!
    Nginx请求处理流程
    字节跳动面试题+答案,答对了30+
    Cache 和 Buffer 的区别在哪里
    优化你的HTTPS(下),你需要这么做
    优化你的HTTPS(上),你需要这么做
    swift之Mac中NSSplitView的简单实用
    oc之mac中- NSBox
    Mac之NSImageView的简单实用
    swift之预防 Timer 的循环引用
  • 原文地址:https://www.cnblogs.com/yuanqiangfei/p/15644850.html
Copyright © 2011-2022 走看看