NFS网络文件存储入门

2024-06-15 18:20
文章标签 入门 网络 存储 nfs

本文主要是介绍NFS网络文件存储入门,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、NFS介绍

  1. NFS全称Network Files System,中文叫网络文件系统,是1980年由SUN发展出来在UNIX&Linux系统间实现磁盘文件共享的一种方法。
  2. NFS是当前互联网系统架构中最常用的服务之一,特别是中小公司应用频率很高。大公司可能用MFS,GFS,FASTFS分布式系统。
  3. RHEL7在默认情况下支持第四版本的NFS,不过在该版本不可用的情况下自动回退到第三版本NFS或第二版本NFS,第四版本的NFS使用TCP协议进行数据传输,以前的版本可能使用TCP或UDP。
  4. NFS的整个工作模式中分为“服务端”和“客户端”两部分,服务端共享出目录(也就是共享出“完成格式化且挂载好”的目录),然后客户端像挂载本地文件系统一样挂载这个服务端共享出来的目录,然后可以对目录进行操作。

二、NFS提供多种传输网络传输方式

  1. none:可对文件进行匿名访问,对服务器文件的写入(如果能写的话),使用nfsnobody用户的UID和GID进行。
  2. sys:文件访问权限基于UID和GID的标准Linux权限,如未特别指定,这是默认方法
  3. krb5:客户端必须使用Kerberos证明身份,然后使用标准的linux文件权限
  4. krb5i:客户端必须使用Kerberos证明身份,然后使用标准的linux文件权限,对数据请求的过程的数据进行加密,传输过程的数据进行完整性的校验,但传输数据不加密
  5. krb5p:客户端必须使用Kerberos证明身份,然后使用标准的linux文件权限,对所有传输请求和传输数据进行加密和校验,这个方法虽然安全性最高,但是传输的效率是最低的

三、sys方式设定nfs共享和挂载

这是默认方式,此时数据没有加密传输,也不支持selinux

1、配置服务端server

1.1 配置NFS共享

chown nfsnobody /nfsshare #先确定共享出去的目录,并改共享目录的权限

yum install nfs-utils #安装软件包

systemctl enable nfs-server; systemctl start nfs-server #启动服务

 echo '/nfsshare  desktop0(rw,sync)'  >> /etc/exports #写配置

 exportfs  -r #让配置生效

配置防火墙

firewall-cmd --permanent --add-service=nfs

firewall-cmd --permanent --add-service=rpc-bind

firewall-cmd --permanent --add-service=mountd

firewall-cmd --reload

注:rpc-bind/mount端口不开,客户端可以挂载nfs,但客户端showmount会看不到服务端的共享

showmount -e localhost 本地验证

1.2 showmount命令的说明

这个命令在NFS的服务端和客户端都能使用

-a 这个选项是一般在NFS SERVER上使用,是用来显示已经mount上本机nfs目录的客户端机器

-e 这个选项后面跟nfs服务器,用查看nfs服务上共享出的目录

showmount -e localhost 看本机的nfs共享目录,这个命令在nfs服务器上运行

showmount -e server0.example.com或者 showmount -e 172.25.0.11 这个服务一般在客户端上运行,查看sever0.example.com上 和172.25.0.11上 通过nfs共享出来的目录

1.3关于配置文件的说明

  • 关于指定谁可以访问这个共享的设定

/nfsshare  desk.example.com(rw,sync,no_root_sqush) 表示只有desk.example.com可以使用这个共享

/nfsshare  172.25.0.10(rw,sync,no_root_sqush) 表示只有172.25.0.10可以使用这个共享

/nfsshare  *(rw,sync,no_root_sqush) 表示所有客户端都可以使用这个共享

/nfsshare 192.168.0.*(rw,sync,no_root_sqush) 表示只有192.168.0.开头的ip地址能使用这个共享

/nfsshare 192.168.0.0/24(rw,sync,no_root_sqush) 只有192.168.0.0/24网段的ip地址能使用这个共享

/nfsshare  *.redhat.com(rw,sync,no_root_sqush) 只有redhat.com这个域名下的所有主机可以使用这个共享

  • 关于对共享目录的操作权限

rw

ro

no_root_squash 登入到NFS主机的用户如果是root,该用户即拥有root权限

root_squash 登入NFS主机的用户如果是root,该用户权限将被限定为匿名使用者nobody

all_squash 不管登陆NFS主机的用户是何权限都会被重新设定为匿名使用者nobody

sync 资料同步写入存储器中。

async 资料会先暂时存放在内存中,不会直接写入硬盘

1.4关于exportfs命令的说明

-a :全部mount或者unmount /etc/exports中的内容

exportfs -av 用于输出NFS服务器的所有共享目录

-r :重新mount /etc/exports中分享出来的目录

 exportfs -rv  全部重新export一次,修改配置后使用

-u :umount 目录

exportfs -auv  全部都卸载,用于停止当前主机中NFS服务器的所有目录输出

-v :在 export 的时候,将详细的信息输出到屏幕上

exportfs -v  查看当前共享配置

2、客户端desktop

2.1确定本地挂载目录

mkdir /mnt/nfsexport

2.2临时挂载

mount  server0:/nfsshare  /mnt/nfsexport

2.3永久挂载

echo 'server0:/nfsshare  /mnt/nfsexport   nfs   defaults   0   0' >> /etc/fstab

mount -a

2.4验证

df -hT

cd /mnt/nfsexport

ls

touch 2.txt

这篇关于NFS网络文件存储入门的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1064217

相关文章

Linux系统配置NAT网络模式的详细步骤(附图文)

《Linux系统配置NAT网络模式的详细步骤(附图文)》本文详细指导如何在VMware环境下配置NAT网络模式,包括设置主机和虚拟机的IP地址、网关,以及针对Linux和Windows系统的具体步骤,... 目录一、配置NAT网络模式二、设置虚拟机交换机网关2.1 打开虚拟机2.2 管理员授权2.3 设置子

揭秘Python Socket网络编程的7种硬核用法

《揭秘PythonSocket网络编程的7种硬核用法》Socket不仅能做聊天室,还能干一大堆硬核操作,这篇文章就带大家看看Python网络编程的7种超实用玩法,感兴趣的小伙伴可以跟随小编一起... 目录1.端口扫描器:探测开放端口2.简易 HTTP 服务器:10 秒搭个网页3.局域网游戏:多人联机对战4.

Spring Boot + MyBatis Plus 高效开发实战从入门到进阶优化(推荐)

《SpringBoot+MyBatisPlus高效开发实战从入门到进阶优化(推荐)》本文将详细介绍SpringBoot+MyBatisPlus的完整开发流程,并深入剖析分页查询、批量操作、动... 目录Spring Boot + MyBATis Plus 高效开发实战:从入门到进阶优化1. MyBatis

C# WinForms存储过程操作数据库的实例讲解

《C#WinForms存储过程操作数据库的实例讲解》:本文主要介绍C#WinForms存储过程操作数据库的实例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、存储过程基础二、C# 调用流程1. 数据库连接配置2. 执行存储过程(增删改)3. 查询数据三、事务处

SpringBoot使用OkHttp完成高效网络请求详解

《SpringBoot使用OkHttp完成高效网络请求详解》OkHttp是一个高效的HTTP客户端,支持同步和异步请求,且具备自动处理cookie、缓存和连接池等高级功能,下面我们来看看SpringB... 目录一、OkHttp 简介二、在 Spring Boot 中集成 OkHttp三、封装 OkHttp

Linux系统之主机网络配置方式

《Linux系统之主机网络配置方式》:本文主要介绍Linux系统之主机网络配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、查看主机的网络参数1、查看主机名2、查看IP地址3、查看网关4、查看DNS二、配置网卡1、修改网卡配置文件2、nmcli工具【通用

使用Python高效获取网络数据的操作指南

《使用Python高效获取网络数据的操作指南》网络爬虫是一种自动化程序,用于访问和提取网站上的数据,Python是进行网络爬虫开发的理想语言,拥有丰富的库和工具,使得编写和维护爬虫变得简单高效,本文将... 目录网络爬虫的基本概念常用库介绍安装库Requests和BeautifulSoup爬虫开发发送请求解

Oracle存储过程里操作BLOB的字节数据的办法

《Oracle存储过程里操作BLOB的字节数据的办法》该篇文章介绍了如何在Oracle存储过程中操作BLOB的字节数据,作者研究了如何获取BLOB的字节长度、如何使用DBMS_LOB包进行BLOB操作... 目录一、缘由二、办法2.1 基本操作2.2 DBMS_LOB包2.3 字节级操作与RAW数据类型2.

Java实现数据库图片上传与存储功能

《Java实现数据库图片上传与存储功能》在现代的Web开发中,上传图片并将其存储在数据库中是常见的需求之一,本文将介绍如何通过Java实现图片上传,存储到数据库的完整过程,希望对大家有所帮助... 目录1. 项目结构2. 数据库表设计3. 实现图片上传功能3.1 文件上传控制器3.2 图片上传服务4. 实现

C语言中的浮点数存储详解

《C语言中的浮点数存储详解》:本文主要介绍C语言中的浮点数存储详解,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、首先明确一个概念2、接下来,讲解C语言中浮点型数存储的规则2.1、可以将上述公式分为两部分来看2.2、问:十进制小数0.5该如何存储?2.3 浮点