NFS介绍
NFS服务常常用到,用于在网络上共享存储
NFS工作原理
(在centos版本5及之前的版本,RPC服务叫portmap,之后就叫:rpcbind)
NFS服务需要借助RPC协议进行通信。
NFS服务端安装配置
先准备两台机器,服务端(A)和客户端(B)
(A:cansheng1:133;B:cansheng2 :134)
1.分别在两台机器上都安装:nfs-utils rpcbind
yum install -y nfs-utils rpcbind
2.编辑/etc/exports(服务端A)
vim /etc/exports 添加内容:
/home/nfstestdir 192.168.136.0/24(rw,sync,all_squash,anonuid=1000,anongid=1000)
3.创建共享目录(服务端A),和修改权限
mkdir /home/nfstestdir
chmod 777 /home/nfstestdir /方便实验
4.查看一下rpcbind的监听端口(默认为111)
netstat -lnpt
5.启动服务:(服务端A)
systemctl start rpcbind
systemctl start nfs
systemctl enable rpcbind
systemctl enable nfs
NFS配置选项
ip与(rw之间不能有空格, 否则客户端挂载的目录会变成只读..
!!客户端想要实现将服务端共享出来的数据(目录),还需要在客户端挂载共享的目录。
客户端挂载:
1.安装: yum install -y nfs-utils(上诉操作已安装)
2.showmount -e 192.168.136.133 (查看到这个ip(在服务段定义共享的ip段),是否能共享着服务端的共享文件)
{
如果这一步出现错误:
1.是否rpcbind服务开启,监听 的端口是否也是正常监听
2.防火墙和selinux影响:(关闭,两台机器都关闭)
systemctl stop firewalld
setenforce 0
}
3.挂载(客户端上B)
mount -t nfs 192.168.136.133:/home/nfstestdir /mnt
4.创建一个文件,看看是否能实现共享:(客户端)
touch /mnt/canshenglinux.txt
此时在A服务端上的共享文件能看到这个在B客户端上创建的文件
ls -l /mnt/canshenglinux.txt //可以看到文件的属主和属组都为1000(客户端B)
ls -l //home/nfstestdir/canshenglinux.txt //可以看到文件的属主和属组都为user1(服务端A)
exportfs命令
当改变/etc/exports配置文件后,使用exportfs命令挂载不需要重启NFS服务。
(当我们的服务端需要修改/etc/exports配置文件(增加或者删除其他内容),且要文件生效,这时候需要重启我们的nfs服务,但是我们客户端的机器仍然在挂载着我们共享的文件,这是重启我们的服务,会使客户端的 机器对挂载目录进行挂起操作,影响很大。
但是我们先把客户端的挂载目录(挂载点)先卸载,再在服务端修改配置文件,然后重启nfs服务,最后在客户端上再重新挂载,这样会很繁琐!)
使用exportfs命令:
1.编辑配置文件(服务端A)
vim /etc/exports //增加
/tmp/ 192.168.136.134(rw,sync,no_root_squash)
2.执行:exportfs -arv (执行这个命令就是相当重新加载服务)
3.在客户端上验证是否有新增的共享目录:(客户端B)
showmount -e 192.168.136.133
4.挂在/tmp/共享目录
(其实用mount命令来挂载NFS服务是有讲究的,它要用-t nfs 来指定挂在的类型为nfs
,另外挂载NFS 服务时,常用-o nolock(不加锁)
mount -t nfs -o nolock 192.168.136.133:/tmp /canshenglinux
)
NFS客户端问题
mount -t nfs -o remount,nfsvers=3 192.168.136.133:/tmp /canshenglinux
重新挂在且指定服务版本为3版本
使用yum安装工具时,如果出现非常慢的下载速度:
epel 太慢,可以暂时把epel禁止
(1)cd/etc/yum.repos.d/
(2)mv epel.repo epel.repo.bak
则再次下载时就可以表面epel对下载速度产生影响