nfs共享存储(代码片段)

zzzwqh zzzwqh     2022-12-04     118

关键词:

环境准备

主机名 wanIP lanIP 角色
web01 10.0.0.7 172.16.1.7 nfs的客户端
web02 10.0.0.8 172.16.1.8 nfs的客户端
nfs 10.0.0.31 172.16.1.31 nfs的服务端

NFS服务端

NFS(Network File System)和RPC(Remote Procedure Call)

部署NFS服务端,需要安装软件包 nfs-toolsrpcbind,CentOS7中自带rpcbind软件包,NFS本身是没有提供信息传输的协议和功能的,但NFS却能让我们通过网络进行资料的分享,这是因为NFS使用了一些其它的传输协议。而这些传输协议用到了这个RPC功能。可以说NFS服务是需要使用RPC的一个程序。或者说NFS也是一个RPC Server。所以只要用到NFS的地方都要启动RPC服务,不论是NFS Server 或者NFS Client。这样Server和Client 才能通过RPC来实现PROGRAM PORT 的对应。可以这么理解RPC和NFS的关系:NFS是一个文件系统,而RPC是负责负责信息的传输。

技术图片

安装完成后,修改/etc/exports文件,语法格式如下

[共享的目录] IP网段(参数,参数)

其中参数可以用 man exports命令查到:

参数 参数作用
rw NFS客户端读写权限
ro NFS客户端只读权限
root_squash NFS客户端用root用户访问该共享文件目录时,会将root用户映射成匿名用户
no_root_squash NFS客户端用root访问该共享文件夹时,不映射root用户为匿名用户,但给予root用户的待遇
all_squash 无论NFS客户端使用什么账户访问,均映射为NFS服务器的匿名用户(常用)
no_all_squash 无论NFS客户端使用什么账户访问,都不映射
sync 同时将数据写入到内存与硬盘中,保证不丢失数据
async 资料会先暂存于内存中,而非直接写入硬盘,从内存中写入硬盘
anonuid 配合all_squash参数使用,将远程访问的所有用户都映射为匿名用户,并指定该用户为本地用户
anongid 配合all_squash参数使用,将远程访问的所有用户组都映射为匿名用户组,并指定该用户组为本地用户组
# CentOS 7,只需要安装nfs-utils
[root@nfs ~]# yum install -y nfs-utils

# CentOS 6,需要安装nfs和rpc
[root@nfs ~]# yum install -y nfs-utils rpcbind

# 编辑nfs的配置文件
[root@nfs ~]# vi /etc/exports
/data 172.16.1.0/24(rw,sync,all_squash,anonuid=666,anongid=666)

# 检查配置文件是否生效
[root@nfs ~]# cat /var/lib/nfs/etab

# 创建匿名用户对应的本地用户
[root@nfs ~]# useradd www -u 666 -r -s /sbin/nologin -M

# 创建 /data目录,并改变其 属主和属组
[root@nfs ~]# mkdir /data
[root@nfs ~]# chown -R www.www /data

# 启动 nfs-server 和 rpcbind ,添加开机自启
[root@nfs ~]# systemctl restart nfs-server rpcbind
[root@nfs ~]# systemctl enable nfs-server rpcbind

NFS客户端

# 客户端安装 nfs-server 软件包(CentOS7)
[root@web01 ~]# yum install -y nfs-utils 

# 查看 NFS服务端 "房源"
[root@web01 ~]# showmount -e 172.16.1.31
Export list for 172.16.1.31:
/data 172.16.1.0/24

# 将目录挂载到 NFS服务端,此时访问 /var/www/html目录时,实际上是 NFS服务端的 /data目录
[root@web01 ~]# mount -t nfs 172.16.1.31:/data /var/www/html/

# 对应的卸载命令
[root@web01 ~]# umount /var/www/html/

httpd服务

# 上传的文件路径设置为 /var/www/html/,由 apache 用户上传,所以要修改 /var/www/html 的属主和属组,否则 apache 用户没有写入的权限
[root@web01 ~]# chown apache.apache /var/www/html/

# 或者不指定为 apache 用户,需要修改配置文件
[root@web01 ~]# vim /etc/httpd/conf/httpd.conf 
User www
Group www
[root@web01 ~]# chown www.www /var/www/html/

# 修改后,重启 httpd服务
[root@web01 ~]# systemctl restart httpd

######### 以上是单机架构服务器必须要做的操作 ,若是分布式服务器架构,使用了NFS共享存储服务器,NFS服务端的配置文件/etc/exports加入了`all_squash`,可以不改变属主及属组,任何用户都会以匿名用户身份访问 NFS服务端 ##########

# 补充1:NFS的客户端/var/www/html的属主和属组 和 NFS的服务端/data的属主和属组 尽量用同一个用户名,UID,GID
# 补充2:若不同,执行挂载后,NFS客户端会不识别 /data挂载目录(/var/www/html) 的属主和属组,只显示对应的 UID GID,若 NFS客户端有这个UID的用户,则显示客户端的用户名
# 补充3:在挂载后,对于 NFS服务端的操作,任何用户都可执行,因为 NFS服务端 `all_squash,anonuid=666,anongid=666` 参数会将远程访问的所有用户都映射为匿名用户,并指定为本地用户(UID=666,GID=666)

NFS客户端没有 NFS服务端匿名用户:
技术图片

NFS客户端 有和NFS服务端匿名用户相同 UID/GID的用户:
技术图片



nfs共享存储(代码片段)

目录环境准备NFS服务端NFS客户端httpd服务环境准备主机名wanIPlanIP角色web0110.0.0.7172.16.1.7nfs的客户端web0210.0.0.8172.16.1.8nfs的客户端nfs10.0.0.31172.16.1.31nfs的服务端NFS服务端NFS(NetworkFileSystem)和RPC(RemoteProcedureCall)部署NFS服务端,需要... 查看详情

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

NFS共享存储服务的部署NFS(NetworkFileSystem)即网络文件系统主要用于存储web服务器上用户上传的数据信息,图片?附件?头像?视频?音频NFS网络文件系统工作方式1、在nfs服务端创建共享目录2、通过mount?网路挂载,将NFS客户端本地目... 查看详情

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

...系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。NFS最早是由Sun公司发展出来的。简单的来说:它就是... 查看详情

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

...系统主要功能是通过局域网络让不同的主机系统之间可以共享文件或目录。NFS系统和Windows网络共享、网络驱动器类似,只不过windows用于局域网,NFS用于企业集群架构中,如果是大型网站,会用到更复杂的分布式文件系统FastDFS,glusterfs,... 查看详情

linux网络服务——nfs共享存储服务(包含操作详解)(代码片段)

NFS共享存储服务NFS共享存储服务概述NFS应用场景NFS服务器配置一、服务器的配置二、客户端的配置NFS常见故障解决思路NFS共享存储服务概述NFS是一种基于TCP/IP传输的网络文件系统协议。通过使用NFS协议,客户机可以像访问本... 查看详情

02-nfs存储服务(代码片段)

...。NFS主要功能是通过局域网络让不同的主机系统之间可以共享文件或目录,NFS客户端可以通过挂载的方式将NFS服务端共享数据的文件目录挂载到本地挂载点,这样对本地挂载点目录中的数据进行操作其实就是操作NFS服务端共享数... 查看详情

nfs共享存储(代码片段)

....0.0.172.16.1.客户端nfs10.0.0.172.16.1.服务端服务端安装配置nfs共享参数参数作用rw读写权限ro只读权限root_squash当NFS客户端以root管理员访问时,映射为NFS服务器的匿名用户(不常用),root用户映射后还是普通用户no_root_squa 查看详情

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

...中的一种,也被称为NFS.NFS允许一个系统在网络上与它人共享目录和文件。通过使用NFS,用户和程序可以像访问本地文件一样访问远端系统上的文件。(无身份验证机制)NFS的优点 1.本地工作站使用更少的磁盘空间,因为通常的... 查看详情

linux(10):期中架构---nfs存储服务(代码片段)

1.共享存储服务概念:#NFS是NetworkFileSystem的缩写,中文意思是网络文件系统,#它的主要功能是通过网络(一般是局域网)让不同的主机系统之间可以共享文件或目录。2.NFS共享存储服务的应用:#将数据存储到一台服务器上,实现... 查看详情

redhat6.5中搭建nfs共享存储服务(代码片段)

...户机可以像访问本地目录一样访问远程NFS服务器中提供的共享资源,对于大多数负载均衡群集来说,使用NFS协议来共享数据库较为常见,但NFS服务没有用户认证机制,且数据在网络上为明文传输,安全性较差,所以,一般只适用... 查看详情

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

...。NFS主要功能是通过局域网络让不同的主机系统之间可以共享文件或目录。NFS系统和Windows网络共享、网络驱动器类似,只不过windows用于局域网,NFS用于企业集群架构中,如果是大型网站,会用到更复杂的分布式文件系统FastDFS,glusterfs,... 查看详情

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

...三、NFS的特点四、实验步骤1、安装nfs和rpcbind软件2、设置共享目录3、启动NFS服务并验证结果4、客户机中访问NFS共享资源4.1手动挂载NFS共享目录4.2fstab自动挂载设置4.3强制卸载NFS五、总结引言本文详细讲解了NFS实验的几个步骤。... 查看详情

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

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

nfs(代码片段)

...就是可以通过网络,让不同的机器、不同的操作系统可以共享彼此的文件(NFS一般用来存储共享视频,图片等静态数据)。而在客户端看来,共享的目录就是其本身的目录。网络文件系统:通过网络存储和组织文件的一种方法或... 查看详情

配置nfs作为hdfs高可用的共享存储系统(代码片段)

所有命令或步骤:首先,在各个节点上安装nfs服务  yuminstall-ynfs  servicerpcbindstart  servicenfsstart编辑/etc/exports文件,添加下面一行  /mnt/sharehadoop1(rw,no_root_squash,async)hadoop2(rw,no_root_squash,async)hadoop6(rw,no_root_squ 查看详情

⚡超容易的nfs存储服务搭建流程⚡(代码片段)

...应存储软件是否安装🔅2.编写配置文件🔅3.创建共享目录信息,目录授权🔅4.启动nfs相关服务五、客户端NFS服务部署流程🔅1.检查安装软件服务🔅2.进行共享目录挂载使用 查看详情

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

...NFS客户机可以向访问本地目录一样访问远程NFS服务器中的共享资源。大多数负载均衡群集都使用NFS协议。NFS网络文件系统一般被用来存储共享视频、图片等静态资源文件。环境部署:redhat6.5系统服务器Ip:192.168.100.101客户端ip:19... 查看详情

在kvm环境下,实现基于共享存储(nfs)的虚拟机夸主机迁移(代码片段)

一台作为nfs共享存储服务器[root@cent7_6~]#yuminstall-ynfs-utilsrpcbind#配置共享#将本地的/data目录共享出去,并且只允许10.0.0.0/24访问,权限为rw,并sync同步写入#no_root_squash远程root映射成NFS服务器的root用户[root@cent7_6~]#mk... 查看详情