配置与管理NFS服务(详细教程)
Linux和Windows之间可以通过Samba共享文件,Linux和Linux之间进行资源共享就要用到网络文件系统(Network File System,NFS),它最早是NUIX操作系统之间共享文件和操作系统的一种方法,后来被Linux操作系统完美继承。NFS与Windows下的“网上邻居”十分相似,它允许用户连接到一个共享位置,然后像对待本地硬盘一样操作。NFS最早是由Sun公司与1984
一、NFS基础理论
1.1简介
Linux和Windows之间可以通过Samba共享文件,Linux和Linux之间进行资源共享就要用到网络文件系统(Network File System,NFS),它最早是NUIX操作系统之间共享文件和操作系统的一种方法,后来被Linux操作系统完美继承。NFS与Windows下的“网上邻居”十分相似,它允许用户连接到一个共享位置,然后像对待本地硬盘一样操作。
NFS最早是由Sun公司与1984年开发出来的,其目的就是让不同计算机,不同操作系统之间可以彼此共享文件。由于NFS使用起来非常方便,因此很快得到了大多数UNIX/Linux系统的支持,而且被IETE(国际互联网工程组)制定为RFC1904、RFC1813和RFC3010标准。
1.2工作流程
常规的NFS服务是按照如下流程进行的:
- NFS启动时,自动选择工作端口小于1024的1011端口,并向RPC(工作于111端口)汇报,RPC记录在案。
- 客户端需要NFS提供服务时,首先向111端口的RPC查询NFS工作在哪个端口。
- RPC回答客户端,它工作在1011端口。
- 于是,客户端直接访问NFS服务器的1011端口,请求服务。
- NFS服务经过权限认证,允许客户端访问自己的数据。
(因为NFS需要向RPC服务器注册,所以RPC服务必须优先NFS服务启用,并且RPC服务重新启动后,需要重新启动NFS服务,让它重新想RPC服务注册,这样NFS服务才能正常工作)
1.3优点
- 本地工作站可以使用更少的磁盘空间,因为通常的数据可以存放在一台机器上,而且可以通过网络访问到。
- 用户不必在网络上的每个机器中都设一个home目录,home目录可以被放在NFS服务器上,并且在网络上处处可用。
- 诸如CD-ROM、DVD-ROM之类的储存设备可以在网络上被其他机器使用。这可以减少整个网络上可移动介质设备的数量。
二、项目实训
2.1目的
配置NFS服务,使得文件共享,并且掌握相关权限问题
2.2准备工作
Linux服务器RHEL7.4(IP:192.168.1.2/24)
Linux客户端RHEL7.4(IP:192.168.1.3/24)
所有主机在同一局域网内,并保证网络连通性
2.3实操
2.3.1安装NFS服务
NFS服务所需要的套件:
1、Rpcbind
NFS要正常运行,就必须借助RPC服务的帮助,做好端口映射工作,而这个工作就是由rpcbind负责的。
2、nfs-utils
nfs-utils是提供rpc.nfsd和rpc.mounted这两个守护进程与其他相关文档、执行文件的套件。这是NFS服务的主要套件。
检测是否安装了NFS相关软件
server操作:
client操作:
RHEL 7中,在默认情况下,NFS服务会自动安装到计算机中
如果没有安装可以使用yum命令进行安装
2.3.2启动NFS服务
server操作:
client操作:
2.3.3防火墙放行NFS服务
要通过两个服务:nfs、rpc-bind、和一个端口号:20048/udp
server操作:
client操作:
2.3.4在server服务器上配置NFS服务
2.3.4.1先在服务器创建两个用来共享的目录:/tmp1、/tmp2。并设置他们权限为777
在/tmp1里创建一个名为one的文件,写入“hello!”
在/tmp2里创建一个名为two的文件,写入“hi!”
2.3.4.2NFS的配置文件一般都要手动创建:
(vim /etc/exports),进入插入模式编辑(i)
保存退出后重新加载NFS服务,使配置文件生效
配置文件格式:共享目录路径 允许访问的NFS客户端(共享权限参数)
例如:
这个文件的配置很简单,每一行最前面是要共享出来的目录,然后这个目录可以按照不同权限共享给不同主机
注意:
1、/tmp2分别共享给3个不同的主机或域。
2、主机后面以小括号设置权限参数,若参数不止一个则以逗号分开,而且主机名与小括号是连在一起的。
3、在设置/etc/exports文件时需要注意空格的使用,因为在此配置文件中,除了分开共享目录和共享主机以及分隔多台共享主机外,在其余的情形下都不可以使用空格。
用于配置NFS服务程序配置文件的参数:
参数
作用
ro
只读
rw
读写
root_squash
当NFS客户端以root管理员访问时,映射为NFS服务器的匿名用户
no_root_squash
当NFS客户端以root管理员访问时,映射为NFS服务器的root管理员
all_squash
无论NFS客户端使用什么账户访问,均映射为NFS服务器的匿名用户
sync
同时将数据写入到内存与硬盘中,保证不丢失数据
async
优先将数据保存到内存,然后再写入硬盘;这样效率更高,但可能会丢失数据
2.3.4.3 在client客户端挂载NFS文件系统
识别要访问的远程共享:
showmount -e NFS服务器IP
showmount命令的用法:
参数
作用
-e
显示服务器上所有的输出目录(共享资源)
-a
显示本机挂载的文件资源的情况NFS资源的使用情况
-d
只显示被客户端使用的输出目录信息
-v
显示版本号
在客户端加载NFS服务器共享目录:
首先在客户端创建两个本地目录,用来加载NFS服务器上的输出目录
再使用mount命令对服务器两个共享目录进行挂载
mount -t nfs 服务器地址:输出目录 挂载目录 (如果要卸载可以使用“umount /mnt/tmp1”)
检查挂载情况(df -h)
2.3.4.4测试:
跳转到客户端的/mnt/tmp1目录下,查看文件one
在/tmp1里创建一个文件1
由此可见:/tmp1是只读的,对应前面设置的权限(ro)
跳转到客户端的/mnt/tmp2目录下,查看文件two
在/tmp2里创建一个文件2
由此可见:/tmp2是可读可写,对应前面设置的权限(rw)
2.3.5拓展
在上文2.3.4.3讲到的挂载操作每次关机开机后都要进行挂在一次,比较繁琐,推荐以下方法:
在客户端进行永久自动挂载NFS服务器
RHEL 7 下的自动加载文件系统都是在/etc/fstab中定义的,NFS文件系统也支持自动加载
编辑fstab,vim /etc/fstab
添加如下两行
保存退出,使设置生效
保存退出后使用mount -a 重新挂载
然后可以使用df -h再次进行查看是否成功挂载
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)