博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
NFS服务搭建
阅读量:5948 次
发布时间:2019-06-19

本文共 4947 字,大约阅读时间需要 16 分钟。

一、NFS简介

  NFS是网络文件系统的意思,他的主要功能是通过网络(一般是局域网)让不同的主机系统之间可以共享文件或者目录,NFS客户端,(一般为应用服务器,例如web)可以通过挂载(mount)的方式将NFS服务端共享的数据目录挂载到NFS客户端本地系统中,(就是在某一个挂载点下,),从客户端来看,NFS服务端共享的目录就好像是客户端自己的磁盘分区或者目录一样,而实际上却是远端NFS服务器的目录,

二、NFS配置步骤

  1、下载NFS服务

//下载NFS以及rpcbind[root@localhost ~]# yum install nfs-utils rcpbind -y[root@localhost ~]# rpm -qa | egrep "nfs|rpcbind"nfs-utils-1.3.0-0.54.el7.x86_64rpcbind-0.2.0-44.el7.x86_64//下载完成之后会多一个nfsnobody的用户[root@localhost ~]# id nfsnobodyuid=65534(nfsnobody) gid=65534(nfsnobody) groups=65534(nfsnobody)//rpc的主端口是111//nfs的主端口是2049//为什么需要rpc:因为NFS支持的功能相当多,而不同的功能都会使用不同的程序来启动,每启动一个功能就会启用一些端口来传输数据,因此,NFS的功能所对应的端口无法固定,它会随机取用一些未被使用的端口来作为传输之用,用户需要 通过rpc来获取端口访问。

  2、启动NFS服务。

//需要先启动rpc,然后再启动nfs[root@localhost ~]# systemctl start rpcbind[root@localhost ~]# lsof -i:111COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAMErpcbind 11434  rpc    6u  IPv4  29471      0t0  UDP *:sunrpc rpcbind 11434  rpc    8u  IPv4  29473      0t0  TCP *:sunrpc (LISTEN)rpcbind 11434  rpc    9u  IPv6  29474      0t0  UDP *:sunrpc rpcbind 11434  rpc   11u  IPv6  29476      0t0  TCP *:sunrpc (LISTEN)//查看rpc对应的服务[root@localhost ~]# 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//启动nfs[root@localhost ~]# systemctl start nfs//查看rpc对应的服务[root@localhost ~]# 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  41580  status    100024    1   tcp  41087  status    100005    1   udp  20048  mountd    100005    1   tcp  20048  mountd    100005    2   udp  20048  mountd    100005    2   tcp  20048  mountd    100005    3   udp  20048  mountd    100005    3   tcp  20048  mountd    100003    3   tcp   2049  nfs    100003    4   tcp   2049  nfs    100227    3   tcp   2049  nfs_acl    100003    3   udp   2049  nfs    100003    4   udp   2049  nfs    100227    3   udp   2049  nfs_acl    100021    1   udp  37240  nlockmgr    100021    3   udp  37240  nlockmgr    100021    4   udp  37240  nlockmgr    100021    1   tcp  44041  nlockmgr    100021    3   tcp  44041  nlockmgr    100021    4   tcp  44041  nlockmgr

  3、配置NFS配置文件,

  NFS语法如下:NFS共享的目录 NFS客户端地址(参1 参2)

  NFS共享的目录:为NFS服务端要共享的实际目录,要用绝对路径如/data,注意共享目录的本地权限,如果需要读写共享,一定要让本地目录可以被NFS客户端用户 (nfsnobody)可以读写

  NFS客户端地址:为NFS服务端授权的可访问共享目录的NFS客户端地址,可以为单独的ip地址或者主机名,域名等,也可以为整个网段地址,还可以用 “*”来匹配所有客户端服务器,这里所谓的客户端一般来说是指前端的业务服务器,例如:web服务器,

  权限参数集: 对授权的NFS客户端的访问权限设置,

  NFS配置参数:

    rw 表示可读写权限

    ro 表示只读权限

    sync 请求或写入数据时,数据同步写入NFS server的硬盘才返回,优点:数据安全不会丢,缺点:性能比不启动该参数要查,

    async 写入时数据会先写到内存缓冲区,直到硬盘有空档才会再写入磁盘,这样可以提升写入效率,风险为若服务器宕机或者不正常关机,会损失缓冲区中未写入磁盘的数据,(解决办法:服务器主板电池或加 ups不间断电源,)

    all_squash 不管访问NFS server共享目录的用户身份如何,他的权限都将被压缩成匿名用户,同时它的UID和GID都会变成 nfsnobody 账户身份,在早期多个NFS客户端同时读写NFS server 数据时,这个参数很有用。

//需要注意的是,要将服务端的防火墙和selinux关闭[root@localhost ~]# systemctl stop firewalld.service[root@localhost ~]# systemctl disable firewalld.service[root@localhost ~]# setenforce 0//创建一个用于共享的目录[root@localhost ~]# mkdir /data[root@localhost ~]# chown -R nfsnobody.nfsnobody /data//编辑nfs的配置文件[root@localhost ~]# vim /etc/exports/data 192.168.80.0/24(rw,sync)    //写入共享的内容[root@localhost ~]# systemctl reload nfs          //平滑重启nfs服务[root@localhost ~]# showmount -e 192.168.80.131    //自查,显示如下结果即表示nfs服务端已经配置完成Export list for 192.168.80.131:/data 192.168.80.0/24

  服务端配置nfs配置完成之后需要配置一下客户端的内容。

[root@localhost backup]# yum install rpcbind nfs-utils -y[root@localhost backup]# systemctl start rpcbind[root@localhost backup]# lsof -i:111COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAMErpcbind 3738  rpc    6u  IPv4  30074      0t0  UDP *:sunrpc rpcbind 3738  rpc    8u  IPv4  30076      0t0  TCP *:sunrpc (LISTEN)rpcbind 3738  rpc    9u  IPv6  30077      0t0  UDP *:sunrpc rpcbind 3738  rpc   11u  IPv6  30079      0t0  TCP *:sunrpc (LISTEN)[root@localhost /]# showmount -e 192.168.80.131Export list for 192.168.80.131:/data 192.168.80.0/24[root@localhost /]# mount -t nfs 192.168.80.131:/data/ /data/[root@localhost /]# [root@localhost /]# df -hFilesystem            Size  Used Avail Use% Mounted on/dev/mapper/cl-root    17G  1.1G   16G   7% /devtmpfs              478M     0  478M   0% /devtmpfs                 489M     0  489M   0% /dev/shmtmpfs                 489M  6.7M  482M   2% /runtmpfs                 489M     0  489M   0% /sys/fs/cgroup/dev/sda1            1014M  139M  876M  14% /boottmpfs                  98M     0   98M   0% /run/user/0192.168.80.131:/data   17G  1.1G   16G   7% /data//验证,在客户端往/data目录中写文件,在服务端查看,

  

 

  

  

转载于:https://www.cnblogs.com/pandj/p/9396425.html

你可能感兴趣的文章
POJ-2251 Dungeon Master
查看>>
tortoisesvn的安装
查看>>
URAL 1353 Milliard Vasya's Function DP
查看>>
速读《构建之法:现代软件工程》提问
查看>>
Android onclicklistener中使用外部类变量时为什么需要final修饰【转】
查看>>
django中聚合aggregate和annotate GROUP BY的使用方法
查看>>
TFS简介
查看>>
docker管理平台 shipyard安装
查看>>
Bootstrap3 栅格系统-简介
查看>>
ADODB类库操作查询数据表
查看>>
博客搬家了
查看>>
Python中使用ElementTree解析xml
查看>>
freemarker默认escape html 防范xss
查看>>
PayPal从Java切换到JavaScript
查看>>
leetcode--字符串翻转
查看>>
Hadoop项目实战-用户行为分析之编码实践
查看>>
java 线程之对象的同步和异步
查看>>
就是想好看
查看>>
jboss5的配置classloader的文件
查看>>
访问控制与虚拟主机
查看>>