NFS网络存储服务
1、什么是NFS?
network file system 网络文件系统
通过网络存储和组织文件的一种方法和机制
2.为什么要用共享存储:
前端所有的应用服务器接收到用户上的文件(图片、视频等)都会统一的放到后端的存储上
为什么要共享:
所有节点服务器都需要将内容存到存储上,取得统一来取
3.共享存储的种类:
单一存储系统就是NFS,适用于中小型企业,相当于阿里云的NAS服务、OSS对象存储
大型企业会用分布式存储FastDFS、Coph、GlstorFS、Mfs
大型存储厂商:EMC、Netapp
4、NFS工作原理:
启动服务,而且还要启动很多端口
NFS需要很多服务和端口,端口而且经常变化
如何让客户端找到这些端口呢?(RPC服务)
NFS服务:
1.nfs服务(进程)
2.rpc服务(对外的固定端口)
客户端请求nfs服务,先找到rpc
客户端---- >>
RPC服务--- >>
NFS服务 (向RPC服务注册启动的端口)
※实践:
1.主机
2.NFS软件列表
nfs-utils:NFS服务的主程序,包括rpc.nfsd、rpc.mountd
rpcbind:RPC主程序
3.安装 #all server and client
yum install nfs-utils rpcbind –y
4.启动服务
systemctl start rpcbind.service #启动rpcbind
systemctl enable rpcbind.service #开机自启动
[root@nfs01 ~]# rpcinfo -p 127.0.0.1
program vers proto port service
100000 4 tcp 111 portmapper
100000 3 tcp 111 portmapper
100000 2 tcp 111 portmapper
100000 4 udp 111 portmapper
100000 3 udp 111 portmapper
100000 2 udp 111 portmapper
systemctl start nfs #启动nfs
systemctl enable nfs #开机自启动
5.配置nfs
nfs配置文件 /etc/exports
EXAMPLE
#sample /etc/exports file
/ master(rw) trusty(rw,no_root_squash)
/projects proj*.local.domain(rw)
/usr *.local.domain(ro) @trusted(rw)
/home/joe pc001(rw,all_squash,anonuid=150,anongid=100)
#将远程访问的用户及所属组都映射为指定UID和GID的匿名用户
/pub *(ro,insecure,all_squash)
/srv/www -sync,rw server @trusted @external(ro)
/foo 2001:db8:9:e54::/64(rw) 192.0.2.0/24(rw)
/build buildhost[0-9].local.domain(rw)
带共享的目录 访问的主机(权限)
1)待共享的目录,存取东西的目录 例如:/data
2)访问的主机
172.16.1.7(web01) 单个主机
172.16.1.0/24 网段
172.16.1.* 网段
master 主机名
3) ()权限
rw 可读写 read write
ro 只读 read only
sync 写到磁盘才算完成,安全
async 异步写到远程缓冲区,速度快,不安全
root_squash 如果访问nfs server共享目录的用户是root,则它的权限将被压缩成匿名用户
all_squash 不管客户端是什么用户,到服务端都是nfsnobody
anonuid 匿名用户的UID
anongid 匿名用户的GID
6.更改默认NFS默认用户
例如:
[root@nfs01 ~]# useradd -u 1111 www
[root@nfs01 ~]# id www
uid=1111(www) gid=1111(www) 组=1111(www)
[root@nfs01 ~]# chown -R www.www /data/
vim /etc/exports
/data 172.16.0.0/24(rw,sync,all_squash,anonuid=1111,anongid=1111)
~[root@nfs01 ~]# systemctl reload nfs
#客户端
[root@web01 ~]# useradd -u 1111 www
[root@web01 ~]# mount 172.16.1.31:/data/ /data/
[root@web01 ~]# df -hT
172.16.1.31:/data nfs4 19G 2.2G 17G 12% /data
[root@web01 mnt]# touch new_web01
※NFS重点:
1.nfs的访问原理
2.nfs作为集群共享存储角色的搭建、部署
3.nfs的排障和高级优化
4.mount 命令的知识和参数,如-o (noatime...)
5.fstab文件知识以及fstab故障修复
6.常用命令 showmount exportfs umount(-lf) rpcinfo
7.NFS的优缺点,适合的场景