数据服务-第2个服务-存储服务

复盘

  • 网站全网备份.

    • 脚本,定时任务.
    • rsyncd服务端(873)与客户端
  • rsync漏洞及处理升级:https:rsync.samba.org/
    
    • 存储服务
      • 为何使用存储

image

image

1.概述

  • 存储: 用于存放用户上传的内容(数据),一般应用在网站集群中.

  • 为何用?

    • 如果不使用存储,用户上传的数据就直接存放在网站服务器上了,用户下次访问就可能找不到
    • 如果使用存储,用户上传的内容存放在存储上面,用户访问就会访问存储.
  • 位置: 网站后排.

image

image

2.存储分类

  • 存储的要求:空间大

image

3.NFS原理

  • NFS (Network File System): 网络文件系统

  • 2个服务组成

    • NFS服务
    • rpcbind(portmap)服务

image

关于RPC的说明:

RPC远程过程调用,本质起到调度作用.

rpc服务从CentOS 6开始叫rpcbind,之前叫portmapper.

4.极速上手指南

4.1.环境说明

image

4.2.服务端部署

  • 部署
yum install -y rpcbind nfs-utils
#utils工具集合
  • 启动
#启动rpcbind
systemctl enable rpcbind
systemctl start rpcbind
rpcinfo -p
#启动nfs
systemctl enable nfs
systemctl start nfs
rpcinfo -p
  • NFS服务端的配置
cat /etc/exports
/data/     172.16.1.0/24(rw)
#配置表示: 172.16.1.0/24网段对NFS服务端的/data/目录,拥有rw
读写权限.
systemctl reload nfs

reload表示优雅重启,不会断开已有连接.

restart在nfs中,会导致客户端一段时间的夯住

  • NFS服务端后续配置:创建数据目录与修改权限
chown nfsnobody.nfsnobody   /data/
reload下nfs或restart下.
  • NFS服务端本地进行测试:使用(挂载)
#挂载存储
mount -t nfs  172.16.1.31:/data/   /mnt/
  • 排错指令: rpcinfo -p ip 和showmount -e ip

rpcinfo -p 检查nfs服务端的rpc信息. 主要检查是否有NFS信息即可.

showmount -e ip 检查nfs服务端共享信息(共享哪些目录)

检查NFS共享了哪些目录

#查看nfs服务端共享哪些目录
showmount -e ip或不写  #ip为nfs服务端ip
[root@nfs01 ~]# showmount -e
Export list for nfs01:
/data/ 172.16.1.0/24
[root@nfs01 ~]# showmount -e 172.16.1.31
Export list for 172.16.1.31:
/data/ 172.16.1.0/24
[root@nfs01 ~]# showmount -e nfs01
Export list for nfs01:
/data/ 172.16.1.0/24

4.3.客户端挂载

yum install -y nfs-utils 
mount -t nfs 172.16.1.31:/data  /mnt

故障案例:

mount: wrong fs type 错误的文件系统类型,客户端无法识别nfs.

需要在客户端安装nfs-utils,不用启动.

5.NFS相关的文件

image

  • nfs客户端永久挂载
方法01 挂载命令写入到/etc/rc.local  
chmod +x /etc/rc.d/rc.local

方法02 按照/etc/fstab格式要求书写
设备                 挂载点         文件系统类型   挂载参数   是否检查 是否备份
172.16.1.31:/data/   /upload/     nfs            defaults   0       0

温馨提示:

如果配置了nfs客户端永久挂载,未来要优先启动nfs服务端.

6.NFS服务端的配置文件

了解:

/etc/exports 由来nfs管理systemctl命令的背后是在调用exportfs命令

6.1配置文件格式

image

6.2NFS配置文件中网络配置

image

6.3服务端核心配置⭐⭐⭐⭐⭐

image

6.4服务端用户压缩

  • NFS客户端挂载NFS服务端后,创建的文件默认属于nfsnobody,这种操作就叫用户压缩(映射).
  • 用户压缩是通过NFS服务端的配置实现.

image

image

6.5用户压缩案例

  • 用户压缩案例: 设置/nfsdata共享目录,匿名用户为www. 客户端挂载到/upload-video/

  • www用户的uid,gid:1999 (服务端,客户端)

  • 流程

    • 部署nfs服务,rpcbind

    • 添加用户www,指定uid,gid

    • 修改服务端配置文件

    • 客户端进行挂载测试

#1. 所有主机(nfs服务端和nfs客户端)添加用户 www uid统一1999 1999
#2. nfs服务端配置
#3. nfs客户端挂载


#1. 所有主机(nfs服务端和nfs客户端)添加用户 www uid统一1999 1999
groupadd -g 1999 www
useradd  -u 1999 -g www  -s /sbin/nologin  -M www

#2. nfs服务端配置
cat /etc/exports
/data/     172.16.1.0/24 (rw)
/nfsdta/   172.16.1.0/24 (rw,all_squash,anonuid=1999,anongid=1999)

#3. nfs客户端挂载
mount - nfs 172.16.1.31:/nfsdata   /upload-video/
du -h /upload-video/
touch /upload-video/lidao.txt
ll /upload-video/

6.6NFS优化

  • 终极优化目标:

    • 尽可能让用户的请求在访问网站架构之前解决掉。(尽可能把用户的请求往前推)
  • NFS优化: 硬件(物理服务器+nfs服务)

  • NFS安全优化: 客户端挂载 只能上传,无法执行

mount  -o noexec,nosuid,nodev  -t nfs
172.16.1.31:/data   /video/
#这几个是客户端挂载选项
noexec 挂载的nfs目录中如果有命令,无法运行。
nosuid 带有suid的命令
nodev  带有特殊属性的文件。
  • NFS有单点故障,选择其他存储: 公有云OSS(阿里云) (对象存储在代码里面调用)

  • 课后研究分布式存储:GlusterFS(GFS),MinIO

posted @ 2025-04-25 22:14  殇ベ墨~  阅读(12)  评论(0)    收藏  举报