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\b|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,否则有可能导致无法启动服务器的问题。

posted @ 2018-10-17 09:36  mingetty  阅读(408)  评论(0编辑  收藏  举报