07-NFS安装配置

简介: 07-NFS安装配置

前言

  • 本篇来学习下NFS共享存储的安装配置

什么是共享存储

  • 多台服务器的数据保存在同一个存储服务器上。这样无论用户请求在哪一台服务器上看到的数据都是一样的

什么是NFS

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

NFS安装配置

NFS服务端

  • 更新源文件
sudo apt update
sudo apt upgrade
  • 安装nfs服务器软件
sudo apt install nfs-kernel-server
  • 创建共享目录
sudo mkdir -p /nfs_share
  • 修改共享目录访问权限
sudo chown nobody:nogroup /nfs_share
sudo chmod 755 /nfs_share
  • 配置NFS导出
# 编辑 /etc/exports 文件以定义要共享的目录和允许访问的客户端
sudo vim /etc/exports
#  将以下内容添加到文件中,替换 <client_IP> 为客户端的IP地址(或使用通配符*允许所有IP访问)/nfs_share 为上一步骤创建的共享目录
/nfs_share <client_IP>(rw,sync,no_subtree_check)
  • NFS配置权限设置常用参数说明
参数 说明
rw read-write,表示可读写权限
ro read-only,只读
sync 请求或写入数据时,数据同步写入到NFS Server的硬盘后才返回。优点:数据安全不会丢;缺点:性能比不启用该参数要差。
async 写入时数据会先写到内存缓冲区,只到硬盘有空档才会再写入磁盘,这样可以提升写入效率!风险为若服务器宕机或不正常关机,会损失缓冲区中未写入磁盘的数据(解决办法:服务器主板电池或加UPS不间断电源)
no_root_squash 访问NFS Server共享目录的用户如果是root的话,它对该共享目录具有root权限。这个配置原本是为无盘客户端准备的。用户应避免使用!
root_squash 如果访问NFS Server共享目录的用户是root,则它的权限将被压缩成匿名用户,同时它的UID和GID通常会变成nfsnobody帐号身份。
all_squash 所有访问用户都映射为匿名用户或用户组。
subtree_check 默认, 若输出目录是一个子目录,则nfs服务器将检查其父目录的权限。
no_subtree_check 即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率。
anonuid=xxx 指定NFS服务器/etc/passwd文件中匿名用户的UID
anongid=xxx : 指定NFS服务器/etc/ passwd文件中匿名用户的GID
  • 更新配置并重启服务
sudo exportfs -ra
sudo systemctl restart nfs-kernel-server

NFS客户端

  • 安装客户端软件包
sudo apt install nfs-common
  • 创建挂载点
sudo mkdir -p /mnt/nfs_share
  • 挂载NFS共享到挂载点。将 <server_IP> 替换为NFS服务器的IP地址
sudo mount <server_IP>:/nfs_share /mnt/nfs_share
  • 查看挂载信息
df -h
  • 设置开机自动挂载
# 下面内容添加到 /etc/fstab
<server_IP>:/nfs_share /mnt/nfs_share nfs auto,noatime,nolock,bg,nfsvers=4,sec=sys,ro,soft,intr 0 0

其他

注意

  • 执行挂载命令时不能在挂载目录下执行

其他命令

# 软件版本
nfsstat --version
# 查看服务器和客户端版本
1.NFS的客户端中:nfsstat -m
中的vers=4.0确定NFS版本是4。
2.NFS服务器中:nfsstat -s
中的Server nfs v4确定NFS版本的确是4


相关文章
|
存储 网络协议 安全
Linux 在线/离线安装 NFS 服务及使用
-m 表示指定文件所在的文件系统或者块设备(处于 mount 状态)。所有访问该文件系统的进程都被列出。如上所示,有两个进程占用了,将其kill掉,再重新取消挂载。
3710 0
Linux 在线/离线安装 NFS 服务及使用
|
Kubernetes Java Linux
Linux|操作系统|Error: Could not create the Java Virtual Machine 报错的解决思路
Linux|操作系统|Error: Could not create the Java Virtual Machine 报错的解决思路
3581 0
|
前端开发 JavaScript vr&ar
WebGL
WebGL(Web Graphics Library)是一种用于在网页上渲染交互式 3D 和 2D 图形的 JavaScript API,它基于 OpenGL ES 2.0 标准,为开发者提供了一种在浏览器中创建高性能图形应用的途径
|
9月前
|
人工智能 监控 数据挖掘
2025年有哪些工单管理系统值得推荐?
随着企业数字化转型加速,工单管理系统成为优化流程、提升服务的关键工具。2025年备受关注的主流系统包括:合力亿捷,中国移动,中国联通,中国电信等
241 0
|
Ubuntu Linux
探险迷宫——在Linux上畅玩Nethack
Nethack是一款经典的命令行角色扮演游戏,它在Linux系统上备受喜爱。在这个游戏中,你将进入一个神秘的地牢,探险、战斗、寻找宝藏,面对各种怪物和陷阱。本文将介绍如何在Linux上安装、运行和玩Nethack,以及一些游戏中的基本策略和技巧。
799 0
|
前端开发 开发者
【专栏:CSS基础篇】CSS选择器详解:精准定位网页元素
【4月更文挑战第30天】本文介绍了CSS选择器在Web开发中的重要性,详细阐述了基础选择器(元素、类、ID、属性和伪类/伪元素)及复杂选择器(后代、子元素、相邻兄弟和一般兄弟)的用法。通过理解并巧妙运用这些选择器,开发者能更高效地控制页面样式,提高代码的可维护性。CSS预处理器如Sass、LESS进一步增强了选择器的功能,助力创建优雅且强大的样式表,实现精准的网页设计。
378 0
|
安全 API PHP
港澳台验证码海外短信群发教程,利用阿里云国际如何实现境外短信操作
港澳台验证码海外短信群发教程,利用阿里云国际如何实现境外短信操作
|
算法 数据安全/隐私保护 Python
数字签名是一种用于验证数据完整性和来源身份的技术。它基于公钥密码学,允许数据的发送方使用其私钥对数据进行签名,而接收方则可以使用发送方的公钥来验证签名的有效性。
数字签名是一种用于验证数据完整性和来源身份的技术。它基于公钥密码学,允许数据的发送方使用其私钥对数据进行签名,而接收方则可以使用发送方的公钥来验证签名的有效性。
|
人工智能 Cloud Native 算法
应用从云原生走向AI原生,软件可望“以天为单位”开发
【1月更文挑战第8天】应用从云原生走向AI原生,软件可望“以天为单位”开发
356 2
应用从云原生走向AI原生,软件可望“以天为单位”开发
|
人工智能 Java 程序员
一文带你深度体验DevChat
一文带你深度体验DevChat