【156】NFS服务搭建与配置及常用命令

2024-05-26 23:48

本文主要是介绍【156】NFS服务搭建与配置及常用命令,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

内容目录(原文见公众号python宝)

一、NFS 工作原理简介(NFS是Net File System的简写,即网络文件系统)二、NFS 服务所需的安装包及常用命令三、NFS服务端搭建

一、NFS 工作原理简介

注意:一台机器不要同时做 NFS 的服务端和 NFS 的客户端。如果同时作了 NFS 的服务端和客户端,那么在关机的时候,会一直夯住,可能十分钟之后甚至更久才能关闭成功。

        启动 NFS SERVER 之前,首先要启动 RPC 服务(CentOS 5.x 下为 portmap 服务,CentOS 6.x 和 CentOS 7.x 下为 rpcbind 服务,下同),否则 NFS SERVER 就无法向 RPC 服务注册了。

        另外,如果 RPC 服务重新启动,原来已经注册好的NFS端口数据就会丢失,因此,此时 RPC 服务管理的NFS程序也需要重新启动以重新向RPC注册。

        要特别注意的是:一般修改NFS配置文件后,是不需要重启NFS的,直接在命令行执行 /etc/init.d/nfs reload 「针对CentOS 5.x 或 CentOS 6.x」 或 systemctl reload nfs.service 「针对CentOS 7.x」 或 exportfs -rv 即可使修改的 /etc/exports 生效。

exportfs

如果我们在启动了NFS之后又修改了/etc/exports,是不是还要重新启动nfs呢?这个时候我们就可以用exportfs 命令来使改动立刻生效,该命令格式如下:

  # exportfs [-aruv]

  -a 全部挂载或卸载 /etc/exports中的内容 
  -r 重新读取/etc/exports 中的信息 ,并同步更新/etc/exports、/var/lib/nfs/xtab
  -u 卸载单一目录(和-a一起使用为卸载所有/etc/exports文件中的目录)
  -v 在export的时候,将详细的信息输出到屏幕上。

具体例子: 
   exportfs -au 卸载所有共享目录
     exportfs -rv 重新共享所有目录并输出详细信息

NFS系统守护进程

  • nfsd:它是基本的NFS守护进程,主要功能是管理客户端是否能够登录服务器;

  • mountd:它是RPC安装守护进程,主要功能是管理NFS的文件系统。当客户端顺利通过nfsd登录NFS服务器后,在使用NFS服务所提供的文件前,还必须通过文件使用权限的验证。它会读取NFS的配置文件/etc/exports来对比客户端权限。

  • portmap:主要功能是进行端口映射工作。当客户端尝试连接并使用RPC服务器提供的服务(如NFS服务)时,portmap会将所管理的与服务对应的端口提供给客户端,从而使客户可以通过该端口向服务器请求服务。

NFS的常用目录

/etc/exports                           NFS服务的主要配置文件

/usr/sbin/exportfs                   NFS服务的管理命令

/usr/sbin/showmount              客户端的查看命令

/var/lib/nfs/etab                      记录NFS分享出来的目录的完整权限设定值

/var/lib/nfs/xtab                      记录曾经登录过的客户端信息

        NFS服务的配置文件为 /etc/exports,这个文件是NFS的主要配置文件,不过系统并没有默认值,所以这个文件不一定会存在,可能要使用vim手动建立,然后在文件里面写入配置内容。

/etc/exports文件内容格式

<输出目录> [客户端1 选项(访问权限,用户映射,其他)] [客户端2 选项(访问权限,用户映射,其他)a. 输出目录:输出目录是指NFS系统中需要共享给客户机使用的目录;b. 客户端:客户端是指网络中可以访问这个NFS输出目录的计算机客户端常用的指定方式指定ip地址的主机:192.168.0.200
指定子网中的所有主机:192.168.0.0/24 192.168.0.0/255.255.255.0
指定域名的主机:david.bsmart.cn
指定域中的所有主机:*.bsmart.cn
所有主机:*
c. 选项:选项用来设置输出目录的访问权限、用户映射等。NFS主要有3类选项:访问权限选项设置输出目录只读:ro
设置输出目录读写:rw
用户映射选项all_squash:将远程访问的所有普通用户及所属组都映射为匿名用户或用户组(nfsnobody);
no_all_squash:与all_squash取反(默认设置);
root_squash:将root用户及所属组都映射为匿名用户或用户组(默认设置);
no_root_squash:与rootsquash取反;
anonuid=xxx:将远程访问的所有用户都映射为匿名用户,并指定该用户为本地用户(UID=xxx);
anongid=xxx:将远程访问的所有用户组都映射为匿名用户组账户,并指定该匿名用户组账户为本地用户组账户(GID=xxx);
其它选项secure:限制客户端只能从小于1024的tcp/ip端口连接nfs服务器(默认设置);
insecure:允许客户端从大于1024的tcp/ip端口连接服务器;
sync:将数据同步写入内存缓冲区与磁盘中,效率低,但可以保证数据的一致性;
async:将数据先保存在内存缓冲区中,必要时才写入磁盘;
wdelay:检查是否有相关的写操作,如果有则将这些写操作一起执行,这样可以提高效率(默认设置);
no_wdelay:若有写操作则立即执行,应与sync配合使用;
subtree:若输出目录是一个子目录,则nfs服务器将检查其父目录的权限(默认设置);
no_subtree:即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率;

二、NFS 服务所需的安装包和常用命令

1、安装 NFS 和 RPC 「服务端、客户端都安装」


rpm -qa nfs-utils rpcbind # 查询是否有,没有用yum安装
yum install nfs-utils rpcbind -y    #nfs需要的安装包
rpm -qa nfs-utils rpcbind
# nfs-utils-1.3.0-0.66.el7.x86_64
# rpcbind-0.2.0-49.el7.x86_64查看是否安装rpm -qa |grep nfsrpm -qa |grep rpcbind# 关闭防火墙,selinux
systemctl stop firewalld.service
systemctl disable firewalld.service  # 禁止防火墙开机自启动
setenforce 0

2、查看用户信息

[root@lhrdocker ~]# tail /etc/passwd | egrep -i "rpc|nfs"
rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin   #yum安装rpc服务时创建的
nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin  #yum安装nfs服务时创建的

3、NFS 版本和状态查看

服务端版本查看
nfsstat -s
客户端版本查看
nfsstat  -c
加入开始自启动
[root@nfs01 ~]# tail /etc/rc.local
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.touch /var/lock/subsys/local# start rpc and nfs server
/etc/init.d/rpcbind start
/etc/init.d/nfs start1.启动nfs服务
systemctl start nfs-server.service2.设置开机自启动
systemctl enable nfs-server.service3.停止开机自启动
systemctl disable nfs-server.service
4.查看服务当前状态
systemctl status nfs-server.service5.重新启动某服务
systemctl restart nfs-server.service6、rpcbind.service
systemctl status/start/restart rpcbind.service7、查看有哪些参数生效
cat /var/lib/nfs/etab 8、检查共享信息
showmount -e 172.16.1.31-a 显示已经于客户端连接上的目录信息-e IP或者hostname 显示此IP地址分享出来的目录-d 显示指定的nfs服务器中已被客户端连接的所有输出目录;
9、查看挂载信息
df -h        #有时可能会被卡主
cat /proc/mounts                     # 优先使用,监控时使用该命令

相关配置文件及命令的使用
/etc/exports
/path/to/somedir CLIENT_LIST
多个客户之间使用空白字符分隔
每个客户端后面必须跟一个小括号,里面定义了此客户访问特性,如访问权限等172.16.0.0/16(ro,async) 192.16.0.0/24(rw,sync) *(ro)权限属性:ro:只读rw:读写sync:同步,数据同步写到内存与硬盘中async:异步,数据先暂存内存root_squash: 将root用户映射为来宾账号no_root_squash: 有root的权限,不建议使用all_squash: 全部映射为来宾账号anonuid, anongid: 指定映射的来宾账号的UID和GID exportfs命令:-a:跟-r或-u选项同时使用,表示重新挂载所有文件系统或取消导出所有文件系统;-r: 重新导出-u: 取消导出-v: 显示详细信息showmount命令:
showmount -e NFS_SERVER: 查看NFS服务器"导出"的各文件系统
showmount -a NFS_SERVER: 查看NFS服务器所有被挂载的文件系统及其挂载的客户端对应关系列表
showmount -d NFS_SERVER: 显示NFS服务器所有导出的文件系统中被客户端挂载了文件系统列表rpcinfo
-p hostname(orIP)
-p :显示所有的 port 与 program 的信息!如果要让mountd和quotad等进程监听在固定端口,
编辑配置文件/etc/sysconfig/nfs客户端使用mount命令挂载
mount -t nfs NFS_SERVER:/PATH/TO/SOME_EXPORT /PATH/TO/SOMEWHRERE

三、NFS服务端搭建

NFS服务端所需的软件列表

nfs-utils: 这个是NFS服务主程序(包含rpc.nfsd、rpc.mountd、daemons)

rpcbind: 这个是CentOS6.X的RPC主程序(CentOS5.X的为portmap)

lsof -i :111  #查询rpcbind监听状态 (111是rpcbind的主端口)
netstat -lntup |grep rpcbind #查询rpcbind服务启动状态 (同lsof查询端口效果一样)
chkconfig --list rpcbind #检查rpcbind自启动情况
1、服务端
[root@xiaomaili ~]# mkdir /data
[root@xiaomaili ~]# ll -d /data/
drwxr-xr-x. 3 root root 4096 Apr 11 09:49 /data/
[root@xiaomaili ~]# chown -R nfsnobody.nfsnobody /data/
[root@xiaomaili ~]# ll -d /data/
drwxr-xr-x. 3 nfsnobody nfsnobody 4096 Apr 11 09:49 /data/
[root@xiaomaili ~]# cat /etc/exports
# share /data for web created by xiaomaili at 2021-05-21
/data   172.16.1.0/24(rw,sync)
#172.16.1.0/24(rw,sync) 没有空格
#/data  172.16.1.0/24(rw,sync,root_squash,all_squash,anonuid=XXXX,anongid=XXXX) # 推荐配置2、 客户端
mount -t nfs 192.xx.xx.xx:/home/nfstestdir(服务端被挂载的目录) /mnt(客户端要挂载的目录)

加入开机自启动

如果是 CentOS 7 环境,那么必须保证 /etc/rc.d/rc.local 文件具有可执行权限,否则该脚本不会执行也不会生效。

# 开机自启动方式1
[root@xiaomaili mnt]$ ll /etc/rc.local
lrwxrwxrwx. 1 root root 13 Nov 14  2018 /etc/rc.local -> rc.d/rc.local
[root@xiaomaili mnt]# tail -3 /etc/rc.local# mount nfs
mount -t nfs 172.16.1.31:/data /mnt# 开机自启动方式2
[root@web01 xiaomaili]$ cat /etc/fstab 
# 添加如下信息
172.16.1.31:/data                        /mnt   nfs   defaults   0 0

About Me:小麦粒

● 本文作者:小麦粒,专注于python、数据分析、数据挖掘、机器学习相关技术,也注重技术的运用

● 作者博客地址:https://blog.csdn.net/u010986753

● 本系列题目来源于作者的学习笔记,部分整理自网络,若有侵权或不当之处还请谅解

● 版权所有,欢迎分享本文,转载请保留出处

● 个人微信号:pythonbao 联系我加微信群

●个人 QQ:87605025

● QQ交流群pythonbao :483766429

● 公众号:python宝 或 DB宝

● 提供OCP、OCM和高可用最实用的技能培训

● 题目解答若有不当之处,还望各位朋友批评指正,共同进步

欢迎赞赏哦!有您的支持,小麦粒一定会越来越好!

这篇关于【156】NFS服务搭建与配置及常用命令的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1005930

相关文章

Zookeeper安装和配置说明

一、Zookeeper的搭建方式 Zookeeper安装方式有三种,单机模式和集群模式以及伪集群模式。 ■ 单机模式:Zookeeper只运行在一台服务器上,适合测试环境; ■ 伪集群模式:就是在一台物理机上运行多个Zookeeper 实例; ■ 集群模式:Zookeeper运行于一个集群上,适合生产环境,这个计算机集群被称为一个“集合体”(ensemble) Zookeeper通过复制来实现

CentOS7安装配置mysql5.7 tar免安装版

一、CentOS7.4系统自带mariadb # 查看系统自带的Mariadb[root@localhost~]# rpm -qa|grep mariadbmariadb-libs-5.5.44-2.el7.centos.x86_64# 卸载系统自带的Mariadb[root@localhost ~]# rpm -e --nodeps mariadb-libs-5.5.44-2.el7

hadoop开启回收站配置

开启回收站功能,可以将删除的文件在不超时的情况下,恢复原数据,起到防止误删除、备份等作用。 开启回收站功能参数说明 (1)默认值fs.trash.interval = 0,0表示禁用回收站;其他值表示设置文件的存活时间。 (2)默认值fs.trash.checkpoint.interval = 0,检查回收站的间隔时间。如果该值为0,则该值设置和fs.trash.interval的参数值相等。

NameNode内存生产配置

Hadoop2.x 系列,配置 NameNode 内存 NameNode 内存默认 2000m ,如果服务器内存 4G , NameNode 内存可以配置 3g 。在 hadoop-env.sh 文件中配置如下。 HADOOP_NAMENODE_OPTS=-Xmx3072m Hadoop3.x 系列,配置 Nam

wolfSSL参数设置或配置项解释

1. wolfCrypt Only 解释:wolfCrypt是一个开源的、轻量级的、可移植的加密库,支持多种加密算法和协议。选择“wolfCrypt Only”意味着系统或应用将仅使用wolfCrypt库进行加密操作,而不依赖其他加密库。 2. DTLS Support 解释:DTLS(Datagram Transport Layer Security)是一种基于UDP的安全协议,提供类似于

【Python编程】Linux创建虚拟环境并配置与notebook相连接

1.创建 使用 venv 创建虚拟环境。例如,在当前目录下创建一个名为 myenv 的虚拟环境: python3 -m venv myenv 2.激活 激活虚拟环境使其成为当前终端会话的活动环境。运行: source myenv/bin/activate 3.与notebook连接 在虚拟环境中,使用 pip 安装 Jupyter 和 ipykernel: pip instal

【区块链 + 人才服务】可信教育区块链治理系统 | FISCO BCOS应用案例

伴随着区块链技术的不断完善,其在教育信息化中的应用也在持续发展。利用区块链数据共识、不可篡改的特性, 将与教育相关的数据要素在区块链上进行存证确权,在确保数据可信的前提下,促进教育的公平、透明、开放,为教育教学质量提升赋能,实现教育数据的安全共享、高等教育体系的智慧治理。 可信教育区块链治理系统的顶层治理架构由教育部、高校、企业、学生等多方角色共同参与建设、维护,支撑教育资源共享、教学质量评估、

搭建Kafka+zookeeper集群调度

前言 硬件环境 172.18.0.5        kafkazk1        Kafka+zookeeper                Kafka Broker集群 172.18.0.6        kafkazk2        Kafka+zookeeper                Kafka Broker集群 172.18.0.7        kafkazk3

【IPV6从入门到起飞】5-1 IPV6+Home Assistant(搭建基本环境)

【IPV6从入门到起飞】5-1 IPV6+Home Assistant #搭建基本环境 1 背景2 docker下载 hass3 创建容器4 浏览器访问 hass5 手机APP远程访问hass6 更多玩法 1 背景 既然电脑可以IPV6入站,手机流量可以访问IPV6网络的服务,为什么不在电脑搭建Home Assistant(hass),来控制你的设备呢?@智能家居 @万物互联

【区块链 + 人才服务】区块链集成开发平台 | FISCO BCOS应用案例

随着区块链技术的快速发展,越来越多的企业开始将其应用于实际业务中。然而,区块链技术的专业性使得其集成开发成为一项挑战。针对此,广东中创智慧科技有限公司基于国产开源联盟链 FISCO BCOS 推出了区块链集成开发平台。该平台基于区块链技术,提供一套全面的区块链开发工具和开发环境,支持开发者快速开发和部署区块链应用。此外,该平台还可以提供一套全面的区块链开发教程和文档,帮助开发者快速上手区块链开发。