您的位置:首页 > 文旅 > 旅游 > 做一个微信小程序游戏需要多少钱_河南最新今天的消息_郑州网站推广优化_中国互联网公司排名

做一个微信小程序游戏需要多少钱_河南最新今天的消息_郑州网站推广优化_中国互联网公司排名

2024/12/23 7:58:02 来源:https://blog.csdn.net/m0_73950916/article/details/144299964  浏览:    关键词:做一个微信小程序游戏需要多少钱_河南最新今天的消息_郑州网站推广优化_中国互联网公司排名
做一个微信小程序游戏需要多少钱_河南最新今天的消息_郑州网站推广优化_中国互联网公司排名

文章目录

    • 1、传统存储与server san
    • 2、存储使用分类(存储表现的形式)
      • 1、块存储
        • 1、ceph怎么实现呢
      • 2、文件系统存储
        • 1、ceph怎么实现
      • 3、对象存储
        • 1、cpeh怎么实现
    • 3、存储的架构分类
      • 1、集中式存储
      • 2、分布式存储
    • 4、CEPH
      • 1、优点
      • 2、ceph哲学
      • 3、ceph技术
      • 4、ceph的全面优点
    • 5、CEPH存储后端组件
      • 1、Monitors(MON)
      • 2、OSD
      • 3、MGR
      • 4、MDS
    • 6、ceph访问方式
      • 1、通过ceph的api接口(librados)
      • 2、ceph object gateway(rgw)
      • 3、ceph block device(rbd块存储)
      • 4、ceph file system
      • 5、ceph访问流程(正常写入)
      • 6、异常写入
      • 7、ceph数据读取流程
      • 8、ceph的寻址流程
    • 7、ceph存储池
      • 1、存储池理解
      • 2、PG的归置组
      • 3、存储的流程
    • 2. 问题

1、传统存储与server san

  1. 传统存储

    • 指的是基于存储设备的专有的机器,用来实现特定的功能,例如san存储或者文件系统存储

    • 基于不同的操作系统实现,cifs,nfs

    • 如果坏掉的话,就需要买特定的存储盘

    • 扩容时,就需要买很多的硬盘,但是,硬盘格是有限的

  2. server san(分布式的的存储)

    • 利用多个服务器实现存储功能,通过软件来实现

    • 让专有设备变成了通用设备,不需要买专门的设备

    • 扩容时,买一个服务器,不够的时候,再买一个服务器,cpu,内存,磁盘都会得到提升

    • 管理相对比较的简单,web界面

  3. 对比

    • 从性能上面:

      • server san 集群达到一定的规模可有超越传统存储(因为随着数量的增加,内存和cpu也会扩大),server san,多台服务器的时候,可以一个数据写入多个服务器中

      • 性能的随着节点的数量增加而提升

    • 从稳定上面:

      • server san是通过网络来通信,传统存储设备通过专有的线来通信,所以的话server san稳定性上面不够,所以的话server san有一个心脏检测机制
    • 从可靠性上面:

      • 传统存储通过raid来实现可靠性,server san基于副本数量(服务器的数量)和纠删码保证可靠性

        • server san的副本就是,将一份数据写入到多个盘中,冗余性
    • 从扩展性:server san实现pb级别存储

    • 从管理性:

      • server san提供web界面,cpeh很多功能需要命令来实现
    • 从应用场景

      • 传统存储应用于金融和军工领域

      • 网络上面的存储,比如相册,图床网盘类的应用的话,使用的都是server san

2、存储使用分类(存储表现的形式)

1、块存储

  • 表现形式,在主机上是硬盘或者光盘的形式存在

  • 使用方式,分区,格式化,挂载,管理文件,文件只能存储在文件系统里面

  • 实现方式,通过san存储区域网格来实现(ip-san,fc-san),直连式存储(存储设备通过前端总线和主机直连,也就是u盘,硬盘,光盘)

  • 都称为san(存储区域网格)

1、ceph怎么实现呢
  • 通过librados上面RBD,也就是块设备

2、文件系统存储

  • 表现形式,在主机目录上就是一个共享目录

  • 使用方式,存储文件,编辑文件,删除文件,能够管理文件完整的生命周期,直接使用,nfs等服务器,通过网络连接起来,windos的的cifs也可以实现

  • 都叫做NAS网络附加存储(网络u盘),网络实现

1、ceph怎么实现
  • cephfs实现文件系统

3、对象存储

  • 表现形式,通常提供一个基于http的web接口来实现对文件的管理,通常是上传文件和下载文件

  • 使用方式,只能实现文件的上传和下载,不能编辑文件

  • 来自亚马逊的s3对象存储,openstack中的swift对象存储

  • web图床,网盘,相册类应用,如果图片,视频放在自己的服务器上面(访问的人很多的情况的话),消耗的带宽是很大的,因此需要将这个存入到第三方的存储中去

    • 带宽就是单位时间内网络可以的数据量

    • 带宽用完时(就是网络传输速率达到了上限),网络的性能会受到一下影响

      • 延迟增加了,网页加载缓慢,等待的时间更加的长了

      • 下载和上传的速度下降

      • 视频卡顿

  • 非常的高效,就是没有目录结构,是扁平化的(都有一个唯一的oid,就是索引的id),也就是一个桶,没有元数据什么的信息

  • 使用方式,ucloud.cn 中的对象存储

1、cpeh怎么实现
  • RGW实现对象存储

3、存储的架构分类

1、集中式存储

  • DAS:直连式存储(Direct Attached Storage),直接与主机相连的存储设备。它依赖于服务器,本身是硬件的堆叠,不带有任何存储操作系统。现在常见的DAS设备:硬盘座带上 N个硬盘。

  • NAS:网络连接式存储(Network Attached Storage),存储设备直连网络,NAS设备和DAS设备不同在于,NAS设备一般带有存储操作系统。如,cifs,nfs,表现为一个目录,小文件的传输

  • SAN:存储网络(Storage Area Network),可以说是一种网络基础设施。SAN和NAS的区别主要在于:SAN针对海量、面向数据块的数据传输,而NAS则提供文件级的数据访问功能。成本非常的高

img

2、分布式存储

  • glusterfs,分布式文件系统,多个节点,不能实现块存储和对象存储

  • ceph,分布式存储

  • moosefs

4、CEPH

1、优点

  1. 开源统一的存储解决方案(三个都有实现的方式),典型的软件定义存储(SDS软件定义存储)

  2. ceph可以同时提供三大存储应用,也就是ceph可以同时提供块存储,文件系统存储,对象存储

  3. ceph的所有组件都支持集群化部署,不存在单节点的部署,整套集群可以扩展到PB级别

2、ceph哲学

  1. 帮助企业摆脱昂贵的设备,让专用设备变成了通用设备,来提供存储能力

  2. 所有组件都必须运行在通用设备上(就是些廉价的设备)

  3. 所有组件都可以扩展,不存在单点故障

  4. 所有组件都拥有一定自我修复和自我管理能力

    • 有一个节点上面坏了的话,自动丢弃,当这个节点好了的话,就自动将之前的数据拷贝过去

3、ceph技术

  1. ceph本身是一个对象存储(ceph的RADOS)

    • 使用的块设备,是通过很多的对象拼接成一个块提供的,文件系统,也是一样的,格式化对外提供了

    • 性能最高的是直接使用对象存储,因为不需要进行多次的封装

  2. CRUSH算法

    • 决定数据落在哪一个盘上面

    • crush算法负责,集群的自我扩展,数据的自恢复(数据再平衡,数据的故障恢复)

  3. 没有中央节点,客户端通过crush算法,得出对象存储的位置(也就是存储节点和OSD节点)

  4. 客户端和存储节点直接通信,不经过第三方,因此不存在单点故障

4、ceph的全面优点

  1. 可以根据crush算法动态调整架构,比如有一个卷加入进来了,可以自动的进行扩容

  2. 可以快速的定位和响应故障,根据crash

  3. 没有元数据位置服务器和中央节点,对象存储都是对象没有元数据

  4. 客户端和ceph直接进行通信

  5. 支持多客户端并行访问,同时提供三大存储服务

  6. 所有的存储设备都是独立进程运行,互补干扰

  7. 数据自我保护,自我复制

5、CEPH存储后端组件

1、Monitors(MON)

  • 维护集群状态的map,唯一的访问入口,因为mon本身是一个集群

  • 保存一份集群状态映射来维护整个集群的健康状态,分别为每个组件维护映射信息,包括OSD map,MON map,PG map和CRUSH map

  • 所有集群节点都向MON节点汇报状态信息,分享他们状态中的任何变化

  • ceph monito不存储用户数据,有自己的服务的缓存数据,可以丢弃的

  • mon需要配置寄数个,只有超过半数正常,ceph才能运行访问

2、OSD

  • 唯一存储用户的数据的组件,存储的都是对象,数据以对象的形式存储在osd上面

    • 将一个视频存储在上面,先要进行切片,以对象的形式存储
  • 处理数据复制,恢复和再平衡

  • osd与客户端直接进行通信,直接io读写

  • 一个硬盘对应一个osd,新版的ceph,osd需要使用一整块盘,使用一个逻辑卷,就是不要文件系统,直接裸设备

  • 在ceph集群中,osd具有主从关系

    • 所有的io请求都是主osd完成

    • 数据的保护和复制都是由主完成

    • 负责检查数据的一致性

    • 负责数据的平衡,再恢复

    • 现将数据写在主osd,然后主osd复制到多个从osd上面

    • 通常是一主多从的架构

    • 从osd

      • 被动的接收数据复制

      • 随时准备接替主osd的服务,主osd恢复过来后,又将称为osd

3、MGR

  • 表示一个web界面,显示集群信息

  • 通过web管理集群

  • 还有通过cephadmin模块通过命令行管理ceph

  • dashboard默认是主备模式进行部署,工作在tcp的8443端口上面

4、MDS

  • 存储供CEPHFS使用元数据,不存储数据,缓存文件的元数据

  • 当使用文件系统的时候,会得到一个缓存,这样的话效率很高,但是如果不需要文件系统的存储,可以不需要安装这个

  • 使用cephfs的时候,需要安装mds,元数据服务器,缓存文件系统的层次结构,

  • ceph的客户端通过mon得到mds的map,客户端通过mds的元数据去访问对象所在osd节点

6、ceph访问方式

1、通过ceph的api接口(librados)

  • 访问最为高效,可以操作集群中的对象

  • 有一个URL,直接与ceph进行通信 rados://池子/

img

  • librados可以模拟出RBD(块),CEPHFS。供上层的应用使用

  • RGW模拟出来,从而别的api访问的时候,转换为librados访问

  • 都是(librados)api模拟出来的,从而可以进行访问

2、ceph object gateway(rgw)

  • 对象存储网关,在librados上使用rgw实现对s3和swift主流对象存储的兼容

3、ceph block device(rbd块存储)

  • RBD存储,在librados上使用rbd提供块设备供主机使用

4、ceph file system

  • 可以同时支持多个文件系统,使用mds来进行文件访问加速

5、ceph访问流程(正常写入)

  • 客户端访问集群中的monitor,会得到集群的cluster map(mon,mgr,osd,mds等map信息),这个表包含了存储池的数量等信息

  • 客户端会根据哈希算法使用对象id和存储池的名称的出对象所在的PG

  • 客户端根据找到的PG,使用池的放置算法(CRUSH算法)得出了PG映射的一组OSD

  • 客户端通过PG-map,得出一组OSD中的主OSD节点,第一个OSD是主OSD

  • 客户端向主OSD发起IO请求,完成对象的读写,操作(客户端直接与OSD进行通信)

6、异常写入

  • 客户端访问的monitor的时候,得到了一个cluster map,然后得到了主osd发生了异常的变化,然后选举了一个备OSD变成了临时的主OSD(monitor选举出来的主OSD),然后进行写入即可,同步其他备节点

  • 主OSD恢复了,然后这个临时的主OSD进行全量拷贝到主OSD或者是增量(新数据同步到主OSD),然后临时的主OSD变成了备OSD

  • 下一次客户端IO与旧的OSD通信

7、ceph数据读取流程

  • 默认情况下,ceph的IO请求由主OSD响应,无论是读还是写,都是与主OSD建立连接的,如果想要提高集群读取的效率,可以开启从OSD读加速

8、ceph的寻址流程

  • 客户端会对文件进行切片(默认一个切片大小为4M),因此文件达到ceph的时候就已经是对象(也就是片),就会得到一个oid

  • 对象产生后会根据对象存储池中的放置规则中设置哈希算法,进行计算得出存储在池中哪一个PG上面,也就是PGID

  • PG根据池的放置规则(crush算法),来得到PG映射的一组OSD,根据PG-map找到这一组OSD中的主OSD

  • 客户端向主OSD发送起IO请求,完成对对象的写入

  • 主OSD在对象写入之后,将其同步到其他的从OSD,完成一次IO请求

7、ceph存储池

  • 存储池被称为ceph的逻辑分区,先要存储到池子里面去,然后存储到OSD里面去

  • 一套ceph可以有多个存储池,每个存储池存储一个或者多个对象,不同存储池中的对象是互相隔离的

  • 池子是隔离的

1、存储池理解

  1. 一个池子有一个或者多个hash bucket,每个hash桶可以存储一个或者多个对象,每个桶对应映射的OSD有存储池的规则决定(该规则被称为桶的放置规则),将hash桶称为归置组,简称PG(placement group)
  • 通过hash算法算出映射在哪个位置上面

  • 如果池的副本为2副本,写入的数据就要写入到2个OSD上

  • 简化了对对象的管理,如果没有这些PG的话,当有很多个对象的时候,对应的OSD的映射关系(路径)就越复杂

  • 提高搜索的速度,根据索引即可

  • 一个存储池对应多个一个或者多个PG

  • 一个PG对应一个或者多个OSD,对应OSD数量有池的规则和类型决定

  • 一个对象只能在一个PG上面,一个PG只能在一个存储池中

  • PG映射OSD是由CRUSH算法决定PG最终落盘的OSD,池的crush算法称为池的放置规则

-存储池支持配置用户的权限,让不同的池子可以拥有不同的用户访问的权限

  • 存储池中的PG数量,在新版的CEPH中默认为32个PG,并且支持PG的自我扩展(自动伸缩性),老版本的中的PG只能增加不能减少,理想状态下,单个OSD上承载的PG数量不能超过250个,生产环境下,OSD上的PG数量不能超过200个

img

2、PG的归置组

  • PG映射到一组OSD,是由Crush算法决定的(CRUSH的存储池放置规则),对象映射到PG,是由hash算法决定的,并且是由(crush存储池放置规则中的哈希算法决定的)

3、存储的流程

  • file.txt 文件存储,客户端进行切片的操作,就是默认大小为4M,

  • 到达ceph时,就已经是对象了

  • 对象映射在PG上,是通过hash算法算出来的,也就是会得到一个oid.1

  • 然后PG映射到OSD上,是通过crush算法算出来的

img

2. 问题

  • 为什么一个池子不能有一个PG呢

    • 提高存储效率,如果只有一个PG的话,对象就都只存放在一个PG上面在,就不够分散
  • 为什么PG数量决定存储池性能?

    • PG数量过多的话,1000个PG,都没有存储满,这样的话,如果要进行桶迁移的话(或者故障发生的时候),就需要大量的hash计算(每个桶都需要计算),大量的占用cpu,这样的计算没有意义,因为里面是空的吗,内容比较的少,PG过多的话,存储的对象就少一些

    • 如果PG太少的话,每个PG存储的东西非常的多,这样的话迁移的时候,就占用大量的带宽,如果带宽的承载过大,直接导致了客户端的IO出现延时或者超时

  • 为什么要做数据同步

    • ceph书数据强一致性模型,保证所有OSD数据一致性一定要同步
  • 为什么要把主OSD交出去

    • 如果某个PG的主OSD发生了变化,从OSD变成临时OSD,此时这个OSD会比其他的主OSD更多的响应集群的客户端请求,此时将会加大该OSD的负载,因此当故障的OSD恢复时,临时的主OSD会交出主的身份,让集群的OSD更加的均衡响应客户端的请求

    img

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com