NFS共享存储

今日内容
1.什么是nfs?
network file system 网络文件系统.

2.nfs能干什么?
	实现不同主机系统之间的共享   linux  windows  macos

3.为什么要使用nfs?
	1.使用在集群架构中
		
4.nfs能解决什么问题?
	1.资源共享
	2.资源一致性
	3.解决磁盘空间

5.使用nfs的注意事项?
	1.增加NFS不能加速网站的访问,只会带来更高的网络延时
	2.CDN内容分发网络   (加速网站静态资源)   图片 视频  附件 pdf word 听听就行 
		2.用户 -->静态--->CDN  --> 1级代理---> 源站
		2.上传图片至存储-->定时-->推送-->1级代理-->

6.nfs实现的原理解析?

本地文件操作方式
1.当用户执行mkdir命令,BashShell无法完成该命令操作,会将其翻译给内核。
2.Kernel内核解析完成后会驱动对应的磁盘设备,完成创建目录的操作。

NFS实现原理(需要先了解[程序|进程|线程])
1.NFS客户端执行增、删等操作,客户端会使用不同的函数对该操作进行封装。
2.NFS客户端会通过TCP/IP的方式传递给NFS服务端。
3.NFS服务端接收到请求后,会先调用portmap进程进行端口映射。
4.nfsd进程用于判断NFS客户端是否拥有权限连接NFS服务端。
5.Rpc.mount进程判断客户端是否有对应的权限进行验证。
6.idmap进程实现用户映射和压缩。
7.最后NFS服务端会将客户端的函数转换为本地能执行的命令,然后将命令传递至内核,由内核驱动硬件。

注意: rpc是一个远程过程调用,那么使用nfs必须有rpc服务


7.安装、配置、nfs服务

	1.安装
		[root@nfs01 ~]# yum install nfs-utils -y
	
	2.配置
		1.要共享什么?	/data
		2.共享给谁?		172.16.1.0 网段
		3.共享的权限?	读写

	[root@nfs01 ~]# cat /etc/exports
	/data 172.16.1.0/24(rw)
	
	3.根据配置创建目录
	[root@nfs01 ~]# mkdir /data
	[root@nfs01 ~]# chown -R nfsnobody.nfsnobody /data/
	
	4.启动
	[root@nfs01 ~]# systemctl start nfs
	[root@nfs01 ~]# systemctl enable nfs
	
	5.客户端测试    
	[root@web01 ~]# yum install nfs-utils -y
	[root@web01 ~]# showmount -e 172.16.1.31
	Export list for 172.16.1.31:
	/data 172.16.1.0/24

	[root@web01 ~]# mount -t nfs 172.16.1.31:/data /mnt


8.多个客户端如何挂载


9.如果nfs意外中断
	1.无法查看到挂载信息		mount
	2.无法卸载挂载的设备		umount -lf 


10.nfs 参数
rw*					读写权限
ro					只读权限
root_squash			当NFS客户端以root管理员访问时,映射为NFS服务器的匿名用户(不常用)
no_root_squash		当NFS客户端以root管理员访问时,映射为NFS服务器的root管理员(不常用)
no_all_squash		无论NFS客户端使用什么账户访问,都不进行压缩 (云计算)

sync*				同时将数据写入到内存与硬盘中,保证不丢失数据
async				优先将数据保存到内存,然后再写入硬盘;这样效率更高,但可能会丢失数据

all_squash			无论NFS客户端使用什么账户访问,均映射为NFS服务器的匿名用户(常用)
anonuid*			配置all_squash使用,指定NFS的用户UID,必须存在系统
anongid*			配置all_squash使用,指定NFS的用户UID,必须存在系统



1.ro和 rw区别
[root@nfs01 data]# cat /etc/exports
/data 172.16.1.0/24(ro) 

[root@web01 ~]# echo "123" >> /mnt/1.1.1
-bash: /mnt/1.1.1: 只读文件系统

2.all_squash   anonuid  anongid
[root@nfs01 data]# cat /etc/exports
/data 172.16.1.0/24(rw,sync,all_squash,anonuid=666,anongid=666)

[root@nfs01 data]# groupadd -g 666 www
[root@nfs01 data]# useradd -u666 -g666 www
[root@nfs01 ~]# chown -R www.www /data/
[root@nfs01 ~]# systemctl restart nfs

3.为了避免后期使用时,造成权限不一致的情况
[root@web01 mnt]# groupadd -g 666 www
[root@web01 mnt]# useradd -u666 -g666 www

10.实现挂载开机自动
[root@web01 ~]# cat /etc/fstab
172.16.1.31:/data /mnt nfs defaults 0 0

[root@web01 ~]# mount -a 
[root@web01 ~]# df -h
文件系统           容量  已用  可用 已用% 挂载点
172.16.1.31:/data  100G  1.8G   99G    2% /mnt

1.NFS存储优点
1.NFS简单易用、方便部署、数据可靠、服务稳定、满足中小企业需求。
2.NFS的数据都在文件系统之上,所有数据都是能看得见。

2.NFS存储局限
1.存在单点故障, 如果构建高可用维护麻烦web->nfs()->backup
glusterfs
2.NFS数据都是明文, 并不对数据做任何校验,也没有密码验证(强烈建议内网使用)。

3.NFS应用建议
1.生产场景应将静态数据(jpg\png\mp4\avi\css\js)尽可能放置CDN场景进行环境, 以此来减少后端存储压力
2.如果没有缓存或架构、代码等,本身历史遗留问题太大,在多存储也没意义
存储不能带来性能上的提升

1.重启
2.直接操作服务端/data目录
3.拒绝该网段直接连接
[root@web01 ~]# mount -t nfs 10.0.0.31:/data /media/
mount.nfs: access denied by server while mounting 10.0.0.31:/data

1.介绍nfs 能做什么 使用的场景
2.nfs如何实现不同主机之间共享数据
3.nfs安装  配置  启动  测试
4.nfs 故障
5.nfs参数
	1.rw ro
	2.all_squash anonuid  anongid    === diy
6.nfs  优缺点

准备3台虚拟机服务器,并且请按照要求搭建配置NFS服务。
NFS服务端(A)
NFS客户端(B)
NFS客户端(C)
1.在NFS服务端(A)上共享/data/w(可写)及/data/r(只读)
2.在NFS客户端(B/C)上进行挂载

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值