目录
任务要求
思路总结
1.NFS共享服务
服务端 (ip 192.168.48.128)
客户端 (ip 192.168.48.130)
2.配置autofs自动挂载
任务要求
1.NFS服务器,可以让PC将网络中的NFS服务器共享的目录挂载到本地端的文件系统中,而在本地端的系统中看来,那个远程主机的目录就好像是自己的一个磁盘分区一样。
注意:在启动NFS之前,要先启动RPC,否则NFS会无法向RPC注册。另外,RPC若重新启动,原来注册的数据会消失不见,因此RPC重启后,它管理的所有服务都需要重新启动以重新向RPC注册。
2.配置autofs自动挂载,由于网络的问题,NFS服务器与客户端的连接不会一直存在,当我们挂载了NFS服务器之后,任何一方脱机都可能造成另外一方等待超时。为了解决这样的问题,就出现了下面的想法:
- 当客户端在有使用NFS文件系统的需求时才让系统自动挂载。
- 当NFS文件系统使用完毕后,让NFS自动卸载。于是就产生了autofs这个服务。
思路总结
NFS 服务端(192.168.48.128)安装服务、关防火墙和 SELinux,配置 /etc/exports 后重启。客户端(192.168.48.130)装服务、关防火墙,查看共享,建 /nfsclient/client-data 并挂载服务端 /data,不用时需要断开。autofs自动挂载是在客户端装 autofs,改主和子配置文件,重启服务,卸载,遇忙时用 fuser 查占用程序。
1.NFS共享服务
服务端 (ip 192.168.48.128)
NFS服务安装,关闭防火墙和SElinux
yum install rpcbind
yum install nfs-utilssetenforce 0 #关闭selinux
systemctl stop firewalld.service
开放共享文件
su root #切换身份
mkdir /data #创建共享目录
chmod 777 /data #开放共享文件权限
cat /etc/exports #查看nfs服务配置,如果没有内容就新建并写入如下
重启服务
systemctl restart nfs-server #重启nfs服务器
showmount -e 192.168.42.128 #查看共享是否生效
参数说明
#可以使用完整的IP或者是网络号,
例如172.24.8.128或172.24.8.0/24或者172.24.8.128/255.255.255.0;也可以使用*表示所有主机
/mnt/nfs *(ro,sync,no_root_squash,no_subtree_check)
/mnt/zuoye *(rw,sync,no_root_squash,no_subtree_check)
#权限相关参数可以写多个,多个参数之间用逗号隔开,具体相关参数说明如下:
1、rw和ro:该目录分享的权限是可擦写 (read-write) 或只读 (read-only),
但最终能不能读写,还是与文件系统的 rwx 及身份有关。
2、sync和async:sync 代表数据会同步写入到内存与硬盘中,
async 则代表数据会先暂存于内存当中,而非直接写入硬盘!
3、no_root_squash和root_squash:
想要开放客户端使用 root 身份来操作服务器的文件系统,那么这里就得要开 no_root_squash 才行。
而all_squash,不论登入 NFS 的使用者身份为何都会被压缩成为匿名用户,就是 nobody(nfsnobody) 。4、anonuid和anongid
anonuid 指的是 UID,而 anongid 则是群组的GID
5、subtree_check和no_subtree_check
可选参数。当使用'subtree_check'选项时,NFS导出系统将确保每个客户端都只能访问其访问的目录
及其下的子目录,并防止客户端访问树外的目录。这会增加一些额外的性能开销,但通常是推荐的
安全性设置。
而当使用'no_subtree_check'选项时,NFS导出系统将不会检查客户端访问的目录是否在其访问的树内,
这意味着客户端将能够访问其访问范围之外的目录,但也会减少导出系统的负载并提高性能。
请注意,这些选项的默认行为已在较新版本的nfs-utils中更改。在没有指定这些选项的情况下,
将会默认使用'no_subtree_check'
客户端 (ip 192.168.48.130)
1. 服务安装,关闭防火墙
yum install rpcbind
yum install nfs-utils
setenforce 0 #关闭selinux
systemctl stop firewalld.service
2. 查看共享是否生效
3. 在客户端机器上一次创建两个层级目录,分别如下
mkdir -p /nfsclient/client-data/
4. 将服务器 192.168.42.128的 data 目录映射(挂载) 到本机(客户机的)
/nfsclient/client-data 下面,以后在客户端操作这个目录就相当于远程操作服务器
的 /data 目录。
mount 192.168.42.128:/data /nfsclient/client-data/
5. 查看共享目录是否生效
ls /nfsclient/client-data/ 共享生效
#看的是本机的目录,但是实际内容却是远程服务器上的共享目录。可以在本机的增,删,改,查 映射到目标服务器上。
6. 不用内容的时候记得 及时断开映射关系,不要长时间连接。
cd ~
umount /nfsclient/client-data
ls /nfsclient/client-data 空了,恢复到原来的内容
2.配置autofs自动挂载
autofs这个服务是在客户端的上面,它会持续的检测某个指定的目录,并预先设置当使用到该目录的某个子目录时,将会取得来自服务器端的NFS文件系统资源,并进行自动挂载的操作。
autofs的工作原理基于Linux内核的automount功能。当用户试图访问autofs挂载的目录时,
automount守护进程会捕获这个访问请求,然后根据配置文件挂载相应的文件系统。当这个文件系统一段时间没有被访问,automount会自动将其卸载。
1、安装服务
yum install autofs -y
mkdir /mnt/m2 #建立本地文件m2 用来同步服务器信息
mkdir /tmp/a1 #建立本地文件a1 用来同步光盘信息
2、修改主配置文件
vim /etc/auto.master #autofs 的配置文件
添加:/mnt /etc/mnt.guazai # 挂载目录 子配置文件#mnt.guazai 是远程服务器的配置
#med.guazai 是本地光盘的配置
3、修改子配置文件
vim /etc/mnt.guazai #远程服务器的mount参数
vim /etc/med.guazai
添加:a1 -fstype=iso9660,ro,nosuid,nodev :/dev/sr0 #光盘的挂载参数
4、重启服务
systemctl restart autofs #启动自动挂载服务
systemctl enable autofs #使自动挂载开机启动
注意:挂载成功后,ls看不到,必须进行cd切换到目录中才能看到文件。
或者直接通过 mount 查看
5、卸载服务
systemctl stop autofs
systemctl disable autofs
umount /mnt
提示/data 目标忙,原因是:设备被一些升程序占用。
接下来通过fuser 命令查找那些程序
fuser -mv /mnt