首页 > 其他分享 >【运维这些事儿】- 网络文件系统之NFS

【运维这些事儿】- 网络文件系统之NFS

时间:2022-10-22 18:02:21浏览次数:41  
标签:运维 data 文件系统 etc nfs NFS root 目录

NFS是一种分布式文件系统,通过网络可以将不同操作系统的文件共享。其通信协议定基于TCP/IP协议层,将远程的计算机磁盘挂载到本地,读写文件跟本地磁盘一样。

NFS简介

NFS服务在文件传送传送过程中依赖于RPC协议。

:zap:RPC(Remote Procedure Call)远程过程调用,简单的理解是一个节点请求另一个节点提供的服务

使用 NFS 时用户端只需使用mount命令就可把远程文件系统挂载在自己的文件系统之下,操作远程文件如使用本地计算机上的文件一样。NFS本身可以认为是RPC的一个程序。只要用到NFS的地方都要启动RPC服务,不论是服务端还是客户端,NFS是一个文件系统,而RPC负责信息的传输。

在这里插入图片描述

​ 例如在服务器上,要把远程服务器192.168.100.10 上的/nfs-data挂载到本地目录可以执行如下命令:

mount 192.168.100.10:/nfs-data	/nfs-data

当挂载成功之后,本地 /nfs-data目录下如果有数据,则原来的数据都不可见,用户看到的是远程主机 192.168.100.10上的/nfs-data 目录文件。

NFS配置

NFS服务的安装需要两个软件包

  • nfs-utils:一些基本的NFS命令与控制脚本
  • rpcbind:管理RPC连接的程序

确认系统中是否安装了对应的软件包,如果没有,可以通过yum来进行安装。

[root@ycloud ~]# rpm -qa|grep -i nfs
libnfsidmap-0.25-19.el7.x86_64
nfs-utils-1.3.0-0.68.el7.2.x86_64
[root@ycloud ~]# yum -y install nfs-utils rpcbind
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
epel                                                                         | 4.7 kB  00:00:00     
extras                                                                       | 2.9 kB  00:00:00     
os                                                                           | 3.6 kB  00:00:00   
······
####安装的主要文件列表
[root@ycloud ~]# rpm -ql nfs-utils-1.3.0-0.68.el7.2.x86_64
/etc/exports.d
/etc/gssproxy/24-nfs-server.conf
/etc/modprobe.d/lockd.conf
/etc/nfs.conf
/etc/nfsmount.conf
/etc/request-key.d/id_resolver.conf
/etc/sysconfig/nfs
/sbin/mount.nfs
/sbin/mount.nfs4
······

安装好之后,我们可以先了解下NFS主要的文件

exportfs如果修改了/etc/exports文件后不需要重新启动NFS服务,只要重新扫描一次/etc/exports文件,并且重新将设定加载即可。

exportfs命令常用参数

  • -a 全部挂载/etc/exports文件内的设置
  • -r 重新挂载/etc/exports中的设置
  • -u 卸载某一个目录
  • -v 在export时共享的目录显示在屏幕上

2、showmount显示指定NFS服务器连接NFS客户端的信息

  • -a 列出NFS服务共享的完整目录信息
  • -d 仅列出客户机远程安装目录
  • -e 显示导出目录列表

配置NFS服务器首先需要确认共享的文件目录和权限及访问的主机列表,这些都可以通过/etc/exports文件配置。一般系统都会有一个默认的exports文件,可以直接修改。如果没有可以自己创建一个。

1、配置文件/etc/exports

​ 要配置NFS 服务器,首先就是编辑/etc/exports文件。在该文件中,每一行代表一个共享目录,并且描述了该目录如何被共享。exports文件的格式和使用

[root@sztcyl-177-9-244 ~]# cat /etc/exports
/data/nfs-data       192.168.100.0/24(rw,sync,all_squash)

​ 每行一条配置,可指定共享的目录,允许访问的主机及其他选项设置。上面的配置说明在这台服务器上共享了一个目录/nfsshare,参数说明如下:

  • 共享目录:是指NFS系统中需要共享给客户端使用的目录。
  • 客户端:是指网络中可以访问这个NFS共享目录的计算机。

语法中的选项设置输出目录的访问权限、用户映射等。

NFS常用选项:

参数 说明
ro 该主机有只读权限
rw 该主机对该共享目录有可读可写的权限
all_squash 将远程访问的所有普通用户及所属组都映射为匿名用户或用户组,相当于使用nobody用户访问该共享目录。注意此参数为默认设置
no_all_squash 与all squash取反,该选项默认设置
root_squash 将root用户及所属组都映射为匿名用户或用户组,
no_root_squash 为默认设置与rootsquash取反
anonuid 将远程访问的所有用户都映射为匿名用户,并指定该用户为本地用户
anongid 将远程访问的所有用户组都映射为匿名用户组账户,并指定该匿名用户组账户为本地用户组账户
sync 将数据同步写入内存缓冲区与磁盘中,效率低,但可以保证数据的一致性
async 将数据先保存在内存缓冲区中,必要时才写入磁盘

2、启动服务

配置好服务之后,要重启服务

[root@sztcyl-177-9-244 ~]# cat /etc/exports
/data/nfs-data       192.168.100.0/24(rw,sync,all_squash)
[root@sztcyl-177-9-244 ~]# mkdir /data/nfs-data/   ####确保有这个要共享的目录
[root@sztcyl-177-9-244 ~]# systemctl restart rpcbind
[root@sztcyl-177-9-244 ~]# systemctl restart nfs-server

3、确认NFS是否已经启动

可以使用rpcinfo命令来确认,

[root@ycloud ~]# rpcinfo  -p
   program vers proto   port  service
    100000    4   tcp    111  portmapper
    100000    3   tcp    111  portmapper
······
    100005    2   tcp  20048  mountd
    100005    3   udp  20048  mountd
    100005    3   tcp  20048  mountd
    100003    3   tcp   2049  nfs
    100003    4   tcp   2049  nfs
    100227    3   tcp   2049  nfs_acl
    100003    3   udp   2049  nfs
    100227    3   udp   2049  nfs_acl
······

-p 显示本地系统中注册到rpcbind协议版本的所有RPC服务

也可以使用showmount命令来查看服务的输出清单:

[root@ycloud ~]# showmount -e 127.0.0.1
Export list for 127.0.0.1:
/data/nfs-data 192.168.100.0/24

配置NFS客户端

​ 要在客户端使用NFS,首先需要确定要挂载的文件路径,并确认该路径中没有已经存在的数据文件,然后确定要挂载的服务器端的路径,然后使用mount 挂载到本地,我们这里演示使用test目录。

[root@centos ~]# mkdir /test
[root@centos ~]# mount -t nfs -o rw 192.168.100.10:/data/nfs-data /test
[root@centos ~]# cd /test/
[root@centos test]# touch aa
[root@centos test]# ls
aa

我们这里就可以对挂载目录进行正常读写了。

标签:运维,data,文件系统,etc,nfs,NFS,root,目录
From: https://blog.51cto.com/ycloud/5782757

相关文章

  • 部署YUM仓库及NFS共享服务
    一.YUM概述YUM(YellowdogUpdaterModified)基于RPM包构建的软件更新机制可以自动解决依赖关系所有软件由集中的YUM软件仓库提供主备安装源软件仓库的提供方式FTP......
  • Linux网络服务之NFS(文件共享服务)
    一、NFS概述1.1NFS(NetworkFileSystem网络文件服务)1.NFS(网络文件服务):NFS是一种基于TCP/IP传输的网络文件系统协议,最初由Sun公司开发。通过使用NFS协议,客户机可......
  • 【openGauss】运维常用的SQL
    一、查模式二、查对象查看某模式下的表名selecttablenamefrompg_tableswhereschemaname='hsjc_bi';查看某表的字段SELECTA.attnameASNAME,format_t......
  • 如何创建和使用Docker中的NFS存储卷
    Docker卷是为Docker容器设置持久存储的首选机制。卷是安装在容器内的主机文件系统上的现有目录。它们可以从容器和主机系统访问。Docker还允许用户挂载通过NFS远程文件......
  • 05 CephFS 文件系统
    目录CephFS文件系统介绍CephFileSystemCephFS组件架构客户端元数据服务器(MDS)安装部署CephFS安装MDS集群查看MDS集群信息创建CephFS文件系统创建资源池创建C......
  • nfs 防火墙firewalld 开放
    yum-yinstallnfs-utilsrpcbind#安装nfs,nfs依赖rpc工作systemctlstartrpcbind#开启rpc再开启nfs服务systemctlstartnfssystemctlenablerpcbind#设置......
  • 七款云上共享文件系统 POSIX 兼容性大比拼
    当用户在进行文件系统选型时,POSIX语义兼容性是必不可缺的一项考察指标。JuiceFS一直非常重视对POSIX标准的高度兼容,在持续完善功能、提高性能的同时,尽力保持最大程度的......
  • Blazor组件自做十一 : File System Access 文件系统访问 组件
    BlazorFileSystemAccess文件系统访问组件Web应用程序与用户本地设备上的文件进行交互FileSystemAccessAPI(以前称为NativeFileSystemAPI,在此之前称为Writea......
  • 实现基于NFS的PV动态创建
    一、准备nfs-server环境[root@cyh-dell-rocky-8-6~]#virt-clone-oubuntu20.04-template-neaszlab-k8s-nfs-01-f/var/lib/libvirt/images/easzlab-k8s-nfs-01.qco......
  • Prometheus 运维工具 Promtool (四)TSDB 功能
    Promtool在TSDB方面一个有6个子命令,分别用来进行写性能测试、分析、列出其中的块、dump、从OpenMetric导入数据块、为新的记录规则创建数据块,接下来我们依次看一下。......