NFS共享存储服务

NFS是一种基于TCP/IP的网络文件系统,常用于局域网内的数据共享,依赖RPC服务。文章介绍了NFS的工作原理、配置步骤,包括安装软件包、修改exports文件、启动服务以及处理权限和安全问题,还讨论了服务卡死的解决方法和永久挂载的设置。同时指出NFS的安全隐患,如无用户认证和明文传输,建议在安全环境中使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

1.NFS(Network File System)网络文件系统

2.NFS架构

3.NFS工作原理

4.NFS配置

示例

1.安装软件包

2.修改/etc/exports文件

3.启动 NFS 服务程序

4.查看共享目录

5.修改共享配置文件的权限

6.服务卡死的解决方法和在线发布共享目录

7.永久挂载

5.总结


1.NFS(Network File System)网络文件系统

NFS是一种基于TCP/IP传输的网络文件系统协议。通过使用NFS协议,客户机可以像访问本地目

录一样访问远程服务器中的共享资源。

对于大多数负载均衡群集来说,使用NFS协议来共享数据存储是比较常见的做法,NFS也是NAS存

储设备必然支持的一种协议。但是NFS没有用户认证机制,而且数据在网络上明文传输,所以安全

性很差,一般只能在局域网中使用。

NFS服务的实现依赖于RPC (Remote Process Call,远端过程调用)机制,以完成远程到本地的映

射过程。

所以需要安装nfs-utils、rpcbind 软件包来提供NFS共享服务,前者用于NFS共享发布和访问,后者

用于RPC支持。

NFS的配置文件为/etc/exports

格式为:

共享的目录位置   客户机地址   (权限选项)

注:Windows  共享存储服务  cifs

        Linux       共享存储服务   nfs

2.NFS架构

把一个磁盘共享出去,让主机1、主机2、主机3像使用自己的目录一样使用,通过NFS共享

3.NFS工作原理

NFS服务是依赖于RPC服务的,它把端口位置放在了RPC服务上,先启动RPC,在启动NFS,通过/etc/exporets目录,把服务端的目录挂载到本地目录,然后通过TCP/IP协议把服务端和客户端连接到一起,客户端通过mount -t nfs 把对方目录挂载到自己的目录当中,客户端通过RPC服务,远程调用服务端NFS服务,获取服务端的所共享的文件数据。

4.NFS配置

1.先安装服务端rpcbind、nfs软件包

2.修改/etc/exports文件

vim /etc/exports

/opt/ wwwroot 192.168.80.0/24(rw, sync,no_root_squash)

/var/ftp/pub 192.168.4.11 (ro) 192.168.4.110 (rw)
/share * (rw, sync)

客户机地址可以是主机名、IP地址、网段地址,允许使用"*”、"?"通配符。

"rw”表示允许读写,"ro”表示为只读。

sync :表示同步写入到内存与硬盘中。

no_root_squash :表示当客户机以root身份访问时赋予本地root权限(默认是root_squash ) 。

root_squash :表示客户机用root用户访问该共享目录时,将root用户映射成匿名用户。

其它常用选项

all_squash :所有访问用户都映射为匿名用户或用户组。

async :将数据先保存在内存缓冲区中,必要时才写入磁盘。

subtree_check(默认):若输出目录是一个子目录,则nfs服务器将检查其父目录的权限。

no_subtree_check :即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提

高效率。

anonuid=xxx:指定NFS服务器/etc/passwd文件中匿名用户的UID

anongid=xxx :指定NFS服务器/etc/group文件中匿名用户的GID

3.启动 NFS 服务程序

#手动加载NFS共享服务时,应该先启动rpcbind,再启动nfs

systemctl start rpcbind

systemctl start nfs

systemctl enable rpcbind

systemctl enable nfs

netstat   -anptu  | grep  111           查看rpcbind端口是否开启,rpcbind默认使用端口111

netstat   -anptu  | grep   2049        nfs默认使用的端口是2049                     

4.查看共享目录

exportfs -avr                           在线发布

showmount -e

示例

1.安装软件包

2.修改/etc/exports文件

把pgk目录作为共享目录

 vim /etc/exports

3.启动 NFS 服务程序

服务端启动rpcbind服务和nfs服务

注:启动服务有先后顺序,一定要先启动rpcbind服务

4.查看共享目录

 进入客户端

在客户端创建一个目录,把服务端的共享目录挂载到该目录下

 客户端就会出现服务端的共享目录

 但是在客户端写入一个文件,发现就没有权限创建

 这是因为服务端的目录权限没有给其他用户写入权限

 我们把服务端目录的权限提升到最大

客户端可以写入文件,但是我们发现属主与属组变成了匿名用户,我们被降权了,服务端也是一样

———————————————————————————————————————————

5.修改共享配置文件的权限

vim /etc/exports

把服务端的/etc/exports文件的(rw)改为(ro),并重启

 

 客户端这次同样创建不了文件因为这次是只读系统,只能读不能写

———————————————————————————————————————————

修改服务端的/etc/exports文件,把(rw)修改为(rw,no_root_squash),只针对root用户

客户端在服务端修改前解挂,在服务端重启服务后挂载,客户端再创建一个新文件,这时客户端的属主和属组都成了root

 

即使客户端切换到lisi账号上,创建文件后,文件属主和属组依然是zxr,无论是什么用户都会被降为指定用户

———————————————————————————————————————————

6.服务卡死的解决方法和在线发布共享目录

服务端共享完目录后,客户端解挂再挂载会有一段时间卡死,所以我们用exportfs -在线共享目录 

在客户端查看共享目录

注:如果出现挂载卡死现象,可以用umount  挂载目录    -lf命令,强制解挂

7.永久挂载

vim /etc/fstab

 mount  -a    挂载/etc/fstab中的设置

5.总结

windows  共享存储服务   cifs

linux         共享存储服务   nfs

NAS

存储类型:

块存储: 硬盘 LVM  RAID

文件存储:NFS

对象存储:OSS

nfs 网络文件共享服务

1.安装软件,启动服务

yum insatll  -y          nfs-utils        rpcbind
                     端口号nfs (2049)    rpcbind (111)

systemctl start rpcbind

systemctl start nfs

systemctl enable rpcbind

systemctl enable nfs

2.住备共享目录

先准备硬盘/LVM/RAID,格式化后挂载到需要共享的目录(比如/share),并设置相应的权限chmod

777 /share    如果无需客户端写入文件则省略

3.修改共享配置文件

vim /etc/exports

共享目录        客户端地址/网段(共享参数选项,...)

4.发布共享目录 

sysemctl  restart  nfs

exportfs -avr

showmount  -e    测试目录

服务端别忘记关防火墙

5.客户端挂载使用

showmount   -e   服务端IP

mount  [-t  nfs] 服务端IP:共享目录    本地挂载点

永久挂载

vim  /etc/fstab

服务端IP:共享目录        本地挂载点       nfs       defaults,_netdev    0   0

如果客户端挂载目录出现卡死现象    umount    -lf     强制解挂

### 配置和使用NFS共享存储 #### NFS简介 NFS(Network File System),即网络文件系统,是由Sun Microsystems开发的一种分布式文件系统协议。它允许不同主机间的文件共享,使得远程文件访问如同本地文件操作一般便捷[^2]。 #### 安装NFS工具 为了实现NFS功能,在服务器上需安装`nfs-utils`软件包。该工具提供了必要的守护进程和服务来管理NFS共享。 ```bash yum install -y nfs-utils ``` #### 修改配置文件 编辑`/etc/exports`文件以定义要共享的目录及其权限设置。例如: ```plaintext [nfs root ~]# cat /etc/exports /nfs-data 172.16.1.0/24(rw,sync) ``` 上述配置表示将`/nfs-data`目录共享给子网`172.16.1.0/24`内的所有设备,并赋予读写权限,同时启用同步模式以提高数据一致性[^3]。 #### 启动并设置NFS服务开机自启 确认NFS服务已启动且设置了开机自动运行非常重要。如果发现服务未正常工作,则可以通过以下命令解决: ```bash [root@Client ~]# systemctl status nfs-server ○ nfs-server.service - NFS server and services Loaded: loaded (/usr/lib/systemd/system/nfs-server.service; disabled; vendor preset: disabled) Active: inactive (dead) [root@Client ~]# systemctl enable --now nfs-server.service Created symlink /etc/systemd/system/multi-user.target.wants/nfs-server.service → /usr/lib/systemd/system/nfs-server.service. ``` 这一步确保了即使重启机器后,NFS服务仍能继续提供文件共享能力[^4]。 #### 常用命令总结 以下是几个常用的NFS管理命令: - `-v`: 查看当前主机所有的NFS共享状态。 - `-r`: 让NFS重新加载配置文件并应用新的共享设定。 - `-a`: 显示本机全部已经激活的NFS共享列表。 - `-au`: 终止所有正在进行中的NFS共享活动[^1]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值