⚡超容易的NFS存储服务搭建流程⚡

⚡超容易的NFS存储服务搭建流程⚡文章目录一 NFS 存储服务概念介绍二 NFS 服务软件的基本作用三 NFS 服务存储数据原理四 服务端 NFS 服务部署流程 1 检查相应存储软件是否安装 2 编写配置文件 3 创建共享目录信息 目录授权 4 启动 nfs 相关服务五 客户端 NFS 服务部署流程 1 检查安装软件服务 2 进行共享目录挂载使用 3 进行存储测试一 NFS 存储服务概念介绍 NFS 是 NetworkFileS 的缩写 中文意思是网络文件系统 它的主要功能是通过网络 一般是局域网 让不同的主

一、NFS存储服务概念介绍

二、NFS服务软件的基本作用

1)可以实现数据信息统一一致 2)可以节省磁盘硬件设备成本 

三、NFS服务存储数据原理

1.什么是NFS NFS中文名字:网络共享存储,就是通过网络共享目录,让网络上的其他服务器能够挂载访问共享目录的数据(NFS一般都是用来存放视频、附件、图片等静态数据的). NFS是通过网络来进行服务端和客户端数据传输的,那么只要是通过网络的就一定会有端口,那NFS的端口是什么呢?很失望的是NFS的端口是随机的,每次重启服务端口都会改变. 那么客户端是怎样知道服务端的端口的呢?其实NFS服务器是通过远程过程调用(RPC)协议/服务来实现的,也就是说RPC服务会统一管理NFS的端口,客户端和服务端通过RPC来确定端口,进行数据传输. PS:(原来RPC管理服务端的NFS端口分配,客户端要传数据,那客户端的RPC会先跟服务端的RPC去要服务器的端口,要到端口后再建立连接,然后传输数据)2.什么是RPC RPC(Remote Procedure Call)—远程过程调用,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。 RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据。在OSI网络通信模型中,RPC跨越了 传输层和应用层。RPC使得开发包括网络分布式多程序在内的应用程序更加容易。 RPC采用客户机/服务器模式。请求程序就是一个客户机,而服务提供程序就是一个服务器。 3.RPC和NFS之间的关系 NFS服务端需要先启动RPC,在启动NFS,这样NFS才能到RPC注册端口信息,客户端的RPC可以通过向服务端的RPC请求获取服务端的NFS端口信息,获取到端口后,就可以以获取到的实际端口来进行数据传输了  4.RPC和NFS启动顺序 ① 先启动RPC服务 ② 在启动NFS服务 ③ 客户端只启动RPC服务就OK  

四、服务端NFS服务部署流程

?1.检查相应存储软件是否安装

[root@nfs01 ~]rpm -qa|grep -E 'nfs|rpc' [root@nfs01 ~]yum install nfs-utils rpcbind #对nfs,rpc服务进行安装 [root@nfs01 ~]rpm -ql nfs-utils #查看nfs服务是否安装 /etc/rc.d/init.d/nfs /usr/sbin/showmount [root@nfs01 ~]rpm -ql rpcbind #查看rpc服务是否安装 /etc/rc.d/init.d/rpcbind /sbin/rpcbind /usr/sbin/rpcinfo --- 查看nfs服务是否已经进行了注册 

?2.编写配置文件

[root@nfs01 ~] vim /etc/exports /data 172.16.1.0/24(rw,sync) ① ② ③ 第一列:定义nfs服务的功能项目录信息 第二列:定义哪些网段的主机可以访问共享目录 第三列:定义配置共享目录的一些权限或功能目录 sync:同步传输数据 Async:异步传输数据 

?3.创建共享目录信息,目录授权

[root@nfs01 ~] mkdir /data -p (加p可以重复创建目录) [root@nfs01 ~] id nfsnobody ---共享目录管理用户 uid=65534(nfsnobody) gid=65534(nfsnobody) groups=65534(nfsnobody) [root@nfs01 ~] chown -R nfsnobody.nfsnobody /data/ #修改/data目录的用户的用户组为nfsnobody 

?4.启动nfs相关服务

1.先启动rpc服务 [root@nfs01 ~] /etc/init.d/rpcbind start #启动rpc服务 [root@nfs01 ~] ps -ef|grep rpcbind #查看进程是否启动rpc服务 rpc 2957 1 0 13:20 ? 00:00:00 rpcbind root 2961 2915 0 13:22 pts/3 00:00:00 grep rpcbind [root@nfs01 ~]# netstat -lntup|grep rpc #查看rpc端口信息 tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 2957/rpcbind tcp 0 0 :::111 :::* LISTEN 2957/rpcbind 2.再启动nfs [root@nfs01 ~] /etc/init.d/nfs start #启动nfs服务进程 [root@nfs01 ~] ps -ef|grep nfs #查看进程是否启动 root 3021 2 0 13:28 ? 00:00:00 [nfsd4] root 3022 2 0 13:28 ? 00:00:00 [nfsd4_callbacks] root 3023 2 0 13:28 ? 00:00:00 [nfsd] root 3024 2 0 13:28 ? 00:00:00 [nfsd] root 3025 2 0 13:28 ? 00:00:00 [nfsd] root 3026 2 0 13:28 ? 00:00:00 [nfsd] root 3027 2 0 13:28 ? 00:00:00 [nfsd] root 3028 2 0 13:28 ? 00:00:00 [nfsd] root 3029 2 0 13:28 ? 00:00:00 [nfsd] root 3030 2 0 13:28 ? 00:00:00 [nfsd] root 3065 2915 0 13:29 pts/3 00:00:00 grep nfs [root@nfs01 ~] rpcinfo -p localhost --- 检查本地nfs服务是否想rpc服务进行注册 

五、客户端NFS服务部署流程

?1.检查安装软件服务

[root@backup ~]rpm -qa|grep -E 'nfs|rpc' 检查nfs,rpc服务是否安装 [root@nfs01 ~] yum install nfs-utils rpcbind #对nfs,rpc服务进行安装 [root@backup ~] rpm -ql nfs-utils #查看nfs服务是否安装 [root@backup ~] rpm -ql rpcbind #查看rpc服务是否安装 

?2.进行共享目录挂载使用

[root@backup ~] mount -t nfs 172.16.1.31:/data /mnt #测试挂载目录命令 [root@backup ~] df -h #查看磁盘挂载情况 Filesystem Size Used Avail Use% Mounted on /dev/sda3 48G 1.8G 44G 4% / tmpfs 491M 0 491M 0% /dev/shm /dev/sda1 190M 35M 146M 19% /boot 172.16.1.31:/data 48G 1.8G 44G 4% /mnt 可以看到172.16.1.31:/data的目录已经挂载成功 如果挂载不成功,在服务端上使用以下命令 [root@nfs01 ~]# showmount -e localhost 查看是否有目录可以供挂载,如果没有地址则查看配置文件是否按要求修改 

?3.进行存储测试

服务端 客户端都添加一些目录或文件,看是否能相互之间查看 

补充:根据自己需求配置映射关系,上述内容是最基本的映射关系

1.创建新的映射用户 [root@nfs01 ~]# useradd -M -s /sbin/nologin www 设置虚拟用户,只能用于登陆 [root@nfs01 ~]# id www uid=500(www) gid=500(www) groups=500(www) 2.修改nfs配置文件 [root@nfs01 ~]# vim /etc/exports  /data 172.16.1.0/24(rw,sync,no_all_squash,root_squash,anonuid=500,anongid=500) 3.修改目录权限信息 [root@nfs01 ~]# chown -R www.www /data 检查是否修改完成 [root@nfs01 ~]# ll /data -d drwxr-xr-x 2 www www 4096 Sep 2 18:52 /data 4.重启nfs服务 [root@nfs01 ~]# /etc/init.d/nfs restart 

客户端部署流程:

1.创建新的映射用户 [root@backup ~]# useradd www -u 500 为了方便使用,创建一个普通用户,为了保证创建的www用户和服务端的用户uid一致,-u参数 可以实现指定创建uid 2.挂载目录 [root@backup ~]# mount -t nfs 172.16.1.31:/data /mnt 3.进行测试 [root@backup mnt]# touch root.txt [www@backup mnt]$ touch www.txt [fu@backup mnt]$ touch fu.txt touch: cannot touch `fu.txt': Permission denied #使用不同的用户登陆可以发现,只有root用户和www用户可以在/mnt内创建数据 
[root@backup ~]# useradd www -u 500 useradd: UID 500 is not unique #已经有用户占用uid [root@backup ~]# grep 500 /etc/passwd #查看那个用户占用uid 则需要在客户端和服务端修改www用户的uid 服务端删除www用户重新创建 [root@nfs01 ~]# userdel -r www #删除 [root@nfs01 ~]# useradd www -u 666 -M -s /sbin/nologin #创建虚拟用户 修改配置文件中的uid root@nfs01 ~]# vim /etc/exports /data 172.16.1.0/24(rw,sync,no_all_squash,root_squash,anonuid=666,anongid=666) 修改挂载目录/data的管理用户和管理组,因为重新创建过用户后,/data目录的管理人还是之前的用户,没有更新 客户端创建指定uid 666 [root@backup ~]# useradd www -u 666 [root@backup ~]# id www uid=666(www) gid=666(www) groups=666(www) 

服务端重启后可以正常使用nfs服务方法:

确保rpcbind服务 nfs服务可以开机自启 chkconfig nfs on chkconfig rpcbind on 查看nfs和rpc服务是否开启开机自启 [root@nfs01 ~]# chkconfig --list|grep -E 'rpc|nfs' 

客户端重启后可以正常使用nfs服务方法:(重启后挂载目录可能会丢失,需重新挂载)

步骤:/etc/rc.local echo 'mount -t nfs 172.16.1.31:/data/ /mnt' >>/etc/rc.local 

PS:nfs服务存储原理

服务端干了三件事 1)启动rpc服务 2)启动nfs服务 3)向rpc服务进行注册 客户端干了三件事 1)建立网络连接(rpc 1112)利用mount命令进行挂载 3)实现数据网络存储 
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/209491.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 上午9:07
下一篇 2026年3月19日 上午9:07


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号