zoukankan      html  css  js  c++  java
  • NFS安装和配置

    ------------------------------------------------------------------------------------------------------------------
    NFS就是Network File System的缩写。最早是由Sun公司发展开发出来的,它最大的功能就是能够通过网络。让不同计算机。不同操作系统,能够共享资源文件。用户和程序能够像訪问本地文件一样訪问NFS上的文件
    由于NFS支持的功能相当的多,而不同的功能都会使用不同的程序来启动,每启动一个功能就会启用一些端口来数据传输
    NFS需要依赖RPC(Remote Procedure Call),RPC最基本的功能就是在指定每一个NFS功能所相应的端口号,而且将其反馈给client。让client能够连结到正确的端口号上去
    所以要启动NFS之前,RPC就要先启动了,否则NFS会无法向RPC注冊
     
    rpc.nfsd
    这个daemon基本的功能就是在管理Client能否够登入主机的权限,当中还包括这个登入者的ID的推断!
    rpc.mountd
    这个daemon基本的功能。则是在管理NFS的文件系统!

    Client端顺利的通过rpc.nfsd而登入主机之后,在他能够使用NFSserver提供的档案之前,还会经过文件权限(就是那个 -rwxrwxrwx owner, group 那几个权限)的认证程序!他会去读NFS的配置文件/etc/exports来比对Client的权限,当通过这一关之后Client就能够取得使用NFS文件的权限了! (注:这个也是我们用来管理 NFS 分享之文件夹的权限与安全设定的地方)

    rpc.lockd
    这个进程能够用在管理文件的锁定 (lock) 用途。

    为何文件需要『锁定』呢? 由于既然分享的NFS档案能够让client使用,那么当多个client同一时候尝试写入某个文件时, 就可能对于该文件造成一些问题啦!

    这个rpc.lockd则能够用来克服这个问题。但rpc.lockd必需要同一时候在client与server端都开启才行喔!

    此外。rpc.lockd也常与rpc.statd同一时候启用。

    rpc.statd
    能够用来检查文件的一致性。与rpc.lockd有关。若发生由于client同一时候使用同一文件造成文件可能有所损毁时。rpc.statd能够用来检測并尝试恢复该文件。

    rpc.lockd 相同的,这个功能必需要在server端与client都启动才会生效。

    rpc.rquotad
    处理当用户通过nfsmount到远程server时的配额
     
    NFS /etc/exports配置含义
    /data1/storage *(rw,async,no_root_squash,no_subtree_check)
     
    /data1/storage 是要共享的文件夹
    *是同意訪问的计算机,能够是下面内容
    单个机器:一个全限定域名(能够被server解析)、主机名(能够被server解 析)或IP地址。
    通配符指定的主机名。使用 * ?字符来指定一个字符串匹配,IP地址中不使用通配符,*代表同意全部计算机訪问共享文件夹
    IP 网络:使用a.b.c.d/za.b.c.d是网络,z是子网掩码中的位数(如192.168.0.0/24)。

    另一种能够接受的格式是 a.b.c.d/netmaska.b.c.d是网络。netmask是子网掩码(如192.168.70.8/255.255.255.0)。

     
    () 内是共享选项
    rw是指client拥有读写权限,另一个ro选项。代表仅仅读
    sync 同步写入到内存与硬盘中
    async 异步写入。写入时会先放到内存。等硬盘有空档再写入
    root_squash 客户机用root用户訪问该共享文件夹时,将root用户映射成匿名用户
    no_root_squash client使用root訪问共享文件夹时 还是拥有root权限,
    root_squash:假设client使用 root訪问共享文件夹,会被当作匿名用户(也就是说。权限变的非常小。比較安全)
    all_squash:不管client使用什么用户訪问共享文件夹都会被当作匿名用户
    subtree_check 假设共享/usr/bin之类的子文件夹时,强制NFS检查父文件夹的权限(默认)
    no_subtree_check 和上面相对,不检查父文件夹权限
    其他选项參考man exports
    ------------------------------------------------------------------------------------------------------------------
     
    #安装NFS(全部节点都要安装)
    yum -y install nfs-utils
     
    #创建NFS存储文件夹
    mkdir -p /data/storage
    #改动/etc/exports
    vi /etc/exports
    /data/storage *(rw,async,no_root_squash,no_subtree_check)
     
    #改动/etc/sysconfig/nfs
    LOCKD_TCPPORT=32803
    LOCKD_UDPPORT=32769
    MOUNTD_PORT=892
    RQUOTAD_PORT=875
    STATD_PORT=662
    STATD_OUTGOING_PORT=2020
     
    #改动/etc/sysconfig/iptables
    -A INPUT -s 192.168.32.0/24 -m state --state NEW -p udp --dport 111 -j ACCEPT
    -A INPUT -s 192.168.32.0/24 -m state --state NEW -p tcp --dport 111 -j ACCEPT
    -A INPUT -s 192.168.32.0/24 -m state --state NEW -p tcp --dport 2049 -j ACCEPT
    -A INPUT -s 192.168.32.0/24 -m state --state NEW -p tcp --dport 32803 -j ACCEPT
    -A INPUT -s 192.168.32.0/24 -m state --state NEW -p udp --dport 32769 -j ACCEPT
    -A INPUT -s 192.168.32.0/24 -m state --state NEW -p tcp --dport 892 -j ACCEPT
    -A INPUT -s 192.168.32.0/24 -m state --state NEW -p udp --dport 892 -j ACCEPT
    -A INPUT -s 192.168.32.0/24 -m state --state NEW -p tcp --dport 875 -j ACCEPT
    -A INPUT -s 192.168.32.0/24 -m state --state NEW -p udp --dport 875 -j ACCEPT
    -A INPUT -s 192.168.32.0/24 -m state --state NEW -p tcp --dport 662 -j ACCEPT
    -A INPUT -s 192.168.32.0/24 -m state --state NEW -p udp --dport 662 -j ACCEPT
     
    #重新启动防火墙
    service iptables restart
     
    #启动NFS
    service rpcbind start
    service nfs start
    chkconfig rpcbind on
    chkconfig nfs on
     
    #在KVM的主机上挂载NFS
    mount -t nfs 192.168.32.170:/data/storage /mnt/storage
     
    #启动虚拟机时会出现权限的问题
    error: Failed to start domain centos-nfs
    error: internal error process exited while connecting to monitor: 2015-07-16T21:37:17.473018Z qemu-kvm: -drive file=/mnt/storage/centos.qcow2,if=none,id=drive-virtio-disk0,format=qcow2: could not open disk image /mnt/storage/centos.qcow2: Permission denied
     
    #关闭全部机器的SELinux
    sed -i 's/SELINUX=enforcing/SELINUX=permissive/' /etc/selinux/config
    sed -i 's/SELINUX=enforcing/SELINUX=permissive/' /etc/sysconfig/selinux
    setenforce 0
     
    #然后又一次启动libvirt
    service libvirtd restart
  • 相关阅读:
    eclipse注释乱码的一个小问题
    《java 编程思想》 读书笔记 (一)
    《java 编程思想》 读书笔记 (一)
    055_SSM——sprinMVC的返回值
    054_jQuary——html()与text()方法的区别?
    053_Servlet——resp.getWrite()与resp.getPrint()的区别?
    052_html——html转环成jsp出现乱码的问题?
    051_html——checkbox的默认值与工作属性
    050_SSM——SpringMVCV中的各个器都起了什么作用?
    047_SSM——为什么返回String使用StringHttpMessageConverter解析时会造成乱码?
  • 原文地址:https://www.cnblogs.com/yxysuanfa/p/7071345.html
Copyright © 2011-2022 走看看