第二篇:存储服务

存储服务简介

  存储服务概述⭐⭐

  • 存储服务:用于存放用户上传数据
  • 为何使用存储服务
    • 如果不使用存储服务,则用户上传的数据直接存放在网站服务器上,可能导致数据丢失或难以访问
    • 如果使用存储服务,则可以集中管理用户上传的数据,确保数据的安全性和可访问性

  存储分类

分类 说明
硬件存储 使用时进行挂载
软件存储

普通存储:NFS(Linux)、Samba(Windows)

分布式存储:GlusterFS,MinIO

云存储 阿里云OSS(对象存储)、七牛云存储、腾讯云COS

  NFS(网络文件系统)存储原理⭐⭐

  systemctl reload 与 systemctl restart

特征 systemctl reload systemctl restart
操作特性 重新加载配置文件,不终止服务 完全停止服务后重新启动
影响用户 不中断正在运行的操作 中断正在运行的操作
使用场景 更新配置,不想中断服务 服务出现故障或进行较大的改动

NFS极速上手指南

  环境说明

环境 主机
nfs服务端 nfs01  10.0.0.31/172.16.1.31
nfs客户端 web01  10.0.0.7/172.16.1.7
通过挂载使用

  服务端部署及测试⭐⭐⭐⭐⭐

# 部署服务
    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

# 配置
    cat /etc/exports
    /data/ 172.16.1.0/24(rw)
        /data/  # 共享目录的路径
        172.16.1.0/24  # 允许172.16.1.0/24这个网段的用户访问共享目录
        (rw)  # 允许网路中的客户端对/data/目录进行读写操作
# 重启该服务
    systemctl reload nfs

# 共享目录权限设置
  mkdir -p /data/
  chown nfsnobody.nfsnobody /data/    只要安装nfs服务,则自动创建nfsnobody用户
  重启nfs服务

# 查看nfs服务端共享哪些目录
  showmount -e IP地址
  showmount -e 主机名
  showmount -e

# 客户端/本地挂载存储
  mount -t nfs 172.16.1.31:/data/ /mnt/
  df -h
  客户端挂载时,需要下载nfs-utils软件包,否则报wrong fs type错误

  NFS相关文件

NFS服务端配置 /etc/exports(配置文件)——>/var/lib/nfs/etab (当前使用的nfs服务端配置)
NFS客户端配置 /etc/rc.local 或 /etc/fstab——>/proc/mount (当前系统的挂载情况)

NFS服务端配置文件

  /etc/exports 配置文件格式⭐⭐⭐

共享目录  
域名或网络地址 网段
指定ip
指定域名
选项 rw  读写
ro  只读
sync  同步写入(一个进程等待上一个任务完成后才能继续执行)
async  异步写入(允许一个进程同时处理多个任务)

  服务端用户压缩⭐⭐⭐⭐⭐

  • 用户压缩/用户映射:NFS客户端挂载NFS服务端后,创建的文件默认属于nfsnobody用户
  • 用户压缩通过NFS服务端的配置实现
服务端配置选项-用户压缩案例 说明
root_squash 如果客户端是root用户访问,则到了nfs服务端会被映射
no_all_squash 如果客户端不是root用户访问,则到了nfs服务端则不进行映射(保留原始用户)
all_squash 所有用户都进行映射(不安全)
anonuid anongid 用于指定映射的匿名用户(默认是nfsnobody用户)

  用户压缩案例⭐⭐⭐

  • 设置/nfsdata 共享目录,匿名用户为yuanxiaojiang ,客户端挂载到/upload-video/
  • yuanxiaojiang用户的uid=2024,gid=2024(客户端、服务端)
  • 流程
    • 服务端部署rpcbind,nfs服务
    • 客户端、服务端添加用户yuanxiaojiang,指定uid,gid
    • 修改服务端配置文件
    • 客户端进行挂载测试
# 所有主机(nfs服务端和nfs客户端)添加用户
    groupadd -g 2024 yuanxiaojiang
    useradd -u 2024 -g yuanxiaojiang -s /sbin/nologin -M yuanxiaojiang

# nfs服务端配置
    [root@nfc01 ~]# cat /etc/exports
    /data/ 172.16.1.0/24(rw)
    /nfsdata/ 172.16.1.0/24(rw,all_squash,anonuid=2024,anongid=2024)

# 修改共享目录的权限
    chown yuanxiaojiang:yuanxiaojiang /nfsdata/

# nfc客户端挂载、测试
    mount -t nfs 172.16.1.31:/nfsdata /upload-video/
    touch /upload-video/{01..04}.txt

  NFS优化⭐⭐⭐

  • NFS优化目标:尽可能让用户的请求在访问网站架构之前解决(CDN、缓存)
  • NFS安全优化:客户端挂载时,只能上传,无法执行
mount -o noexec,nosuid,nodev -t nfs 172.16.1.31:/data/ /video/

# noexec:禁止在挂载的文件系统上执行可执行文件(命令)
# nosuid:关闭set-user-identifier(设置用户ID)与set-group-identifer(设置组ID)设置位
# nodev:禁止在挂载的文件系统上解析设备文件

 

posted @ 2024-11-30 13:38  猿小姜  阅读(0)  评论(0编辑  收藏  举报