ubuntu 22.04安装NFS
一、概述
1. 定义
2. 工作原理
- 客户端-服务器架构:NFS 的核心工作原理是其客户端-服务器架构。NFS 服务器提供文件系统资源,客户端通过网络请求访问这些资源。
- 远程过程调用(RPC):NFS 依赖于 RPC 机制来实现客户端与服务器之间的通信。RPC 允许客户端直接调用服务器上的服务或函数,为文件操作定义标准接口。
- 端口管理:NFS 在操作期间使用多个端口,其中端口 111 作为 RPC Portmapper 服务端口,端口 2049 作为文件系统的标准 NFS 服务端口。
3. 架构
- NFS 服务器:负责管理远程文件系统并将其共享给网络中的客户端。
- 客户端:通过挂载远程文件系统,使得用户可以像访问本地文件一样访问远程文件。
- 传输协议:NFS 使用 TCP/IP 协议进行通信,并基于 RPC 协议来传输数据和控制信息。
4. 版本演进
- NFSv4.2:当前最广泛使用的版本,结合了现代网络存储技术的优势,适用于各种应用场景,包括虚拟化和云存储。
5. 应用场景
- 企业级文件共享:在企业环境中,NFS 用于不同工作站和服务器之间共享文件和目录,方便团队协作。
- 虚拟化环境:在虚拟化平台中,NFS 可作为存储后端,提供虚拟机磁盘映像的存储和共享。
- 高性能计算(HPC):在高性能计算集群中,NFS 被用作节点之间的共享文件系统,允许计算节点访问共享数据集和中间结果。
- 数据备份和恢复:NFS 可用于集中存储备份数据,简化数据备份和恢复流程。
- 多平台数据访问:NFS 支持多种操作系统,包括 Unix、Linux 和 Windows,使得不同平台之间的文件共享变得容易。
- 媒体和内容制作:在视频编辑和媒体制作领域,NFS 可以用来共享大容量的媒体文件,多个编辑人员可以同时访问和编辑同一素材。
- 数据库文件存储:一些数据库系统支持将数据库文件存储在 NFS 共享中,便于跨多个数据库实例和应用程序共享数据。
6. 优势
- 简单易用:NFS 提供了透明的文件访问方式,用户可以像访问本地文件一样访问远程文件。
- 跨平台支持:支持多种操作系统,包括 Unix、Linux 和 Windows。
- 高效的数据共享:可以在多个客户端之间高效地共享文件,支持大量用户同时访问相同数据。
- 集中管理:通过 NFS,文件可以集中存储在服务器上,简化了备份和管理。
- 灵活的权限管理:支持 UNIX 文件权限模型,允许细粒度的访问控制。
- 良好的扩展性:可以轻松扩展,以适应更多的用户和更大的数据集。
7. 缺点
- 安全性问题:早期版本的 NFS 在安全性方面存在一些问题,但后续版本通过引入身份验证和加密机制有所改善。
- 性能依赖于网络:NFS 的性能很大程度上依赖于网络的带宽和延迟。
- 配置复杂性:在某些情况下,配置 NFS 可能会比较复杂,尤其是在涉及多个客户端和复杂权限管理时。
- 文件锁定问题:在多客户端同时访问同一文件时,可能会出现文件锁定问题,需要通过锁管理服务来解决。
二、安装
1.安装 NFS 服务端
在需要共享文件的服务器上安装 NFS 服务端:
sudo apt update
sudo apt install -y nfs-kernel-server
2. 创建共享目录
创建一个目录作为 NFS 共享目录(例如/data /nfs_share):
sudo mkdir -p /data/nfs_share
设置共享目录的权限(确保其他用户可以访问):
sudo chmod 777 /data/nfs_share
3. 配置 NFS 共享
编辑 NFS 配置文件 /etc/exports,添加共享目录的配置:
sudo vi /etc/exports
在文件中添加以下内容(根据需要修改):
/data/nfs_share *(rw,sync,no_subtree_check)
参数解释:
/data/nfs_share:共享的目录路径。
*:允许访问的客户端 IP 范围,*表示所有ip(可以根据实际情况修改,例如:192.168.1.0/24)。
rw:允许读写权限。
sync:同步写入磁盘。
no_subtree_check:减少子树检查,提高性能。
4. 导出共享目录
运行以下命令使配置生效:
sudo exportfs -a
5. 启动 NFS 服务
启动 NFS 服务并设置开机自启:
sudo systemctl start nfs-kernel-server
sudo systemctl enable nfs-kernel-server
6. 安装 NFS 客户端
在需要挂载共享目录的客户端上安装 NFS 客户端:
sudo apt update
sudo apt install -y nfs-common
7. 挂载共享目录(客户端)
在客户端上挂载 NFS 服务端的共享目录:
sudo mkdir -p /mnt/nfs_share
sudo mount -t nfs 10.0.2.15:/data/nfs_share /mnt/nfs_share
参数解释:
10.0.2.15:NFS 服务端的 IP 地址。
/data/nfs_share:服务端的共享目录。
/mnt/nfs_share:客户端的挂载点。
验证挂载是否成功:
# df -hT|grep nfs
10.0.2.15:/data/nfs_share nfs4 49G 14G 34G 29% /mnt/nfs_share
有一条挂载信息,就说明挂载成功了
查看文件
ls /mnt/nfs_share
8.配置自动挂载(可选)
如果希望在客户端开机时自动挂载 NFS 共享目录,可以编辑 /etc/fstab 文件:
sudo vi /etc/fstab
添加以下内容:
10.0.2.15:/data/nfs_share /mnt/nfs_share nfs defaults 0 0
保存并退出编辑器。
9. 防火墙配置(可选)
如果服务端或客户端启用了防火墙,需要允许 NFS 服务通过:
sudo ufw allow nfs
或者手动允许 NFS 使用的端口(默认是 2049):
sudo ufw allow 2049
10. 测试和验证
在服务端创建一个测试文件:
echo "Hello from NFS server" | sudo tee /data/nfs_share/test.txt
在客户端检查是否可以访问该文件:
cat /mnt/nfs_share/test.txt
如果显示 Hello from NFS server,说明 NFS 配置成功。
常见问题
1.权限问题:确保共享目录的权限设置正确(如777)。
2.防火墙问题:检查防火墙是否阻止了 NFS 的端口(2049)。
3.挂载失败:
检查服务端的/etc/exports 配置是否正确,并运行sudo exportfs -ra 重新导出。
4.网络问题:
确保客户端和服务端的网络连接正常。
通过以上步骤,你就可以在 Ubuntu 上成功安装和配置 NFS 了!
ubuntu 22.04安装NFS的更多相关文章
- Ubuntu 12.04安装NFS server
首先安装nfs-kernel-server apt-get install nfs-kernel-server 然后创建一个目录: mkdir -p /opt/share 并赋予权限777: chmo ...
- Ubuntu 22.04 安装 utools 时的疑难杂症
Error: libcrypto.so.1.1 原因:libcrypto.so.1.1 该依赖的版本不对,ubuntu 默认是使用的 openssl3 的依赖 这个是 openssl1 的 wget ...
- Ubuntu 22.04 安装搜狗输入法
下载搜狗输入法 下载地址https://shurufa.sogou.com/linux 也可以命令下载 wget https://ime.sogouimecdn.com/202212182151/3b ...
- Ubuntu 22.04 安装 VMWare 16.2.3 后无法启动
异常日志: 2022-06-13T03:49:56.019Z In(05) host-29676 In file included from /tmp/modconfig-XR2GVI/vmmon-o ...
- ubuntu 22.04安装多个gcc
sudo apt install gcc-9 g++-9 sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 90 - ...
- Ubuntu 22.04 安装 VMware Tools
VM 下的 install VMWare Tools 终端下载 VMware Tools sudo apt install open-vm-tools-desktop -y reboot
- Ubuntu 12.04下NFS安装配置图解
以前就听说过nfs服务,但是一直没有用,在学习制作根文件系统的时候,才算是真正用上它了,我感觉它还不错,通过它“挂载”制作好的根文件系统.它在嵌入式中的角色就用下面的一张图说明吧! 用网线将主机与开发 ...
- Ubuntu 22.04 LTS 安装 0.A.D 实时策略游戏 并汉化
众所周知,Linux生态中,能玩的正儿八经的大型游戏其实没几个,而 0.A.D 这个游戏就是这其中之一.这是一个类似于帝国时代的实时策略游戏,开源跨平台,这是其官方网站:https://play0ad ...
- Ubuntu 18.04 安装MySQL
最近在写东西的时候,需要用到MySQL,在网上查了一下,都说Ubuntu18.04不能安装MySQL5.7.22, 总觉的不可能,所以自己就研究了一下,然后分享给大家 工具/原料 VMware W ...
- Ubuntu 18.04 安装博通(Broadcom)无线网卡驱动
目录 Ubuntu 18.04 安装博通(Broadcom)无线网卡驱动 Package gcc is not configured yet. 解决办法 history history | grep ...
随机推荐
- 分布式事务-XA-DTP-TCC-BASE介绍
前言 数据库事务(简称:事务,Transaction)是指数据库执行过程中的一个逻辑单位,由一个有限的数据库操作序列构成. 事务拥有以下四个特性,习惯上被称为 ACID 特性: 原子性(Atomici ...
- jdk并发包源码解析
一.总括 java底层并发包,笔者将该包大致分成3个层次. 1.基础依赖: 共享变量volatile:有利于线程可见性.Unsafe类:CAS(Compare and Swap)比较并交换,用于并发下 ...
- 史上最详细idea提交代码到github教程
史上最详细idea提交代码到github教程步骤前言github上创建空项目 idea上代码关联本地gitidea上代码本地提交解决Push rejected: Push to origin/mast ...
- Ubuntu更改用户名
网上给出Ubuntu更改用户名步骤: 1.进入Ubuntu,打开一个终端,输入 sudo su转为root用户. 注意,必须先转为root用户!!! 2.gedit /etc/passwd ,找到代表 ...
- selenium等待的三种方式(详细)
1.强制等待 time.sleep(3) 这种方式会是操作强行等待3s才会进行下一步操作,但是这种放法,可能会延长测试的时间,如果元素在1s中出现,就会浪费2s的时间,并且这种放法单次有效,每次需要等 ...
- paddle安装中 libssl-1_1-x64.dll 的版本问题
paddle安装过程中出现的一些问题: 在学习tensorflow过程中,了解到paddlepaddle,本着技多不压身的原则也了解了一下,但是在安装的时候碰到了一些问题.特地记录一下. 一.&quo ...
- 本地部署DeepSeek
没想到新年最热闹的地方之一会是互联网,刷爆朋友圈的除了新年祝福还有DeepSeek.揣着一颗好奇心试了试,竟有一种发现新大路的感觉.估计是围观的人太多,在线的版本有时候会出现连不上的情况,好奇心驱使之 ...
- VXLAN 网络中报文转发过程
本文分享自天翼云开发者社区<VXLAN 网络中报文转发过程>,作者:刘****林 以同网段的 VM 间互通简单介绍 VXLAN 网络中的报文转发过程. 1.VM1 发送目的地址为 VM2 ...
- 虚拟化技术 - CPU虚拟化
本文分享自天翼云开发者社区<虚拟化技术 - CPU虚拟化>,作者:谢****悦 物理机器是由CPU,内存和I/O设备等一组资源构成的实体.虚拟机也一样,由虚拟CPU,虚拟内存和虚拟I/O设 ...
- 异常:java.lang.reflect.InvocationTargetException
在产生这个问题的时候,以为是代码某个类又改动了.但是对比了git,发现并没有改动,测试环境代码照跑,故又重新拉了一份重新部署,仍然报同样的错.解决过程中,试了以下网上各种方法,均无效果. 1.包重复. ...