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前的准备
1
2
3
4
5
6
7
8
9
10
11在本次实验中,我们使用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 服务端的部署
1
2
3
4
5
6
7
8
9
10
11*)服务端(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 客户端的使用
1
2
3
4
5
6
7
8
9
10
11客户端(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 共享策略的修改
1
2
3
4
5
6
7
8
9服务端: vim /etc/exports /mnt 172.25.254.0/24(rw,sync) exportfs -rv 当改为rw,说明服务允许进行可写,但是服务器文件系统也会拒绝 需要chmod 777 /mnt/ 然后当在客户端挂载进行写的时候,发现可以建立 在服务器上ls -l file 使用nfsnobody身份
2.3.2 建立文件使用的身份修改
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15*)建立文件使用的身份修改 服务器: 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 建立的文件是客户端当前用户的身份
1
2
3
4
5
6
7
8
9
10
11想要在客户端当前是谁建立的文件,文件就属于谁 服务器: 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 建立的文件都统一使用指定的用户身份
1
2
3
4
5
6
7
8
9
10*)建立的文件都统一使用指定的用户身份 服务器: 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 客户端自动挂载
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15*)设置客户端自动挂载 我使用的时候就自动挂载,不使用的时候就自动卸载 在客户端: 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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40(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内容请搜索靠谱客的其他文章。
发表评论 取消回复