服务器(linux)磁盘挂载nfs

简介: 笔者项目中此前有这么个需求,需要支持文件进行预览,文件的存储位置都在后端服务器上,想要支持预览是比较困难的(若是在前端服务器上则比较方便),因为无法做到跨服务器之间的静态文件预览,然后解决这个问题的思路就设定在了将后端服务器的文件所在位置挂载到前端服务器上,然后再使用nginx的反向代理,将文件地址代理出去,这样就可以实现文件预览功能了。方案确定以后就是技术选型了,最后确定使用了nfs来解决服务器之间的磁盘挂载,当然不止nfs可以实现,其他也可以。这里对nfs的使用做一次总结。

一、需求背景



笔者项目中此前有这么个需求,需要支持文件进行预览,文件的存储位置都在后端服务器上,想要支持预览是比较困难的(若是在前端服务器上则比较方便),因为无法做到跨服务器之间的静态文件预览,然后解决这个问题的思路就设定在了将后端服务器的文件所在位置挂载到前端服务器上,然后再使用nginx的反向代理,将文件地址代理出去,这样就可以实现文件预览功能了。方案确定以后就是技术选型了,最后确定使用了nfs来解决服务器之间的磁盘挂载,当然不止nfs可以实现,其他也可以。这里对nfs的使用做一次总结。


二、使用nfs实现多服务器之间磁盘挂载



1.nfs安装


# ubuntu 安装nfs
sudo apt-get install -y nfs-kernel-server
# centos 安装nfs
sudo yum install nfs-utils rpcbind


2.nfs使用


nfs使用不难,只需要很少量的配置即可,下面来展示下这个配置


2.1服务端配置


服务端负责把文件共享出去,我们相当于把某个文件夹暴露给某个ip或者暴露在公网环境下。


# 先安装nfs
# 编辑服务端配置文件
vim /etc/exports
# 添加共享信息:将本地的/data目录共享给192.168.150.166,并让该ip拥有对该目录的rw权限
/data 192.168.150.166(rw)
# 重启nfs
systemctl restart  nfs-server.service
# rpc如果没有启动的话,这里启动下就行,启动过则无需重启
systemctl start rpcbind.service
# 重载 /etc/exports
exportfs -rv


2.2客户端配置


客户端负责将本地的某个文件夹与服务端建立连接,这样就可以在本地操作远端服务器目录了。

# 先安装nfs
# 启动nfs
systemctl restart  nfs-server.service
systemctl restart rpcbind.service
# 与服务端建立连接:将本地的mnt挂载到 192.168.150.167:/data 目录下
mount  -t nfs 192.168.150.167:/data /mnt
# 查看挂载是否成功,挂载成功的话会能看到成功挂载的信息
df -h
# 客户端取消挂载:将本地的mnt挂载进行取消
umount /mnt


一个服务端是可以同时被n个客户端进行挂载的,所以服务端与客户端其实是1对n的关系。


3.nfs介绍


上面说了是啥,这里介绍下他的原理。原理都是网络上搜的,作为了解。


3.1nfs是什么


NFS是一种基于TCP/IP 传输的网络文件系统协议。通过使用NFS协议,客户机可以像访问本地目录一样访问远程服务器中的共享资源


NAS存储: NFS服务的实现依赖于RPC (Remote Process Call,远端过程调用)机制,以完成远程到本地的映射过程。需要安装nfs-utils、 rpcbind 软件包来提供NFS共享服务,前者用于NFS共享发布和访问,后者用于RPC支持。手动加载NFS共享服务时,应该先启动rpcbind, 再启动nfs。

nfs端口:2049

RPC端口:111


704c5507df174eb08a22e967db84c7e6.png


3.2nfs特点


采用TCP/IP传输网络文件

安全性低

简单易操作

适合局域网环境


3.3共享时权限选项


常用的赋予权限类型,如下命令:

# 将本地的/data目录共享给192.168.150.166,该ip对于该目录及文件具有括号内的这些权限
/data 192.168.150.166(rw,sync,no_subtree_check,no_root_squash)


下面是权限的所有可选项:

ro 只读访问
rw 读写访问
sync 所有数据在请求时写入共享
async NFS在写入数据前可以相应请求
secure NFS通过1024以下的安全TCP/IP端口发送
insecure NFS通过1024以上的端口发送
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


3.4其他常用命令


# 服务端命令,查看服务端共享出去的文件信息
exportfs -v 
# 服务端命令,重新加载配置文件,通常这么使用:exportfs -rv
exportfs -r


三、实践中碰到的问题



1.挂载时报错:mount.nfs: Stale file handle


这个报错笔者这里是因为之前客户端挂载过别的服务器,但是服务端直接将挂载取消了,这里再从客户端进行别的挂载就报了这个错误,只需要执行以下命令即可解决该问题

# /mnt是之前挂载的目录
umount -lf /mnt


2.共享时报错:exportfs: does not support NFS export


解决办法:查看文件类型:cat /etc/fstab,若文件类型不是ext4则无法正常共享,若本来就是挂载的文件夹也是无法共享的。

相关文章
|
15天前
|
运维 监控 Linux
推荐几个不错的 Linux 服务器管理工具
推荐几个不错的 Linux 服务器管理工具
W9
|
2月前
|
运维 关系型数据库 MySQL
轻松管理Linux服务器的5个优秀管理面板
Websoft9 应用管理平台,github 2k star 开源软件,既有200+的优秀开源软件商店,一键安装。又有可视化的Linux管理面板,文件、数据库、ssl证书方便快捷管理。
W9
131 1
|
2月前
|
缓存 Ubuntu Linux
Linux环境下测试服务器的DDR5内存性能
通过使用 `memtester`和 `sysbench`等工具,可以有效地测试Linux环境下服务器的DDR5内存性能。这些工具不仅可以评估内存的读写速度,还可以检测内存中的潜在问题,帮助确保系统的稳定性和性能。通过合理配置和使用这些工具,系统管理员可以深入了解服务器内存的性能状况,为系统优化提供数据支持。
60 4
|
2月前
|
运维 监控 安全
盘点Linux服务器运维管理面板
随着云计算和大数据技术的迅猛发展,Linux服务器在运维管理中扮演着越来越重要的角色。传统的Linux服务器管理方式已经无法满足现代企业的需求,因此,高效、安全、易用的运维管理面板应运而生。
|
2月前
|
运维 监控 Linux
服务器管理面板大盘点: 8款开源面板助你轻松管理Linux服务器
在数字化时代,服务器作为数据存储和计算的核心设备,其管理效率与安全性直接关系到业务的稳定性和可持续发展。随着技术的不断进步,开源社区涌现出众多服务器管理面板,这些工具以其强大的功能、灵活的配置和友好的用户界面,极大地简化了Linux服务器的管理工作。本文将详细介绍8款开源的服务器管理面板,包括Websoft9、宝塔、cPanel、1Panel等,旨在帮助运维人员更好地选择和使用这些工具,提升服务器管理效率。
|
1月前
|
存储 Oracle 安全
服务器数据恢复—LINUX系统删除/格式化的数据恢复流程
Linux操作系统是世界上流行的操作系统之一,被广泛用于服务器、个人电脑、移动设备和嵌入式系统。Linux系统下数据被误删除或者误格式化的问题非常普遍。下面北亚企安数据恢复工程师简单聊一下基于linux的文件系统(EXT2/EXT3/EXT4/Reiserfs/Xfs) 下删除或者格式化的数据恢复流程和可行性。
|
2月前
|
安全 Linux API
Linux服务器安全
人们常误认为服务器因存于数据中心且数据持续使用而无需加密。然而,当驱动器需维修或处理时,加密显得尤为重要,以防止数据泄露。Linux虽有dm-crypt和LUKS等内置加密技术,但在集中管理、根卷加密及合规性等方面仍存不足。企业应选择具备强大验证、简单加密擦除及集中管理等功能的解决方案,以弥补这些缺口。
37 0
|
17天前
|
Ubuntu Unix Linux
Linux网络文件系统NFS:配置与管理指南
NFS 是 Linux 系统中常用的网络文件系统协议,通过配置和管理 NFS,可以实现跨网络的文件共享。本文详细介绍了 NFS 的安装、配置、管理和常见问题的解决方法,希望对您的工作有所帮助。通过正确配置和优化 NFS,可以显著提高文件共享的效率和安全性。
129 7
|
存储 Unix Linux
Linux下的NFS搭建配置
Linux下的NFS搭建配置
262 3
|
Linux 网络安全
Linux系统之NFS共享配置教程
Linux系统之NFS共享配置教程
256 1
Linux系统之NFS共享配置教程