• redhat enterprixe 5.0 NFS服务配置与管理


    一、了解NFS

    Samba 是主要用于实现Linux和Windows操作系统之间文件共享的协议,而NFS则是实现UNIX和Linux操作系统之间文件共享的协议。

    NFS可以把网络上远程的文件挂载到本机机器上。

    二、安装

    需要安装 portmap和nfs-utils这两个包,用rpm安装或者直接用yum安装都可以。好像一般都默认安好了...贴心~

    rpm -ivh portmap-4.0-65.2.2.1.i386.rpm

    rpm -ivh nfs-utils-1.0.9-50.el5.i386.rpm


    三、配置

    只有一个配置文件是/etc/exports,如果不存在需要自己创建。

    /etc/exports文件内容格式:

    <输出目录> [客户端1域名/IP(选项(访问权限,用户映射,其他))] [客户端2域名/IP 选项(访问权限,用户映射,其他)]

    (共享目录和客户端之间、客户端与客户端之间都需要使用空格分隔,但是客户端和选项的小括号挨着,选项之间以逗号分隔)

    如果客户端写的域名要保证DNS服务器可以解析到正确的IP,如果是IP,要保证服务器和客户端之间能够ping通,gg,这个必须有啊...

    NFS主要的选项有3类:

    A 访问权限选项

    设置输出目录只读:ro

    设置输出目录读写:rw

    B 用户映射选项

    all_squash:将远程访问的所有普通用户及所属组都映射为匿名用户或用户组(nfsnobody);

    no_all_squash:与all_squash相反(默认设置);

    root_squash:将root用户及所属组都映射为匿名用户或用户组(默认设置);

    no_root_squash:与rootsquash相反;

    anonuid=xxx:将远程访问的所有用户都映射为匿名用户,并指定该用户为本地用户(UID=xxx);

    anongid=xxx:将远程访问的所有用户组都映射为匿名用户组账户,并指定该匿名用户组账户为本地用户组账户(GID=xxx);

    C 其它选项

    secure:限制客户端只能从小于1024的tcp/ip端口连接nfs服务器(默认设置);

    insecure:允许客户端从大于1024的tcp/ip端口连接服务器;

    sync:将数据同步写入内存缓冲区与磁盘中,效率低,但可以保证数据的一致性;

    async:将数据先保存在内存缓冲区中,必要时才写入磁盘;

    wdelay:检查是否有相关的写操作,如果有则将这些写操作一起执行,这样可以提高效率(默认设置);

    no_wdelay:若有写操作则立即执行,应与sync配合使用;

    subtree:若输出目录是一个子目录,则nfs服务器将检查其父目录的权限(默认设置);

    no_subtree:即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率;

    例如,我们在namenode1机器上配置做如下配置

    /home/dfs/nfs_share_edits/      namenode2(rw)

    这个配置是把namenode1上的/home/dfs/nfs_share_edits目录设置成共享,可以给namenode2来访问,访问权限是可读写。

    四、启动

    sudo service portmap start

    sudo service nfs start

    查询状态

    service portmap status

    service nfs status

    停止服务

    service nfs stop

    service portmap stop

    五、 客户端测试

    1、服务器端 showmount -e 查看服务器的共享目录

    客户端 showmount -e NFS服务器IP 查看指定IP的服务器共享的目录

    2、在本地计算机种创建挂载点目录

    如:mkdir -p /xiaotao/share 

    3、挂载服务器上的共享目录

    mount -t nfs NFS服务器IP/域名:共享文件目录 本地挂载目录

    例如,在namenode2机器上运行mount命令挂载namenode1的NFS共享目录

    mkdir /home/dfs/nfs_share_edits

    sudo mount namenode1:/home/dfs/nfs_share_edits  /home/dfs/nfs_share_edits

    这是把namenode2把namenode1的NFS共享目录挂载到本地,这样就可以访问远程的共享目录了,挂载前需要先创建本地的挂载目录。

    挂载之后,可以用mount命令查看挂载状态

    sudo mount | grep -i nfs

    卸载命令

    umount 本地挂载目录

    如果卸载的时候提示,device is busy,可能原因是一个进程仍然在使用这个目录。

    六、 相关的守护进程

    nfsd

    它是基本的NFS守护进程,主要功能是管理客户端是否能够登录服务器;

    mountd

    它是RPC安装守护进程,主要功能是管理NFS的文件系统。当客户端顺利通过nfsd登录NFS服务器后,在使用NFS服务所提供的文件前,还必须通过文件使用权限的验证。它会读取NFS的配置文件/etc/exports来对比客户端权限。
     
    portmap

    主要功能是进行端口映射工作。当客户端尝试连接并使用RPC服务器提供的服务(如NFS服务)时,portmap会将所管理的与服务对应的端口提供给客户端,从而使客户可以通过该端口向服务器请求服务。
     
    七、 相关的命令

    #查看配置

    exportfs

    #默认查看共享的服务

    showmount -e

    #查看已经与客户端连接上的目录信息

    showmount -a

    八、停止服务

    service nfs stop

    service portmap stop

    如果当前还有客户端正在连接NFS服务器,此时要想将NFS服务器所在的主机关机,应先关掉portmap和nfs这两个服务,否则可能要等待很久才能正常关机。如果无法正确地将potrmap和nfs这两个服务关掉,那么可先用命令netstat -utlp找出它们的PID,然后使用kill命令杀掉,这样才能正常关机。

    当然,还可以先用exportfs -auv命令将当前主机中NFS服务器的所有输出目录停止掉,再关机。

    很有爱的NFS...没有遇见bug...

  • 相关阅读:
    nc之二:nc命令详解
    memcache redundancy机制分析及思考
    memcache和redis区别
    java操作mongodb
    Memcache缓存与Mongodb数据库的优势和应用
    memcache 存储单个KEY,数据量过大的时候性能慢!以及简单的memcache不适合用到的场景
    pkill详解
    修改linux用户密码
    Mysql函数INSTR、LOCATE、POSITION VS LIKE
    Servlet3.0之九:web模块化
  • 原文地址:https://www.cnblogs.com/icode-girl/p/5616919.html
Copyright © 2020-2023  润新知