加入收藏 | 设为首页 | 会员中心 | 我要投稿 新余站长网 (https://www.0790zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 安全 > 正文

分布式存储的架构、隐患及解决方法

发布时间:2021-01-09 22:44:03 所属栏目:安全 来源:网络整理
导读:《分布式存储的架构、隐患及解决方法》要点: 本文介绍了分布式存储的架构、隐患及解决方法,希望对您有用。如果有疑问,可以联系我们。 作者简介: 顾炯 中国电信浙江公司中国电信云计算实验室、SDx联合技术开放实验室专家委员.作为第一完成人,多个项目获得

OSD和monitor之间相互传输节点状态信息,共同得出系统的总体工作状态,并形成一个全局系统状态记录数据结构,即所谓的cluster map.这个数据结构与特定算法相配合,便实现了Ceph“无需查表,算算就好”的核心机制以及若干优秀特性.

图21

但数据的的组织方法是不同的.首先ceph的核心是一个对象存储,是以对象为最小组织单位.

1、首先文件是被映射成为一个或多个对象.

2、然后每个对象再被映射到PG(Placement Group)上,PG和对象之间是“一对多”映射关系.

3、而PG会映射到n个OSD上,n就是副本数,OSD和PG是“多对多”的关系.

由若干个monitor共同负责整个Ceph集群中所有OSD状态的发现与记录,并且共同形成cluster map的master版本,然后扩散至全体OSD以及客户端.

OSD使用cluster map进行数据的维护,而客户端使用cluster map进行数据的寻址.

Google三大宝之一的“GFS”是google对象存储的基础.

图22

核心不同是数据的组织架构:master服务器(即元数据服务器)保存了文件名和块的名字空间、从文件到块的映射、副本位置,由客户端来查询.是一个典型的信令和媒体分开的架构.

六、分布式存储存在的问题

分布式存储一般情况下都是靠“副本”来确保数据的安全性和完整性.每块盘记录的数据内容都不一样,当某一块盘出现问题,都需要从其他不同盘内的数据块中进行快速的数据重构.

数据重构是需要时间的,如果大量盘同时故障,将会发生什么?另外,OSD的扩容,也会导致数据的迁移,也会影响存储.

分布式存储一般都采用副本的方式来确保数据的安全性.写入磁盘前不需要进行额外复杂的计算,就可以将数据写入磁盘,是最快速的方式.是一种空间换时间的方法,即想得到较好的存储性能,就采用副本的方式.

当有副本出现丢失的情况,系统就会启动数据重构.一般情况下,用于生产的分布式存储采用的是3副本.副本一般放置在不同机架、不同服务器主机的硬盘上.3副本就是放置在3台不同的服务器的硬盘上.

而每个用户的数据是由很多个副本均匀的分布在存储资源池内的所有主机上的.所以,可以认为任意一台服务器会存储着所有用户数据的某些数据副本,一台服务器出现故障,会影响所有用户.

从理论上来说,副本方式可以允许n-1台的服务器出现故障,n是副本数.比如3副本,不管这个分布式存储资源池内有几台服务器组成,就只能允许2台服务器出现故障.2台服务器出现故障,其实这个存储就很危险了.

当数据的持久化层OSD出现故障的时候,必须启动副本的恢复工作,即要在短时间内恢复完整的副本数.不同存储的结构、算法不同恢复的时间长短也不一样.

但从副本恢复所使用到的磁盘、网络等基础设备是一样的.今天我们从基础角度上来分析,看看副本的恢复到底需要多少时间和当新增加OSD节点需要多长时间,并看看因为采用了X86服务器带来的隐患.

我们在实验室内做了实验,具体了解一下:

试验环境:2台万兆交换机、4台X86服务器(12块3T 7200转 SATA盘+1块1.2G PCIeSSD).包括所有副本在内,每块磁盘有1T数据,共有48T数据.

实验一:无IO情况在,拔出一个磁盘

实验二:在存储上建立了4个360G的虚拟卷,加载少量的IO,即8K随机读写,队列深度为1,总iops为2600左右.

在拔出一个磁盘后,在15分钟后(可配,延迟15分钟是为了防止无操作、无报警等),系统开始对缺失的副本进行重构,得出结果:

图23(为了便于计算1T=1000G)

分析:

(编辑:新余站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读