nfs文件系统挂载与优化

author author     2022-08-03     426

关键词:

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

1、         安装NFS

1.1  安装服务器软件

[[email protected] ~]yum install –y nfs-utilsrpcbind
[[email protected] ~]chkconfig nfs on
[[email protected] ~]chkconfig rpcbind on
[[email protected] ~]# chkconfig --list |egrep"nfs|rpcbind"
nfs                    0:off1:off2:on3:on4:on5:on6:off
nfslock        0:off1:off2:off3:on4:on5:on6:off
rpcbind                 0:off1:off2:on3:on4:on5:on6:off


2、         服务端配置

2.1  服务端配置文件详解

服务端配置文件为/etc/exports,格式如下:

/www/appData/upload/172.16.11.0/24(rw,async,all_squash)

/www/appData/upload/为本地要发布的目录,172.16.11.0/24为将此NFS目录发布给指定范围内的主机,支持单个主机、网络用户组@group,通配符*,?等、IP网络,本例中就是使用的IP网络

括号内的参数说明如下所示(可以使用manexports查看帮助)

ro:共享目录只读;
rw:共享目录可读可写;
all_squash:所有访问用户都映射为匿名用户或用户组;
no_all_squash(默认):访问用户先与本机用户匹配,匹配失败后再映射为匿名用户或用户组;
root_squash(默认):将来访的root用户映射为匿名用户或用户组;
no_root_squash:来访的root用户保持root帐号权限;
anonuid=<UID>:指定匿名访问用户的本地用户UID,默认为nfsnobody(65534);
anongid=<GID>:指定匿名访问用户的本地用户组GID,默认为nfsnobody(65534);
secure(默认):限制客户端只能从小于1024的tcp/ip端口连接服务器;
insecure:允许客户端从大于1024的tcp/ip端口连接服务器;
sync:将数据同步写入内存缓冲区与磁盘中,效率低,但可以保证数据的一致性;
async:将数据先保存在内存缓冲区中,必要时才写入磁盘;
wdelay(默认):检查是否有相关的写操作,如果有则将这些写操作一起执行,这样可以提高效率;
no_wdelay:若有写操作则立即执行,应与sync配合使用;
subtree_check(默认) :若输出目录是一个子目录,则nfs服务器将检查其父目录的权限;
no_subtree_check :即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率;


2.2  创建挂载目录

mkdir –p /www/appData/upload
chownnfsnobody:nfsnobody /www/appData/upload

2.3  启动nfs服务

[[email protected] ~]#/etc/init.d/rpcbind start
[[email protected] ~]#/etc/init.d/nfs start

查看nfs发布情况

[[email protected] ~]#exportfs -v
/www/appData/upload
              172.16.11.0/24(rw,async,wdelay,root_squash,all_squash,no_subtree_check,sec=sys,rw,root_squash,all_squash)
[[email protected] ~]#showmount -e 172.16.11.15
Export list for172.16.11.15:
/www/appData/upload172.16.11.0/24

exportfs –r可以在不重启nfs服务的情况下重读配置文件

本地查看无误后可以转到客户端配置

3、         客户端配置

3.1  客户端环境配置

nfsrpcbind加入开机自启动

chkconfig nfs on
chkconfig rpcbind on

启动rpcbindnfs

/etc/init.d/rpcbindstart
/etc/init.d/nfs start

查看fileserver端的NFS文件情况

# showmount -e172.16.11.15
Export list for172.16.11.15:
/www/appData/upload172.16.11.0/24

挂载参数介绍(可以使用man 8 mount查看帮助)

ro 以只读模式加载。
rw 以可读写模式加载。
sync 以同步方式执行文件系统的输入输出动作。
async 以非同步的方式执行文件系统的输入输出动作。
defaults 使用默认的选项。默认选项为rw、suid、dev、exec、anto nouser与async。
atime 每次存取都更新inode的存取时间,默认设置,取消选项为noatime。
noatime 每次存取时不更新inode的存取时间。
dev 可读文件系统上的字符或块设备,取消选项为nodev。
nodev 不读文件系统上的字符或块设备。
exec 可执行二进制文件,取消选项为noexec。
noexec 无法执行二进制文件。
auto 必须在/etc/fstab文件中指定此选项。执行-a参数时,会加载设置为auto的设备,取消选取为noauto。
noauto 无法使用-a参数来加载。
suid 启动set-user-identifier(设置用户ID)与set-group-identifer(设置组ID)设置位,取消选项为nosuid。
nosuid 关闭set-user-identifier(设置用户ID)与set-group-identifer(设置组ID)设置位。
user 普通用户可以执行加载操作。
nouser 普通用户无法执行加载操作,默认设置。
remount 重新加载设备。通常用于改变设备的设置状态。
rsize 读取数据缓冲大小,默认设置1048576(rhel6.6)。
wsize 写入数据缓冲大小,默认设置1048576(rhel6.6)。
fg 以前台形式执行挂载操作,默认设置。在挂载失败时会影响正常操作响应。
bg 以后台形式执行挂载操作。
hard 硬式挂载,默认设置。如果与服务器通讯失败,让试图访问它的操作被阻塞,直到服务器恢复为止。
soft 软式挂载。如果服务器通讯失败,让试图访问它的操作失败,返回一条出错消息。这项功能对于避免进程“挂”在无关紧要的安装操作上来说非常有用。
retrans=n 指定在以软方式安装的文件系统上,在返回一条出错消息之前重复发出请求的次数。
nointr 不允许用户中断,默认设置。
intr 允许用户中断被阻塞的操作(并且让它们返回一条出错消息)。
timeo=n 设置请求的超时时间(以十分之一秒为单位)。


命令提示符中挂载:

# mount -t nfs -onoexec,nosuid,nodev,noatime 172.16.11.15:/www/appData/upload /www/appData/upload/
# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda3             243G  4.8G 226G   3% /
tmpfs                 101G     0 101G   0% /dev/shm
/dev/sda1             772M   32M 700M   5% /boot
172.16.11.15:/www/appData/upload
                      2.7T  5.8G 2.6T   1% /www/appData/upload

写入/etc/fstab使其开机自动生效

172.16.11.15:/www/appData/upload         /www/appData/upload nfs  noatime,nosuid,noexec,nodev        0 0

挂载测试

# umount/www/appData/upload/
# mount -a
# df -h
Filesystem            Size Used Avail Use% Mounted on
/dev/sda3             243G  4.8G 226G   3% /
tmpfs                 101G     0 101G   0% /dev/shm
/dev/sda1             772M   32M 700M   5% /boot
172.16.11.15:/www/appData/upload
                      2.7T  5.8G 2.6T   1% /www/appData/upload

3.2  查看挂载状态和参数

# cat/proc/mounts|grep upload
172.16.11.15:/www/appData/upload/www/appData/upload nfs4rw,nosuid,nodev,noexec,noatime,vers=4,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=172.16.11.10,minorversion=0,local_lock=none,addr=172.16.11.150 0

使用rpcinfo查看rpc信息

使用nfsstat查看nfs的状态

#nfsstat -l
nfs v4 client        total:  110127
-------------------------- --------
nfs v4 client        write:        1
nfs v4 client         open:    55000
nfs v4 client    open_conf:        3
nfs v4 client        close:   55000
nfs v4 client      setattr:        2
nfs v4 client       fsinfo:        9
nfs v4 client        renew:       25
nfs v4 client    setclntid:        2
nfs v4 client      confirm:        2
nfs v4 client       access:       17
nfs v4 client      getattr:       20
nfs v4 client       lookup:       13
nfs v4 client  lookup_root:        3
nfs v4 client       remove:        1
nfs v4 client     pathconf:        6
nfs v4 client       statfs:        4
nfs v4 client      readdir:        4
nfs v4 client  server_caps:       15

使用-o选项查看网络状态

nfsstat –o net

3.3  NFS挂载优化

noexec:不允许执行二进制文件
nodev:不读文件系统上的字符或块设备
nosuid:关闭set-user-identifier(设置用户ID)与set-group-identifer(设置组ID)设置位
noatime:每次存取时不更新inode的存取时间


优化内核参数:/etc/sysctl.conf

cat >>/etc/sysctl.conf<<EOF
net.core.rmem_default=8838608
net.core.wmem_default=262144
net.core.rmem_max=16777216
net.core.wmem_max=1048576
EOF

3.4  性能测试

读取文件速度测试

# ll -h/www/appData/upload/services
-rw-r--r-- 1nfsnobody nfsnobody 626K 9月   6 14:53 /www/appData/upload/services
cp /etc/services/www/appData/upload
# time for((i=1;i<500;i++));do cat /www/appData/upload/services >/dev/null;done
real        0m1.562s
user       0m0.227s
sys         0m0.654s

写入文件测试

[[email protected]]# time dd if=/dev/zero of=/www/appData/upload/testbigfile bs=1Mcount=1000
记录了1000+0 的读入
记录了1000+0 的写出
1048576000字节(1.0 GB)已复制,10.1055 秒,104 MB/秒
real        0m10.109s
user       0m0.002s
sys         0m1.599s


本文出自 “sunny” 博客,请务必保留此出处http://francis198.blog.51cto.com/720670/1847103

根文件系统制作与nfs挂载

... 1、完整的操作系统=bootloader(u-boot)+kernel(zImage)+根文件系统。  2、根文件系统的核心就是 各种以及系统运行配置参数(类似于linux的cd、ls、mkdir......)。  3、根文件系统的核心文件:bin,sbin,usr,etc,lib  4、... 查看详情

nfs不同版本的挂载与解析

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

nfs服务安装及自动挂载

...nt:    study.com(rhel6.5)NFS:NetworkFileSystem即网络文件系统,NFS允许一个系统在网络上与他人共享目录和文件,通过使用NFS用户和程序像访问本地文件一样访问远端系统上的文件。工作模式: &nb 查看详情

nfs存储介绍

参考技术AlinuxNFS共享存储NFS是(NetworkFlieSystem)网络文件系统的缩写,通过网络存储和组织文件的一种方法或机制。在企业中前端所有的应用服务器接收到用户上传的图片、文件、视频,都会统一存放到后端的存储服务器上,方... 查看详情

esxi6.0系统挂载nfs文件系统

Esxi6.0系统挂载NFS文件系统环境:NFS主机IP:10.1.0.250Esxi6.0主机IP:10.1.0.1准备好NFS文件系统(省略。。。)共享路径:10.1.0.250://volume1/IT/software/ISO挂载NFS文件系统2.1配置---添加存储器2.2选择网络文件系统2.3下一步,输入以下信息服务器... 查看详情

windows挂载nfs文件系统

...0.128nfs-utils、rpcbindWindowsClientWindowsserver2008192.168.190.129网络文件系统 注:以下实验均关闭防火墙以及其它安全机制 NFS主机操作: #使用yum安装nfs-utils和管理工具rpcbind[[email pr 查看详情

客户端mount挂载优化

...附件、视频),不需要执行suid、exec等权限,挂载的这个文件系统只能作为数据存取之用,无法执行程序,对于客户端来讲增加了安全性,例如:很多木马修改站 查看详情

nfs部署和优化

NFS即networkfilesystem,网络文件系统。允许通过网络共享文件系统将服务端文件系统共享给远程客户端,在客户端上访问共享目录与访问客户端本地文件系统一样。服务端IP:192.168.147.137,客户端IP:192.168.147.138服务端:在服务端上... 查看详情

nfs文件系统了解与使用(代码片段)

NFS介绍NFS是networkfilesystem(网络文件系统)的缩写,早期的NFS由Sun公司开发,分为2、3、4三个版本,4.0开始由Netapp主导开发,最新版本为4.1NFS数据传输基于RPC协议(RemoteProcedurecall)NFS应用于多个服务器需要访问一个共享资源,如web服... 查看详情

windows挂载nfs文件系统

主机操作系统IP地址软件包NFS主机Centos7.2192.168.190.128nfs-utils、rpcbindWindowsClientWindowsserver2008192.168.190.129网络文件系统注:以下实验均关闭防火墙以及其它安全机制650)this.width=650;"title="金属质感分割线"src="https://mmbiz.qpic.cn/mmbiz/cZ 查看详情

nfs(网络文件系统)的创建及挂载使用

---恢复内容开始---NFS(网络文件系统)的配置及使用 这一次给大家分享的是简单NFS的创建及挂载!NFS是一种基于TCP/IP传输的网络文件系统协议,最初由SUN公司开发。通过使用NFS协议,客户机可以像访问本地目录一样访问服务... 查看详情

nfs网络文件系统原理与搭建

NFS工作流程图步骤1:先启动RPC服务步骤2:启动NFS服务(向RPC服务注册启动的端口)步骤3:客户向RPC请求NFS步骤4:RPC返回端口到客户步骤5:拿着地址端口请求传输数据服务搭建:将服务端/data挂载到/mnt目录下1:检查操作系统内核版... 查看详情

nfs部署和优化

nfs部署和优化一.NFS1.NFS简介NFS全称是networkfilesystem(网络文件系统)NFS允许一个系统在网络上与他人共享目录和文件。通过使用NFS用户和程序可以像访问本地文件一样访问远端系统上的文件。假如有三台机器A,B,C它们需要访问同... 查看详情

nfs网络文件系统简单搭建

 NFS网络文件系统搭建简单NFS依赖于RPC(远程调用)端口号:2049功能:用于Unix间数据共享和数据传输(挂载完成数据同步)Linux系统与Linux系统 Linux系统与aix系统 aix系统与aix系统实验环境Redhat7.3Linux系统两台机器可以Ping... 查看详情

kubernetes05_nfs坏境搭建pvpvc挂载目录configmap挂载文件secret挂载敏感信息(代码片段)

....Deployment使用NFS进行挂载③.PV、PVC挂载目录④.ConfigMap挂载文件⑤.Secret挂载敏感信息①.基本概念与NFS环境搭建①.在docker里面可以将容器里面的文件挂载在外面,可以很好的修改文件。在k8s中,如果我们使用目录挂载,当node1节点中的p... 查看详情

windows上面挂载nfs共享

导读众所周知,nfs和smb是Linux服务器上的文件共享协议,smb使用的是samba协议和windows的文件共享使用的是一种协议,也就是说smb是跨平台的文件共享协议,而NFS个人认为是Linux系统或者类uinx系统的文件共享协议。最近看到网络博... 查看详情

nfs+inotify+rsync实现数据的远程挂载与实时增量备份(代码片段)

NFS网络文件系统功能:用户可以像访问自己的本地文件系统一样使用网络中的远端系统上的文件原理:用户进程——>RPC服务(portman)——>tcp/ip协议栈——>远端主机RPC服务后——>远端NFS服务——>远端主机本地磁盘数... 查看详情

nfs部署及优化

...署及优化(一)一、NFS的基本概念NFS==networkfilesystem网络文件系统必然通过网络通信来实现文件的访问和写入,所以做这个实验的话最好有两台虚拟机配置:A:一个192.169.50.201为server端B:一个192.169.50.200为client端会有一个server端、... 查看详情