首页 > 系统相关 >CentOS 7中搭建NFS文件共享存储服务的完整步骤

CentOS 7中搭建NFS文件共享存储服务的完整步骤

时间:2023-08-02 09:33:23浏览次数:40  
标签:exports CentOS 文件共享 sudo mnt nfs shared NFS

1、

https://pythonjishu.com/yemqmdrvwtbrciq/

 

步骤一:安装NFS工具

在命令行中执行以下命令:

sudo yum install nfs-utils

步骤二:创建共享目录

在命令行中执行以下命令:

sudo mkdir /mnt/nfs_share

步骤三:配置NFS服务

用以下命令来打开“/etc/exports”文件,并在文件结尾添加如下一行:

sudo vi /etc/exports

/mnt/nfs_share *(rw,sync,no_subtree_check)

如上所示的配置意味着所有来自任意来源的客户端都可以访问并进行读/写操作。

步骤四:启动NFS服务并设置启动项

在命令行中执行以下命令:

sudo systemctl enable nfs-server
sudo systemctl start nfs-server

步骤五:设置NFS客户端和测试NFS

你可以执行以下命令挂载NFS共享目录并测试新的NFS共享支持:

sudo mount -t nfs localhost:/mnt/nfs_share /mnt
cd /mnt
sudo touch testfile.txt
sudo ls

挂载命令中的“localhost”可以更改为远程服务器IP地址,以试图访问远程的NFS共享文件夹。

接下来是一个通过具体示例来进一步说明如何搭建NFS文件共享存储服务的攻略。

示例1:NFS服务的设置

假设我们需要创建一个NFS共享目录,允许来自192.168.1.100的主机读取/写入该目录中的内容,而其他主机则没有权限。

我们依次执行以下命令:

sudo yum install nfs-utils
sudo mkdir /mnt/nfs_share
sudo systemctl enable nfs-server
sudo systemctl start nfs-server
sudo vi /etc/exports

在打开的/etc/exports文件中添加以下一行:

/mnt/nfs_share 192.168.1.100(rw,sync,no_root_squash)

这意味着主机192.168.1.100拥有读/写权限,并具有同步和根访问权限。其他主机访问该目录时只能进行只读访问。

然后使用以下命令重新启动NFS服务:

sudo systemctl restart nfs-server

示例2:NFS客户端的设置

假设我们需要将本地主机连接到上面设置好的NFS共享目录,并挂载该目录到本机的/test目录中,而且我们假设远程NFS服务器IP地址为192.168.1.2。

我们依次执行以下命令:

sudo yum install nfs-utils
sudo mkdir /test
sudo mount -t nfs 192.168.1.2:/mnt/nfs_share /test

然后我们可以使用以下命令测试:

cd /test
sudo touch testfile.txt
sudo ls

这样我们就能够在远程NFS共享目录中创建和列出文件并进行读写操作了

2、

一、安装NFS
# sudo apt-get install nfs-kernel-server

同时会有两个软件包nfs-common和portmap被安装上

二.在/建立共享项目nfst
# mkdir nfs_shared
# chmod 777 -R nfs_shared/

保证使用者都能够读、写、执行


三.修改NFS配置文件
lingd@ubuntu:~$ vi /etc/exports
内容为:
/home/nfst_shared 192.168.0.*(rw,sync,no_root_squash,no_subtree_check)

其中:
/home/nfst_shared ---要共享的目录
192.168.0.*---允许访问的网段,也可以是ip地址、主机名(能够被服务器解析)、
*(所有人都能访问)
(rw,sync,no_root_squash,no_subtree_check)---
rw:读/写权限
sync:数据同步写入内存和硬盘
no_root_squash:服务器允许远程系统以root特权存取该目录
no_subtree_check:关闭子树检查

其他选项可以通过man exports查阅man文档


四、启动服务
重启portmapper(端口映射)服务
lingd@Ubuntu:~$ sudo service portmap restart
portmap start/running, process 550
重启NFS服务
lingd@ubuntu:~$ sudo service nfs-kernel-server restart
* Stopping NFS kernel daemon [ OK ]
* Unexporting directories for NFS kernel daemon... [ OK ]
* Exporting directories for NFS kernel daemon... [ OK ]
* Starting NFS kernel daemon [ OK ]

五、测试
1、测试Ubuntu nfs
  此时可以运行以下命令来显示一下共享出来的目录:
  $showmount -e

2、本机挂载
# ls /home/nfst_shared/ #被挂载的文件夹下面的东西
cross-3.4.1.tar.bz2 linux-2.6.12 upload
download msap VMwareTools-8.1.3-203739.tar.gz
DSDT_2[1].8b.zip ntp vmware-tools-distrib
DSDT_2.8b protocol-converter 安装包


# mkdir /mnt/nfs_test
# ls /mnt/nfs_test/ #空白的
# sudo mount -t nfs -o nolock localhost:/home/nfs_shared /mnt/nfs_test/
# ls /mnt/nfs_test/ #看到了和/home/nfst_shared/目录下的文件一样,说明挂载成功
cross-3.4.1.tar.bz2 linux-2.6.12 upload
download msap VMwareTools-8.1.3-203739.tar.gz
DSDT_2[1].8b.zip ntp vmware-tools-distrib
DSDT_2.8b protocol-converter 安装包

# sudo umount /mnt/nfs_test #解除
# ls /mnt/nfs_test/ #空白的

3、开发板挂载
lingd@Ubuntu:~$ telnet 192.168.0.25 2009
Trying 192.168.0.25...
Connected to 192.168.0.25.

Escape character is '^]'.

(none) login: root
Password:
~ # mkdir /mnt/nfs_shared_client
~ # ls /mnt/nfs_shared_client/

~ # mount -t nfs -o nolock 192.168.0.26:/home/nfs_shared /mnt/nfs_shared_client
~ # ls /mnt/nfs_shared_client/
cross-3.4.1.tar.bz2 linux-2.6.12 upload
download msap VMwareTools-8.1.3-203739.tar.gz
DSDT_2[1].8b.zip ntp vmware-tools-distrib
DSDT_2.8b protocol-converter 安装包

~ # umount /mnt/nfs_shared_client
~ # ls /mnt/nfs_shared_client/

~ #

六、挂载nfs文件系统失败的原因

1、nfs错误信息

Too many levels of remote in path:试图挂载一个存在的文件系统

Permission denied:NFS服务器不让客户机挂接,也可能是因为用户在服务器上不存在

No such host:通常是DNS配置错误

No such file or directory:通常是访问的目录不存在

NFS server is not responding:通常是NFS已经超过负载或者NFS已经停止工作

Stale file handle:在NFS客户端关闭之前客户端访问的文件被删除

Fake hostname:Forward和reverse的DNS记录在NFS客户端下不存在

2、挂载nfs文件系统失败的原因

(1)主机和网络不通:看看网线连接、主机和开发板ip是否在同一网段、防火墙有没有关闭等。不仅vmware中linux的防火墙要关闭,vmware外xp的防火墙也要关闭,我就因为xp中的eset杀毒软件的防火墙使nfs无法挂载(可以挂本机,无法挂远程),折腾了一天,后来才发现是xp中的防火墙搞的鬼!


(2)使用的mount命令不正确。可以参照上面的例子改一下;或者man nfs查阅一下nfs的man文档,里面有nfs中mount的使用介绍和选项解释


(3)nfs配置文件/etc/exports配置不正确。可以参照上面的例子改一下;或者man exports查阅一下/etc/exports的man文档


(4)必要时重新启动NFS和portmap服务。

sudo service portmap restart

sudo service nfs-kernel-server restart


(5)内核不支持NFS和RPC服务(可能需要重新配置、编译、烧写内核)。

普通的内核应有的选项为CONFIG_NFS_FS=m、CONFIG_NFS_V3=y、CONFIG_ NFSD=m、CONFIG_NFSD_V3=y和CONFIG_SUNRPC=m。

rpcinfo命令用于显示系统的RPC信息,一般使用-p参数列出某台主机的RPC服务。rpcinfo -p命令检查服务器时,应该能看到portmapper、status、mountd、nfs和nlockmgr。用该命令检查客户端时,应该至少能看到portmapper服务(开发板可能不带该命令)。由rpcinfo -p可知,nfs使用的port为2049,portmapper使用111port。


 

五、nfs相关的配置文件与命令

1、/etc/exports

NFS的主要配置文件,不过系统并没有默认值,所以这个文件不一定会存在(需要自己建立)。


2、/usr/sbin/exportfs

用于维护NFS共享资源的命令,用在nfs server端。修改/etc/exports后,只要使用exportfs重新扫瞄一次 /etc/exports,重新将设定加载即可,并不一定要重启nfs服务

命令格式: exportfs [-aruv]

参数说明如下。

(1)-a:全部挂载或卸载(export or unexpect)/etc/exports文件内的目录。

(2)-r:重新挂载(reexport)/etc/exports中的目录,并将/var/lib/nfs/etab中的内容与/etc/exports同步。

(3)-u:卸载某些目录。

(4)-v:显示exportfs处理信息。


3、/usr/sbin/showmount

用于查看指定主机NFS共享出来的目录资源,主要用在Client端。

命令格式: showmount [-ade] hostname/服务器ip地址

参数说明如下。

(1)-a或-all:以host:dir格式显示客户主机名和挂载的目录。

(2)-d或-directories:仅显示被客户挂载的目录名。

(3)-e或-exports:显示指定NFS服务器的nfs共享目录。


 








========================================
ubuntu配置NFS
http://blog.sina.com.cn/s/blog_6524fd1f0100r4hm.html


Ubuntu配置NFS的Client端
http://hi.baidu.com/mvp_xuan/blog/item/5f467e58792c8d3d2834f0e2.html


Ubuntu配置网络文件共享服务器NFS
http://www.ylmf.net/ubuntu/tips/201010267655.html

 

 

3、

标签:exports,CentOS,文件共享,sudo,mnt,nfs,shared,NFS
From: https://www.cnblogs.com/yaok430/p/17599704.html

相关文章

  • centos7.9 部署elasticsearch 7.17.8 集群
    准备基本环境名称ip地址cpu内存es监听端口redis-65110.0.2.18c64G9200redis-65210.0.2.28c64G9200redis-65310.0.2.38c64G9200搭建集群10.0.2.1主机配置基本环境#更新hosts文件cat/etc/hosts10.0.2.1 es-node-110.0.2.2 es-node-21......
  • centos8修改yum源、安装docker
    一、示例centos8修改阿里yum源1、将源文件备份cd/etc/yum.repos.d/&&mkdirbackup&&mv*repobackup/2、下载阿里源文件curl-o/etc/yum.repos.d/CentOS-Base.repohttp://mirrors.aliyun.com/repo/Centos-8.repo3、更新源里面的地址sed-i-e"s|mirrors.cloud.ali......
  • centos7安装docker-compose
    首先确保系统已经安装上了docker1、下载tar包并上传至服务器解压下载地址:https://package-all-1257309290.cos.ap-beijing.myqcloud.com/docker_compose_install.tar.gztarzxfdocker_compose_install.tar.gz2、安装docker-compose解压后得到一个docker_compose_installcd......
  • CentOS使用yum安装包报错No more mirrors to try解决方法
    报错如下Loadedplugins:fastestmirror,update-motdLoadingmirrorspeedsfromcachedhostfilehttp://mirrors.163.com/centos/7-7.1908.0.el7.centos/os/x86_64/repodata/repomd.xml:[Errno14]HTTPError404-NotFoundTryingothermirror.Toaddressthisissue......
  • 用shell脚本写一个查询centos7的系统可用空间
    #!/bin/bash#byherofoxqq:42845734./etc/profile#通过显示系统空间,结合分割命令和awk命令来取数sys=$(df-h|grep-w"centos-root"|awk'{split($5,sys,"%");printsys[1]}')if[$sys-gt60]&&[$sys-lt100]thenecho'没有可用空间了,赶紧清理系......
  • CENTOS7下安装GRPC FOR CPP
    gRPC是一个高性能、开源和通用的RPC框架,面向移动和HTTP/2设计。目前提供C、Java和Go语言版本,分别是:grpc,grpc-java,grpc-go.其中C版本支持C,C++,Node.js,Python,Ruby,Objective-C,PHP和C#。gRPC基于HTTP/2标准设计,带来诸如双向流、流控、头部压缩、单TC......
  • centos7系统的初始环境配置
    (centos7系统的初始环境配置)一、配置yum仓库1.配置阿里的仓库源[root@192~]#curl-o/etc/yum.repos.d/CentOS-Base.repohttps://mirrors.aliyun.com/repo/Centos-7.repo2.检测yum仓库[[email protected]]#yumrepolistall|grepenablebase/7/x86_64......
  • centos修改dns地址
    1、CentOS6.5设置静态IP、网关、配置DNS,解决ping不通外网问题2、Centos中IP与DNS手动设置方法3、主机无线上网,自动获取DNS,虚拟机上centos是桥接模式。DNS怎么设置CentOS6.5设置静态IP、网关、配置DNS,解决ping不通外网问题1、总结:上网配置好了之后,仍旧不能ping通外网......
  • CentOS7创建Python虚拟环境
    为python3创建软连接:ln-s/usr/local/anaconda3/bin/python/usr/bin/python3ln-s/usr/local/anaconda3/bin/pip/usr/bin/pip3查看版本:[root@centos-base~]#python3-VPython3.7.0[root@centos-base~]#pip3-Vpip10.0.1from/usr/local/anaconda3/lib/python......
  • ️Centos7下安装Oracle11GR2
    安装Oracle一直以来是比较头疼的事情,于是本文以图文并茂的方式进行安装步骤展示,参考知乎一位博主的安装:https://zhuanlan.zhihu.com/p/111710672,本文还额外提供了安装以及最后的一些数据库自启动配置操作。Oracle软件包地址:https://pan.baidu.com/s/1rQFXCsL44Nl-cXaLWVY9jQ?pwd......