Day32综合架构nfs共享存储

2019-11-28  本文已影响0人  a幕城

什么是nfs

  • network file system 网络文件系统.

nfs能干什么?

  • 实现不同主机系统之间的共享 linux windows macos

为什么要使用nfs?

  • 使用在集群架构中

使用nfs的注意事项?

  • 1.增加NFS不能加速网站的访问,只会带来更高的网络延时
  • 2.CDN内容分发网络 (加速网站静态资源) 图片 视频 附件 pdf word 听听就行

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服务端会将客户端的函数转换为本地能执行的命令,然后将命令传递至内核,由内核驱动硬件。
    ps:rpc是一个远程过程调用,那么使用nfs必须有rpc服务

安装、配置、nfs服务

服务端:
1.安装 yum install nfs-utils -y
2.配置
[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

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

实现挂载开机自动
[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
上一篇下一篇

猜你喜欢

热点阅读