NFS简介
什么是 NFS?
- NFS(Network File System)网络文件系统
- 目标:实现计算机之间通过网络共享资源
- 将NFS主机分享的目录,挂载到自己电脑,我们就可以用自己电脑使用NFS的硬盘存储资源
- 大白话说,就像百度云盘差不多哦~~
NFS实现原理是什么?
- NFS每个功能会开启不同端口,使用RPC管理端口,RPC要先于NFS启动,RPC指定每个NFS功能所对应的端口,并返回给客户端
- NFS是一个文件系统,RPC负责信息传输
- RPC(远程过程调用 Remote Procedure Call)协议实现RPC服务(portmap 或rpcbind服务)
- RPC,基于C/S模型,程序可以使用这个协议请求网络中另一台计算机上某程序的服务
服务器端(共享硬盘方)安装NFS
安装NFS 和 rpcbind
sudo yum install nfs-utils -y
通过systemctl 设置服务自启动(RPC要先于NFS启动)
sudo systemctl enable rpcbind
sudo systemctl enable nfs
查看应用进程(使用 linux 的 ps aux |grep 命令)
- 直接用ps命令,会显示所有进程的状态
- grep 表示正则化搜索搜索,它能使用正则表达式搜索文本,并把匹配的行打印出来
- ps aux 是显示所有进程和其状态。
ps aux | grep nfs
ps aux | grep rpcbind
指令参考
ps a 显示现行终端机下的所有程序,包括其他用户的程序。
ps -A 显示所有程序。
ps c 列出程序时,显示每个程序真正的指令名称,而不包含路径,参数或常驻服务的标示。
ps -e 此参数的效果和指定"A"参数相同。
ps e 列出程序时,显示每个程序所使用的环境变量。
ps f 用ASCII字符显示树状结构,表达程序间的相互关系。
ps -H 显示树状结构,表示程序间的相互关系。
ps -N 显示所有的程序,除了执行ps指令终端机下的程序之外。
ps s 采用程序信号的格式显示程序状况。
ps S 列出程序时,包括已中断的子程序资料。
ps -t 指定终端机编号,并列出属于该终端机的程序的状况。
ps u 以用户为主的格式来显示程序状况。
ps x 显示所有程序,不以终端机来区分。
验证是否自启动
如果状态为inactive,需要重启服务,再次验证
systemctl is-active nfs-server
systemctl is-active rpcbind
NFS定义共享文件目录
通过/etc/exports文件定义共享目录,vi编辑exports文件,这个步骤一定要使用root权限,否则无法编辑
sudo vi /etc/exports
# 写入(IP为服务器IP)
/opt/resources 192.168.12.0/24(rw,sync,all_squash)
修改后重启或者 重新加载共享文件列表
RPC要先于NFS启动
sudo systemctl restart rpcbind
sudo systemctl restart nfs
或者
exportfs -r
查看共享目录
exports -v
其他命令
# 卸载所有共享
exportfs -au
# 重挂所有
exportfs -ar
文件编辑格式
共享目录绝对路径 授权访问的IP或网段(权限1,权限2)
权限说明
ro 只读访问
rw 读写访问
sync 所有数据在请求时写入共享
async NFS在写入数据前可以相应请求
secure NFS通过1024以下的安全TCP/IP端口发送
insecure NFS通过1024以上的端口发送
wdelay 如果多个用户要写入NFS目录,则归组写入(默认)
no_wdelay 如果多个用户要写入NFS目录,则立即写入,当使用async时,无需此设置。
hide 在NFS共享目录中不共享其子目录
no_hide 共享NFS目录的子目录
subtree_check 如果共享/usr/bin之类的子目录时,强制NFS检查父目录的权限(默认)
no_subtree_check 和上面相对,不检查父目录权限
all_squash 共享文件的UID和GID映射匿名用户anonymous,适合公用目录。
no_all_squash 保留共享文件的UID和GID(默认)
root_squash root用户的所有请求映射成如anonymous用户一样的权限(默认)
no_root_squash root用户具有根目录的完全管理访问权限
anonuid=xxx 指定NFS服务器/etc/passwd文件中匿名用户的UID
anongid=xxx 指定NFS服务器/etc/passwd文件中匿名用户的GID
查看NFS服务器共享目录,挂载情况
showmount ip -e
客户端挂载
客户端环境准备
客户端也要按照上述步骤先安装NFS 和 RPC
新建挂载点
mkdir -p /opt/resources
挂载
mount -t nfs ip:/opt/resources/ /opt/resources/
设置开机挂载
vi /etc/rc.local
将挂载命令加入文件即可
mount -t nfs ip:/opt/resources/ /opt/resources/
验证挂载
mount |grep "/opt/resources/"
常用命令
# 使用showmount命令查看远程NFS服务器共享目录
showmount ip -e
# 新建挂载点
mkdir -p /opt/resources
# 挂载
mount -t nfs ip:/opt/resources/ /opt/resources/
# 设置开机挂载
vi /etc/rc.local
# 将挂载命令加入文件即可
mount -t nfs ip:/opt/resources/ /opt/resources/
# 验证挂载
mount |grep "/opt/resources/"
今天就写到这里啦~
- 小伙伴们,( ̄ω ̄( ̄ω ̄〃 ( ̄ω ̄〃)ゝ我们明天再见啦~~
- 大家要天天开心哦
欢迎大家指出文章需要改正之处~
学无止境,合作共赢