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

author author     2022-12-12     148

关键词:

NFS文件系统

NFS:Network File System网络文件系统,基于内核的文件系统,Sun公司开发,通过使用NFS,用户和程序可以像访问本地文件一样访问远端系统上的文件,基于RPC(远程过程调用)实现
RPC:采用C/S模式,客户机请求程序调用进程发送一个有进程参数的调用信息到服务进程,然后等待响应信息。在服务器端,进程保持睡眠状态直到调用信息到达位置。当一个调用信息到达,服务器获得进程参数,计算结果,发送答复信息,然后等待下一个调用信息,最后客户端调用进程收答复信息,获得进程结果,然后调用执行继续进行
NFS优势:节省本地存储空间,将常用的数据如home目录存放在NFS服务器上且可以通过网络访问,本地终端将可减少自身空间的使用

NFS安装

yum install nfs-utils -y

NFS启动时需要启动两个服务nfs和rpcbind。
在centos7上只需要启动nfs服务,systemd会自动将所依赖的rpcbind启动起来

systemctl start nfs

在centos6上需要分别启动nfs和rpcbind服务

qservice rpcbind start
service nfs start

NFS基本用法

共享目录

NFS服务器端

建立共享文件目录

[[email protected] ~]# mkdir /data/nfs1
[[email protected] ~]# mkdir /data/nfs2
[[email protected] ~]# touch /data/nfs2/nfs1.txt
[[email protected] ~]# touch /data/nfs2/nfs2.txt

修改nfs配置文件

[[email protected] ~]# vim /etc/exports
/data/nfs1 *    #格式:需要共享的目录        共享的规则   

重启服务

[[email protected] ~]# systemctl restart nfs

客户端

查看NFS服务器共享出的目录有哪些

[[email protected] ~]# showmount -e 192.168.73.110
Export list for 192.168.73.110:
/data/nfs1 *

挂载后测试读写

[[email protected] ~]# mount 192.168.73.110:/data/nfs1 /data/nfs1/
[[email protected] ~]# ls /data/nfs1/
nfs1.txt                    # 可以读取
[[email protected] ~]# touch /data/nfs1/123
touch: cannot touch ‘/data/nfs1/123’: Read-only file system
                            #不可以写入

共享目录的读写权限

服务器端配置

1.修改配置文件

[[email protected] ~]# vim /etc/exports
/data/nfs1 *(rw)
2.重启服务
```bash
[[email protected] ~]# systemctl restart nfs

客户端操作

1.对目录下的nfs1.txt写入内容

[[email protected] ~]# echo ‘1234‘ > /data/nfs1/nfs1.txt 
-bash: /data/nfs1/nfs1.txt: Permission denied

无法写入,对文件写入需要对文件有写权限

匿名用户所映射的用户

服务器端配置

1.给与目录读写执行权限

[[email protected] data]# chmod 777 nfs1

客户端操作

创建一个文件

[[email protected] ~]# touch /data/nfs1/122

服务器端查看文件属性

[[email protected] data]# ll nfs1/
total 0
-rw-r--r-- 1 nfsnobody nfsnobody 0 May 19 04:04 122
-rw-r--r-- 1 root      root      0 May 19 03:37 nfs1.txt

nfs将匿名用户映射成nfsnobody用户,所以只需要给予nfsnobody读写执行就可以了,无需给予目录最大权限

root压榨(root_squire)

远程用户为root时,映射为服务器上的nfsnobody,此是应为用到了root_squire选项,可以使用no_root_squire取消压榨

[[email protected] nfs1]# exportfs -v
/data/nfs1      <world>(sync,wdelay,hide,no_subtree_check,sec=sys,rw,secure,root_squash,no_all_squash)

服务器操作

修改配置文件,重启服务

[[email protected] data]# vim /etc/exports
/data/nfs1 *(rw,no_root_squash)
[[email protected] data]# systemctl restart nfs

客户端操作

创建一个文件

[[email protected] nfs1]# touch 123

服务器端查看文件权限

[[email protected] nfs1]# ll
total 0
-rw-r--r-- 1 nfsnobody nfsnobody 0 May 19 04:04 122
-rw-r--r-- 1 root      root      0 May 19 04:16 123     
-rw-r--r-- 1 root      root      0 May 19 03:37 nfs1.txt

此时所创建出的文件属主数组均为root

针对不同的地址给予不同的权限

服务器配置

修改配置文件重启服务,让73网段内111主机可读写其余不可写

[[email protected] nfs1]# vim /etc/exports
/data/nfs1 192.168.73.0/24(ro) 192.168.73.111(rw)
[[email protected] nfs1]# systemctl restart nfs

给予nfsnobody用户acl权限

[[email protected] nfs1]# setfacl -m u:nfsnobody:rwx /data/nfs1

客户端操作

73.111主机可读可写

[[email protected] nfs1]# touch 111
[[email protected] nfs1]# ls
111  122  123  nfs1.txt

73.132主机可读不可写

[[email protected] nfs1]# touch 132
touch: cannot touch `132‘: Read-only file system

普通用户创建的文件属性

客户端操作

使用wang用户创建文件

[[email protected] nfs1]# su wang
[[email protected] nfs1]$ touch wang
[[email protected] nfs1]$ ll
-rw-rw-r-- 1 wang wang 0 May 19 05:29 wang

服务器操作

查看wang用户所创建的文件

[[email protected] nfs1]# ll
total 0
-rw-rw-r-- 1 1001 1001 0 May 19 05:29 wang

显示的为uid,远程用户如果为普通用户,则不会和root一样压榨成nfsnobody,会保留id号,客户端的UID会映射成服务器端的UID的用户

NFS的永久挂载

客户端操作

将挂载写入/etc/fstab文件

[[email protected] nfs1]# vim /etc/fstab 
192.168.73.110:/data/nfs1       /data/nfs1      nfs     defaults        0 0
[[email protected] nfs1]# mount -a

异步读写

数据变化后不立即写入磁盘,性能高,添加async选项

服务器操作

[[email protected] nfs1]# vim /etc/exports
/data/nfs1 192.168.73.0/24(ro) 192.168.73.111(rw,async)
[[email protected] nfs1]# exportfs -r      #让配置生效
[[email protected] nfs1]# exportfs -v      #查看配置
/data/nfs1      192.168.73.111(async,wdelay,hide,no_subtree_check,sec=sys,rw,secure,root_squash,no_all_squash)
/data/nfs1      192.168.73.0/24(sync,wdelay,hide,no_subtree_check,sec=sys,ro,secure,root_squash,no_all_squash)

全部压榨

all_squash可以将所有用户都压榨成nfsnobody,当存在no_root_squash时哪个生效

服务器操作

修改配置文件

[[email protected] nfs1]# vim /etc/exports
/data/nfs1 192.168.73.0/24(ro) 192.168.73.111(rw,async,no_root_squash,all_squash)
[[email protected] nfs1]# exportfs -r      #生效
[[email protected] nfs1]# exportfs -v
/data/nfs1      192.168.73.111(async,wdelay,hide,no_subtree_check,sec=sys,rw,secure,no_root_squash,all_squash)

客户端测试

在客户端创建文件

[[email protected] nfs1]# touch aaa
[[email protected] nfs1]# ll
total 0
-rw-r--r-- 1 nfsnobody nfsnobody 0 May 19 05:59 aaa

依旧被压榨为nfsnobody用户

被压榨时映射为其他用户

压榨时不映射为nfsnobody用户,而更换为其他用户,可以将其映射成某服务的用户比如(apahce),使用anonuid,anongid分别指定所要压榨为用户的id

服务器操作

1.新建一个用户

[[email protected] nfs1]# useradd -r -s /sbin/nologin nfs
[[email protected] nfs1]# id nfs
uid=998(nfs) gid=996(nfs) groups=996(nfs)

2.修改配置文件

[[email protected] nfs1]# vim /etc/exports
/data/nfs1 192.168.73.111(rw,async,no_root_squash,all_squash,anonuid=998,anongid=996)
[[email protected] nfs1]# exportfs -r
[[email protected] nfs1]# exportfs -v
/data/nfs1      192.168.73.111(async,wdelay,hide,no_subtree_check,anonuid=998,anongid=996,sec=sys,rw,secure,no_root_squash,all_squash)

客户端操作

创建文件

[[email protected] nfs1]# ll
-rw-r--r-- 1 nfs       nfs       0 May 19 06:08 123

压榨root为nfs用户

nfs挂载共享家目录

每台主机上都有一个/home/wang,要求每台主机上的所有wang家目录内的东西都相同,可以考虑将wang的家目录共享出去来实现,方便集中数据的管理,节约磁盘的空间

服务器操作

1.创建配置文件并生效

[[email protected] nfs1]# mkdir /data/wanghome
[[email protected] nfs1]# vim /etc/exports.d/wang.exports
/data/wanghome *(rw)
[[email protected] nfs1]# exportfs -r
[[email protected] nfs1]# exportfs -v
/data/nfs1      192.168.73.111(async,wdelay,hide,no_subtree_check,anonuid=998,anongid=996,sec=sys,rw,secure,no_root_squash,all_squash)
/data/wanghome  <world>(sync,wdelay,hide,no_subtree_check,sec=sys,rw,secure,root_squash,no_all_squash)

2.复制模板文件至家目录

[[email protected] ~]# cp -r /etc/skel/. /data/wanghome/
[[email protected] ~]# chown -R wang.wang /data/wanghome/

客户端操作

查看服务器端的共享目录

[[email protected] ~]# showmount -e 192.168.73.110
Export list for 192.168.73.110:
/data/wanghome *
/data/nfs1     192.168.73.111
挂载wanghome目录至/home/wang,切换用户查看

[[email protected] ~]# mount 192.168.73.110:/data/wanghome /home/wang/
[[email protected] ~]# su - wang             #
Last login: Sun May 19 06:26:12 CST 2019 on pts/0
[[email protected] ~]$ ls

NFS工具

1.停止本机所有挂载

[[email protected] nfs1]# exportfs -au
[[email protected] nfs1]# exportfs -v
[[email protected] nfs1]# 

2.恢复本机所有挂载

[[email protected] nfs1]# exportfs -v
/data/nfs1      192.168.73.111(async,wdelay,hide,no_subtree_check,anonuid=998,anongid=996,sec=sys,rw,secure,no_root_squash,all_squash)

3.查看远程主机注册的rpc端口号

[[email protected] nfs1]# rpcinfo -s 192.168.73.110
   program version(s) netid(s)                         service     owner
    100000  2,3,4     local,udp,tcp,udp6,tcp6          portmapper  superuser
    100024  1         tcp6,udp6,tcp,udp                status      29
    100005  3,2,1     tcp6,udp6,tcp,udp                mountd      superuser
    100003  4,3       udp6,tcp6,udp,tcp                nfs         superuser
    100227  3         udp6,tcp6,udp,tcp                nfs_acl     superuser
    100021  4,3,1     tcp6,udp6,tcp,udp                nlockmgr    superuser

4.查看本机注册的rpc端口号

[[email protected] nfs1]# rpcinfo -s
   program version(s) netid(s)                         service     owner
    100000  2,3,4     local,udp,tcp,udp6,tcp6          portmapper  superuser
    100024  1         tcp6,udp6,tcp,udp                status      29

nfs详解(代码片段)

1、NFS介绍NFS是NetworkFileSystem的简写,即网络文件系统,NFS是FreeBSD支持的文件系统中的一种。NFS基于RPC(RemoteProcedureCall)远程过程调用实现,其允许一个系统在网络上与它人共享目录和文件。通过使用NFS,用户和程序就可以像访问... 查看详情

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

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

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

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

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

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

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

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

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

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

nfs文件系统及搭建nfs共享服务(代码片段)

一、什么是文件系统?  文件系统是对一个存储设备上的数据和元数据进行组织的一种机制。文件系统是在一个磁盘(包括光盘、软盘、闪盘及其它存储设备)或分区上组织文件方式方法,常见文件系统如ext2、ext3、ext4、NTFS... 查看详情

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

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

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

...博客,防止以后再次使用的时候,能够很快得重新建立NFS文件系统。调研:   NFS(NetworkFileSystem)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本... 查看详情

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

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

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

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

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

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

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

NFS是一种基于TCP/IP传输的网络文件系统协议,最初由SUN公司开发,通过使用NFS协议,NFS客户机可以向访问本地目录一样访问远程NFS服务器中的共享资源。大多数负载均衡群集都使用NFS协议。NFS网络文件系统一般被用来存储共享视... 查看详情

nfs(代码片段)

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

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

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

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

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

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

@[TOC]NFS文件网络共享简介官网:http://nfs.sourceforge.net/推荐博客:Linux挂载命令mount用法及参数详解光盘或光盘镜像:iso9660DOSfat16文件系统:msdosWindows9xfat32文件系统:vfatWindowsNTntfs文件系统:ntfsMountWindows文... 查看详情

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

@[TOC]NFS文件网络共享简介官网:http://nfs.sourceforge.net/推荐博客:Linux挂载命令mount用法及参数详解光盘或光盘镜像:iso9660DOSfat16文件系统:msdosWindows9xfat32文件系统:vfatWindowsNTntfs文件系统:ntfsMountWindows文... 查看详情