文件系统级别共享(NAS存储) ----- NFS是一种基于TCP/IP传输的网络文件系统协议。通过使用NFS协议,客户机可以像访问本地目录一样访问远程服务器中的共享资源。
因为NFS有很多功能,不同的功能需要使用不同的端口。因此NFS无法固定端口。而RPC会记录NFS端口的信息,这样就能够通过RPC实现服务端和客户端的RPC来沟通端口信息。
那RPC和NFS之间又是如何之间相互通讯的?
首先当NFS启动后,就会随机的使用一些端口,然后NFS就会向RPC去注册这些端口。RPC就会记录下这些端口。并且RPC会开启111端口,等待客户端RPC的请求,如果客户端有请求,那服务端的RPC就会将记录的NFS端口信息告知客户端。
NFS优点与缺点:
对于大多数负载均衡群集来说,使用NFS协议来共享数据存储是比较常见的做法,NFS也是NAS存储设备必然支持的一种协议。但是由于NFS没有用户认证机制,而且数据在网络上明文传输,所以安全性很差,一般只能在局域网中使用。
NFS服务实现所需条件:
NFS 服务的实现依赖于 RPC(Remote Process Call,远端过程调用)机制,以完成远程到本地的映射过程。
所以需要安装 nfs-utils、rpcbind 软件包来提供 NFS共享服务,前者用于 NFS 共享发布和访问,后者用于 RPC 支持。
NFS服务配置:
NFS 的配置文件为/etc/exports(服务端进行配置):允许哪台机器可以使用那一部分文件系统空间。
格式为:共享的目录位置 客户机地址(权限选项)
ro:只读
rw:读写
*:表示共享给所有网段。
sync:所有数据在请求时写入共享
root_squash: 分享目录的使用者如果是root用户,那么这个使用者的权限将被压缩成为匿名使用者,只读权限。
no_root_squash:分享目录的使用者如果是 root 的话,那么对于这个分享的目录来说,使用者就具有 root 的权限。
将/XFS目录共享给 192.168.137.0 网段的所有用户:
示例:
1.准备两台机器:下载 nfs 服务和 rpc 服务,并开启服务
#安装服务:
yum -y install nfs-utils rpcbind
#启动服务:
systemctl start nfs rpcbind
#centos7(服务端和客户端都关闭防火墙和selinux内核防火墙)
systemctl stop firewalld
setenforce 0
2.服务端机器:准备一块磁盘用作远程共享:
1.创建新分区:
fdisk /dev/sdb #新分区:sdb1
2.格式化为xfs:
mkfs.xfs /dev/sdb1
3.挂载
mkdir /XFS
mount /dev/sdb1 /XFS
df -Th
4.编辑共享文件
vim /etc/exports
/XFS 192.168.137.0/24(rw,no_root_squash,sync)
5.保存退出并重启服务
systemctl restart nfs
3.客户端机器:链接-挂载
1.创建挂载点,用于挂在共享磁盘
mkdir /NFS
2.挂载:
mount -t nfs 192.168.137.152:/XFS /NFS
3.查看:
df -Th