IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> Centos7NFS(网络文件系统的搭建) -> 正文阅读

[系统运维]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安装

1,首先在服务端上安装nfs-utils和rpcbind。
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 [文件夹]:返回该文件夹总M数
du -h [目录名]:查看指定文件夹下的所有文件大小(包含子文件夹)
例如,我们使用df -h命令来查看磁盘信息, -h 选项为根据大小适当显示:

2.编辑nfs配置文件。

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用户。

这里有个地方要注意:在ip和权限之间是不能有空格的,否则会有报错提示。

其他:

 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。

3,启动rpcbind nfs服务。

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的端口;
1.NFS server 端口修改
NFS server启动时会随机启动多个端口并向RPC注册,这样如果使用iptables对NFS sever 端口进行限制就会有点麻烦,可以更改配置文件固定NFS服务相关端口
先看一下目前所使用的的端口情况

 rpcinfo -p localhost

在这里插入图片描述

# 在配置文件中添加以下5行内容,其他的保持不动
# vim /etc/sysconfig/nfs
RQUOTAD_PORT=30001
LOCKD_TCPPORT=30002
LOCKD_UDPPORT=30002
MOUNTD_PORT=30003
STATD_PORT=30004
systemctl restart nfs && systemctl restart rpcbind

在这里插入图片描述

2.nfsd 端口修改

**
1).停止NFS

 service nfs stop

在这里插入图片描述

2).在ROOT用户下修改文件 >vim /etc/services
在这里插入图片描述

三,客户端挂载目录。

1,在挂载目录之前,需要用到showmount命令,所以要安装nfs-utils. yum install -y nfs-utils。

2,查看服务器端都共享了哪些目录。 showmount -e 192.168.153.162 可以看到
在这里插入图片描述
备注:如果出现如下错误:
在这里插入图片描述
查看服务端防火墙是否开启:

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

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

在这里插入图片描述
3.创建客服端:创建共享目录

  mkdir -p /data/es

4.挂载

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

在这里插入图片描述

5.其他: 自动挂载目录/etc/fstab详解
案例: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 检查交换分区的情况

6.查看挂载情况
df -h 查看挂载情况。
在这里插入图片描述
7.测试NFS能否正常使用
服务器端: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 即可。

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-05-21 19:18:51  更:2022-05-21 19:20:12 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 15:42:37-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码