NFS(Network FileSystem)
这几天在搞这玩意,搞得我头皮发麻,搭好了服务器那边,客户端这边的服务器一直挂载不上,显示
clnt_create: RPC: Port mapper failure - Timed out
最后终于搞好了,在阿里云ECS上面有个安全组内实例列表,把客户端的服务器实例添加到服务器那边就好了。
言归正传,先介绍一下nfs,我感觉就像是服务器之间的一个共享文件夹。
服务器端为主盘,客户端挂载后,可以将本地的文件上传到主盘共享,或者在主盘上面下载到客户端本地
(以上其实是我瞎写的,各位看看就好)
NFS 安装
查看是否已安装:
rpm -qa | grep nfs-*
安装:
sudo yum install -y nfs-utils rpcbind
NFS 服务器
配置文件(记得先备份):
more /etc/exports
默认配置文件里面是没啥内容的,我们需要自己加上配置内容,一行表示共享一个目录。为了方便使用,共享的目录最好将权限设置为 777(chmod 777 folderName
)
假设在配置文件里面加上:/data/mytest 192.168.12.0/24(rw,sync,no_root_squash,no_subtree_check)
配置解释:
- /data/mytest 表示我们要共享的目录
- 192.168.12.0/24 表示内网中这个网段区间的IP是可以进行访问的,如果要任意网段都可以访问,可以用
*
号表示 - (rw,sync,no_root_squash,no_subtree_check)表示权限
-
- rw:是可读写(ro是只读)
- sync:同步模式,表示内存中的数据时时刻刻写入磁盘(async:非同步模式,内存中数据定期存入磁盘)
- all_squash:表示不管使用NFS的用户是谁,其身份都会被限定为一个指定的普通用户身份。(no_root_squash:其他客户端主机的root用户对该目录有至高权限控制。root_squash:表示其他客户端主机的root用户对该目录有普通用户权限控制)
- anonuid/anongid:要和root_squash或all_squash选项一同使用,表示指定使用NFS的用户被限定后的uid和gid,前提是本图片服务器的/etc/passwd中存在这一的uid和gid
- no_subtree_check:不检查父目录的权限
启动服务:
service rpcbind restart
service nfs restart
NFS 客户端
也要安装,像上面那样,但不用配置和开启nfs的服务了,只有挂载就行
客户端要访问服务端的共享目录需要对其共享的目录进行挂载,在挂载之前先检查下:
showmount -e 192.168.12.25
(这个 IP 是 NFS 的服务器端 IP)
如果显示:
Export list for 192.168.12.25:
/data/mytest 192.168.12.0/24
表示成功了。
现在开始对其进行挂载:mount -t nfs 192.168.12.25:/data/mytest/ /mytest/
在客户端机器上输入命令:df -h
可以看到多了一个 mytest 分区
NFS 其它常用命令
关闭服务:
service rpcbind.socket stop
service rpcbind stop
service nfs stop
查看进程:
ps -ef | grep rpcbind
ps -ef | grep nfs
服务开启:
service rpcbind start
service nfs start
查看服务状态:
systemctl status rpcbind
systemctl status nfs
取消挂载:
umount -v /data/mytest/
卸载NFS:
sudo yum autoremove nfs-utils
sudo yum autoremove rpcbind