zoukankan      html  css  js  c++  java
  • 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,否则有可能导致无法启动服务器的问题。

    自用博文.不限传播.欢迎留言.共同进步.
  • 相关阅读:
    java的泛型
    JAVA集合类--(一闪而过)
    java面向对象- -一闪而过
    进制转换之二进制与十进制转换
    跳跃表-原理及Java实现
    Excel二次开发相关代码
    程序员学炒股(7) 股市心得
    程序员学炒股(7) 股指期货收盘价对第二天开盘价有影响吗?
    程序员学炒股(6) 让我们来看一下7月份A股的表现
    程序员学炒股(5) 股指交割日效应是否存在?
  • 原文地址:https://www.cnblogs.com/mingetty/p/9802156.html
Copyright © 2011-2022 走看看