NFS共享存储服务

NFS概述

NFS是一种基于TCP/IP传输的网络文件系统协议。通过使用NFS协议,客户机可以像访问本地目录一样访问远程服务器中的共享资源。

对于大多数负载均衡群集来说,使用NFS协议来共享数据存储是比较常见的做法,NFS也是NAS存储设备必然支持的一种协议。但是由于NFS没有用户认证机制,而且数据在网络上明文传输,所以安全性很差,一般只能在局域网中使用。

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

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

 

NFS 的配置文件为/etc/exports

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

*客户机地址和权限之间没有空格

 

NFS服务的配置

在文件服务器端使用NFS发布共享资源

一》挂载光盘镜像文件,安装nfs-utils、rpcbind软件包

rpm -q rpcbind nfs-utils

yum -y install nfs-utils rpcbind

 

二》设置共享目录

mkdir -p /opt/aaa         在opt目录中创建一个子目录AAA

chmod 777 /opt/aaa       给子目录最大的权限

vim /etc/exports

/opt/aaa 192.168.150.0/24(rw, sync, no_root_squash)

 

如果将同一目录共享给不同的客户机,且分配不同的权限时,只要以空格分隔指定多个“客户机(权限选项)”即可

/var/ftp/pub 192.168150.5 (ro) 192.168.150.15 (rw)

 

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

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

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

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

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

 

示例:NFS服务器端设置

 

在客户机端设置

 

其它常用选项

all squash ∶所有访问用户都映射为匿名用户或用户组

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

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

no_subtree check ∶即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率。

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

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

 

示例:NFS服务器端设置

 

在客户机端设置

 

三》启动NFS服务程序

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

systemctl start rpcbind

systemctl start nfs

systemctl enable rpcbind(将服务加入开机自启)

systemctl enable nfs

 

netstat -anpt | grep rpcbind    查看rpcbind端口是否开启,rpcbind服务默认使用tcp端口111

 

四》查看本机发布的NFS共享目录,一般重启服务后自动发布

exportfs -rv          手动发布共享目录

showmount -e        查看发布的共享目录

 

在客户机中访问NFS共享资源

一》挂载光盘镜像,安装nfs-utils、rpcbind软件包

rpm -q rpcbind nfs-utils

yum -y install nfs-utils rpcbind

systemctl start rpcbind

systemctl enable rpcbind

systemctl start nfs-utils

systemctl enable nfs-utils

 

查看 NFS 服务器端共享了哪些目录

showmount -e 192.168.150.20

 

二》手动挂载NFS共享目录

mkdir /ccc

mount 192.168.150.20:/opt/aaa /ccc

mount确认挂载结果,也可以使用df -Th

设置自动挂载 vim /etc/fstab

192.168.150.20:/opt/aaa  /ccc nfs defaults,_netdev 0 0

_netdev ∶表示挂载设备需要网络

 

注意:强制卸载 NFS

如果服务器端NFS服务突然间停掉了, 而客户端正在挂载使用时,在客户端就会出现执行df -h命令卡死的现象。这个时候直接使用umount 命令是无法直接卸载的,需要加上 -lf 选项才能卸载

umount -lf /myshare

 

 

 

 

 

 

 

posted @ 2021-05-04 19:48  D-LXT  阅读(57)  评论(0编辑  收藏  举报