nfs+rpcbind实现服务器之间的文件共享

编程入门 行业动态 更新时间:2024-10-22 15:27:56

nfs+rpcbind实现服务器之间的<a href=https://www.elefans.com/category/jswz/34/1767880.html style=文件共享"/>

nfs+rpcbind实现服务器之间的文件共享

NFS简介
 

NFS服务及Network File System,用于在网络上共享存储,分为2,3,4三个版本,最新为4.1版本。NFS基于RPC协议,RPC为Remote Procedure Call的简写。

应用场景:用于A,B,C三台机器上需要保证被访问到的文件是一样的,A共享数据出来,B和C分别去挂载A共享的数据目录,从而B和C访问到的数据和A上的一致
 

NFS架构及原理

  1. 首先服务器端启动RPC服务,并开启111端口
  2. 启动NFS服务,并向RPC注册端口信息
  3. 客户端启动RPC(portmap服务),向服务端的RPC(portmap)服务请求服务端的NFS端口
  4. 服务端的RPC(portmap)服务反馈NFS端口信息给客户端。
  5. 客户端通过获取的NFS端口来建立和服务端的NFS连接并进行数据的传输

NFS服务配置

安装 NFS 和 rpc

# 服务器端和客户端都要安装
yum install nfs-utils rpcbind -y
# 检查是否安装成功
rpm -qa nfs-utils rpcbind

启动RPC

systemctl start rpcbind.service

systemctl enable rpcbind.service

# 看看有没有注册的端口

rpcinfo -p 127.0.0.1
 

启动NFS

systemctl start nfs

systemctl enable nfs

# 看看有没有注册的端口

rpcinfo -p 127.0.0.1

# 检查服务是否都已启动

netstat -lntup|egrep "rpc|nfs"
 

服务端配置nfs

vim /etc/exports

/data/public 10.10.0.0/16(rw,sync,insecure,all_squash,anonuid=1003,anongid=1003)

1)、授权网段或主机
a. 可以写网段:10.10.0.0/16
b. 可以写主机名:client.lab
c. 可以写域:*.lab
d. 可以所有,用【*】表示2)、访问权限配置
ro    ->表示只读
rw    ->表示读写3)、数据写入硬盘模式
async      ->异步写入,将数据先保存在内存缓冲区中,必要时才写入磁盘
sync      ->同步写入,将数据同步写入内存缓冲区与磁盘中,效率低,但可以保证数据的一致性;4)、客户端使用的端口
insecure      ->允许客户端从大于1024的tcp/ip端口连接服务器;
secure      ->限制客户端只能从小于1024的tcp/ip端口连接服务器;5)、账户映射
首先安装完:nfs-utils 包后,会自动添加用户:nfsnobody,可以查看文件:/etc/passwd ;root_squash(默认)    ->如客户端登陆操作的是root用户,nfs服务器会将来访的root用户映射为匿名用户或用户组:nfsnobody ,如果是rw权限,就要求nfsnobody 对共享的目录有rw权限;
no_root_squash      ->来访的root用户保持root帐号权限;
all_squash        ->无论访问共享目录的用户身份如何,其权限将被镇压为匿名用户,同时它的UID和GID通常会变成nfsnobody账号身份
no_all_squash(默认)    ->访问用户先与本机用户匹配,匹配失败后再映射为匿名用户或用户组: nfsnobody;anonuid        ->匿名用户UID设置值,可自行设置,但必须在/etc/passwd中存在;在多台客户端共享一个nfs目录时,可通过此参数使得不同的客户端写入的数据保持相同的用户权限
anongid        ->匿名用户组6)、其它参数
wdelay(默认)        -> 检查是否有相关的写操作,如果有则将这些写操作一起执行,这样可以提高效率;
no_wdelay          ->若有写操作则立即执行,应与sync配合使用;
subtree_check(默认)    ->若输出目录是一个子目录,则nfs服务器将检查其父目录的权限;
no_subtree_check      ->即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率;

客户端挂载

mount -t nfs 172.17.182.13:/home/appdata  /home/mydata -o nolock,vers=3
 

开启客户端自动挂载

把挂载的命令放入/etc/rc.local中,以实现开机自动挂载

mount -t nfs 172.17.182.13:/home/appdata  /home/mydata -o nolock,vers=3
 

更多推荐

nfs+rpcbind实现服务器之间的文件共享

本文发布于:2023-12-08 12:14:38,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1672757.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:文件共享   服务器   nfs   rpcbind

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!