博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
从传统运维到云运维演进历程之软件定义存储(五)中
阅读量:5958 次
发布时间:2019-06-19

本文共 1771 字,大约阅读时间需要 5 分钟。

上篇文章主要讲了常见的几种数据保护方式,本文我们主要讲下Ceph有哪些常见的灾备设计方式。Ceph在灾备方面有三大神兵利器:故障域、RBD异地灾备、RGW异地灾备。

关卡五:Ceph灾备神兵利器-故障域

重要度:五颗星

转眼六篇文章过去了,还记得大明湖畔(本系列一)的运维小哥吗?勿忘初心,咱们还是回到最初的运维小哥,运维小哥经历了硬件选型、部署、调优、测试的一系列转型的关卡,终于就要到最后的上线了。但是往往在生产环境的要求都是无单点、高可用的架构设计,避免出现灾难故障影响业务正常运行。运维小哥最初的梦想搭建一个Ceph存储集群,对接云服务,底层存储实现高可用的数据访问架构。在正式上线之前,需要将集群架构部署好,并对存储集群进行服务器断电、机架断电等数据高可用测试,这时候就需要Ceph灾备神器【故障域】。现有24台服务器,用于搭建Ceph存储集群。

根据存储管理平台的需求和集群规模,需要实现:

将物理环境按高可用的拓扑架构规划好,并且完成存储集群部署。实现存储资源的统一管理,在降低存储管理难度的同时,提高管理效率;通过软件定义存储保证存储数据的高可用,从而经济地利用存储资源提高业务连续性;

根据现有物理资源规格及配置,在保证最大安全性及空间利用率的情况下合理规划存储资源池。将24台服务器分别规划在3个机架上,每个机架8台服务器,每个机架设置为一个故障域,创建一个3副本存储资源池,数据副本自动分布到不同故障域中,也是分布在不同机架上,保障数据安全。可以为机架、服务器、硬盘提供故障恢复能力。无论磁盘、服务器发生硬件故障,甚至整个机架发生故障,也不会造成停机或数据丢失。这与Ceph的自身设计Crush Map以及rule set有关,后面会具体讲述。

物理拓扑规划:每个机架相当于1个故障域,向每个机架分配相同数量、具有统一配置的主机。将24台服务器平均的分配到3个机架中,每个机架中8台服务器。

拓扑图

1

注:我这里说的1个机架相当于1个故障域并不代表只能这样做,要根据自己实际情况来规划故障域和Crush Map。

技术实现

Crush Map包含集群里所有存储设备的列表,和一些组织这些设备形成物理层级架构的Buckets,以及一套指定复制数据策略的规则。Buckets分不同的类型,高层级的Buckets可以聚合低层级的Buckets。比如一个典型的Bucket层级为OSD, Host, Rack, Row, Room, DC, Root。对于由这些buckets类型组成的一张Crush Map,其结构如下图所示,形成一棵树形结构。对于某种类型的Bucket,Crush算法可以将数据及其副本放置于该类型的不同的Bucket中,形成故障域。即使该故障域中有任何设备损坏,数据也是安全和可用的,从而来避免单点故障。

2

如果将Bucket跟集群物理架构映射得当的话,Crush Map可以很好的用来定位集群内的物理设备问题。比如,如果集群里有个OSD对应的硬盘坏了,可以从Crush Map中很容易的定位其物理位置,从而可以快速的进行更换。又比如,如果在Crush Map中看到一个host下面的所有OSDs全部down了,则可能的问题会出现在这个host电源断了或者是网络断了,而不会是在OSD自身身上。

Bucket除了有类型之外,还有权重。可以为最低层级的Bucket,比如OSD,定义一个权重。根据Bucket层级的树形结构,高层级的Bucket的权重则为其下面所有子树层级的权重之和。OSD上的权重代表了该OSD上存储数据的比重。如果为0,其上将不会存储任何数据。而如果一个OSD的权重为1,而另一个为2的话,第一个OSD上存储的数据量将只会有第二个OSD上数据量的一半。权重可以用来代表一个OSD对应的物理磁盘的真实容量。它还可以被用来减轻一个OSD上的负载。

具体的Crush Map操作查看官网:

 

总结

为保证存储数据的高可用,需要在前期做好集群部署规划。将同一个机架上服务器组成一个故障域,将数据副本分布存储在不同的故障域中,可以确保无论磁盘、服务器发生硬件故障,甚至整个机架出故障,也不会造成停机或数据丢失。

希望本关卡能够给予Ceph新手参考请读者见仁见智预知后事如何请期待《 架构灾备设计》。

转载地址:http://rlkax.baihongyu.com/

你可能感兴趣的文章
扩展easyui 的表单验证
查看>>
MySQL锁之一:锁详解
查看>>
选择29部分有用jQuery应用程序插件(免费点数下载)
查看>>
JS类的封装及实现代码
查看>>
HDOJ 3480 Division
查看>>
BeanFactory、ApplicationContext、ApplicationContextAware区别
查看>>
关于WEB Service&WCF&WebApi实现身份验证之WCF篇(2)
查看>>
HDU2586 How far away ?(LCA模板题)
查看>>
Ehcache详细解读(转)
查看>>
Android游戏之平台接入的一点记录
查看>>
源码编译php5.4 ./configure参数
查看>>
13、Cocos2dx 3.0游戏开发找小三之3.0中的Director :郝萌主,一统江湖
查看>>
超人学院Hadoop大数据技术资源分享
查看>>
Oracle迁移:Linux->Windows
查看>>
C# 将MSMQ消息转换成Json格式 【优化】
查看>>
传纸条(一)(双线程dp)
查看>>
bootstrap精简教程
查看>>
【转】c++继承:公有、私有、保护
查看>>
实现经常使用的配置文件/初始化文件读取的一个C程序
查看>>
Intellij idea断点 Debugger slow: Method breakpoints my dramatically slow down debugging
查看>>