nfs网络文件系统(代码片段)

author author     2022-10-23     745

关键词:

实验环境:VMware Workstation Pro 14(试用版) 系统平台: CentOS Linux release 7.4.1708 (Core) 内核 3.10.0-693.el7.x86_64

NFS配置介绍

软件包

nfs-utils

端口

2049(nfsd), 其它端口由rpcbind(111)分配

工作过程
NFS启动时,会将所使用的端口向rpcbind注册,当有客户端访问的时候,客户端首先通讯的是rpcbind(111),进而rpcbind会告知NFS所使用的端口,客户端就可以通过端口访问NFS服务了。

配置文件:

/etc/exports
/etc/exports.d/*.exports

依赖包

rpcbind(必须)
tcp_wrappers

日志

/var/lib/nfs/

NFS服务主要进程

rpc.nfsd    最主要的NFS进程,管理客户端是否可登录
rpc.mountd  挂载和卸载NFS文件系统,包括权限管理
rpc.lockd   非必要,管理文件锁,避免同时写出错
rpc.statd   非必要,检查文件一致性,可修复文件

CentOS 7不支持同一目录同时用nfs和samba共享,因为使用锁机制不同

启动NFS

# systemctl start nfs
# systemctl start nfs-server

在Centos 6上,rpcbind必须先启动,否则NFS无法启动
在Centos 7上,NFS服务启动时,会把依赖的服务rpcbind一并启动
rpcbind.service可以被rpcbind.socket 激活,rpcbind.socket独立工作

报以下错误的时候
clnt_create: RPC: Program not registered > 重启NFS服务重新注册到rpcbind
clnt_create: RPC: Port mapper failure - Unable to receive: errno 111 (Connection refused) > rpcbind服务未启动,重启rpcbing和nfs服务,注意顺序

查看NFS开启的端口

# rpcinfo -p

如果需要在外部使用NFS服务,需要调整防火墙策略

必须先把NFS配置使用固定端口
vim /etc/sysconfig/nfs

RQUOTAD_PORT=875
LOCKD_TCPPORT=32803
LOCKD_UDPPORT=32769
MOUNTD_PORT=892
STATD_PORT=662
STATD_OUTGOING_PORT=2020

防火墙除开放上述端口,还需开放TCP和UDP的 111 和 2049 共4个端口

配置NFS

语法格式

目录路径 允许访问的IP地址或FQDN列表(选项1,选项2)

/app/nfs *              > * 代表所有
/app/nfs 192.168.5.10(ro) 192.168.5.13(rw)  > 列表以空格分隔
/app/nfs 192.168.5.0/24(rw)
/app/nfs *.magedu.com

默认选项:(ro,sync,root_squash,no_all_squash)
? ro,rw 只读和读写
? async 异步,数据变化后不立即写磁盘,性能高
? sync(1.0.0后为默认)同步,数据在请求时立即写入共享
? no_all_squash (默认)保留共享文件的UID和GID
? all_squash 所有远程用户(包括root)都变成nfsnobody
? root_squash (默认)远程root映射为nfsnobody,UID为65534,早期版本是4294967294 (nfsnobody)
? no_root_squash 远程root映射成root用户
? anonuid和anongid 指明匿名用户映射为特定用户UID和组GID,而非nfsnobody,可配合all_squash使用

生效与查看共享资源

# exportfs -r
exportfs: No options for /app/nfs *: suggest *(sync) to avoid warning
# exportfs -v
/app/nfs        <world>(ro,sync,wdelay,hide,no_subtree_check,sec=sys,secure,root_squash,no_all_squash)

通过远程主机查看
# showmount -e 192.168.5.108
Export list for 192.168.5.108:
/app/nfs *

远程主机挂载NFS共享

Linux主机

# mount -t nfs 192.168.5.108:/app/nfs /tmp/nfs
# mount 192.168.5.108:/app/nfs /tmp/nfs
#df
Filesystem           1K-blocks    Used Available Use% Mounted on
192.168.5.108:/app/nfs  8913920 1422112   7491808  16% /tmp/nfs

# mount
192.168.5.108:/app/nfs on /tmp/nfs type nfs (rw,vers=4,addr=192.168.5.108,clientaddr=192.168.5.107)

指定NFS版本号挂载
# mount -o vers=3 192.168.5.108:/app/nfs /tmp/nfs
192.168.5.108:/app/nfs on /tmp/nfs type nfs (rw,vers=3,addr=192.168.5.108)

永久挂载
# vim /etc/fstab
192.168.5.108:/app/nfs /tmp/nfs nfs vers=3 0 0
192.168.5.108:/app/nfs /tmp/nfs nfs defaults 0 0

Wdindows下挂载

c:\>mount 192.168.5.108:/app/nfs Z:
Z: 现已成功连接到 192.168.5.108:/app/nfs

命令已成功完成。

NFS权限情况

1.NFS共享受文件系统权限影响
2.受下以选项影响
root_squash (默认)远程root映射为nfsnobody,UID为65534,早期版本是4294967294 (nfsnobody)
no_root_squash 远程root映射成root用户
anonuid和anongid

NFS工具


rpcinfo
rpcinfo -p hostname
rpcinfo –s hostname 查看RPC注册程序

exportfs
–v 查看本机所有NFS共享
–r 重读配置文件,并共享目录
–a 输出本机所有共享
–au 停止本机所有共享

showmount -e hostname

mount.nfs 挂载工具

NFS相关的挂载选项

fg  (默认)前台挂载,bg后台挂载
hard(默认)持续请求,soft 非持续请求
intr 和hard配合,请求可中断
rsize和wsize 一次读和写数据最大字节数,rsize=32768
_netdev 无网络不挂载

示例:
mount -o rw,nosuid,fg,hard,intr 172.16.0.1:/testdir /mnt/nfs/

实现NFS的伪根

/app *(fsid=0,rw,crossmnt)       > 指明NFS根的路径,(fsid=0,crossmn)这2个选项需要添加
/app/nfs *(rw)
/app/home/hunk *(rw)

重新加载配置
#exportfs -r
查看
#exportfs -v
/app            <world>(rw,sync,wdelay,hide,crossmnt,no_subtree_check,fsid=0,sec=sys,secure,root_squash,no_all_squash)
/app/nfs        <world>(rw,sync,wdelay,hide,no_subtree_check,sec=sys,secure,root_squash,no_all_squash)
/app/home/hunk  <world>(rw,sync,wdelay,hide,no_subtree_check,sec=sys,secure,root_squash,no_all_squash)

远程主机挂载NFS伪根


# mount 192.168.5.108:/ /tmp/ > 方法跟之前的是一样的,只是把远程NFS的挂载目录变为/

#tree /tmp
/tmp
├── home
│ └── hunk
│     └── hunk
└──nfs
    ├── aaa.txt
    └── nfs1.txt

红帽7nfs(网络文件系统)(代码片段)

NFS(网络文件系统)服务可以将远程Linux系统上的文件共享资源挂载到本地主机的目录上,从而使得本地主机(Linux客户端)基于TCP/IP协议,像使用本地主机上的资源那样读写远程Linux系统上的共享文件, RHEL7系统中默认已经... 查看详情

nfs网络文件系统(代码片段)

实验环境:VMwareWorkstationPro14(试用版)系统平台:CentOSLinuxrelease7.4.1708(Core)内核3.10.0-693.el7.x86_64NFS配置介绍软件包nfs-utils端口2049(nfsd),其它端口由rpcbind(111)分配工作过程NFS启动时,会将所使用的端口向rpcbind注册,当有客户端访问... 查看详情

centos7部署nfs网络文件系统(代码片段)

NFS(NetworkFileSystem),即网络文件系统。NFS服务可以将远程Linux系统上的文件共享资源挂载到本地主机的目录上,从而使用本地主机(Linux客户端)像使用本地资源那样读写远程Linux系统上的共享资源。表1:系统环境主机名称操作... 查看详情

nfs共享存储服务(代码片段)

NFS是NetworkFileSystem的简写,即网络文件系统,网络文件系统是FreeBSD支持的文件系统中的一种,也被称为NFS.NFS允许一个系统在网络上与它人共享目录和文件。通过使用NFS,用户和程序可以像访问本地文件一样访问远端系统上的文件。... 查看详情

nfs企业级网络文件共享(代码片段)

企业级NFS网络文件共享服务1、NFS介绍什么是NFS?NFS是networkfilesystem的缩写,中文意思是网络文件系统。它的主要功能是通过网络(一般是局域网)让不同的主机系统之间可以共享文件或者目录。NFS客户端(一般为应用服务器,例... 查看详情

nfs企业级网络文件共享(代码片段)

企业级NFS网络文件共享服务1、NFS介绍什么是NFS?NFS是networkfilesystem的缩写,中文意思是网络文件系统。它的主要功能是通过网络(一般是局域网)让不同的主机系统之间可以共享文件或者目录。NFS客户端(一般为应用服务器,例... 查看详情

网络文件共享服务-nfs(代码片段)

NFS服务NFS:NetworkFileSystem网络文件系统,基于内核的文件系统。Sun公司开发,通过使用NFS,用户和程序可以像访问本地文件一样访问远端系统上的文件,基于RPC(RemoteProcedureCallProtocol远程过程调用)实现RPC:采用C/S模式。客户机... 查看详情

nfs(代码片段)

NFS1.1NFS定义:NFS(NetworkFileSystem)网络文件系统,它的工作机制是基于rpc来实现网络文件系统共享的。1.2NFS作用‘1.通过局域网让不同的主机系统之间可以共享文件或目录2.节省本地存储空间,本地终端将可以减少自身存储空间的使... 查看详情

nfs(代码片段)

NFS全称net-file-system是一款网络文件系统。它的功能就是可以通过网络,让不同的机器、不同的操作系统可以共享彼此的文件(NFS一般用来存储共享视频,图片等静态数据)。而在客户端看来,共享的目录就是其本身的目录。网络... 查看详情

nfs网络文件共享系统-综合架构no.2(代码片段)

相信可能成就一切可能,相信不可能就是自废武功!!!nfs服务器搭建文档1.先打印系统版本cat/etc/redhat-releaseuname-runame-m2.在所有需要使用nfs的服务器上安装nfs-utilsrpcbindyuminstallnfs-utilsrpcbind-yrpm-qanfs-utilsrpcbind安装好nfs系统会创建... 查看详情

nfs系统的搭建(代码片段)

...建立NFS文件系统。调研:   NFS(NetworkFileSystem)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位 查看详情

nfs网络文件系统详解(代码片段)

第1章NFS基本概述1.1什么是nfsNFS是NetworkFileSystem的缩写及网络文件系统。主要功能是通过局域网络让不同的主机系统之间可以共享文件或目录。NFS系统和Windows网络共享、网络驱动器类似,只不过windows用于局域网,NFS用于企业集群架... 查看详情

3-nfs-共享存储(代码片段)

一,NFS概述1.什么是nfs?  NFS(NetworkFileSystem)即网络文件系统。NFS共享存储2.nfs能干什么?  主要功能:通过网络(局域网)让不同的主机系统之间可以共享文件或目录。3.为什么要使用nfs?  NFS网络文件系统一般被用来存储... 查看详情

nfs(代码片段)

...m一、NFS服务介绍NFS是NetworkFileSystem的缩写,顾名思义就是网络文件存储系统,它最早是由Sun公司发展出来的,也是FreeBSD支持的文件系统中的一个,它允许网络中的计算机之间通过TCP/IP网络共享资源。通过NFS,我们本地NFS的客户... 查看详情

nfs共享存储服务部署(代码片段)

第1章NFS介绍1.1NFS基本概述NFS(NetworkFileSystem)网络文件系统主要功能是通过局域网络让不同的主机系统之间可以共享文件或目录。NFS系统和Windows网络共享、网络驱动器类似,只不过windows用于局域网,NFS用于企业集群架构中,如果是... 查看详情

nfs架构(代码片段)

...pcbindgrammar_cjkRuby:trueNFS架构1.NFS简述NFS(NetworkFileSystem)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服... 查看详情

markdown[linux:nfs]linux上的网络文件系统。#linux(代码片段)

查看详情

详解nfs-----共享存储服务(代码片段)

NFS简介:NFS(NetworkFileSystem)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本... 查看详情