NFS文件存储及部署论坛(小白的“升级打怪”成长之路)

目录

一、概述

NFS挂载原理

NFS工作原理

RPC与NFS通讯过程

二、NFS服务安装与启停

NFS服务安装

NFS服务启停

三、NFS服务配置文件

四、NFS文件共享配置文件

配置参数说明

五、命令解析

六、客户端访问

七、客户端挂载

实战案例

部署NFS文件存储及discuz论坛应用

一、挂载nfs共享目录

1、部署nfs服务器

2、部署nfs客户端

3、部署nfs客户端

4、测试结果

5、挂载nfs共享目录访问本地数据库

6、测试结果

二、配置网页discuz论坛应用

1、导入Discuz! X3.5 论坛系统的官方安装包压缩文件

2、进入数据库创建用户及赋予权限

3、网站访问图形化安装


一、概述

NFS是Network File System的缩写,默认监听2049端口号。它最大的功能就是可以通过网络,让不同的机器、不同的操作系统可以共享彼此的文件。

NFS服务器可以让PC将网络中的NFS服务器共享的目录挂载到本地端的文件系统中,而在本地端的系统中来看,那个远程主机的目录就好像是自己的一个磁盘分区一样,在使用上相当便利;NFS一般用来存储共享视频,图片等静态数据。

NFS分为服务端和客户端(C/S架构)。服务端提供共享目录或文件,客户端对服务端共享的目录或文件挂载后,就可以读取到服务端提供的文件或目录,在客户端看来就像访问本地一样。

RPC,远程过程调用协议。可以通过网络从远程主机程序上请求服务,而不需要了解底层网络技术。最重要的功能是远程连接、端口注册。使用UDP的111端口监听客户请求。

NFS挂载原理

NFS工作原理

NFS服务端和客户端之间通过随机选择端口来传输数据,NFS服务端利用RPC协议与客户端进行沟通决定使用的随机端口,然后利用这个端口来传输数据,使用的随机端口通常小于1024。RPC协议用来统一管理NFS的随机端口,其使用的端口默认为111。

RPC与NFS通讯过程

  1. 首先服务器端启动RPC服务,并开启111端口

  2. 服务器端启动NFS服务,并向RPC注册端口信息

  3. 客户端启动RPC(portmap服务),向服务端的RPC(portmap)服务请求服务端的NFS端口

  4. 服务端的RPC(portmap)服务反馈NFS端口信息给客户端。

  5. 客户端通过获取的NFS端口来建立和服务端的NFS连接并进行数据的传输。

二、NFS服务安装与启停

NFS服务安装

[root@nginx1 ~]# yum install -y nfs-utils

NFS服务启停

[root@localhost ~]# systemctl start nfs
[root@localhost ~]# systemctl stop nfs
[root@localhost ~]# systemctl enable --now nfs

三、NFS服务配置文件

[root@localhost ~]# cat /etc/nfs.conf
# 这是一个NFS服务器的配置文件
# This is a general configuration for the NFS daemons and tools
​
#[general]
# pipefs-directory=/var/lib/nfs/rpc_pipefs  # 设置RPC管道文件系统的目录
​
#[exportfs]
# debug=0  # 设置导出时的调试级别为0
​
#[gssd]
# verbosity=0  # 设置GSSAPI的日志级别为0
# rpc-verbosity=0  # 设置RPC日志级别为0
# use-memcache=0  # 是否使用内存缓存,这里设置为0,不使用
# use-machine-creds=1  # 是否使用机器凭证,这里设置为1,使用
# avoid-dns=1  # 是否避免DNS查找,这里设置为1,避免
# limit-to-legacy-enctypes=0  # 是否限制使用旧的对等体类型,这里设置为0,不限制
# context-timeout=0  # 设置上下文超时时间为0,即无超时时间
# rpc-timeout=5  # 设置RPC超时时间为5秒
# keytab-file=/etc/krb5.keytab  # 指定Kerberos的keytab文件路径
# cred-cache-directory=  # 凭证缓存目录为空,可能这个配置项被注释掉了或者不存在
# preferred-realm=  # 首选领域为空,可能是默认的领域值
​
#[lockd]
# port=0  # 锁管理器监听的端口为0,可能未配置或默认值
# udp-port=0  # UDP端口为0,可能未配置或默认值
​
#[mountd]
# debug=0  # 挂载时的调试级别为0
# manage-gids=n  # 是否管理组ID,这里设置为n,不管理
# descriptors=0  # 描述符数量为0,可能未配置或默认值
​
#[nfsdcltrack]
# debug=0  # NFS数据流跟踪的调试级别为0
# storagedir=/var/lib/nfs/nfsdcltrack  # 数据存储目录为空,可能这个配置项被注释掉了或者不存在
​
#[nfsd]
# debug=0  # NFS服务的调试级别为0
# threads=8  # 并发线程数为8,可以提供更高的性能
# host=  # 主机的IP地址或域名,这里为空,可能是默认值或未配置
​
​
#[statd]
# debug=0  # 设置statd服务的调试级别为0,即不进行调试
# port=0  # 设置statd服务的监听端口为0,可能表示默认值或未配置
# outgoing-port=0  # 设置statd服务发送数据的端口为0,可能表示默认值或未配置
# name=  # 设置statd服务的名称为空,可能表示默认值或未配置
# state-directory-path=/var/lib/nfs/statd  # 设置statd服务的状态目录路径为/var/lib/nfs/statd
# ha-callout=  # 设置高可用调用为空,可能表示未配置
# no-notify=0  # 设置是否禁用通知为0,即不禁用通知
​
#[sm-notify]
# debug=0  # 设置sm-notify服务的调试级别为0,即不进行调试
# force=0  # 设置是否强制发送通知为0,即不强制发送
# retry-time=900  # 设置发送通知请求的延迟时间为900秒
# outgoing-port=  # 设置发送数据的端口为空,可能表示默认值或未配置
# outgoing-addr=  # 设置发送数据的地址为空,可能表示默认值或未配置
# lift-grace=y  # 设置是否解除宽限期为y,即解除宽限期

四、NFS文件共享配置文件

[root@localhost ~]# cat /etc/exports
###默认是空的
配置参数说明
参数 作用
ro 只读
rw 读写
root_squash 当以root身份访问时,映射为NFS服务端的匿名用户
no_root_squash 当以root身份访问时,映射为NFS服务端的root用户
all_squash 无论使用什么账户访问,均映射为NFS服务端的匿名用户
sync 同时将数据写入内存和硬盘中,保证不丢失数据
async 先将数据写入内存,然后写入硬盘中,可能会造成数据丢失

五、命令解析

命令字 选项 作用
exportfs -d 开启调试模式。有效的调试类型包括:all, auth, call, general 和 parse。在/etc/nfs.conf的[exportfs]部分中设置debug=也可以开启调试模式。
-a 导出或取消导出所有目录。
-o 指定一个与exports(5)文件中的导出选项列表相同的选项列表。
-i 忽略/etc/exports文件和/etc/exports.d目录下的文件,仅使用命令行中给出的默认选项和选项。
-r 重导出所有目录,将/var/lib/nfs/etab与/etc/exports和/etc/exports.d下的文件同步。该选项会删除来自/var/lib/nfs/etab中已从/etc/exports或/etc/exports.d下的文件的删除条目,并删除内核导出表中已不再有效的条目。
-u 取消导出一个或多个目录。
-f 如果/proc/fs/nfsd或/proc/fs/nfs被挂载,则将内核的导出表中的所有内容清除。活跃客户端的新的内核导出表条目是由rpc.mountd在它们下次发出NFS挂载请求时添加的。
-v 显示详细信息。在导出或取消导出时,显示正在进行的事情。在显示当前导出列表时,还会显示导出选项列表。
-s 显示适合/etc/exports的当前导出列表
shoumount showmount [ -adehv ] [ --all ] [ --directories ] [ --exports ] [ --help ] [ --version ] [ host ]
-a 列出客户端主机名或IP地址以及以主机目录格式表示的挂载目录。
-d 仅列出由客户端挂载的目录。
-e 显示NFS服务器的导出列表。(常用)
-h 提供简短的帮助摘要。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值