概述
1 NFS的简介
1.1 NFS的概念
网络文件系统(NFS)是Unix系统和网络附加存储文件管理器常用的网络文件系统,允许多个客户端通过网络共享文件访问。它可用于提供对共享二进制目录的访问,也可用于允许用户在同一工作组中对不同客户端访问其文件。
简单来说,在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。
NFS协议有多个版本:Linux支持版本4、版本3和版本2,而大多数系统管理员熟悉的是NFSv3.默认情况下,该协议并不安全,但是更新的版本(如NFSv4)提供了对更安全的身份验证的支持,甚至可以通过kerberos进行加密。
1.2 NFS的好处
(1). 节省本地存储空间,将常用的数据存放在一台NFS服务器上且可以通过网络访问,那么本地终端将可以减少自身存储空间的使用。
(2). 用户不需要在网络中的每个机器上都建有Home目录,Home目录可以放在NFS服务器上且可以在网络上被访问使用。
(3). 一些存储设备如软驱、CDROM和Zip(一种高储存密度的磁盘驱动器与磁盘)等都可以在网络上被别的机器使用。这可以减少整个网络上可移动介质设备的数量。
1.3 部署NFS前的准备
在本次实验中,我们使用desktop虚拟机充当客户端进行测试,server虚拟机充当NFS服务端
1.重置desktop:改ip为172.25.254.233
改主机名 client.westos.com
写本地解析 172.25.254.233 client.westos.com
配置yum源可用
2.重置server:改ip为172.25.254.133
改主机名 server.westos.com
写本地解析 172.25.254.133 server.westos.com
配置yum源可用
2 NFS的部署与实现
2.1 服务端的部署
*)服务端(server虚拟机:172.25.254.133)
(1)yum install nfs-utils #下载软件
vim /etc/exports #共享策略文件所在
/mnt 172.25.254.0/24(ro,sync) #共享策略文件书写规则
(2)systemctl start nfs-server
systemctl stop firewalld
(3)exportfs -rv #刷新使共享文件生效,不重启,直接使用命令刷新
注: 172.25.254.0/24,表示只允许该网段的客户端访问,ro表示只读共享
sync表示硬盘和内存中的数据时时同步,async 表示硬盘和内存中的数据不同步
2.2 客户端的使用
客户端(desktop虚拟机:172.25.254.233)
(1)yum install nfs-utils -y
(2)showmount -e 172.25.254.133 #发现共享出来的文件
(3)挂载共享出来的目录:
mount 172.25.2554.133:/mnt /mnt #挂载之后,操作的就是服务器的/mnt目录,直接对服务器该目录进行操作
df #查看挂载
cd /mnt #切换到/mnt目录下,因为服务器只读共享,所以不能写操作
umont /mnt #卸载
注:客户端NFS挂载选项:
rw 挂载可读写的文件系统
ro 挂载可读文件系统
vers=4 尝试只使用指定的NFS版本进行挂载。
如果服务器不支持该版本,则挂载请求失败
soft:如果NFS请求超时,三次尝试后返回错误。权衡数据完整性与提高客户端响应性。(默认行为hard,将无限期地重试)
2.3 nfs常用参数的修改
2.3.1 共享策略的修改
服务端:
vim /etc/exports
/mnt 172.25.254.0/24(rw,sync)
exportfs -rv
当改为rw,说明服务允许进行可写,但是服务器文件系统也会拒绝
需要chmod 777 /mnt/
然后当在客户端挂载进行写的时候,发现可以建立
在服务器上ls -l file 使用nfsnobody身份
2.3.2 建立文件使用的身份修改
*)建立文件使用的身份修改
服务器:
useradd westos
id westos #uid=gid=1001
vim /etc/exports
/mnt 172.25.254.0/24(rw,sync,anonuid=1001,anongid=1001) #使用服务端的uid和gid建立用户
expostfs -rv
客户端:
mount 172.25.2554.133:/mnt /mnt
cd /mnt
touch file2
ls -l #因为没有westos用户,uid和gid都会以数字显示出来
umont /mnt
2.3.3 建立的文件是客户端当前用户的身份
想要在客户端当前是谁建立的文件,文件就属于谁
服务器:
vim /etc/exports
/mnt 172.25.254.0/24(rw,sync,anonuid=1001,anongid=1001,no_root_squash)
exportfs -rv
客户端:
当前是student用户,建立的文件就属于student
当在客户端添加用户haha,该用户的uid=gid=1001,和服务端的westos一样
在客户端使用haha建立文件,在客户端查看的时候是haha
在服务端查看的时候是westos, 因为二者的uid和gid都一样
2.3.4 建立的文件都统一使用指定的用户身份
*)建立的文件都统一使用指定的用户身份
服务器:
vim /etc/exports
/mnt 172.25.254.0/24(rw,sync,anonuid=1001,anongid=1001,no_root_squash,all_squash)
exportfs -rv
客户端:
当使用root建立文件file5时,查看文件权限,发现属于haha,因为haha的uid=gid=1001
当使用student建立文件file6时,查看文件权限,同样发现属于haha
在服务端查看建立的文件,属于westos
备注:
1.若是root_squash 会使用服务器上的身份
若是no_root_squash 会使用客户端的身份
2.参数没有前后顺序
anonuid=1001,anongid=1001,no_root_squash 只会执行no_root_squash,前面的语句失效
no_root_squash 参数和all_squash同时存在时,没有书写前后顺序,all_squash会执行
2.3.5 客户端自动挂载
*)设置客户端自动挂载 我使用的时候就自动挂载,不使用的时候就自动卸载
在客户端:
yum install autofs -y
systemctl start autofs
systemctl enable autofs
cd /net #会自动生成/net目录,进入该目录
cd 172.25.254.133
ls #存在共享出来的目录
cd mnt
会看到所有建立的文件,并且已经挂载
卸载: cd ~
默认等待300s会自动卸载
修改vim /etc/autofs.conf 中timeout参数,可以修改卸载的时间
systemctl restart autofs.service
备注
不同版本的autofs的配置文件的路径不同 下载好之后使用
rpm -qc autofs 查看一下配置文件所在
2.3.6 指定自动挂载目录
(1)指定自动挂载目录为/mnt/westos
客户端:
vim /etc/auto.master #写上层挂载目录(/mnt)
/mnt /etc/auto.nfs #该文件为最终挂载文件
vim /etc/auto.nfs
westos 172.25.254.133:/mnt
systemctl restart autofs.service
测试:
cd /mnt
cd westos
df #会发现已经挂载
挂载的时候有默认挂载策略
(2)重新设置挂载策略:
第一种:mount -o vers=3,ro 172.25.254.133:/mnt /media
mount 查看挂载策略
第二种:vim /etc/auto.nfs
westos -ro,vers=3 172.25.254.133:/mnt
systemctl restart autofs.service
(3)所有用户挂载的时候都是直接挂载到了/mnt/westos,直接对目录进行操作,
我们想要不同的用户进入/mnt下属于自己的独立的存储空间,从而对目录进行操作
即,想要/mnt/westos1 挂载到/mnt/westos1
/mnt/westos2 挂载到/mnt/westos2
/mnt/westos3 挂载到/mnt/westos3
服务端:
cd /mnt
mkdir westos{1..3}
客户端:showmount -e 172.25.254.133
在cd /mnt/westos 下可以看到建立的westos1,2,3
vim /etc/auto.nfs
* -ro,vers=3 172.25.254.133:/mnt/&
这条命令达到的效果就是在客户端cd /mnt/westos1 就相当于将/mnt/westos1 挂载到172.25.254.133:/mnt/westos1
systemctl restart autofs.service
注: * -ro,vers=3 172.25.254.133:/mnt/&
表示进入客户端的/mnt下的指定名字的目录就相当于将/mnt下的该目录挂载到服务端/mnt/&目录 进入的那个目录必须是服务端/mnt下有的那个目录,若是没有的话先在服务端建立出来,在客户端上就可以进入及挂载了
指定自动挂载目录为/mnt/westos
重新设置挂载策略
不同的用户进入/mnt下属于自己的独立的存储空间
最后
以上就是自信仙人掌为你收集整理的网络文件系统NFS的部署与实现1 NFS的简介2 NFS的部署与实现的全部内容,希望文章能够帮你解决网络文件系统NFS的部署与实现1 NFS的简介2 NFS的部署与实现所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复