Linux 安装 NFS 实现文件目录共享
2022/3/28 7:22:36
本文主要是介绍Linux 安装 NFS 实现文件目录共享,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
Linux 安装 NFS 实现文件目录共享
一、背景介绍
项目中,之前是单节点部署服务,关于文件的上传和下载,只要配置好路径即可。
而当集群化部署后,就会有问题。比如:文件上传的时候,访问的是主机1,而想要现在文件的时候,却访问的主机2,这样就会导致文件下载失败。
关于文件共享,可以通过Nginx,Samba,NFS,FastDFS等实现。
本篇博文根据个人项目中的实际使用场景,在不该任何服务代码的情况下,使用NFS最为合适。
二、NFS安装和配置
1、何为NFS?
NFS(Network File System)即网络文件系统,它允许网络中的计算机之间通过网络共享资源。
将NFS主机分享的目录,挂载到本地客户端当中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,在客户端看起来,就像访问本地文件一样。
2、 NFS 服务端_安装配置
[检查是否安装NFS]
rpm -qa | grep nfs rpm -qa | grep rpcbind
[安装NFS服务端]
yum -y install nfs-utils rpcbind
[设置开机启动NFS相关服务]
systemctl enable rpcbind && systemctl enable nfs-server && systemctl enable nfs-lock && systemctl enable nfs-idmap
或者
systemctl enable rpcbind
Created symlink from /etc/systemd/system/multi-user.target.wants/rpcbind.service to /usr/lib/systemd/system/rpcbind.service.
systemctl enable nfs-server
Created symlink from /etc/systemd/system/multi-user.target.wants/nfs-server.service to /usr/lib/systemd/system/nfs-server.service.
systemctl enable nfs-lock
systemctl enable nfs-idmap
[启动NFS相关服务]
systemctl start rpcbind && systemctl start nfs-server && systemctl start nfs-lock && systemctl start nfs-idmap
或者
systemctl start rpcbind systemctl start nfs-server systemctl start nfs-lock systemctl start nfs-idmap
[创建需要共享的目录]
mkdir -p /home/miracle/uploads
chmod -R 777 /home/miracle/uploads
[配置需要共享的目录]
vim /etc/exports
添加如下内容(可以配置多个共享目录,IP也可以配置单个,或者模糊匹配多个):
/home/miracle/uploads 192.168.169.2(rw,sync,all_squash)
参数列表
参数 |
说明 |
ro |
只读访问 |
rw |
读写访问 |
sync |
所有数据在请求时写入共享 |
async |
nfs 在写入数据前可以响应请求 |
secure |
nfs 通过 1024 以下的安全 TCP/IP 端口发送 |
insecure |
nfs 通过 1024 以上的端口发送 |
wdelay |
如果多个用户要写入 nfs 目录,则归组写入(默认) |
no_wdelay |
如果多个用户要写入 nfs 目录,则立即写入,当使用 async 时,无需此设置 |
hide |
在 nfs 共享目录中不共享其子目录 |
no_hide |
共享 nfs 目录的子目录 |
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 |
anongid=xxx |
指定 nfs 服务器 /etc/passwd 文件中匿名用户的 GID |
[配置立即生效]
exportfs -r
[查看共享目录信息]
exportfs -v
3、 NFS 客户端_安装配置
[安装 NFS 客户端]
yum -y install nfs-utils
[查看服务端的共享目录设置]
showmount -e 192.168.169.1
[创建本地目录]
mkdir -p /home/miracle/uploads
[将服务端共享目录挂载到本地目录]
mount -t nfs 192.168.169.1:/home/miracle/uploads /home/miracle/uploads
至此,共享目录的安装和配置已完成,可以创建一个文件,检验共享功能是否正常。
[取消挂载]
如果目录挂载错误的情况下,可以取消挂载。
umount 192.168.166.1:/home/miracle/uploads
或者
umount /home/miracle/uploads
【补充说明】
如果现场环境是不允许访问外网,只能离线安装的情况下,就需要提前下载好安装包。
1、下载离线安装包(只下载,不安装)
1)下载NFS服务端安装文件,存放到 /home/miacle/nfs-server 目录下,命令如下:
yum install --downloadonly --downloaddir=/home/miracle/nfs-server nfs-utils rpcbind
可以将下载的NFS服务端安装文件打包,命令如下:
tar -zcvf nfs-server.tar /home/miracle/nfs-server
2)下载NFS客户端端安装文件,存放到 /home/miacle/nfs-client 目录下,命令如下:
yum install --downloadonly --downloaddir=/home/miracle/nfs-client nfs-utils
可以将下载的NFS服务端安装文件打包,命令如下:
tar -zcvf nfs-client.tar /home/miracle/nfs-client
2、批量安装 rpm 文件
rpm -Uvh --force --nodeps *.rpm
这篇关于Linux 安装 NFS 实现文件目录共享的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-18git仓库有更新,jenkins 自动触发拉代码怎么配置的?-icode9专业技术文章分享
- 2024-12-18Jenkins webhook 方式怎么配置指定的分支?-icode9专业技术文章分享
- 2024-12-13Linux C++项目实战入门教程
- 2024-12-13Linux C++编程项目实战入门教程
- 2024-12-11Linux部署Scrapy教程:新手入门指南
- 2024-12-11怎么将在本地创建的 Maven 仓库迁移到 Linux 服务器上?-icode9专业技术文章分享
- 2024-12-10Linux常用命令
- 2024-12-06谁看谁服! Linux 创始人对于进程和线程的理解是…
- 2024-12-04操作系统教程:新手入门及初级技巧详解
- 2024-12-04操作系统入门:新手必学指南