NFS服务器搭建与配置
NFS服务器简介
Linux和Windows之间可以通过Samba共享文件,Linux之间资源共享可以用到网络文件系统(Network File System , NFS)
它的核心功能就是可以通过网络,让不同的客户端,可以彼此访问共同的文件系统 ,来实现文件的共享。
NFS 服务器可以让客户端将网络远程的 NFS 服务器分享的目录,直接挂载到本地端的机器当中。本地端的机器通过直接读写挂载的目录,就可以同步
NFS的好处
1.本机使用更少的磁盘空间
2.home目录可以被放在NFS服务器上,并在网络中随处可用
实验原理:
RPC远程进程调用
因为NFS支持的功能相当多,而不同的功能都会使用不同的程序来启动,每启动一个功能就会启用一些端口来传输数据,因此NFS的功能对应的端口并不固定,而RPC就是用来统一管理NFS端口的服务,并且统一对外的端口是111。
当客户端需求NFS服务时,就会访问服务器的111端口(RPC),RPC会将NFS工作端口返回客户端。
NFS服务流程
- NFS启动时,自动选择工作端口小于1024的1011端口,并向RPC(工作于111端口)汇报,RPC记录。
- 客户端需要NFS提供服务时,首先向111端口的RPC查询NFS工作端口。
- RPC回答客户端,NFS工作在1011端口。
- 然后,客户端直接访问NFS服务器的1011端口,请求服务。
- NFS服务经过权限认证,允许客户端访问自己的数据。
NFS服务组件
- rpc.nfsd
这个守护进程的主要作用就是判断,检查客户端是否具备登陆主机的权限,负责处理NFS请求。 - rpc.mounted
这个守护进程的主要作用就是管理NFS的文件系统。当客户端顺利通过rpc.nfsd登录主机后,在开始使用NFS主机提供的文件之前,它会检查客户端的权限(根据/etc/ exports来对比客户端的权限)。通过这一关之后,客户端才可以顺利访问NFS服务器上的资源。 - Rpcbind
这个守护进程的主要功能是进行端口映射工作。当客户端尝试连接并使用RPC服务器提供的服务(如NFS服务)时,rpcbind会将所管理的与服务对应的端口号提供给客户端,从而使客户端可以通过该端口向服务器请求服务。 - rpc.locked
rpc.stated守护进程使用本进程来处理崩溃系统的锁定恢复。因为既然NFS文件可以让众多的用户同时使用,客户端同时使用一个文件时,就有可能造成一些问题。此时,rpc.locked可以帮助解决这个难题。 - rpc.stated
这个守护进程负责处理客户与服务器之间的文件锁定问题,确定文件的一致性(与rpc.locked有关)。当因为多个客户端同时使用一个文件造成文件破坏时,rpc.stated可以用来检测该文件并尝试恢复。 - rpc.quotad
这个守护进程提供了NFS和配额管理程序之间的接口。不管客户端是否通过NFS对它们的数据进行处理,都会受配额限制。
Linux下NFS服务器部署
我是在centos7上进行的部署
- 首先安装nfs服务
[root@nfs ~]# yum clean all //安装前先清除缓存
[root@nfs ~]# yum install rpcbind nfs-utils -y
启动nfs服务
[root@nfs ~]# systemctl restart rpcbind
[root@nfs ~]# systemctl restart nfs
查询NFS程序是否正常运行
我们看到nfs和mounted选项,说明NFS正常运行。
root@nfs ~]# rpcinfo -pprogram vers proto port service100000 4 tcp 111 portmapper100000 3 tcp 111 portmapper100000 2 tcp 111 portmapper100000 4 udp 111 portmapper100000 3 udp 111 portmapper100000 2 udp 111 portmapper100024 1 udp 47228 status100024 1 tcp 54782 status100005 1 udp 20048 mountd100005 1 tcp 20048 mountd100005 2 udp 20048 mountd100005 2 tcp 20048 mountd100005 3 udp 20048 mountd100005 3 tcp 20048 mountd100003 3 tcp 2049 nfs100003 4 tcp 2049 nfs100227 3 tcp 2049 nfs_acl100003 3 udp 2049 nfs100003 4 udp 2049 nfs100227 3 udp 2049 nfs_acl100021 1 udp 43697 nlockmgr100021 3 udp 43697 nlockmgr100021 4 udp 43697 nlockmgr100021 1 tcp 46497 nlockmgr100021 3 tcp 46497 nlockmgr100021 4 tcp 46497 nlockmgr
配置共享目录,在/etc/exports配置文件中编辑
export文件格式
NFS服务的配置,主要就是创建并维护/etc/exports文件。
[root@nfs ~]# mkdir /tmp1 //创建共享目录
[root@nfs ~]# mkdir /tmp2
[root@nfs ~]# vim /etc/exports
/tmp1 192.168.225.0/24(rw)
/tmp2 192.168.225.0/24 (rw)
#共享目录 nfs客户端1(权限) nfs客户端2(权限)
[root@nfs ~]# firewall-cmd --permanent --add-service=nfs
success //配置防火墙放行nfs服务
[root@nfs ~]# firewall-cmd --reload
success
[root@nfs ~]# systemctl restart nfs //重启nfs服务
export文件格式
例如:
/home Client(rw)
/home Client (rw) #注意有个空格
在以上的第一行中,客户端Client对/home目录具有读取和写入权限,而第二行中的Client对/home目录只具有读取权限(这是系统对所有客户端的默认值)。而除Client之外的其他客户端对/home目录具有读取和写入权限。
权限规则:
至于权限方面(就是小括号内的参数),常见的参数有以下几种。
● rw:read-write,可读/写的权限。
● ro:read-only,只读权限。
● sync:数据同步写入内存与硬盘当中。
● async:数据会先暂存于内存当中,而非直接写入硬盘。
● no_root_squash:登录NFS主机使用共享目录的用户,如果是root,那么对于这个共享的目录来说,它就具有root的权限。这个设置“极不安全”,不建议使用。
● root_squash:如果登录NFS主机使用共享目录的用户是root,那么这个用户的权限将被压缩成匿名用户,通常它的UID与GID都会变成nobody(nfsnobody)这个系统账号的身份。
● all_squash:不论登录NFS的用户身份如何,它的身份都会被压缩成匿名用户,即nobody(nfsnobody)。
● anonuid:anon是指anonymous(匿名者),前面关于术语squash提到的匿名用户的UID设定值,通常为nobody(nfsnobody),但是可以自行设定这个UID值。当然,这个UID必须存在于/etc/passwd当中。
● anongid:同anonuid,但是变成Group ID就可以了。
nfs客户端挂载配置:
使用showmount命令查看nfs服务器共享信息。
[root@nfs ~]# showmount -e 192.168.225.10 //nfs服务器IP
Export list for 192.168.225.10:
/tmp2 (everyone)
/tmp1 192.168.225.0/24
在客户端创建目录,并挂载共享目录
[root@client ~]# mkdir /mnt/public
[root@client ~]# mkdir /mnt/data
[root@client ~]# vim /etc/fstab //自动挂载
192.168.225.10:/tmp1 /mnt/public nfs defaults 0 0
192.168.225.10:/tmp2 /mnt/data nfs defaults 0 0
[root@client ~]# mount -a //使文件生效
[root@client ~]# df -Th //检查是否挂载成功
Filesystem Type Size Used Avail Use% Mounted on
devtmpfs devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs tmpfs 1.9G 13M 1.9G 1% /run
tmpfs tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/mapper/centos-root xfs 36G 4.4G 31G 13% /
/dev/sda1 xfs 1014M 185M 830M 19% /boot
tmpfs tmpfs 378M 24K 378M 1% /run/user/0
/dev/sr0 iso9660 4.4G 4.4G 0 100% /run/media/root/CentOS 7 x86_64
192.168.225.10:/tmp1 nfs4 36G 4.8G 31G 14% /mnt/public
192.168.225.10:/tmp2 nfs4 36G 4.8G 31G 14% /mnt/data
测试
在nfs服务器的共享目录里创建一个10.txt文件
[root@nfs ~]# cd /tmp1
[root@nfs tmp1]# touch 10.txt
[root@nfs tmp1]# vim 10.txt
[root@nfs tmp1]# cat 10.txt
this is first tmp
在客户端的挂载目录里可以看到有一个10.txt文件
[root@client ~]# cd /mnt/public/
[root@client public]# ls
10.txt
[root@client public]# cat 10.txt
this is first tmp
这样就可以实现Linux 间的文件共享
NFS服务器搭建与配置相关推荐
- Centos7 | NFS服务器搭建与配置
一.NFS服务简介 1.什么是NFS NFS就是Network File System的缩写,它最大的功能就是可以通过网络,让不同的机器.不同的操作系统可以共享彼此的文件. NFS服务器可以让PC将网 ...
- NFS服务器搭建及配置
环境规划 将web服务的站点目录挂载到共享目录 实现修改共享目录下的内容 web服务一访问即发生变化 从而证明nfs创建成功 名称 ip nfs服务端 10.0.0.6 web服务器 10.0.0.7 ...
- ubuntu nfs 服务器搭建
参考资料:朱老师物联网大讲堂嵌入式linux一期课程,环境搭建相关资料(微信搜索"朱老师物联网大讲堂",关注公众号可下载相关资料) ubuntu nfs 服务器搭建 前言 一.安装 ...
- Exynos4412 NFS服务器搭建
环境: 主机:ubuntu 12.04 开发板主芯片:Exynos4412 交叉编译器:arm-2009q3.tar.bz2 一.确保pc ip和开发板ip处于同一网段 例如:我的ubuntu12.0 ...
- 网站服务器怎么组件,网站服务器搭建与配置详解!
原标题:网站服务器搭建与配置详解! 服务器大家经常会听说,但是可能大家对个中概念还有些不明白,这里跟大家说说网站服务器的搭建与配置. 网站服务器概念 网站服务器是网络应用的基础硬件设施,简言之即存放网 ...
- Git服务器搭建和配置
Git服务器搭建和配置 参考博客: 1.http://blog.csdn.net/michaelhan3/article/details/51637271 2.http://blog.csdn.net ...
- NFS服务器搭建-共享PC与ARM主板文件
NFS服务器搭建-共享PC与ARM主板文件 在搭建好交叉编译环境之后需要实现目标板与宿主机的文件共享,在这里选择NFS,由于资料较多.需要注意的以下几点: 目标板与宿主机需要连接在同一个网段内. 宿主 ...
- 网络系统管理赛项之debian 十七 . LDAP服务器搭建及配置方法
LDAP服务器搭建及配置方法 LDAP服务器搭建 一.赛题LDAP搭建需求 二.LDAP简单理论介绍 1.什么是LDAP? 2.LDAP相关模型 三.安装 slapd 安装过程 四.修改主配置文件 五 ...
- FTP服务器搭建与配置
FTP服务器搭建与配置 01.FTP简介 FTP的全称是File Transfer Protocol,即文件传输协议.可以FTP程序访问远程资源. 02.勾选FTP服务器选项 步骤:打开控制面板-&g ...
最新文章
- 关于tomcat中文乱码的问题解决
- 解决WAMP搭建PHP环境后后局域网其他机器无法访问的问题
- 每天AI资讯这么多,该看哪些?推荐一份优质AI内参!
- 用微信小程序开发的Canvas绘制可配置的转盘抽奖
- JSON 分析数据格式
- 【Transformer】TNT: Transformer iN Transformer
- delphi 函数内创建对象 释放_JavaScript 的函数底层运行机制
- unity3d 预制体
- (五)nodejs循序渐进-回调函数和异常处理(基础篇)
- django-后台管理
- 给定一个数组 prices计算其利润最大
- 如何使用APUE源代码(UNIX高级编程)-转
- webdriver 等待页面加载完成_Python爬虫,登陆神器Selenium等待(waits)页面加载的三种方法...
- 麻瓜编程python web百度网盘_麻瓜编程_Python Web开发工程师_附课程配套资料
- Linux内核五个安全模块简述
- typecho图片插件_Typecho图片表情插件Smilies1.1.3更新
- 2^n-1的因数分解问题
- 菜肴百度百科html,酸汤鱼
- 微信营销十一(微信公众号吸粉技巧)
- 如果到来,会是怎样情况,fuck,
热门文章
- z世代消费力白皮书_“Z世代”的世界 消费流里的商机
- java archlinux_ArchLinux的使用(2):开发环境的搭建
- EMUI10升级用户破亿,助推HUAWEI HiCar驶入生态发展快车道
- 数字拆分问题算法回溯_拆分自然数的几种算法
- altium designer导入cad图纸
- 什么是显卡的OpenGL模式
- 【SemiDrive源码分析】【X9芯片启动流程】26 - R5 SafetyOS 之 LK_INIT_LEVEL_TARGET 阶段代码流程分析(TP Drvier、Audio Server初始化)
- 易诚互动携手阿里金融云加速银行业云化
- linux 定时器 jiffies,linux下jiffies定时器和hrtimer高精度定时器(示例代码)
- 卫龙携手契约锁,推动人事、采购、销售业务电子签