NFS共享(nfs不支持跨平台)
普通nfs服务概述:
1.nfs(Network File System)网络文件系统,它允许网络中的计算机之间通过TCP/IP网络共享资源
2.用途:为客户机提供共享使用的文件夹
3.该服务所使用协议:nfs,rpc
所需软件包: nfs-utils(默认安装,如果没有安装需要安装)
搭建nfs共享
一:服务端:
1.安装软件包
rpm -q nfs-utils # 没有安装就使用这个命令安装yum -y install nfs-utils)
2.创建共享目录
例:在根下创建public目录,并创建测试文件
mkdir /public
echo “haha" > /public/1.txt
3.修改配置文件
vim /etc/exports
文件夹路径 客户机地址(权限) 客户机地址(权限)
例 /public *(ro)
(请注意,NFS客户端地址与权限之间没有空格)
*所有网段或者客户机,也可以指定网段和客户机
(rw)读写权限
(ro) 只读权限
书写完成之后保存退出
4.重启服务并设为开机自启
systemctl restart nfs-server
systemctl enable nfs-server
5.使用 exports -r
可以重载更新过的配置
二:客户端:采用挂载方式读取文件
例:在/mnt 下创建目录bai作为访问点
mkdir /mnt/bai
showmount -e ip #查看这个ip有哪些可以挂载
1.手动挂载
mount 服务ip:/public /本机挂载点
mount 192.168.108.137:/public /mnt/bai
挂载完成之后使用 df -h 查看
可以看出挂载是成功的
nfs服务使用途径:数据同步:
服务端发生改变,客户端也会发生相应的变化(添加,删除)
2.自动挂载
修改配置文件 /etc/fstab
echo " 192.168.108.137:/public /mnt/bai nfs defaults,_netdev 0 0" >> /etc/fstab
_netdev:声明网络设备
系统在网络服务配置完成后,在挂载本设备(系统开机之后先读取fstab,读完之后然后才会启动网卡,启动ip,然后配置网络参数,挂载网络设备没有IP挂载失败)
测试文件是否写入正确
先卸载刚刚的挂载
umount /mnt/bai
mount -a
(重新加载/etc/fstab)
若文件写入正确,使用df -h 查看
自动挂载的另一种方式
在/etc/rc.d/rc.local中设置开机时自动挂载(/etc/rc.d/rc.local文件中写入的命令,在每次启动系统用户登录之前都会执行一次),与fstab不同,这个文件是在系统启动后才执行,所以不用注明网络设备
在/etc/rc.d/rc.local中添加挂载指令
vim /etc/rc.d/rc.local
mount 192.168.108.137:/public /mnt/bai
这样修改也能实现开机自动挂载
由于网络的问题,NFS服务器与客户端的连接不会一直存在,当我们挂载了NFS服务器之后,任何一方脱机都可能造成另外一方等待超时。为了解决这样的问题,就出现了下面的想法:
1、当客户端在有使用NFS文件系统的需求时才让系统自动挂载。
2、当NFS文件系统使用完毕后,让NFS自动卸载。
于是就产生了autofs这个服务。
autofs介绍
autofs这个服务是在客户端的上面,它会持续的检测某个指定的目录,并预先设置当使用到该目录的某个子目录时,将会取得来自服务器端的NFS文件系统资源,并进行自动挂载的操作。
在客户端操作
1.安装相应软件
yum install autofs -y
2.修改配置文件,在主配置文件里面指定被检测的特定目录为/nfs(该目录不需要事先存在,因为autofs会主动建立该目录),
vim /etc/auto.master #这里的配置文件名字并不固定,以aoto开头就行
/nfs /etc/auto.nfs
3.建立数据对应文件内(/etc/auto.nfs)的挂载信息与服务器对应的资源,该文件是自己创建的。
vim /etc/auto.nfs
ceshi 192.168.108.137:/public
4.重启服务
systemctl restart autofs
4.进行测试
进入nfs中查看,发现没有相应的路径。
因为是触发挂载,只有进入到相应的目录中才能看到相应的内容
配置文件中触发的名字为ceshi,所以进入ceshi目录,就能看到共享的内容