zoukankan      html  css  js  c++  java
  • nfs

    nfs

    nfs简介

    nfs特点

    • NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源
    • 在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样
    • nfs适用于Linux与Unix之间实现文件共享,不能实现Linux与Windows间的文件共享功能
    • nfs是运行在应用层的协议,其监听于2049/tcp和2049/udp套接字上
    • nfs服务只能基于IP进行认证

    nfs的应用场景

    nfs有很多实际应用场景,以下是一些常用的场景:

    • 多个机器共享一台CDROM或其他设备。这对于在多台机器中安装软件来说更加便宜与方便
    • 在大型网络中,配置一台中心NFS服务器用来放置所有用户的home目录可能会带来便利。这些目录能被输出到网络以便用户不管在哪台工作站上登录,总能得到相同的home目录
    • 不同客户端可在NFS上观看影视文件,节省本地空间
    • 在客户端完成的工作数据,可以备份保存到NFS服务器上用户自己的路径下

    nfs的体系组成

    nfs体系至少有两个主要部分:

    • 一台nfs服务器
    • 若干台客户机

    nfs工作机制

    nfs是基于rpc来实现网络文件系统共享的。所以我们先来说说rpc

    //NFS服务器端运行着四个进程:
        nfsd
        mountd
        idmapd
        portmapper
    
    idmapd  //实现用户帐号的集中映射,把所有的帐号都映射为NFSNOBODY,但是在访问时却能以本地用户的身份去访问
    
    mountd  //用于验证客户端是否在允许访问此NFS文件系统的客户端列表中,在则允许访问(发放一个令牌,持令牌去找nfsd),否则拒绝访问
            //mountd的服务端口是随机的,由rpc服务(portmapper)提供随机端口号
    
    nfsd    //nfs的守护进程,监听在2049/tcp和2049/udp端口上
            //不负责文件存储(由NFS服务器本地内核负责调度存储),用于理解客户端发起的rpc请求,并将其转交给本地内核,而后存储在指定的文件系统上
    
    portmapper  //NFS服务器的rpc服务,其监听于111/TCP和111/UDP套接字上,用于管理远程过程调用(RPC)
    
    

    nfs管理

    //安装
        yum -y install nfs-utils
    
    //启动
        systemctl start rpcbind nfs-server
    

    使用shoumount命令测试NFS服务器的输出目录状态

    //语法:showmount [选项] [NFS服务器名称或地址]
    //常用的选项有:
        -a  //显示指定NFS服务器的所有客户端主机及其所连接的目录
        -d  //显示指定的NFS服务器中已被客户端连接的所有输出目录
        -e  //显示指定的NFS服务器上所有输出的共享目录
    

    使用shoumount命令测试NFS服务器的输出目录状态

    mount -t nfs SERVER:/path/to/sharedfs /path/to/mount_point
    

    在客户端设置开机自动挂载nfs:编辑/etc/fstab文件,添加如下格式的内容

    SERVER:/PATH/TO/EXPORTED_FS /mnt_point nfs defaults,_netdev 0 0
    

    检查输出目录所使用的选项

    在配置文件/etc/exports中,即使在命令行中只设置了一两个选项,但在真正输出目录时,实际上还带有很多默认的选项。通过查看/var/lib/nfs/etab文件,可以看到具体使用了何选项

    [root@yc1 ~]# cat /var/lib/nfs/etab
    

    NFS安装与使用

    #yc1
    //安装nfs rpcbind
    [root@yc1 ~]# yum -y install nfs-utils rpcbind
    
    //关闭防火墙
    [root@yc1 ~]# systemctl stop firewalld
    
    //创建需要共享的abc文件
    [root@yc1 ~]# mkdir -p /yqh/file
    [root@yc1 ~]# cd /yqh/file/
    [root@yc1 file]# touch abc
    
    //配置NFS服务端配置文件,此文件用于定义共享的目录及权限 
    [root@yc1 ~]# vim /etc/exports
    /yc/file 192.168.23.141 *(rw)
    
    //启动服务
    [root@yc1 ~]# systemctl enable --now nfs-server
    [root@yc1 ~]# systemctl enable --now rpcbind
    
    #yc2
    //安装showmount命令
    [root@yc2 ~]# yum -y install showmount
    
    //关闭防火墙
    [root@yc2 ~]# systemctl stop firewalld
    
    //显示NFS服务器列表
    [root@yc2 ~]# showmount -e 192.168.23.140
    Export list for 192.168.23.140:
    /yc/file (everyone)
    

    验证

    [root@yc2 ~]# mount 192.168.100.1:/yqh /opt
    
    //查看目录,挂载完成,共享文件成功
    [root@yc2 ~]# cd /opt
    [root@yc2 opt]# ls
    file
    [root@yc2 opt]# cd file/
    [root@yc2 file]# ls
    abc
    [root@yc2 file]# df -h
    Filesystem             Size  Used Avail Use% Mounted on
    devtmpfs               883M     0  883M   0% /dev
    tmpfs                  901M     0  901M   0% /dev/shm
    tmpfs                  901M  8.6M  892M   1% /run
    tmpfs                  901M     0  901M   0% /sys/fs/cgroup
    /dev/mapper/rhel-root   17G  1.5G   16G   9% /
    /dev/sda1             1014M  179M  836M  18% /boot
    tmpfs                  181M     0  181M   0% /run/user/0
    /dev/sr0               7.9G  7.9G     0 100% /mnt
    192.168.23.140:/yc      17G  2.1G   15G  13% /opt
    
  • 相关阅读:
    线程客户端Socket多客户端编程实例
    型文法文法文法的类型
    数据网络一键完成数据网络备份与恢复
    nullnullvc中加花
    sql文件Pro*C编程研究一:从.pc到.exe
    绑定函数【OpenGL】关于OpenGL中Bind函数的理解
    包删除Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/mail/util/LineInputStream
    开源企业开源力量公开课第20期“拥抱开源,企业IT自主之路”
    剑侠情缘状态hdu 4558 剑侠情缘(dp, 西山居复赛1第2题)
    硬件问题关于创业
  • 原文地址:https://www.cnblogs.com/Ycqifei/p/14608808.html
Copyright © 2011-2022 走看看