一、NFS服务简单介绍

NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。

二、NFS权限参数说明

权限

说明

rw

表示可读写权限

ro

表示只读权限

sync

请求或写入数据时,数据同步写入到NFSServer的硬盘才返回(优点,数据安全不会丢,缺点,性能比不启用该参数要差)

async

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

no_root_squash

访问NFS Server共享的用户如果是root的话,它对该共享目录具有root权限。这个配置原本是为无盘客户端准备的,用户避免应用

root_squash

如果访问NFS Server共享目录的用户是root,则它的权限将被压缩或匿名用户,同时它的UID和GID通常会变成nfsnobody帐号身份

all_squash

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

*在生产中配置NFS的重要技巧

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

a、all_squash把所有客户端都压缩成固定的匿名用户(UID相同)

b、就是aninuid,anongid指定的UID和GID的用户

2)、所有的客户端和服务端都需要有一个相同的UID和GID用户,即nfsnobody(UID必须相同)

anonuid

参数以anon*开头即指anonymous匿名用户,这个用户的UID设置值通常为nfsnobody的UID值,当然也可以自行设置这个UID值。但是,UID必须存在于/etc/passwd中。在多NFS Clients时,如多台Web Server共享一个NFS目录,通过这个参数可以使得不同的NFS Clients写入的数据对所有NFS Clients保持同样的用户权限,即为配置的匿名UID对应用户权限,这个参数很有用,一般默认即可

anongid

同anonuid,区别就是把uid(用户id)换成gid(组id)

noatime

在文件系统上不更新inode访问时间

nosuid

不允许设置用户标识或设置组标识为才能生效

intr

当服务器宕机或者无法到达时,允许中断NFS请求

noexec

当服务器宕机或者无法到达时,允许中断NFS请求

rsize=8192和wsize=8192

通过设定大的同时传输的数据块大小(bytes),以提高NFS读写的速度

nodiratime

不允许更新文件系统上的目录 inode 访问记录

三、搭建NFS服务

1、NFS服务搭建环境说明

系统环境:CentOS7.5  64位

NFS服务端:

•主机名:nfs-master

•IP地址:172.16.2.31

NFS客户端

•主机名:nfs-client

•IP地址:172.16.2..32

2、NFS服务端搭建步骤

第一步:安装并检查NFS和RPC服务

yum install nfs-utils rpcbind -y
rpm -qa nfs-utils rpcbind

第二步:启动RPC服务和NFS服务 (必须先启动RPC服务,然后再启动NFS服务)

systemctl start rpcbind
systemctl start nfs
ps -ef|grep rpc
ps -ef|grep nfs
lsof -i:
rpcinfo -p localhost

第三步:设置开机自启动并检查

systemctl enable rpcbind
systemctl enable nfs
systemctl list-unit-files --type=service|grep "enabled"|egrep "rpcbind|nfs"

第四步:创建共享目录

mkdir /data
chown -R nfsnobody.nfsnobody /data
ls -ld /data

第五步:配置共享/data目录

cat>>/etc/exports<<EOF
#NFS server share directories
/data 172.16.2.0/(rw,sync)
EOF
cat /etc/exports

第六步:平滑重启NFS服务并检查服务

systemctl reload nfs
cat /var/lib/nfs/etab

第七步:本地查看挂载目录

showmount -e 172.16.2.31

3、NFS客户端搭建步骤

第一步:安装NFS和RPC服务并检查

yum install nfs-utils rpcbind -y
rpm -qa nfs-utils rpcbind

第二步:启动RPC服务(不需要启动NFS服务,原因是不安装NFS服务的话没有showmount这个命令)

systemctl start rpcbind
ps -ef|grep rpc
lsof -i:

第三步:设置开机自启动并检查

systemctl enable rpcbind
systemctl list-unit-files --type=service|grep "enabled"|grep "rpcbind"

第四步:检查服务端的NFS挂载目录是否OK

showmount -e 172.16.2.31

第五步:挂载设置开机自动挂载

mount -t nfs 172.16.2.31:/data /mnt
echo "mount -t nfs 172.16.2.31:/data /mnt">>/etc/rc.local #提示:也可以放入/etc/fstab,如果要放入/etc/fstab,需启用netfs服务。这是因为fstab会优先于网络被Linux系统加载。网络没启动时执行fstab会导致连不上NFS服务器端,无法实现开机自动挂载。

第六步:查看是否挂载成功

[root@nfs-client ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 57G .6G 53G % /
devtmpfs 225M 225M % /dev
tmpfs 236M 236M % /dev/shm
tmpfs 236M 5.6M 230M % /run
tmpfs 236M 236M % /sys/fs/cgroup
/dev/sda1 190M 93M 84M % /boot
tmpfs 48M 48M % /run/user/
172.16.2.31:/data 57G .6G 53G % /mnt

Linux搭建NFS服务的更多相关文章

  1. 搭建NFS服务

    说明:这里是Linux服务综合搭建文章的一部分,本文可以作为单独搭建yum仓库的参考. 注意:这里所有的标题都是根据主要的文章(Linux基础服务搭建综合)的顺序来做的. 如果需要查看相关软件版本和主 ...

  2. 最全Linux搭建SVN服务端教程

    文章首推 支付宝接口对接 高德地图调用 验证码登录 QQ邮箱登录 今日主题:Linux搭建SVN服务端 简介 相信程序员对SVN还是不陌生的,虽然现在用Git比较多,但是SVN也是用的,SVN可以做代 ...

  3. Linux之NFS服务搭建及autofs服务搭建

    NFS 网络文件系统,英文Network File System(NFS),是由SUN公司研制的UNIX表示层协议(presentation layer protocol),能使使用者访问网络上别处的 ...

  4. linux服务搭建----NFS服务搭建

    nfs  服务     //配置脚本         /etc/exports     //服务器  发布目录     1> 确定需要发布的目录(想要共享的目录)     例如:      想发 ...

  5. Linux 搭建NFS文件服务器实现文件共享

    我们接着玩Linux,O(∩_∩)O哈哈~ 1.什么是nfs NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP ...

  6. Linux搭建nfs服务器

    使用linux进行嵌入式开发的时候,为了方便开发,通常是将开发板挂载到宿主机的文件系统上,然后将代码放到共享给开发板的目录中,再通过开发板运行. 首先查看是否安装了 nfs 软件包,yum list ...

  7. Linux搭建NFS提供磁盘给Windows使用

    在Windows2008系统下设置挂载Linux服务器磁盘 一.系统环境 系统平台:CentOS release 5.8 (Final) NFS Server IP:X....X...153.157 ...

  8. linux配置nfs服务

    简单介绍: unix/linux系统一种远程文件文件夹共享的服务,能够把某一个远程的文件文件夹共享到本地,进而像操作本地文件一样,操作这个远程的文件夹. 比如:a主机作为服务端,共享出来test1这个 ...

  9. linux 搭建SVN服务端

    搞了个服务器,然后现在想搞点事情,于是乎整个SVN在上面,算是熟悉下svn的操作过程 以下内容转载自: https://yq.aliyun.com/articles/6693 ------------ ...

随机推荐

  1. 某些机root也不能访问dma-buf

    从4.3后,回顾<从surfaceflinger历史变更谈截屏>,只能通过生产消费者队列向surfaceflinger服务申请显示缓冲,这个缓冲就是dma-buf映射的共享内存. bind ...

  2. hopper逆向的伪代码令人大跌眼镜

    网上介绍hopper有逆向伪代码的文章很多,并以为其是万能而且cool B的.但是并没有人去求证hopper的逆向伪代码参考系数(参考价值,大家做过开发都清楚明白,有些功能看起来很花很cool但不实用 ...

  3. Django2.0--创建缓存表

    创建缓存表 在项目的虚拟环境下(若有),执行:python manage.py createcachetab

  4. 安卓Android碎片fragment实现静态加载

    静态加载好后的界面如下,两个碎片分别位于一个活动的左边和右边: 左边和右边分别为一个碎片,这两个碎片正好将一整个活动布满.一个活动当中可以拥有多个碎片,碎片的含义就是可以在同一个UI界面下,将这个界面 ...

  5. day 40 文本属性 常用css属性 定位

    一. 浮动的特性 1.浮动的元素脱标 2.浮动的元素互相贴靠 3.浮动的元素由"字围"效果 4.收缩的效果 前提是标准文档流,margin的垂直方向会出现塌陷问题. 如果盒子居中: ...

  6. csrf与xss

    CSRF攻击攻击原理及过程如下: 1. 用户C打开浏览器,访问受信任网站A,输入用户名和密码请求登录网站A:       2.在用户信息通过验证后,网站A产生Cookie信息并返回给浏览器,此时用户登 ...

  7. linux防火墙的相关命令

    一.iptables防火墙(需要安装防火墙sudo apt-get install firewalld命令查看插件)1.基本操作 # 查看防火墙状态 service iptables status # ...

  8. Mybatis拦截器实现原理深度分析

    1.拦截器简介 拦截器可以说使我们平时开发经常用到的技术了,Spring AOP.Mybatis自定义插件原理都是基于拦截器实现的,而拦截器又是以动态代理为基础实现的,每个框架对拦截器的实现不完全相同 ...

  9. TypeScript躬行记(1)——数据类型

    TypeScript不仅支持JavaScript所包含的数据类型,还额外扩展了许多实用的数据类型,例如枚举.空值.任意值等. 一.JavaScript的数据类型 JavaScript的数据类型包括6种 ...

  10. 【nodejs原理&源码赏析(1)】Express中间件系统的基本实现

    一直觉得express的中间件系统这种流式处理非常形象,就好像加工流水线一样,每个环节都在针对同一个产品的不同部分完成自己的工作,最后得到一个成品.今天就来实现一个简易的[中间件队列]. 一. API ...