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

相关文章

从入门到精通MySQL联合查询

《从入门到精通MySQL联合查询》:本文主要介绍从入门到精通MySQL联合查询,本文通过实例代码给大家介绍的非常详细,需要的朋友可以参考下... 目录摘要1. 多表联合查询时mysql内部原理2. 内连接3. 外连接4. 自连接5. 子查询6. 合并查询7. 插入查询结果摘要前面我们学习了数据库设计时要满

Linux中压缩、网络传输与系统监控工具的使用完整指南

《Linux中压缩、网络传输与系统监控工具的使用完整指南》在Linux系统管理中,压缩与传输工具是数据备份和远程协作的桥梁,而系统监控工具则是保障服务器稳定运行的眼睛,下面小编就来和大家详细介绍一下它... 目录引言一、压缩与解压:数据存储与传输的优化核心1. zip/unzip:通用压缩格式的便捷操作2.

Python实现对阿里云OSS对象存储的操作详解

《Python实现对阿里云OSS对象存储的操作详解》这篇文章主要为大家详细介绍了Python实现对阿里云OSS对象存储的操作相关知识,包括连接,上传,下载,列举等功能,感兴趣的小伙伴可以了解下... 目录一、直接使用代码二、详细使用1. 环境准备2. 初始化配置3. bucket配置创建4. 文件上传到os

从入门到精通C++11 <chrono> 库特性

《从入门到精通C++11<chrono>库特性》chrono库是C++11中一个非常强大和实用的库,它为时间处理提供了丰富的功能和类型安全的接口,通过本文的介绍,我们了解了chrono库的基本概念... 目录一、引言1.1 为什么需要<chrono>库1.2<chrono>库的基本概念二、时间段(Durat

Java中调用数据库存储过程的示例代码

《Java中调用数据库存储过程的示例代码》本文介绍Java通过JDBC调用数据库存储过程的方法,涵盖参数类型、执行步骤及数据库差异,需注意异常处理与资源管理,以优化性能并实现复杂业务逻辑,感兴趣的朋友... 目录一、存储过程概述二、Java调用存储过程的基本javascript步骤三、Java调用存储过程示

MySQL之InnoDB存储引擎中的索引用法及说明

《MySQL之InnoDB存储引擎中的索引用法及说明》:本文主要介绍MySQL之InnoDB存储引擎中的索引用法及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录1、背景2、准备3、正篇【1】存储用户记录的数据页【2】存储目录项记录的数据页【3】聚簇索引【4】二

MySQL之InnoDB存储页的独立表空间解读

《MySQL之InnoDB存储页的独立表空间解读》:本文主要介绍MySQL之InnoDB存储页的独立表空间,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、背景2、独立表空间【1】表空间大小【2】区【3】组【4】段【5】区的类型【6】XDES Entry区结构【

SQLite3 在嵌入式C环境中存储音频/视频文件的最优方案

《SQLite3在嵌入式C环境中存储音频/视频文件的最优方案》本文探讨了SQLite3在嵌入式C环境中存储音视频文件的优化方案,推荐采用文件路径存储结合元数据管理,兼顾效率与资源限制,小文件可使用B... 目录SQLite3 在嵌入式C环境中存储音频/视频文件的专业方案一、存储策略选择1. 直接存储 vs

解析C++11 static_assert及与Boost库的关联从入门到精通

《解析C++11static_assert及与Boost库的关联从入门到精通》static_assert是C++中强大的编译时验证工具,它能够在编译阶段拦截不符合预期的类型或值,增强代码的健壮性,通... 目录一、背景知识:传统断言方法的局限性1.1 assert宏1.2 #error指令1.3 第三方解决

从入门到精通MySQL 数据库索引(实战案例)

《从入门到精通MySQL数据库索引(实战案例)》索引是数据库的目录,提升查询速度,主要类型包括BTree、Hash、全文、空间索引,需根据场景选择,建议用于高频查询、关联字段、排序等,避免重复率高或... 目录一、索引是什么?能干嘛?核心作用:二、索引的 4 种主要类型(附通俗例子)1. BTree 索引(