资讯详情

Centos7NFS(网络文件系统的搭建)

一、NFS简介

NFS(Network File System,网络文件系统)是历史最悠久的文件共享协议之一,其目的是允许计算机通过网络TCP/IP网络共享资源NFS本地应用NFS位于远端的客户端应用程序可以透明地读写NFS服务器上的文件就像访问本地文件。

理解是一个网络磁盘,你需要把它挂在你的磁盘上; NFS网络文件系统;不同操作系统的机器实现数据共享;RPC协议远程调用; 只要用的NFS一切都要开始RPC服务;NFS是文件系统,RPC负责文件的传输; nfs和rpc的关系:nfs负责管理共享目录的文件系统;rpc负责文件的传递 nfs至少在启动时rpc.nfsd和rpc.mountd2个daemon rpc.nfsd主要管理客户机登录nfs判断客户机是否可以登录服务器和客户机ID信息。 Rpc.mountd主要是管理nfs文件系统。当客户机顺利登录时nfs当服务器读取/etc/exports文件中的配置,然后比较客户机的权限。 协议端口: RPC:111 tcp/udp nfsd: 2049 tcp/udp mountd:RPC服务在 nfs默认情况下,服务启动 mountd动态选取一个随机端口(32768–65535 ,可以在/etc/nfsmount.conf文件中指定mountd的端口

NFS 默认端口为:2049

检查端口是否开放/占用: netstat -antpu | grep 2049  yum -y install  rpcbind   支持安全NFS?RPC服务的连接 yum -y install  nfs-utils   包括基本的NFS命令和监控程序 

其他:查看共享磁盘空间

df 查看以磁盘分区为单位的文件系统,可以获取硬盘占用的空间和剩余的空间。 df -hl:检查磁盘的剩余空间 df -h:检查每个根路径的分区大小 du -sh [目录名]:返回目录的大小 du -sm [文件夹] du -h [目录名]:查看指定文件夹下的所有文件大小(包括子文件夹) 例如,我们使用它df -h命令查看磁盘信息, -h 根据大小适当显示选项: 

mkdir -p /data ####创建共享目录 vim /etc/exports /data/  192.168.153.162 (rw,sync,no_root_squash)     /data/表示共享目录   192.168.153.162 和谁分享,这里也可以写网段。     (rw,sync,no_root_squash)  读写、同步、无限root用户。 

有一个地方需要注意: 当服务端修改配置文件时,我们不需要重启服务即可生效 要不要出错: 在这里插入图片描述

其他:

 1)exportfs命令   一般格式:  exportfs   参数  具体参数详解:  -a           # 所有挂载(或卸载)/etc/exports文件中的设置。  -r           # 重新加载/etc/exports中的设置  -u           # 卸载某一目录。  -v           # 在export屏幕上显示共享目录。 2)关于NFS共享常用参数  ro                     只读访问  rw                    读写访问  sync                所有数据所有数据写入共享  async              NFS在写入数据之前,可以要求相应的请求  secure             NFS安全通过1024以下TCP/IP端口发送  insecure          NFS通过1024以上的端口发送  wdelay            若多个用户要写入NFS目录,归组写入(默认)  no_wdelay      若多个用户要写入NFS当使用目录时,立即写入目录async无需此设置。  Hide                在NFS共享目录中不共享其子目录  no_hide           共享NFS子目录的目录  subtree_check   如果共享/usr/bin子目录等,强制NFS检查父目录的权限(默认)  no_subtree_check   与上述相比,不检查父目录的权限  all_squash               共享文件的UID和GID匿名用户的映射anonymous,适用于公共目录。不管使用NFS谁是用户,他的身份将被限制为指定的普通用户身份;   no_all_squash         保留共享文件的UID和GID(默认)  root_squash              添加此选项后,root用户对共享目录的权限控制最高,就像操作本机的目录一样。不安全,不建议使用;root所有用户的请求映射如下anonymous与用户相同的权限(默认)  no_root_squas         对应上述选项,root共享目录的用户权限不高,只有普通用户权限,即限制了root;  root访问权限由用户完全管理;  anonuid=xxx            指定NFS服务器/etc/passwd匿名用户在文件中UID;要和root_squash 以及all_squash指定使用共同使用NFS用户限制后uid和gid,前提是本机的/etc/passwd中存在这个uid和gid。 

nfs是网络文件系统,rpc远程过程调用服务,应使用nfs服务前,需要先打开服务器端rpc服务,通过rpc服务告诉nfs程序控制过程中传输文件数据的端口信息;因此,必须成功启动rpcbind后再启动nfs-utils

systemctl start rpcbind  systemctl enable nfs  #设置启动启动 systemctl enable rpcbind #设置启动启动 systemctl start rpcbind (先启动) #启动rpcbind;必须在启动nfs-utils之前启动rpcbind!!!! systemctl start nfs #启动nfs-utils 

再次查看端口2049: netstat -antpu | grep 2049 **

4.修改NFS默认端口

协议端口: RPC:111 tcp/udp nfsd: 2049 tcp/udp mountd:RPC服务在 nfs默认情况下,服务启动 mountd动态选择随机端口(32768)–65535 ,可以在/etc/nfsmount.conf文件中指定mountd的端口; NFS server启动时,将随机启动多个端口RPC如果使用注册iptables对NFS sever 限制端口会有点麻烦,可以更改配置文件的固定NFS服务相关端口 首先看看目前使用的端口情况

 rpcinfo -p localhost 

# 将以下五行内容添加到配置文件中,其他内容保持不动 # vim /etc/sysconfig/nfs RQUOTAD_PORT=30001 LOCKD_TCPPORT=30002 LOCKD_UDPPORT=30002 MOUNTD_PORT=30003 STATD_PORT=30004 

iptables -A INPUT -s 10.46.121.240 -p tcp -m multiport --dport 111,2049,30001:30004 -j ACCEPT iptables -A INPUT -s 10.46.121.240 -p udp -m multiport --dport 111,2049,30001:30004 -j ACCEPT 

1.添加白名单 firewall-cmd --zone=public --add-port=111/tcp  --permanent firewall-cmd --zone=public --add-port=2049/tcp --permanent firewall-cmd --zone=public --add-port=30001/tcp --permanent firewall-cmd --zone=public --add-port=30002/tcp --permanent firewall-cmd --zone=public --add-port=30003/tcp --permanent firewall-cmd --one=public --add-port=30004/tcp --permanent
firewall-cmd --zone=public --add-port=111/udp --permanent
firewall-cmd --zone=public --add-port=2049/udp --permanent
firewall-cmd --zone=public --add-port=30001/udp --permanent
firewall-cmd --zone=public --add-port=30002/udp --permanent
firewall-cmd --zone=public --add-port=30003/udp --permanent
firewall-cmd --zone=public --add-port=30004/udp --permanent
2.重启防火墙:
systemctl restart firewalld.service
3.查看防火墙端口
firewall-cmd --list-ports

重启:

systemctl restart rpcbind  &&  systemctl restart nfs

** 1).停止NFS

 service nfs stop

2).在ROOT用户下修改文件 >vim /etc/services

systemctl start firewalld.service  开启防火墙
systemctl stop firewalld.service  停止防火墙
systemctl restart firewalld.service  重启防火墙
systemctl disable firewalld.service 重启生效(禁用防火墙)
systemctl status  firewalld  查看防火墙状态

firewall-cmd --state 查看状态
查看端口开放情况
firewall-cmd --list-ports
netstat -ntlp 查看端口    
添加端口到防火墙
firewall-cmd --zone=public --add-port=10022/tcp --permanent
删除端口到防火墙
firewall-cmd --zone=public --remove-port=9050/tcp --permanent

  mkdir -p /data/es

mount -t nfs 主机名或IP:/共享目录 /挂载点

mount -t nfs -onolock,nfsvers=3 192.168.153.162:/data/ /data/es

如果不加 -onolock,nfsvers=3 ,挂载的时候会出现各种问题,所以我们要指定nfs版本为3。 :访问本地的/data/es相当于访问192.168.153.162的共享目录/data/ !该方式是临时挂载,如需永久挂载请将挂载目录添加至/etc/fstab

编辑fstab

vim/etc/fstab 添加一行保存退出: 内网/外网ip:/共享的目录 /共享的目录 nfs defaults 0 0

192.168.153.162:/data/  /data/es  nfs defaults 0 0 
192.168.153.162:/data/ /data/es nfs nolock,nfsvers=3 0 0

案例:192.168.153.162:/data/ /data/es nfs defaults 0 0 1 2 3 4 5 6 7

  1. (第1列) 需要挂载或访问的设备路径
  2. (第2列) 挂载点目录,即访问点
  3. (第3列) 系统格式(文件系统类型)
blkid 查看文件格式

常见的有 vfat,ntfs,fat32等windows系统格式, xfs,ext2/3/4 ,等Linux的系统格式, swap 是指交换分区, auto 是指让系统自动识别文件的系统类型,一般是用于频繁格式化系统类型的光驱或者是软驱, udf 刻录光驱, iso9660 一般为系统镜像光盘 4. (第4列) 对配置挂载点的配置 ro: 以只读来挂载文件系统(read only) rw: 以可读可写的属性来挂载系统 sync 和 async:对于该文件系统的输入输出应该以什么方式完成。sync的意思就是同步完成,通俗点讲,就是当你拷贝一个东西到设备或者分区中时,所有的写入变化将在你输入cp命令后立即生效,这个东西应该立马就开始往设备或者分区里面拷贝了。而如果是async,也就是输入输出异步完成的话,当你拷贝一个东西到设备或者分区中时,可能在你敲击cp命令后很久,实际的写入操作才会执行,换句话说,就是进行了缓冲处理。 虽然async是默认属性,但是对于u盘,移动硬盘这种可移动存储设备,最好还是让他们使用sync选项。 defaults: 所有选项全部使用默认配置,包括rw, suid, dev, exec, auto, nouser, 和 async。 一般用户没有特殊需求,直接使用defaults就可以了 5. (第5,6列: dump 和 fsck 选项 ) dump是一个备份工具,而fsck是一个文件系统扫描检查工具。 可以用man或者google获得更加详细的信息。 第5列是表示dump选项,dump工具通过这个选项位置上的数字来决定文件系统是否需要备份。如果是0,dump就会被忽略,一般上dump很多设置为0。 第6列是fsck选项,fsck命令通过检测该字段来决定文件系统通过什么顺序来扫描检查,根文件系统 / 对应该字段的值应该为1,其他文件系统应该为2。若文件系统在启动时不需要扫描检查,则设置该字段为0。

以上配置则完成了自动挂载文件的配置 末行wq,保存退出后 执行mount -a , 即可完成挂载。 df -h 对挂载操作进行检查 swapon -a , 是对交换分区的启用挂载。 swapon -s 检查交换分区的情况

df -h 查看挂载情况。 服务器端:192.168.153.159 1.客户端:挂载点上传文件 服务器端:192.168.153.162 2.共享目录查看是否有挂载点上传的文件,有表示NFS可正常使用

二,当服务端修改配置文件后,我们可以不用重启服务,使用exportfs -arv即可生效,当然你也可以重启服务。此时,客户端需要重新挂载一下。

exportfs 命令的使用 -a :全部挂载或者卸载; -r :重新挂载; -u :卸载某一个目录; -v :显示共享的目录 在使用nfs时,常用一个选项就是 -o nolock

我们还可以把要挂载的nfs目录写到client上的/etc/fstab文件中 192.168.153.162:/data/ /data/es nfs nolock,nfsvers=3 0 0 然后 mount -a 即可。

四、在windows客户端挂载

① 打开-控制面板-程序-打开或关闭windows功能-勾选NFS客户端 ② 创建挂载点,打开dos命令行进行挂载 1).挂载命令

挂载方法: mount  IP:/共享目录位置 + 挂载点
卸载方法: umount + 挂载点

2).打开dos窗口Win键+R 输入cmd打开控制台

**如果网络错误85:**更换盘符,盘符被其他硬盘占用了

打开我的电脑—》映射磁盘驱动器 我的电脑–>鼠标右键–》映射磁盘驱动器

格式:  \\ip\\共享目录

成功如下图

卸载挂载:

centos7-关闭 rpcbind 服务
1、关闭 rpcbind 服务
sudo systemctl disable rpcbind
2、关闭开机自启动
sudo  systemctl disable rpcbind
3、立即执行关闭
systemctl stop rpcbind.socket
4、 验证是否监听
netstat -anup
关闭NFS
systemctl stop nfs

出错故障排除思路: ① 检查共享目录的配置文件,权限、目录等 ② 是否开启了防火墙,如开启了请添加规则放行相应的端口号 ③ 如果是云主机,要检查安全组里的规则是否放行端口等 ④ 尽量在配置文件中定义使用固定的端口号,便于添加规则 ⑤ 错误如下图(原因是windows端经常会使用大的端口号导致的) ① windows端常出现的问题:提示网络错误-53 解决方法: NFS服务器有一个”在非安全模式工作(允许更高的端口号)“的选项。Windows NFS客户端经常使用的是大的端口号。你可以在你的共享项设置中添加insecure选项 例如:/data/xxx *(insecure,rw) 重启服务再次挂载就可以了

标签: arv连接器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台