文件共享服务nfs
NFS(Network File System)网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。
在NFS的应用中,本地NFS的客户端应用可以透明的读写位于远端的NFS服务器上的文件,就像访问本地文件一样。NFS主要用于Linux与linux之间进行文件系统共享。
简单说,就是可以通过网络,让不同的主机,不同操作系统可以共享存储。
NFS允许不同的客户端及服务端通过一组RPC(Remote Procedure Call远程过程调用)分享相同的文件系统,它是独立于操作系统,允许不同硬件和操作系统的系统共同进行文件的共享。
NFS优点:
- 节省本地存储空间,将常用的数据存放到一台NFS服务器上,且可以通过网络访问,本地终端将减少存储空间的使用。
- 一些存储设备CDROM和zip(一种高存储密度的磁盘驱动器与磁盘)等都可以被网络上主机使用,减少整个网络移动介质设备的数量。
- 用户不需要在网络中每个机器上都建有/home目录,home目录可以放在NFS服务器上且可以在网络上被访问。
一.NFS文件共享服务的搭建:
服务器端 (Rhel7.3 ip: 172.25.254.200)
客户端 (Rhel7.3 ip: 172.25.254.100)
1.服务器端安装相应的软件包: yum -y install nfs-utils
2.服务器端关闭SElinux和防火墙:setenforce 0 ; systemctl stop firewalld
3.创建共享目录(也可以不创建,直接共享现存的目录),并且赋予权限:
mkdir /data
chmod 777 /data
4.修改共享配置文件 /etc/exports ,然后重新加载exports文件:exportfs -rv
5.启动 rpcbind服务和nfs服务: systemctl start nfs-server
6.客户端关闭Selinux和防火墙:setenforce 0 ; systemctl stop firewalld
7.客户端安装nfs-utils,并且启动: yum -y install nfs-utils
8.创建挂载点/test,查看,并且挂载:mkdir /test ; showmount -e 172.25.254.200; mount -t nfs 172.25.254.200:/data /test
服务端:
yum install nfs-utils -y
yum start nfs-server 之后不要在作重启操作
vim /etc/exports
/data 172.25.254.0/24(ro,sync)
或者
/westos *(sync,rw) 172.25.254.23(ro,sync) 让指定的IP只能是可读的状态
或者
/data 172.25.254.0/24(ro,async) 把/data 以只读的方式 共享给 某个网段的主机;使用async速度快,安全性较差
exportfs -rv 修改完配置文件只需要刷新,不需要重启nfs-server服务
systemctl stop firewalld
客户端:
yum install nfs-utils -y
showmount -e 172.25.254.140
查看172.25.254.140共享出来的文件
mount 172.25.254.140:/data /mnt 挂载
mount 查看挂载方式
指定新建文件的所有人
服务端:
vim /etc/exports
/data 172.25.254.0/24(rw,async)客户端创建的文件所有人为nfsnobody
/data 172.25.254.0/24(rw,async,anonuid=1001,anongid=1001)客户端创建的文件所有人为服务端和客户端id=1001对应的用户
/data 172.25.254.0/24(rw,async,anonuid=1001,anongid=1001,no_root_squash)
客户端创建的文件所有人为客户端本地用户自身,谁创建就是谁
/data 172.25.254.0/24(rw,async,anonuid=1001,anongid=1001,no_root_squash,all_squash)
all_squash 默认参数 all_squash出现时,前面的no_root_squash失效。文件所有人为id=1001的用户。
exportfs -rv 刷新,使配置生效
客户端:
可以看到,当nfs服务端设置为 no_root_squash,
客户端本地用户谁创建的文件,所有者所有组就是谁。
二.autofs自动挂载卸载(客户端)
自动挂载器是一个监视目录的守护进程,并在目标子目录被引用时,自动执行预定义的挂载,自动挂载器由autofs服务脚本管理。
客户端:
yum install autofs -y
systemctl start autofs 只有服务开启时,/net目录才会存在
systemctl enable autofs
rpm -qc autofs 查看配置文件路径,软件版本不同,配置文件路径不同
vim /etc/autofs.conf
timeout = 3 退出使用,三秒后自动卸载
ls /net 没有任何文件
ls /net/172.25.254.200/data
df 查看挂载情况,用的时候自动挂载
cd …/ 退出/mnt/westos
df 三秒后查看,发现已自动卸载
创建最终挂载点 haha,
进入最终挂载目录haha,自动挂载;
退出 haha目录,三秒后自动卸载;
设置自动挂载路径
客户端:
vim /etc/auto.master
修改autofs主策略文件
/mnt /etc/auto.nfs ## auto.nfs 自己创建
vim /etc/auto.nfs
编辑读取的文件auto.nfs
westos 172.25.254.140:/data
将172.25.254.140:/data 挂载到 /mnt/westos
或者
westos -ro,vers=3 172.25.254.140:/data
指定挂载参数,只读挂载,挂载版本为3,(可以采用手动挂载)
或者
* -ro,vers=3 172.25.254.140:/data/&
进入到/mnt下任意文件,挂载172.25.254.140:/data/相应文件到该文件
systemctl restart autofs
vim /etc/auto.nfs