linux - nfs挂载

NFS(全称 Network File System),即网络文件系统。通过网络,让不同的机器、不同的操作系统可以共享彼此的文件。

一般的挂载,是买一个新硬盘,然后挂载到我们的系统,而 NFS 挂载,是把其它主机的文件夹,挂载到我们的系统,完成 NFS 挂载之后,操作其它主机的文件,就像操作本机的文件一样。

效果:理解成 linux 版本的共享文件夹。

应用场景:

  1. 可以用在docker的挂载上,应用在一台服务器,数据则在另一台机器,同理,这个方案,在 k8s、swarm 环境都是可用的;
  2. 部署集群的时候,复制文件是非常麻烦的事,这时候就可以用到 NFS,把文件共享给所有主机,如果有文件需要修改,一台机子修改,所有主机读到的数据都会随之变化。

主机设置

# 安装
rpm -qa nfs-utils	

# 打开文件编辑
vim /etc/exports

# 文件中添加下面内容
/dc/install *(rw,no_root_squash)

# 启动 nfs 服务,也就是把文件共享出去
service nfs start

# 查看挂载,确定是否部署成功
showmount -e

从机设置

# 将主机的 install 目录,挂载到本地的 test 目录,也就是引用其他主机的共享目录
mount 192.111.111.111:/dc/install /test

# 取消挂载
umount /test

可选参数

/dc/install *(rw,no_root_squash)

* 代表允许所有的网络段访问;
rw 是可读写权限;
no_root_squash 是 Ubuntu nfs 客户端分享目录使用者的权限,如果客户端使用的是 root用户,那么对于该共享目录而言,该客户端就具有 root 权限;

ro 只读访问
sync 是资料同步写入内存和硬盘;
async nfs 在写入数据前可以相应请求
secure nfs 通过以下的安全 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 文件中匿名用户BliLaChelar
anongid=xxx 指定 nfs 服务器/etc/passwd 文件中匿名用户的 GID

posted on 2024-06-20 09:37  疯狂的妞妞  阅读(8)  评论(0编辑  收藏  举报

导航