• nfs部署和优化


    nfs——网络文件系统

    1、说明:允许一个系统在网络上与他人共享目录和文件

    2、好处:通过nfs服务,就可以让这个机器访问远程的文件,像访问自己的文件一样,属于cs通信
     
    3、原理说明:假设有A,B,C 三台机器,在A上搭建nfs服务,然后把A上的一个目录(例如mnt)同时共享给B 和 C,接着B和C把A共享的目录放在自己本地上(挂载,类似磁盘挂载)。 这样,在用户看来,A,B,C同时存在一个相同的目录,有着相同的文件,。只要去改动任意一台机器且在该目录下的文件,其他两台机器都会相应同步变化。
      传统不共享的做法,不但浪费磁盘空间,而且也浪费带宽资源。
     
    一、nfs部署
    前期准备工作:
    1、准备2台机器
    (1)服务器端master:192.168.131.110
    安装两个包:(a)nfs-utils
          (b)rpcbind(CentOS6开始叫rpcbind,之前的CentOs 叫portmap包)
    简单说说rpcbind(后面会用到 /etc/init.d/rpcbind start)
    rpc服务,主要是在nfs共享时负责通知客户端、服务端的nfs端口号;简单理解rpc就是一个中介服务。
     
    (2)客户端slave:192.168.131.131
    仅需要安装:   nfs-utils
     
    2、master端
    (1)编辑配置文件 /etc/exports,  把mnt目录共享出去
    格式:  共享目录  允许访问的主机(ip/IP网段)     权限选项(可读ro, 可写rw, sync等)
    写入:  /mnt     192.168.131.131          (rw, sync)
     
    权限选项部分说明:
    sync:同步模式,内存中数据时时写入磁盘
    async:不同步,内存中数据定期写入磁盘
    no_root_squash: root用户对共享目录拥有至高的权限控制,就像是对本机的目录操作一样。(不安全,不建议使用)
    all_squash:不管使用NFS的用户是谁,他的身份都会被限定成为一个指定的普通用户身份(nfsnobody)
    anonuid/anongid:要和root_squash及all_squash一同使用,用于指定使用NFS的用户限定后的uid和gid(前提:主机的/etc/passwd 中存在这个uid和gid)
     
     
    (2)启动rpc服务: /etc/init.d/rpcbind start
    (3)启动nfs服务: /etc/init.d/nfs start
     
    3、slave端
    (1)查看master端共享出来的目录
    showmount -e 192.168.131.110
    (ps:showmount 命令是nfs-utils这个包所带的)
     
    (2)挂载NFS,到opt下
    mount -t nfs  192.168.131.110:/mnt   /opt
     
    df -h 可以查看NFS共享出来的目录mnt
     4、测试
    (1)master查看mnt权限(755)
     

    对slave端来说并不可写(权限不够)

    所以 master 需要授权挂载的目录mnt
     
    (2)master 授权挂载目录mnt
    chmod 777 /mnt/
    (3)slave 端 touch 1.txt  ——》 属主属组为 nfsnobody
     
     
     
     二、nfs优化
    背景:slave 端创建文件时并不想显示nfsnobody
     
    1、slave端查看要映射的user  
    cat  /etc/passwd
    假设我们要映射属主属组号都为500的用户(user111)
     2、master端修改配置文件 /etc/exports
    /mnt     192.168.131.131          (rw, sync, all_squash,anonuid=500,anongid=500)
     
    3、master端重新加载(重启也行,但不建议)
    exportfs -arv 
    参数说明:
    -a:全部挂载或卸载
    -r:重新挂载
    -v:显示共享的目录
     
    4、slave端卸载并重新挂载
    (1)umount -l /opt/    
    -l:即使当前在 opt 目录下,都能够顺利卸载,且解决“device  is busy” 的错误
     
    (2)重新挂载(一定要加上nfsvers=3这个参数)
    mount -t nfs -onolock, nfsvers=3 192.168.131.110:/mnt  /opt
    参数说明:
    -t: 指定挂载类型
    -o: 后跟挂载选项
    nolock: 挂载 nfs 服务时,不加锁
    nfsvers=3:避免权限混乱。指定使用nfsvers 的3版本,不加默认使用nfsvers,
    且会导致slave端创建文件时,属主属组还是nfsnobody)
     
    以上优化是把root都映射为500,如果不对root映射?——看补充
     
     
    三、补充
    (1)master:  vim  /etc/exports
    改成:  no_root_squash
    exportfs -arv
     
    (2)slave端
    umount /opt/
    mount -t nfs -onolock,nfsvers=3 192.168.131.110:/mnt /opt
    cd /opt/ 创建文件,文件所属主和组都为root
     
     
     
     
     
     
     
     
     
     
     
     
     
  • 相关阅读:
    【文本编辑】Raspberry B+上手教程--自己梳理,亲测有效
    【超级用户】Raspberry B+上手教程--自己梳理,亲测有效
    【连接网络】Raspberry B+上手教程--自己梳理,亲测有效
    【连接PC(路由)】Raspberry B+上手教程--自己梳理,亲测有效
    JavaScript的继承
    javascript的面向对象程序设计(二)
    javascript的面向对象程序设计(一)
    变量
    抽象工厂模式
    在jsp中应用MVC模型
  • 原文地址:https://www.cnblogs.com/windysai/p/6100561.html
Copyright © 2020-2023  润新知