搭建企业级NFS网络文件共享服务

 

NFS服务简介

      NFS是Network  File System(网络文件系统)。主要功能是经过网络让不一样的服务器之间能够共享文件或者目录。NFS客户端通常是应用服务器(好比web,负载均衡等),能够经过挂载的方式将NFS服务器端共享的目录挂载到NFS客户端本地的目录下。
      NFS在文件传送过程当中依赖与RPC(远程过程调用)协议。NFS自己是没有提供信息传送的协议和功能的,可是可以用过网络进行图片,视频,附件等分享功能。只要用到NFS的地方都须要启动RPC服务,不管是NFS的服务端仍是客户端。
      NFS和RPC的关系:能够理解为NFS是一个网络文件系统(比喻为租房的房主),而RPC是负责信息的传输(中介),客户端(至关于租房的租客)html

image

查看当前系统环境信息

[root@Appserver~]# cat /etc/issue       ##查看系统版本信息 
Red Hat Enterprise Linux Server release 6.6 (Santiago) 
[root@Appserver~]# uname -r                  ##查看内核信息 
2.6.32-754.3.5.el6.x86_64
[root@Appserver~]# uname -m                  ##查看系统是32位仍是64位的 
x86_64

image

说明:java

服务器端:  RHEL6.6    [192.168.2.131/24]web

客 户 端:  RHEL6.6    [192.168.2.130/24]vim

man nfs 能够查看mount的信息缓存

rpc端口111安全

nfs主端口2049服务器

服务端配置[192.168.2.131]

    说明:网络

    1. 在启动NFS服务以前,首先要启动RPC服务(CentOS5是portmap服务,CentOS6.6之后的版本是rpcbind服务),不然NFS服务器没法向RPC服务注册。负载均衡

    2. RPC服务若是重启,原来以及有的NFS端口就会丢失,所以,只要RPC服务重启,NFS服务就要重启向RPC从新注册新的随机端口号。运维

须要:中止nfs->中止rpcbind服务后重启rpcbind->重启nfs服务

   3. 通常修改NFS配置文件后,不须要重启服务,直接平滑重启便可

       命令:/etc/init.d/nfs reload或者exportfs -rv就能够修改/etc/exports生效。

      /etc/init.d/nfs reload的做用是:让已经到达服务器的请求给他处理完毕,可是没有到达服务器的请求,就把它断掉。

1. 查看NFS的软件包[nfs和rpc默认是没有安装的,须要yum安装]

[root@westos ~]# rpm -qa nfs-utils rpcbind

image

2. 使用yum  install  nfs-utils rpcbind -y命令来安装NFS软件[安装后能够检查一下]

[root@westos]# yum install nfs-utils rpcbind
[root@westos]# rpm -qa nfs-utils rpcbind      

image

3. 启动NFS服务

第一步:先启动rpc服务

[root@westos ~]# /etc/init.d/rpcbind start   #启动rpc服务 
[root@westos ~]# /etc/init.d/rpcbind status  #查看rpc服务状态

image

第二步:启动NFS服务

[root@westos ~]# /etc/init.d/nfs start     #启动nfs服务 
[root@westos ~]# /etc/init.d/nfs status    #查看nfs服务状

image

[root@westos ~]# ps -ef|grep nfs | grep -v 'grep nfs'    # [可选],查看NFS服务

image

注意:  必需要先启动rpc服务,而后再启动NFS服务(RPC会有端口的映射),若是先启动NFS服务,启动服务时会失败

image

4. 查看NFS和RPC端口信息[可选]

rpc端口111

nfs主端口2049

第一步:服务器端口检查本身的rpc服务:

rpcinfo -p localhost               # 查看NFS服务向rpc注册的端口信息,主端口号是:111

image

[root@Appserver ~]# netstat -lntup|grep 111      # 查看111端口信息
 root@Appserver ~]# lsof -i 4:111                # 查看111端口信息

image

第二步:查看NFS

[root@Appserver ~]# netstat -lntup|grep 2049 
[root@Appserver ~]# ps -ef|grep nfs

image

第三步:检查本机的nfs服务

 showmount -e localhost

image

5. 服务开机自启

第一步:chkconfig开启服务

chkconfig --level 35 nfs on
chkconfig --level 35 rpcbind on 
chkconfig --list | egrep "nfs|rpcbind"

image

第二步:写入rc.local

vim /etc/rc.local
    /etc/init.d/rpcbind start 
    /etc/init.d/nfs  start

image

说明:运维规范将服务的启动命令放到/etc/rc.local里面

6. 配置NFS服务端

第一步: 建立共享目录(注意权限)

mkdir /NFS -m777
chown -R nfsnobody:nfsnobody /data # nfsnobody为nfs默认建立的用户

image

第二步:配置服务器文件

NFS默认文件: /etc/exports

# /etc/exports配置文件的格式是:
# NFS共享的目录    NFS客户端地址(参数1,参数2)
vim /etc/exports
    /data 192.168.2.130/24(rw,sync)    #一条配置搞定NFS配置文件

#其中:/data : NFS服务器端要共享的实际目录,注意共享目录的本地权限,须要读写权限,必定要让本地目录能够被NFS客户端的用户读写
#192.168.2.130/24: NFS服务器端受权的可访问的共享目录的NFS客户端地址(可为单独的ip地址或者主机名,域名,整个网段的地址)
#(rw,sync) ,其中rw表明拥有读写的权限,sync表明数据同步写入NFS服务器端的硬盘中。也能够用async,async是大数据时使用,是先写到缓存区,再写到磁盘里。

image

可选:NFS服务器参数

rw:读写
ro:只读
sync:客户端给服务器端写入数据,待写入成功后服务端后给客户端一个写入成功的标记,这个时候数据写入成功。
        可是数据安全,可是性能差
async:异步写入
    数据写入内存后显示写入成功,高性能,可是一旦断电后数据丢失,
    电商秒杀是异步的。大型网站都是异步,会短期数据不一致。
no_root_squash:
    访问的NFS Server的共享目录的用户是root的话,它对该共享目录具备root权限
root_squash:
    访问的NFS Server的共享目录的用户是root的话,它对该共享目录的权限压缩为匿名用户
all_squash:  -->推荐使用
    无论访问的NFS Server的共享目录权限是什么,它对该共享目录的权限压缩均为匿名用户

第三步:重启nfs服务

/etc/init.d/nfs reload 

第四步:服务端测试(服务器端口检查本身的nfs服务)

 showmount -e localhost
 #showmount -e 192.168.2.130   客户端成功后查看

image

第五步:测试本机(服务器端自身)挂载

mount -t nfs 192.168.2.131:/data /mnt

image

说明:查看默认配置

cat /var/lib/nfs/etab

image

其余:卸载网络挂载

# 强制卸载  
umount -lf  /mnt     #  l(lazy)  f(force)

客户端配置[192.168.2.130]

1. 客户端和服务端同样,也要安装nfs和rpm的安装包。(配置见服务器端)
2. 客户端须要启动rpc服务,加入开机自启动。不须要启动nfs服务。(配置见服务器端)
3. 客户端配置:

第一步:测试服务器/客户端IP是否在同一网段

 ping 192.168.2.130  # 客户端IP

image

第二步:查看服务器的111端口是否OK

telnet 192.168.2.131 11

image

第三步: showmount服务端

showmount -e 192.168.2.131

image

第四步:挂载服务器到本地,实现文件共享

 mount -t  nfs 192.168.2.131:/data/ /mnt
 df –h  
       ==> cat /proc/mounts  # 效果同

image

#  cat /proc/mounts        # 效果同

image

第五步:写入rc.local

vim /etc/rc.local
    /etc/init.d/rpcbind start
    mount -t  nfs 192.168.2.131:/data/ /mnt

image

其余: 卸载网络挂载

# 强制卸载  
umount -lf  /mnt     #  l(lazy)  f(force)

测试挂载

imageimage

相关文章
相关标签/搜索