Linux企业架构(存储服务)

1.1概述

  • 存储:用户存放上传的内容(数据),一般应用在网站集群中
  • 为何用?
    1. 如果不使用存储,用户上传的数据就直接存放在网站服务器上,用户下次访问可能找不到
    2. 如果使用存储,用户上传的内容存放在存储上面,用户访问就会访问存储

位置:网站后排
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.2 存储分类

存储要求:空间大

分类 说明
硬件存储 硬件存储,硬盘多,使用的时候挂载 (我也可以自己部署)
开源软件 普通存储NFS(Linux),samba (windows)/分布式存储GlusterFS,Ceph,FastDFS;MinIO(高性能云原生数据,大数据等)–k8s配合
云产品 阿里云OSS(对象存储)七牛云存储(程序代码测试),腾讯云COS,华为oss

NFS原理

  • NFS(network file system):网络文件系统
  • 2个服务组成
  1. NFS存储
  2. rpcbind(portmap)服务

在这里插入图片描述

1.RPC远程过程调用,本质起到调度作用
2.RPC服务从Centos 6开始叫rpcbind,之前叫做portmapper

1.3操作

环境说明

环境 主机
nfs01服务端 nfs01192.168.28.131/172.16.1.31
nfs客户端 web01 192.168.28.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
在这里插入图片描述

NFS服务端配置

cat /etc/exports
/data/ 172.16.1.0/24(rw)
#配置表示这个网段对NFS服务端的/data目录,并且拥有读写的权限

#不推荐使用restart,这里我们在NFS推荐使用reload(重新加载配置文件)

systemctl reload nfs

reload与restart区别?

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

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

在这里插入图片描述
在这里插入图片描述

NFS服务端后续配置

创建数据目录与修改权限

chown -R nfsnobody.nfsnobody /data/
reload下的nfs或restart下

在这里插入图片描述
NFS服务端本地进行测试:使用(挂载)

在这里插入图片描述

挂载存储
mount -t nfs 172.16.1.131:/data/ /mnt/

排错指令:rpcinfo -p ip 或 showmount -e ip

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

showmount -e ip 检查nfs服务端共享信息(共享那些目录)
在这里插入图片描述

客户端挂载

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

故障案例:
mount wrong fs type 错误的文件系统类型,客户端无法识别nfs
需要在客户端安装nfs-utils,不用启动

在这里插入图片描述
在这里插入图片描述
web服务器进行创建目录
在这里插入图片描述
nfs01存储服务器是否有web服务器创建的目录
在这里插入图片描述
在web服务器创建目录(相当于在上传文件)–文件就放在了存储服务器上面

如果在web服务器上删掉了文件,存储服务器是否还有文件呢?

  • 测试发现我在web服务器上cd /mnt/执行rm -f *删掉了我上传web服务器上的文件–》在存储服务器nfs01上进行查看发现没有了文件
  • 挂载的本质在这里相当于直接用网线将nfs01存储服务器和web01服务器连接,所有的操作此时都是针对于data目录(删除或者增加)
  • 所以用户对web01上的目录进行增删改查,也就是对存储器服务器进行增删改查

NFS相关的文件

nfs服务端或客户端 说明
nfs服务端配置 /etc/exports(配置文件里面的)-》/var/lib/nfs/etab(当前使用的nfs服务端配置)
NFS客户端配置 客户端:mount /etc/rc.local或 /etc/fstab -》/proc/mounts(当前系统的挂载情况)

在这里插入图片描述
在这里插入图片描述
nfs客户端永久挂载

方法1: 挂载命令写入到/etc/rc.local
chmod +x /etc/rc.d/rc.local
方法2: 按照/etc/fstab格式要求进行书写
设备 挂载点 文件系统类型 挂在参数 是否检查 是否备份
172.16.1.131:/data/ /upload/ nfs defaults 0 0
注意:
如果配置了nfs172.16.1.131这个挂载,开机的时候会自动寻找nfs客户端进行自动挂载,但是有一个前提;若把nfs客户端关闭了就不能,若关闭了并进行重启,它就会在开机的时候进行卡住(1-2分钟崩掉)

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

NFS服务端的配置文件

/etc/exports
第一部分 第二个部分
共享目录 网段(选项)

NFS配置文件中网络配置

网段
172.16.1.7 指定ip
172.16.1.0/24 最常用

baidu.com 指定域名

服务端核心配置

服务端配置选项 说明
rw 可以读写共享目录
ro 只读read only
sync 同步,只要用户上传,就把数据写到磁盘上
async 异步,用户上传的数据,nfs先临时存放到内存中,过一段时间写入到磁盘,并发高,数据可能丢失
  • 同步与异步

​ 同步:按流程次序进行

​ 异步:对于相同的操作整合在一起,并且集体执行并且带走集体里面整体的内容执行

同步在网站架构中指的是直接访问对应的资源

异步在网络架构中利用各种缓存达到用户优先访问缓存,缓存没有再访问对应的服务

服务端用户压缩

在这里插入图片描述

  • NFS客户端挂载NFS端后,创建的文件默认属于nfsnobody,这种操作称为用户压缩(映射)

  • 用户压缩是通过NFS服务端的配置进行实现的
    在这里插入图片描述
    root_squash 如果是客户端root用户访问,到lnfs服务端会被压缩(默认)

no_all_squash 如果客户端不是root用户访问,则不进行压缩(保持原始用户,默认)

all_squash 所有用户都进行压缩(不是太安全)

anonuid和anongid 用于指定压缩的匿名用户(默认是nfsnobody用户) anonuid=65534,anongid=65534

服务都安配置选项 说明

用户压缩/用户映射:NFS客户端访问NFS共享目录时候变成了什么用户

nfs客户端用户 nfs服务端用户
root -----》 nfsnobody

在这里插入图片描述

用户压缩案例

用户压缩案例:

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

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

流程:

  1. 部署nfs服务,tpcbind
  2. 添加用户www,指定uid,gid
  3. 修改服务端配置文件
  4. 客户端进行挂载测试
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    所有主机(nfs服务端和nfs客户端)
    添加用户www uid
    1999 1999

nfs服务端配置
nfs客户端挂载
所有主机(nfs服务端和nfs客户端) 添加用户www uid

1999 1999 groupadd -g 1999 www useradd -u 1999 -g www -s
/sbin/nologin -M www

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

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

NFS优化

终极优化目标:

  • 尽可能让用户的请求在访问网站架构之前解决掉。(尽可能把用户的请求往前推)

  • 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
  • 27
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值