zoukankan      html  css  js  c++  java
  • linux:NFS

    1.简介

    2.安装

    安装分为服务端和客户端

    【1】我们先拿一台机做服务端

    yum install nfs-utils rpcbind -y

    然后我们查查看安装没有,查询一个包是否被安装
    # rpm -q < rpm package name>

    列出所有被安装的rpm package
    # rpm -qa

    那么我们查查看执行没有

    rpm -qa nfs-utils rpcbind

    【2】

    vi /etc/exports

     配置格式

    复制代码
        <输出目录> 客户端(选项:访问权限,用户映射,其他]
            输出目录是指NFS系统中所定义的共享给客户端使用的文件系统
            客户端是定义网络中可以访问这个NFS共享目录的IP地址或网段或域名等
                客户端常用的指定方式
                    指定ip地址的主机:192.168.100.1
                    指定一个子网:192.168.100.0/24 也可以写成:192.168.100.0/255.255.255.0
                    指定域名的主机:david.bsmart.cn
                    指定域中的所有主机:*.bsmart.cn
                    所有主机:*
            选项用来设置输出目录的访问权限、用户映射等。
                NFS主要有3类选项:
                    设置输出目录只读:ro
                    设置输出目录读写:rw
                用户映射选项
                    all_squash:将远程访问的所有普通用户及所属组都映射为匿名用户或用户组(nfsnobody);
                    no_all_squash:与all_squash取反(默认设置);
                    root_squash:将root用户及所属组都映射为匿名用户或用户组(默认设置);
                    no_root_squash:与rootsquash取反;
                    anonuid=xxx:将远程访问的所有用户都映射为匿名用户,并指定该用户为本地用户(UID=xxx);
                    anongid=xxx:将远程访问的所有用户组都映射为匿名用户组账户,并指定该匿名用户组账户为本地用户组账户(GID=xxx);
                其它选项
                    secure:限制客户端只能从小于1024的tcp/ip端口连接nfs服务器(默认设置);
                    insecure:允许客户端从大于1024的tcp/ip端口连接服务器;
                    sync:将数据同步写入内存缓冲区与磁盘中,效率低,但可以保证数据的一致性;
                    async:将数据先保存在内存缓冲区中,必要时才写入磁盘;
                    wdelay:检查是否有相关的写操作,如果有则将这些写操作一起执行,这样可以提高效率(默认设置);
                    no_wdelay:若有写操作则立即执行,应与sync配合使用;
                    subtree:若输出目录是一个子目录,则nfs服务器将检查其父目录的权限(默认设置);
                    no_subtree:即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率;

    简单配置

    /data *(async,insecure,no_root_squash,no_subtree_check,rw)
    
    
    /data:与nfs服务客户端共享的目录
    *:允许所有的网段访问,也可以使用具体的IP
    rw:挂接此目录的客户端对该共享目录具有读写权限
    async:资料同步写入内存和硬盘
    no_root_squash:root用户具有对根目录的完全管理访问权限。
    no_subtree_check:不检查父目录的权限。

    一定要记得给目录授权

    chown -R nfsnobody.nfsnobody /data

    设置服务开机启动并立即启动

    systemctl enable rpcbind.service
    systemctl enable nfs-server.service
    
    systemctl start rpcbind.service
    systemctl start nfs-server.service

    检验

    showmount -e 你的ip

    【2】再开一台机做客户端,在客户端上执行

    (/upfile是客户端的路径,/data是你服务端的路径)

    scp -r /upfile root@服务端ip:/data

    安装nfs,客户端不需要服务,但需要对应的命令

    yum install nfs-utils -y

    然后进行挂载。

    mount -t nfs 1.*.*.37:/data /upfile

     这个时候进入/upfile目录,可以看到1.*.*.37的/data下面的东西了。

    【3】常用指令

    查看挂载情况

    df -h

    解除挂载

    umount 本机被挂载的目录

     关于umount,经常遇到device busy的情况,这时候一般加个参数-l ,表示lazy umount,关于这个下面解释一下(来源于互联网)

    这是最常用的一种方式,这种方式要求被卸载分区是空闲的。如:
     
    # umount /dev/sdb1
     
    # umount /media/disk
     
    第一条命令把设备sdb上的第一个分区从系统上卸载。而第二条命令的作用则是卸载被挂载到/media/disk上的分区。
     
    注意,只有在分区未被程序使用的情况下才能成功用此法卸载,否则会报错,如:
     
    umount: /dev/sdb1: device is busy
     
     
     
    lazy umount
     
    lazy umount正是针对上面错误中的busy而提出的,即可以卸载“busy”的文件系统。
     
    举个例子,假设/dev/sdb1被mount到/media/disk,且处于“busy”状态,那么可以执行:
     
    # umount -l /media/disk
     
    请注意,该方法并不是完全安全的,lazy umount主要完成如下操作:
     
    立即从目录结构中实现卸载,即新进程将无法通过/media/disk访问/dev/sdb1。
     
    正在访问该文件系统的程序不受影响。即正在操作/media/disk的进程不会被打断,且仍可以读写/dev/sdb1中的所有文件。
     
    如果所有进程对/media/disk的操作都执行完,那么才真正地umount。
     
    由此可知,lazy umount并没有真正实现umount,仅用于特殊需要的情况,而用这种方法来卸载U盘是不安全的。
     
     
     
     
  • 相关阅读:
    ubuntu18.04 扩展根目录 亲测有效
    mysql数据恢复
    java多线程
    jenkins安装搭建及使用
    springboot web开发
    git版本管理
    docker安装部署项目
    vue nuxt项目部署
    IntelliJ IDEA常用快捷键
    IntelliJ IDEA常用设置
  • 原文地址:https://www.cnblogs.com/daysn/p/10216623.html
Copyright © 2011-2022 走看看