2022
我们一起努力

关于nfs文件系统挂载的信息

目录:

  • 1、在Windows上自建nfs,性能比较差,这个怎么办?
  • 2、挂载nfs文件系统的时候出错,求帮忙
  • 3、怎么在虚拟机vmware下的ubuntu中搭建nfs服务器
  • 4、NFS架构(转载)
  • 5、挂载NFS到底是什么概念

在Windows上自建nfs,性能比较差,这个怎么办?

本文描述了在应用环境为Windows系统下,需要使用文件存储的场景。本文采用了私有化部署的方式向用户提供了文件共享存储服务。用NFS协议,搭建Windows环境NFS服务,为Windows系统下的云主机提供共享访问服务。

存储格式都有哪些?

文件、块和对象是三种以不同的方式来保存、整理和呈现数据的存储格式。这些格式各有各的功能和限制。文件存储会以文件和文件夹的层次结构来整理和呈现数据;块存储会将数据拆分到任意划分且大小相同的卷中; 对象存储会管理数据并将其链接至关联的元数据

块存储

块存储主要是将裸磁盘空间整个映射给主机使用的,就是说例如磁盘阵列里面有5块硬盘(为方便说明,假设每个硬盘1G),然后可以通过划逻辑盘、做Raid、或者LVM(逻辑卷)等种种方式逻辑划分出N个逻辑的硬盘。(假设划分完的逻辑盘也是5个,每个也是1G,但是这5个1G的逻辑盘已经于原来的5个物理硬盘意义完全不同了。例如第一个逻辑硬盘A里面,可能第一个200M是来自物理硬盘1,第二个200M是来自物理硬盘2,所以逻辑硬盘A是由多个物理硬盘逻辑虚构出来的硬盘。)

典型设备:磁盘阵列,硬盘

文件存储

为了克服块存储文件无法共享的问题,所以有了文件存储。主要功能是通过网络(一般是局域网)让不同的主机系统之间可以共享文件或目录。本文文件存储采用NFS协议,NFS客户端(一般为应用服务器,例如Web)可以通过挂载(mount)的方式将NFS服务器端共享的数据目录挂载带NFS客户端本地系统中(就是某一个挂载点下)。从客户端本地看,NFS服务器端共享的目录就好像是客户端自己的磁盘分区或目录一样,而实际上确实远端的NFS服务器的目录。

典型设备:FTP、NAS

对象存储

对象存储系统(Object-Based Storage System)是综合了NAS和SAN的优点,同时具有SAN的高速直接访问和NAS的数据共享等优势,提供了高可靠性、跨平台性以及安全的数据共享的存储体系结构。对象存储主要操作对象是对象(Object)。和文件和对象存储相比,没有随机读写的接口。和文件存储相比,没有目录树的概念。协议更注重简洁。

典型设备:内置大容量硬盘的分布式服务器、京东云OSS即对象存储

文件存储的适用场景

文件与较底层的块存储不同, 上升到了应用层, 一般指的就是NAS ,一套网络储存设备, 通过TCP/IP进行访问, 协议为NFSv3/v4由于通过网络。下面简单介绍以下NFS存储适用的两个场景,当然,还有更多的场景适合使用文件存储,本文不一一列出。

Web 服务

前端面向终端用户的服务由多台web服务器提供,多台服务器需要共享文件存储,文件系统、文件命名约定和权限等符合应用系统需求。

媒资管理

媒体行业由于其工作流和媒资是一直变化的,很多用户使用多云或混合云,媒体的剪辑、编辑在本地进行,存储和分发在云端,由于文件存储可以和现有的系统轻松的集成,因此,很多用户将文件存储用于媒资管理。

Windows环境下的NFS文件服务的搭建

选择Windows系统搭建NFS协议文件存储系统的优势如下:

系统交付后由用户进行维护,用户对Windows系统熟悉;

部分应用系统只能访问文件存储;

微软的SMB协议是面向网络连接的共享协议,对网络传输的可靠性要求高,常使用TCP/IP;NFS是独立于传输的,可使用TCP或UDP,同时考虑后期有linux系统扩容需求,故选择NFS协议。

京东云提供Linux环境的文件存储服务,无需另行搭建。(详见)

本设计的优势:

共享访问-您在同一子网内的多台云主机可以共享同一个云文件服务中的文件存储系统。对于多个应用实例需要共享通用数据源的场景,特别适合使用云文件服务实现。

易于使用-支持标准的NFS协议,提供全托管的服务,无需修改应用,通过标准的文件系统挂载步骤即可实现无缝集成。极大降低迁移成本,简化云上项目开发。

稳定可靠-本系统存储基于京东云云硬盘,采用3副本冗余存储,提供超强的稳定性和可靠性,满足应用服务对文件系统的可用性和可靠性需求。

易于扩展-本系统存储基于京东云云硬盘,可根据业务需求进行存储空间的扩展。

一、创建NFS服务主机

1、创建实例

在京东云上创建一台云主机,作为NFS服务器;NFS服务要和已有云资源创建在同一区域,同一VPC中。

登录京东云控制台,选择弹性计算-云主机-实例,选择创建实例所属地域,点击“创建”按钮,进入云主机购买页面。

2、选择计费模式

包年包月和按配置计费,包年包月按一个正月进行购买付费,按配置计费按照实际使用的时长(精确至秒)每小时进行扣费。

3、地域与可用区选择

在此步骤仍可以选择实例对应的地域(华北-北京、华南-广州、华东-宿迁及华东-上海)及可用区,请注意“不同地域资源内网不互通,创建之后不可更改”,如果所选地域限额已满,可以通过提交工单提升限额。

4、创建方式选择

提供三种创建方式 自定义创建、使用实例模板创建、在高可用组内创建,后两种需要您预先创建好实例模板和高可用组,我们使用保持默认选项“自定义创建”。

5、选择windows系统镜像

镜像分为云硬盘系统盘镜像及本地盘系统盘镜像,前者仅支持创建系统盘为云硬盘的实例,后者仅支持创建系统盘为本地盘的实例。因为搭建windows系统环境的NFS存储,故镜像选择官方-windows server-windows server 2012 R2标准版。

6、选择实例规格

实例的规格支持用户自定义选择,从最小的1核1G(如g.s1.micro)到72C576GB(如m.n2.18xlarge),用户可以根据不同业务场景选择实例规格及相应配置。考虑到NFS对主机计算性能要求不高,选择2核4G规格主机。

7、配置NFS存储

云主机数据盘:数据盘为NFS系统存储盘,可以根据实际业务需要选择容量。(此处选择20G为例)

8、配置实例网络

选择私有网络及子网:VPC子网选择与需要访问NFS存储的云主机所在的VPC。

选择内网IP分配方式:如对内网IP地址没有特殊要求,可以不指定由系统自动在子网可用网段内分配,如需指定请在提示范围内输入,系统会校验IP是否可用。须注意的是,若选择自定义内网IP地址,则无法批量创建实例。

9、选择安全组

实例在创建时必须绑定一个安全组,若当前地域下未创建自定义安全组,可以在系统创建的三个默认安全组中选择一个绑定(每个私有网络创建成功之后都会自动创建三个默认安全组),也可以通过快速入口前往安全组页面创建安全组。由于官方镜像系统内防火墙默认关闭,建议绑定仅开放22端口(Linux)或3389端口(Windows)的安全组,实例创建之后再根据访问需求创建新的安全组并绑定。

10、配置公网带宽

带宽计费方式:京东云提供按固定带宽和按使用流量两种带宽计费类型的弹性公网IP,按固定带宽计费按购买时设置的带宽上限值付费,而与实际访问公网所用带宽无关,按使用流量计费则根据您实时访问公网的实际流量计费。

线路:弹性公网IP线路分为:BGP和非BGP,若您需要更快更高效的网络接入请选用BGP。

带宽范围:1Mbps~200Mbps。在创建主机过程中可以暂不购买公网IP,完成主机创建后,再进行绑定。

NFS存储如果只供VPC内云主机使用,可以不购买公网IP和带宽。

11、设置实例名称、描述

您需要设置创建的主机名,名称不可为空,只支持中文、数字、大小写字母、英文下划线“ _ ”及中划线“ - ”,且不能超过32字符,如果为批量创建购买,名称以“xxx1”、“xxx2”依次显示。同时支持为实例添加描述,描述允许为空,若添加长度不能超过256字符。

12、设置密码

可以选择“立即设置”密码,也可以选择“暂不设置”(系统会以短信和邮件方式发送默认密码),密码除了用于SSH登录实例时的密码,也是控制台通过VNC登录实例的密码。

确认云主机数量及购买时长 购买数量受限该地域您云主机、云硬盘、公网IP限额以及所选子网剩余IP数量,若限额不够,可通过提交工单提升限额。若购买包年包月实例,则需要设置购买时长,最短为1个月,最长为2年,支付十个月费用即可享受一年服务。若需要更长服务时长请提交工单。

点击确认后,返回到控制台,显示创建中,待状态为运行,NFS服务主机创建完毕。

13、登陆云主机

14、添加数据盘

打开,开始菜单-服务器管理器-文件和存储服务-磁盘,如下图:

选择数据硬盘,右键选择新建卷,文件格式为NTSF

二、建立NFS服务

1、安装NFS服务器端组件

打开,开始菜单-服务器管理器”,在主页仪表板中单击“添加角色和功能”,如下图所示。

在“开始之前”对话框中,会显示配置成NFS服务器必要的前提步骤,请按文字介绍的注意事项确认一下,如果没有问题的话,可以单击“下一步”,如下图所示:

在“安装类型”对话框中,选择“基于角色或基于功能的安装”,然后单击“下一步”,如下图所示:

在“服务器选择”对话框中,选择“从服务器池中选择服务器”,然后单击“下一步”:

在“服务器角色”对话框中,选择“文件和存储服务”中“NFS服务器”,然后单击“下一步”,如下图所示:

继续单击“下一步”,如下图所示:

在“确认”对话框中,可以看到我们从第一步到最后一步选择的参数等信息,如果有要修改的地方,可以单击“上一步”返回修改,确认没有问题的话,可以单击“安装”,如下图所示:

至此,Windows系统的NFS服务端安装完毕,根据提示重启服务器。

2、创建共享服务

NFS服务端安装完毕,回到服务器管理器,选择文件和存储服务

选择 共享-启动新加共享向导

选择“NFS共享-快速”

选择数据盘,设置共享名称

选择“身份验证”相关配置,如下图所示:

设置共享权限,权限请根据实际需要设置

创建完毕,显示”已成功创建共享“,如下图所示:

3、设置共享文件夹

在要设定共享的文件夹属性中,选择“NFS共享”栏位,点击“管理NFS共享”, 在“NFS高级共享”对话框中,选择并勾选“共享此文件夹”:

返回服务器管理器,共享对话框中,可以看到刚才新建的文件夹共享已经成功

参考资料:

1、文件存储、块存储还是对象存储?redhat官网

2、块存储、文件存储、对象存储这三者的本质差别是什么?.知乎.2016-1-1[引用日期2017-10-04]

()

3、今非昔比:块存储的复杂度提高 .TechTarget存储[引用日期2015-10-21]()

点击"京东云"了解更多详情

挂载nfs文件系统的时候出错,求帮忙

1:确认防火墙开放了相应端口

2:selinux关闭了

3:showmount -e 127.0.0.1 检查下服务器的共享目录

4:检查/etc/exports配置是否正确

5:ps -ef|grep nfs 是否开了服务

6:

怎么在虚拟机vmware下的ubuntu中搭建nfs服务器

1.1 搭建NFS服务器

NFS(Network FileSystem,网络文件系统)是由SUN公司发展,并于1984年推出的技术,用于在不同机器,不同操作系统之间通过网络互相分享各自的文件。NFS设计之初就是为了在不同的系统间使用,所以它的通讯协议设计与主机及操作系统无关。

NFS分服务器和客户机,当使用远端文件时只要用mount命令就可把远端NFS服务器上的文件系统挂载在本地文件系统之下,操作远程文件与操作本地文件没有不同。NFS服务器所共享文件或目录记录在/etc/exports文件中。

嵌入式Linux开发中,会经常使用NFS,目标系统通常作为NFS客户机使用,Linux主机作为NFS服务器。在目标系统上通过NFS,将服务器的NFS共享目录挂载到本地,可以直接运行服务器上的文件。在调试系统驱动模块以及应用程序,NFS都是十分必要的,并且Linux还支持NFS根文件系统,能直接从远程NFS root启动系统,这对嵌入式Linux根文件系统裁剪和集成也是十分有必要的。

安装nfs-kernel-server:

ky@ubuntu:~$ sudo apt-get install nfs-kernel-server

设置NFS-Server目录。修改/etc/exports文件,在其中增加NFS服务器目录。 一个NFS服务器可以共享多个NFS目录,在/etc/exports文件中,每个目录的设置独占一行,编写格式如下:

NFS共享目录路径 客户机IP或者名称(参数1,参数2,...,参数n)

说明:

q NFS共享目录可以是主机的任何一个目录,为了方便使用,最好将权限设置为777。

q 客户机指的是可以访问共享目录的客户机的IP或者主机名,可以是指定的IP或者主机名。如果使用IP,可以使用通配符。假如指定IP为192.168.1.x的客户机可以访问,可以写成192.168.1.*,如果设置为*,则表示任何客户机都可以访问。

q 访问参数可以是一个,也可以是多个,用逗号分开。可能的参数和说明如 REF _Ref286733518 \h 表 5.108D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F005200650066003200380036003700330033003500310038000000 所列。

表 STYLEREF 1 \s 5. SEQ 表 \* ARABIC \s 1 1 NFS设置参数和说明

参数

说明

ro

只读访问

rw

读写访问

sync

所有数据在请求时写入共享

async

nfs在写入数据前可以响应请求

secure

nfs通过1024以下的安全TCP/IP端口发送

insecure

nfs通过1024以上的端口发送

wdelay

如果多个用户要写入nfs目录,则归组写入(默认)

no_wdelay

如果多个用户要写入nfs目录,则立即写入,当使用async时,无需此设置

hide

在nfs共享目录中不共享其子目录

no_hide

共享nfs目录的子目录

subtree_check

如果共享/usr/bin之类的子目录时,强制nfs检查父目录的权限(默认)

no_subtree_check

不检查父目录权限

all_squash

共享文件的UID和GID映射匿名用户anonymous,适合公用目录

no_all_squash

保留共享文件的UID和GID(默认)

root_squash

root用户的所有请求映射成如anonymous用户一样的权限(默认)

no_root_squash

root用户具有根目录的完全管理访问权限

anonuid=xxx

指定nfs服务器/etc/passwd文件中匿名用户的UID

anongid=xxx

指定nfs服务器/etc/passwd文件中匿名用户的GID

假定NFS共享目录是/home/ky/nfs,允许所有客户机访问,/etc/exports文件可写为:

/home/ky/nfs *(rw,sync,no_subtree_check, no_root_squash)

启动NFS服务器。启动portmap(如果有必要)和nfs-kernel-server服务:

ky@ubuntu:~$ sudo service portmap start

ky@ubuntu:~$ sudo service nfs-kernel-server start

本地验证NFS服务器。将NFS服务器目录挂载到本机另外一个目录下,可以看到挂载点目录下可以看到NFS服务器目录中的文件。

ky@ubuntu:~$ ls /home/ky/nfs/

aaaa

ky@ubuntu:~$ sudo mount -t nfs 127.0.0.1:/home/ky/nfs /mnt

ke@ubuntu:~$ ls /mnt

aaaa

ky@ubuntu:~$ sudo umount /mnt/

用开发板验证NFS服务器是否可用。启动开发板,进入系统,配置好开发板的IP地址后,用mount命令挂载NFS服务器的NFS目录:

target# mount -t nfs 192.168.1.3:/home/ky/nfs /mnt -o nolock

target# ls /mnt

kingyee

target# umount /mnt/

挂载成功后,可以在开发板的/mnt目录下看到NFS服务器上的文件。

说明,使用开发板与虚拟机安装的客户系统进行NFS挂载,需要将虚拟网卡设置为Bridged模式,并建议使用静态IP地址。

如果在使用中需要增加新的NFS共享目录,直接修改/etc/exports文件即可。修改该文件后,可以不用重启NFS服务,用exportfs命令读取/etc/exports文件,重新共享输出。exportfs命令语法如下:

exportfs [-aruv]

选项说明:

-a:全部挂载(或卸载) /etc/exports的设置;

-r:重新挂载/etc/exports的设置;

-u:卸载某一个目录;

-v:在输出的时候,把共享目录显示出来。

如果NFS已经启动,修改了/etc/exports文件,执行如下命令,新的设置即可生效:

ky@ubuntu:~$ exportfs -ra

NFS架构(转载)

1.为什么用共享存储

2.存储有哪些工具

3.共享存储应用场景有哪些

4.部署nfs共享存储

5.客户端尝试连接共享存储

什么是NFS?

NFS 是 Network File System 的缩写及网络文件系统。 NFS 主要功能是通过局域网络让不同的主机系统之间可以共享文件或目录。

NFS 系统和 Windows 网络共享、网络驱动器类似, 只不过 windows 用于局域网, NFS 用于企业集群架构中, 如果是大型网站, 会用到更复杂的分布式文件系统 FastDFS,glusterfs,HDFS

那么我们为什么要使用数据存储共享服务?

1.实现多台服务器之间数据共享

2.实现多台服务器之间数据一致

下面我将通过图解给大家展示集群需要共享存储服务的理由。

1.A 用户上传图片经过负载均衡,负载均衡将上传请求调度至 WEB1 服务器上。

2.B 用户访问 A 用户上传的图片,此时 B 用户被负载均衡调度至 WEB2 上,因为 WEB2 上没有这张图片,所以 B用户无法看到 A 用户传的图片

如果有共享存储的情况

1.A 用户上传图片无论被负载均衡调度至 WEB1 还是 WEB2, 最终数据都被写入至共享存储

2.B 用户访问 A 用户上传图片时,无论调度至 WEB1 还是 WEB2,最终都会上共享存储访问对应的文件,这样就可以访问到资源了

NFS工作原理

1.用户进程访问 NFS 客户端,使用不同的函数对数据进行处理

2.NFS 客户端通过 TCP/IP 的方式传递给 NFS 服务端

3.NFS 服务端接收到请求后,会先调用 portmap 进程进行端口映射。

4.nfsd 进程用于判断 NFS 客户端是否拥有权限连接 NFS 服务端。

5.Rpc.mount 进程判断客户端是否有对应的权限进行验证。

6.idmap 进程实现用户映射和压缩

7.最后 NFS 服务端会将对应请求的函数转换为本地能识别的命令,传递至内核,由内核驱动硬件。

注意: rpc 是一个远程过程调用,那么使用 nfs 必须有 rpc 服务

1.nfs依赖于RPC服务来传递消息

2.NFS服务启动的端口号是随机的,启动之后会向本地的RCP注册

3.先启动RPC服务,再启动NFS服务

4.NFS和RPC之间的通讯是他们自己内部完成的,对于用户来说无感知

5.NFS客户端和服务端不会直接沟通,必须通过RPC服务传递消息

6.防火墙要开放RPC服务的端口

nfs 服务程序的配置文件为/etc/exports,需要严格按照共享目录的路径 允许访问的 NFS 客户端(共享权限参数)格式书写,定义要共享的目录与相应的权限,具体书写方式如下图所示

配置文件参数解释:

执行 man exports 命令,然后切换到文件结尾,可以快速查看如下样例格式:

nfs共享参数 参数作用

rw 读写权限

ro 只读权限

root_squash

当 NFS 客户端以 root 管理员访问时,映射为 NFS 服务器的匿名用户(不常用)

no_root_squash

当 NFS 客户端以 root 管理员访问时,映射为 NFS 服务器的 root 管理员(不常用)

all_squash

无论 NFS 客户端使用什么账户访问,均映射为 NFS 服务器的匿名用户(常用)

no_all_squash

无论 NFS 客户端使用什么账户访问,都不进行压缩

sync

同时将数据写入到内存与硬盘中,保证不丢失数据

async

优先将数据保存到内存,然后再写入硬盘;这样效率更高,但可能会丢失数据

anonuid

配置 all_squash 使用,指定 NFS 的用户 UID,必须存在系统

anongid

配置 all_squash 使用,指定 NFS 的用户 UID,必须存在系统

写入配置文件:注意!IP地址和后面的小括号没有空格

创建数据目录和授权:

在使用 NFS 服务进行文件共享之前,需要使用 RPC(Remote Procedure Call 远程过程调用服务将 NFS 服务器的IP 地址和端口号信息发送给客户端。因此,在启动 NFS 服务之前,需要先重启并启用 rpcbind 服务程序,同时都加入开机自启动

客户端安装nfs服务十分简单,只需要安装nfs软件包即可

安装完成后只需要启动rpcbind,不需要启动nfs

使用showmount命令查看nfs共享信息查询 NFS 服务器的远程共享信息,其输出格式为“共享的目录名称 允许使用客户端地址”。

挂载命令: 创建挂载目录

在 NFS 客户端创建一个挂载目录, 使用 mount 命令并结合-t 参数, 指定要挂载的文件系统的类型, 并在命令后面写上服务器的 IP 地址, 以及服务器上的共享目录, 最后需要写上要挂载到本地系统(客户端)的目录

查看是否挂载成功:

测试写入数据是否正常

写入开机自动挂载

卸载命令:注意!卸载的时候如果提示”umount.nfs: /nfsdir: device is busy”先切换到其他目录再卸载

强制卸载命令:

服务端配置:

客户端挂载:

测试读取:

写入测试:

服务端配置:

服务端创建用户及授权:

重启NFS服务:

更改目录授权:

客户端操作:

我们会发现依然可以写入,但是为了避免这种情况发生,建议客户端也创建相同uid gid的用户

参考博客

启动NFS会开启如下端口:

1)portmapper 端口:111 udp/tcp;

2)nfs/nfs_acl 端口:2049 udp/tcp;

3)mountd 端口:"32768--65535" udp/tcp

4)nlockmgr 端口:"32768--65535" udp/tcp

系统 RPC服务在 nfs服务启动时默认会给 mountd 和 nlockmgr 动态选取一个随机端口来进行通讯。

1.查看NFS启动后的端口

2.将随机的端口号设置固定

3.重启nfs和rpc服务

4.再次查看端口信息,发现端口号已经固定了

5.设置iptables

6.保存配置

如果设置了开机自启动,但是系统启动的时候NFS并没有提供服务,就会导致开机自检的时候卡在挂在那一步

NFS 存储优点

1.NFS 文件系统简单易用、方便部署、数据可靠、服务稳定、满足中小企业需求。

2.NFS 文件系统内存放的数据都在文件系统之上,所有数据都是能看得见

NFS 存储局限

1.存在单点故障, 如果构建高可用维护麻烦 web-nfs()-backup

2.NFS 数据明文, 并不对数据做任何校验。

3.客户端挂载 NFS 服务没有密码验证, 安全性一般(内网使用)

NFS 应用建议

1.生产场景应将静态数据尽可能往前端推, 减少后端存储压力

2.必须将存储里的静态资源通过 CDN 缓存 jpg\png\mp4\avi\css\js

3.如果没有缓存或架构本身历史遗留问题太大, 在多存储也无用

准备 3 台虚拟机服务器,并且请按照要求搭建配置 NFS 服务。

NFS 服务端(A)

NFS 客户端(B)

NFS 客户端(C)

1.在 NFS 服务端(A)上共享/data/w(可写)及/data/r(只读)

2.在 NFS 客户端(B/C)上进行挂载

环境准备

挂载NFS到底是什么概念

和你的使用目的有关:

1、开发板linux系统和PC机交换数据(文件)

2、在开发板上直接运行PC上的应用程序(调试用)

3、使用nfs根文件系统启动开发板的linux系统

赞(0)
文章名称:《关于nfs文件系统挂载的信息》
文章链接:https://www.fzvps.com/147994.html
本站文章来源于互联网,如有侵权,请联系管理删除,本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。
图片版权归属各自创作者所有,图片水印出于防止被无耻之徒盗取劳动成果的目的。

评论 抢沙发

评论前必须登录!