• linux服务器间共享文件--NFS


    简介

    NAS

    NAS 指 Network Area Storage,它一般是将本地的存储空间共享给其他主机使用,一般通过 C/S 架构实现通信。它实现的是文件级别的共享,计算机通常将共享的设别识别为一个文件系统,其文件服务器会管理锁以实现并发访问。常见的 NAS 有 NFS 和 CIFS。

    NFS
    NFS是Network File System 的缩写, 即 网络文件系统. 它的主要功能是通过网络( 一般是局域网 )让不同的主机系统之间可以共享文件或目录.  NFS客户端(一般为应用服务器, 例如web)可以通过挂载 mount 的方式将NFS服务器端共享的数据目录挂载到NFS客户端本地系统中(就是某一个挂载点下).  NFS网络文件系统很像windows系统的网络共享, 安全功能, 网络驱动器映射, 这也和linux系统里的 samba服务类似. 不过一般情况下, windows网络共享服务或samba服务用于办公局域网共享

    实践

    操作环境  centos6  关闭防火墙和selinux策略
    服务端 ip  10.162.66.32/24
    客户端 ip  10.162.66.10/24
     

    安装服务 (两端都需要)

    安装软件包     
    yum install nfs-utils rpcbind
    检查安装包
    [root@VM000000138 ~]# rpm -qa nfs-utils rpcbind
    rpcbind-0.2.0-16.el6.x86_64
    nfs-utils-1.2.3-78.el6_10.1.x86_64

    注意事项

    1)  确保所有客户端对NFS共享目录具有相同的用户访问权限

    1. all_squash把所有用户压缩成匿名用户( uid相同 )
    2. anonuid  anongid指定的uid和gid用户

    2)  所有的客户端和服务端( 所有服务器上 )都要有一个相同的uid和gid的用户,默认即 nfsnobody  [uid必须相同]

    服务端操作

    启动服务

    [root@VM000000155 ~]# /etc/init.d/rpcbind start
    [root@VM000000155 ~]# /etc/init.d/rpcbind status
    rpcbind (pid  2015) is running...
    [root@VM000000155 ~]# rpcinfo -p localhost
       program vers proto   port  service
        100000    4   tcp    111  portmapper
        100000    3   tcp    111  portmapper
        100000    2   tcp    111  portmapper
        100000    4   udp    111  portmapper
        100000    3   udp    111  portmapper
        100000    2   udp    111  portmapper
        100024    1   udp  44121  status
        100024    1   tcp  50137  status
    [root@VM000000155 ~]# /etc/init.d/nfs start
    Starting NFS services:                                     [  OK  ]
    Starting NFS quotas:                                       [  OK  ]
    Starting NFS mountd:                                       [  OK  ]
    Starting NFS daemon:                                       [  OK  ]
    Starting RPC idmapd:                                       [  OK  ]
    
    [root@VM000000155 ~]# rpcinfo -p localhost
       program vers proto   port  service
        100000    4   tcp    111  portmapper
        100000    3   tcp    111  portmapper
        100000    2   tcp    111  portmapper
        100000    4   udp    111  portmapper
        100000    3   udp    111  portmapper
        100000    2   udp    111  portmapper
        100024    1   udp  44121  status
        100024    1   tcp  50137  status
        100011    1   udp    875  rquotad
        100011    2   udp    875  rquotad
        100011    1   tcp    875  rquotad
        100011    2   tcp    875  rquotad
        100005    1   udp  42881  mountd
        100005    1   tcp   2826  mountd
        100005    2   udp  47632  mountd
        100005    2   tcp  16271  mountd
        100005    3   udp  55231  mountd
        100005    3   tcp  11100  mountd
        100003    2   tcp   2049  nfs
        100003    3   tcp   2049  nfs
        100003    4   tcp   2049  nfs
        100227    2   tcp   2049  nfs_acl
        100227    3   tcp   2049  nfs_acl
        100003    2   udp   2049  nfs
        100003    3   udp   2049  nfs
        100003    4   udp   2049  nfs
        100227    2   udp   2049  nfs_acl
        100227    3   udp   2049  nfs_acl
        100021    1   udp  57753  nlockmgr
        100021    3   udp  57753  nlockmgr
        100021    4   udp  57753  nlockmgr
        100021    1   tcp  50660  nlockmgr
        100021    3   tcp  50660  nlockmgr
        100021    4   tcp  50660  nlockmgr

    加入开机自启

     chkconfig nfs on
     chkconfig rpcbind on
     chkconfig |egrep "nfs|rpcbind"

    编辑配置

    [root@VM000000155 ~]# vim  /etc/exports 
    [root@VM000000155 ~]# cat /etc/exports
    /mnt/uploadVideo/uploads/ftpFile 10.162.66.10/24(rw,sync,all_squash,anonuid=555,anongid=555)

     平滑重启

    [root@VM000000155 ~]# cat /var/lib/nfs/etab
    [root@VM000000155 ~]# /etc/init.d/nfs reload
    [root@VM000000155 ~]# cat /var/lib/nfs/etab
    /mnt/uploadVideo/uploads/ftpFile    10.162.66.10/24(rw,sync,wdelay,hide,nocrossmnt,secure,root_squash,all_squash,no_subtree_check,secure_locks,acl,anonuid=555,anongid=555,sec=sys,rw,root_squash,all_squash)

    [root@VM000000155 ~]# showmount -e 10.162.66.32
    Export list for 10.162.66.32:
    /mnt/uploadVideo/uploads/ftpFile 10.162.66.10/24

    开机自启

    chkconfig nfs on

    chkconfig rpcbind on

    客户端操作

    [root@test ~]# /etc/init.d/rpcbind start
    [root@test ~]# /etc/init.d/rpcbind status
    rpcbind (pid 15308) is running...
    [root@test ~]# chkconfig rpcbind on
    [root@test ~]# showmount -e 10.162.66.32 Export list for10.162.66.32:
    /mnt/uploadVideo/uploads/ftpFile 10.162.66.10/24
    [root@test ~]# mount -t nfs 10.162.66.32:/mnt/uploadVideo/uploads/ftpFile /uploads/ftpFile/
    [root@test ~]# echo '
    mount -t nfs 10.162.66.32:/mnt/uploadVideo/uploads/ftpFile' >>/etc/rc.local

    防止服务挂了客户端卡死: mount -t nfs -o bg,hard,intr 192.168.0.12:/svn/2  /svnBackup

    NFS客户端开机自启动挂载方案

    第一种方法,将挂载命令放在/etc/rc.local里。

    缺点:偶尔开机挂载不上,工作中除了开机自启动配置,还要对是否挂载做监控。

    第二种方法,将挂载命令放在/etc/fstab里。

    其实这种配置方法有一个误区,如下。

    fstab会优先于网络被Linux系统加载。网络没启动时执行fstab会导致连不上NFS服务器端,

    无法实现开机挂载。而且,即使是本地的文件系统,也要注意,fstab最后两列要设置00,否则有可能导致无法启动服务器的问题。

    自用博文.不限传播.欢迎留言.共同进步.
  • 相关阅读:
    C# 实现任务栏图标程序
    C#实现的木马之客户端
    sql基本语法
    水晶报表引用DataSet做数据源
    解决多线程操作控件时可能出现的异常:“在某个线程上创建的控件不能成为在另一个线程上创建的控件的父级”
    电子书籍制作工具软件大全
    C#实现的木马之服务端
    2进制、8进制、10进制、16进制...各种进制间的轻松转换
    VC# .Net中使用Crystal Report水晶报表
    P2P技术学习
  • 原文地址:https://www.cnblogs.com/mingetty/p/9802156.html
Copyright © 2020-2023  润新知