zoukankan      html  css  js  c++  java
  • UOS系统NFS文件共享

    1.安装

    2.服务端配置

    2.1 服务端配置

    2.2 开机自启动(包含linux自启动知识点)

           2.3 固定端口

    3.客户端配置

    4. 命令详解

    4.1 挂载命令详解

    4.2 常用命令

    4.2.1     free -m/-g                     内存使用情况
    4.2.2    df -h                              文件系统空间占用等信息
    4.2.3    du -h <dir>                     查看某目录总体空间占用状态
    4.2.4    fuser -v <mount_point> 查看正在访问指定文件系统的进程
    4.2.5    swap                             交互分区
    4.2.6    fdisk -l                          查看所有分区,包括未挂上的分配及usb设备
    4.2.7    blkid <dir>                  参考文件系统详细信息(格式、label、uuid等)

    4.3 挂载后进行自动挂载详解


    1.安装

      NFS服务端安装:

       sudo apt install nfs-kernel-server(UOS系统自带了,不需要安装)

      NFS客户端安装:

      sudo apt install nfs-common (UOS系统自带了,不需要安装)

      

    2.服务端配置

    2.1 服务端配置

      1)创建共享目录 sudo mkdir  -p /data/nfs

      2)配置 /etc/exports (NFS挂载目录及权限由/etc/exports文件定义)   vi /etc/exports

            /data/nfs 10.140.1.*(rw,sync,no_root_squash,no_subtree_check)

           【eg:网路段10.140.1.0到10.140.1.24网路段才可挂载且权限只读:  /data/nfs  10.140.1.0/24(ro) 】

           【eg:/home/share 192.168.102.15(rw,sync) *(ro)  (配置说明: 对192.168.102.15赋予读写权限,其他机器仅有只读权限。)】

      • /data/nfs                    要共享的目录
      • 10.140.1.*                 可以挂载的ip,如果全部可挂载,可以直接写成 *
      • rw            读写 
      • ro               只读
      • sync                          同步, 同时将数据写入到内存与硬盘中,保证不丢失数据
      • async                        优先将数据保存到内存,然后再写入硬盘;这样效率更高,但可能会丢失数据请注意
      • root_squash             当NFS客户端以root管理员访问时,映射为NFS服务器的匿名用户   即 root用户的所有请求映射成如anonymous用户一样的权限(默认)
      • no_root_squash       当NFS客户端以root管理员访问时,映射为NFS服务器的root管理员   即NFS 服务器共享目录用户的属性,如果用户是 root,那么对于这个共享目录来说就具有 root 的权限
      • all_squash                无论NFS客户端使用什么账户访问,均映射为NFS服务器的匿名用户   即  共享文件的UID和GID映射匿名用户anonymous,适合公用目录。
      • no_all_squash          保留共享文件的UID和GID(默认)
      • subtree_check          如果共享/usr/bin之类的子目录时,强制NFS检查父目录的权限(默认)
      • no_subtree_check   和上面相对,不检查父目录权限。
      • secure                      NFS通过1024以下的安全TCP/IP端口发送
      • insecure                   NFS通过1024以上的端口发送
      • wdelay                     如果多个用户要写入NFS目录,则归组写入(默认)
      • no_wdelay               如果多个用户要写入NFS目录,则立即写入,当使用async时,无需此设置。
      • hide                         在NFS共享目录中不共享其子目录
      • no_hide                   共享NFS目录的子目录
      • anonuid=xxx           指定NFS服务器/etc/passwd文件中匿名用户的UID
      • anongid=xxx           指定NFS服务器/etc/passwd文件中匿名用户的GID

     

            检查配置是否有错: source /etc/exports

           

               另 :统信系统我设置的 /data/nfs 10.140.1.37(rw,sync,no_root_squash,no_subtree_check)    使用source /etc/exports命令检测报错(10.140.1.* 就可以不报错):

             后经重启后验证,虽然用 source /etc/exports 检测报错,但实际是生效的。

            但使用 /data/nfs 10.140.1.0/37(rw,sync,no_root_squash,no_subtree_check) ,报错,重启时启动报错,是用不了这个的。

          exportfs     是不是我们每次修改了配置文件都需要重启Debian NFS服务器服务呢? 这个时候我们就可以用exportfs命令重新扫描/etc/exports文件,来使改动立刻生效。

          比如: # exportfs -au 卸载所有共享目录

      # exportfs -rv 重新共享所有目录并输出详细信息

      # man exportfs      exportf 命令有软件包 nfs-kernel-server 提供,详细的 exportfs 命令说明请查看

       3)启动NFS服务  

             sudo /etc/init.d/rpcbind restart 

             sudo /etc/init.d/nfs-kernel-server restart   (启动nfs,如后面再修改/etc/exports,需重启NFS才生效)(两个命令哟 start、stop、)

     

             查询是否启动  ps -ef|grep nfs

      

    2.2 开机自启动(包含linux自启动知识点)

          当重启服务器时,都需要重新启动NFS服务。故进行开机自启动:

            vi  /etc/rc.local

         

           自启动知识点https://www.cnblogs.com/fatt/p/4790561.html

    2.3 固定端口

             如有防火墙,需固定端口,并防火墙开通此端口。

    1) 固定mountd端口   

         nfs 和 portmapper两个服务是固定端口的,nfs为2049,portmapper为111

    系统 RPC服务在 nfs服务启动时默认会为 mountd动态选取一个随机端口(32768--65535)来进行通讯,我们可以通过编辑/etc/services 文件为 mountd指定一个固定端口
    NFS的守护进程: rpc.nfsd: 它是基本的NFS守护进程,主要功能是管理客户端是否能够登录服务器 默认 rpc.mountd: 它是RPC安装守护进程,主要功能是管理NFS的文件系统。当客户端顺利通过rpc.nfsd登录NFS服务后,在使用NFS服务所提供的文凭前,还必须通过文件使用权限的验证。它会读取NFS的配置文件/etc/exports来对比客户端权限。 portmap: portmap的主要功能是进行端口映射工作。当客户端尝试连接并使用RPC服务器提供的服务(如NFS服务)时,portmap会将所管理的与服务对应的端口提供给客户端,从而使客户可以通过该端口向服务器请求服务。

      rpcinfo -p  <host>  查看rcp进程

      vi /etc/services  在末尾添加  <mountd 端口号/udp>  <mountd 端口号/tcp>

     2)防火墙配置

       如果linux启动了防火墙,那么配置防火墙iptables文件即可。

      如果是华为云或阿里云,则安全组开放 111、2049、60180的tcp和udp即可。  

      参考网址:https://segmentfault.com/a/1190000016597587

    3.客户端配置

      1)使用showmount 命令查看nfs服务器共享信息。输出格式为“共享的目录名称 允许使用客户端地址”。 showmount命令参数:

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

       2)映射服务端ip   sudo vi /etc/hosts

                   

       3)挂载

                查看挂载情况 df -h 

        创建要挂载的文件夹  sudo mkdir -p /mnt/nfs/share

                挂载:mount -n -o nolock nfs.sharedir:/data/nfs /mnt/nfs/share     

                检查: 

         4)解挂 umount  /mnt/nfs/share

         5)自动挂载

      编辑fstab文件, 使系统每次启动时都能自动挂载$ sudo vi /etc/fstab

      添加如下:nfs.sharedir:/data/nfs /mnt/nfs/share nfs4 defaults 0 0

      

    # 要挂载的设备或伪文件系统     挂载点    文件系统类型    挂载选项   转储频率   自检次序 
    10.140
    .1.35:/data/nfs /mnt/nfs/share nfs4 defaults 0 0 10.140.1.35:/data/nfs 要挂载的伪文件系统 mnt/nfs/share 挂载点 nfs4 文件系统类型 defaults 挂载选项 第一个数字  转存频率 0(禁用)、1(每天转存) 、2(每隔一天转存)。(由于备份 ext2/ext3 文件系统的程序要用到。因此文件系统为ext2/ext3 的条目要设成‘1’,所有其他条目都为‘0’) 第二个数字 自检次序 0(不检查文件系统)、1(先检查)、2(检查) 。 (所有非Linux文件系统可移动的和网络介质虚拟文件系统都要设成‘0’; 由于根分区要先被挂载(接着检查),‘/’条目要设成‘1’; 而所有其他不可移动的及Linux文件系统本地介质都要设成‘2’) (我在挂载nfs文件系统时忘记写 文件系统类型了,直接导致系统启动不起来了,所以此文件编辑注意些别错了

        


    4. 其他命令详解

    4.1 挂载命令详解:mount [-fnrsvw] [-t vfstype] [-o options]   device   dir      

                                 【 eg:mount -o nolock -t nfs 192.168.1.24:/home/test /mnt/nfs    (-t nfs 文件系统类型为nfs, -o nolock 文件锁)】

    • device:指明要挂载的设备
      • (1) 设备文件:例如/dev/sda5
      • (2) 卷标:-L 'LABEL', 例如 -L 'MYDATA'
      • (3) UUID, -U 'UUID':例如 -U '0c50523c-43f1-45e7-85c0-a126711d406e'
      • (4) 伪文件系统名称:proc, sysfs, devtmpfs, configfs
    • dir:挂载点
      • (1)事先存在;建议使用空目录;
      • (2)进程正在使用中的设备无法被卸载
    • 常用命令选项:
      •     -t vsftype:指定要挂载的设备上的文件系统类型;通常不必指定。mount 会自动选择正确的类型。常用类型有光盘或光盘镜像:iso9660;DOS fat16文件系统:msdos;Windows 9x fat32文件系统:vfat;Windows NT ntfs文件系统:ntfs;Mount Windows文件网络共享:smbfs;UNIX(LINUX) 文件网络共享:nfs
      •     -r: readonly,只读挂载;
      •     -w: read and write, 读写挂载;
      •     -n: 不更新/etc/mtab; 
      •     -a:自动挂载所有支持自动挂载的设备;(定义在了/etc/fstab文件中,且挂载选项中有“自动挂载”功能)
      •     -L 'LABEL': 以卷标指定挂载设备;
      •     -U 'UUID': 以UUID指定要挂载的设备;
      •     -B, --bind: 绑定目录到另一个目录上;
      •  -o options:(挂载文件系统的选项,主要用来描述设备或档案的挂接方式)
      •                    (默认挂载选项:defaults:rw, suid, dev, exec, auto, nouser, and async)
      • loop:用来把一个文件当成硬盘分区挂接上系统     
      • ro:只读
      • rw:读写
      • nolock 文件锁
      • iocharset:指定访问文件系统所用字符集
      • async:异步模式;   
      • sync:同步模式;   
      • atime/noatime:包含目录和文件;  
      • diratime/nodiratime:目录的访问时间戳
      • auto/noauto:是否支持自动挂载
      • exec/noexec:是否支持将文件系统上应用程序运行为进程
      • dev/nodev:是否支持在此文件系统上使用设备文件;
      • suid/nosuid:是否支持在此文件系统上使用特殊权限 
      • remount:重新挂载
      • user/nouser:是否允许普通用户挂载此设备
      • acl:启用此文件系统上的acl功能
      • 注意:上述选项可多个同时使用,彼此使用逗号分隔;

    注意:查看内核追踪到的已挂载的所有设备:cat /proc/mounts

    4.2 常用命令

    4.2.1  free [OPTION]  内存空间使用状态

      • -m: 以MB为单位
      • -g: 以GB为单位

    4.2.2   df  文件系统空间占用等信息的查看工具

      •  -h: human-readable
      •  -i:  inodes instead of blocks
      •  -P: 以Posix兼容的格式输出

    4.2.3 du  查看某目录总体空间占用状态  du [OPTION]... DIR

      •  -h: human-readable
      •  -s: summary

    4.2.4  fuser  

      • fuser -v MOUNT_POINT   

        

      • fuser -km MOUNT_POINT  终止所有在正访问指定的文件系统的进程:慎用

    4.2.5  swap 交换分区 (具体情况请查看此链接)

      • swapon [OPTION]... [DEVICE]    启用挂载交换分区
        •     -a:激活所有的交换分区;
        •     -p PRIORITY:指定优先级;
      • swapoff [OPTION]... [DEVICE]     禁用挂载交换分区 

         4.2.6  fdisk -l 列出所有的分区,包括没有挂上的分区和usb设备 。fdisk  dirfdisk命令操作磁盘详解--添加、删除、转换分区等

    4.2.7  blkid  查看文件系统类型、LABEL、UUID等信息 (blkid 查看所有设备的信息,  blkid  /dev/vda4 查看/dev/vda4设备的信息)

       

    4.3 挂载后进行自动挂载详解:

      1. 如挂载的是文件共享的,且服务端ip地址固定不变,则可用ip地址进行挂载(nfs.sharedir为我之前在hosts文件添加的映射10.140.1.35端口):

        1)由于已经挂载上了,查看挂载信息 cat /etc/mtab   (下图 nfs4为文件系统类型)

            

         2)vi /etc/fstab  更改文件挂载配置文件/etc/fstab,改后即可

     

         

        2.  如果需要挂载的是磁盘等,则最好不要用分区路径来挂载,具体可参考此链接

     

     参考网址:

    NFS相关:

    https://blog.csdn.net/daydayup654/article/details/78788310

    https://baijiahao.baidu.com/s?id=1685378383477375934&wfr=spider&for=pc

     linux开机自启动:

    https://www.cnblogs.com/fatt/p/4790561.html

  • 相关阅读:
    TreeView拖动
    反射机制
    SQLServer2005/2008 XML数据类型操作
    开发与研发:一字之差的感想
    设置在64位机器上的IIS(IIS6/IIS7)兼容32位程序(64位ODBC和32位ODBC的问题同样适用)
    setTimeout和setInterval的使用
    Oracle 安装/使用、配置/卸载
    链接sql数据库以及Oracle 数据库和启动缓存以及停止缓存
    jQuery学习笔记—— .html(),.text()和.val()的使用
    C# List<T>用法
  • 原文地址:https://www.cnblogs.com/zdyang/p/15215886.html
Copyright © 2011-2022 走看看