ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

Linux 安装 NFS 实现文件目录共享

2022-03-28 05:00:06  阅读:162  来源: 互联网

标签:文件目录 miracle nfs systemctl NFS Linux home 目录


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

 

标签:文件目录,miracle,nfs,systemctl,NFS,Linux,home,目录
来源: https://www.cnblogs.com/miracle-luna/p/16065429.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有