分布式存储的架构以及存在的问题和解决办法2

 

今天我们继续来讲讲关于Raid和副本、分布式存储的架构以及存在的问题和解决办法,即下面四至七部分的内容:

一、存储类型

二、文件系统

三、存储介质

四、Raid和副本

五、分布式存储的架构

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

七、解决的方法

四、Raid和副本

把磁盘们相同偏移量的一块空间横向进行分割,组成一条逻辑上存储空间。

数据是先写满一条条带,再写下一条条带。一个卷可以有很多条条带组成。条带的划分应该的磁盘配置初级就完成。条带包含扇区(或块)的个数叫条带长度;每个磁盘内包含属于这个条带的扇区(或块)的个数叫条带深度。

为什么要引入条带的概念呢,是因为要解决单个磁盘一次只能同时并发一个IO和保证数据完整性。


图14

我们知道磁盘的IO实际上是磁盘寻找对应扇区地址的过程,是在磁片旋转和磁头在机械臂的控制下横向寻道的结果,而且一个磁盘一次只能完成一个IO申请,而通过条带的方式可以让多个磁盘一起协同完成任务,这种方法叫做raid0。

从理论上看磁盘越多,条带深度越小,速度就越快。

但是也不是条带深度越小速度就越快,因为深度太小,并发的概率就降低了。没有了并发,就不会提高速度了。所以一般来说当随机的小块IO多,就适当加大条带深度,当顺序的大块多,就减小条带的深度。Raid0体现的是人多力量大的哲理。

但是如果raid0的方式下有一块磁盘出现故障了,那数据的完整性被破坏了,数据不可用了。为了确保数据完整性,所以就有了raid1。

raid1就是将一份数据写到2个物理磁盘上,即数据有镜像,二数据副本。就算坏了一块盘也不会导致数据不可用。和单块盘比Raid1方式写的慢,读快,道理很明显。

将raid0和raid1组合起来,就可以吸取各自的优点,但是要注意组合的顺序,raid10比raid01冗余度高、数据更安全,如图:


图15

当左边的raid10系统有一块故障,底层数据是做raid1镜像的,数据的完整性没有被破坏,还可以再坏一块另外raid1组的一个磁盘。

而raid01,当底层的raid0组的磁盘坏掉一块,整个raid0组数据就无效了,所有的IO都会到剩下的raid0组,并且如果再坏一块盘,整个数据就无效了。

Raid5和raid6也是常用的raid方法。

  • Raid5最少需要3块盘,有1个数据副本和1个数据校验;即最多可以坏1块盘;

  • Raid6最少需要4块盘,有1个数据副本和2个数据校验,即最多可以坏2块盘。

这些数据副本和数据校验都均匀的打散在磁盘中。Raid5和raid6的磁盘利用率最低为66.7%和50%,是兼顾利用率和性能的方案。Raid6的安全性比raid5更好,性能差别不大。

Raid都有一定的计算量,来决定这些数据块存放的磁盘、计算出校验数据,或根据校验数据计算出数据。这些都需要CPU和内存资源。为了减少对主机CPU和内存的压力。现在一般在主机的PCI总线上配置raid卡,硬盘都连接在raid卡下。

Raid 卡其实就是一台小型的计算机,有CPU、内存和缓存,减轻了主机的负担。但是raid卡不能跨越主机,所以在分布式存储中,网络raid就不能利用本地的raid卡,只能用主机的CPU和内存。

综合各种因素,分布式存储一般都采用副本的方法。

五、分布式存储的架构

一般来说,分布式存储不管是文件存储、对象存储还是块存储的基本架构都是大同小异的。即客户端或应用端、元数据(MDS)服务器和数据节点服务器。


图16

客户端和元数据服务器之间交互是“信令交互”,而客户端到数据节点是“媒体交互”。元数据服务器或通过数据节点服务器获取各节点服务器的基本配置情况和状态信息。

比如,客户端需要读取某一个文件的信息,客户端会将相应的要求发给元数据服务器:“喂!我需要XXX,存在哪里了”,元数据服务器查询后回答“你到xxx服务器的xxx地址+xxx服务器的xxx地址取”。

客户端拿到这个指示后,向这2台服务器发出指令,数据节点获得指令后,将相应的数据返回给客户端。

大家可能都会奇怪,为什么块存储、对象和文件的架构都是一样的。有什么区别呢?

我们在前面基础知识讲述中,块存储是一种裸设备,它是将存储设备以“块”的方式直接提供给客户,由客户自己的操作系统里的文件系统进行管理。

  • 分布式块存储里是没有文件系统的,是通过客户端直接将最简单明了的命令传递给存储的“块”来执行。

  • 对象存储和文件存储虽然结构类似,但并不将存储底层的“块”直接提供出来,而是通过隐藏着一个文件系统,包装成为“文件”或“对象”提供出来。

这些存储“不挑”操作系统或终端,最终执行命令的是存储里面的文件系统操控存储执行的,所以共享

  • 1
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值