炼数成金 门户 大数据 存储 查看内容

我的Ceph存储历险记2:为菜鸟准备的架构说明

2017-12-5 16:34| 发布者: 炼数成金_小数| 查看: 15240| 评论: 0|原作者: 王存鹏 译|来自: Ceph社区
摘要: 在前面本系列的第一部分中,我为大家介绍了Ceph这一开源横向扩展对象存储。在这第二部分,我将要为大家解说Ceph的架构。我花了好一阵子才完全理解Ceph是如何构建的、它都包含哪些组件、这些组件都有哪些功能。同样地 ...
存储 Hadoop 服务器 集群 案例
 在前面本系列的第一部分中,我为大家介绍了Ceph这一开源横向扩展对象存储。在这第二部分,我将要为大家解说Ceph的架构。我花了好一阵子才完全理解Ceph是如何构建的、它都包含哪些组件、这些组件都有哪些功能。同样地,我将会尝试给你们用简单的方式进行解释(即使它的原理确实非常简单),这样你就不必再像我那样花费那么长时间。

为菜鸟(比如我)准备的Ceph架构
首先,信用是应得的信用。刚开始阅读Ceph官网上的所有文档时,有一段时期确实感到非常困难。许多博客文章,以及他们的邮件列表通常都假设你已经对Ceph有了一定的了解,所以很多概念直接就抛了出来。通过一番搜索,我发现了这个视频,并且从这个视频中学到了很多Ceph架构的基础知识。这个视频同样是由第一部分中来自Inktank(现在是红帽的一部分)的Ross Turk做的演讲,它只有37分钟,你真的应该好好看看它。

这个视频在帮助你理解Ceph如何工作方面确实很棒,我都不用再增加任何内容了。Inktank的人应该将这个视频放到他们的首页上。

我的应用案例:块设备集群
就像你在视频中学到的那样,有许多Ceph存储集群的使用案例。无论如何,记住我们在第一部分想达成的目标:使用Ceph作为通用目的的存储服务器,然后作为设备驱动器挂载到一个或多个Linux机器,然后你什么都可以往上扔。在我的案例中,主要用作所有备份的Veeam存储仓库。

因为这一点,我们将会在下章开始从这一特定应用案例的角度进行设计:我们将会主要使用Ceph的块存储功能,因此如果你对它们的文件系统(CephFS)或者纯对象存储方式(Rados Gateway)访问Ceph(librados)更感兴趣,你较好看看其他资源资料。下面的设计使用Ceph的RBD(Rados Block Device)技术。


为了创建集群,我使用了6+1个不同的Linux服务器(运行在我的vSphere实验环境中的虚拟机)。每台机器只运行Ceph RBD解决方案中的一个角色:

3个服务器作为运行OSD(Object Storage Daemon)的机器,每台机器上有多个OSD,每个OSD对应一个磁盘。另外3个机器作为我的MON(Monitor Server)服务器。最后还有一个Ceph管理服务器(本设计中没有进行描述),该服务器主要用于控制和配置所有已有节点。这些角色可以以不同的方式混合使用:例如,同一台服务器可以既是OSD节点,也可以是MON节点。管理控制台也不必专门占用一台机器。但是如果你想学习Ceph如何工作, 并且最重要的是后面将要学到的较佳扩展实践,我认为较好一开始就选择正确的方式设计解决方案。

最终结果如下图所示:

在RBD的存储方式下,每个OSD被划分成了一些4MB的块。进入集群的任何文件或者块都会被分割成4MB的块,写入集群中不同的OSD上,并且再复制一次(2副本)以确保数据的冗余。但从集群外面看来,服务器挂载的RBD块设备是的。在我的案例中,这个所谓的服务器是我的Veeam仓库,但是你可以连接你想要连接的任意服务器到RBD集群,仅仅是简单的在集群中给这个服务器分配一个额外的卷(下章会对这部分进行展开)。Linux内核从2.6.39版本开始源生支持Ceph,因此Linux服务器会将RBD的卷挂载为本地设备。

欢迎加入本站公开兴趣群
软件开发技术群
兴趣范围包括:Java,C/C++,Python,PHP,Ruby,shell等各种语言开发经验交流,各种框架使用,外包项目机会,学习、培训、跳槽等交流
QQ群:26931708

Hadoop源代码研究群
兴趣范围包括:Hadoop源代码解读,改进,优化,分布式系统场景定制,与Hadoop有关的各种开源项目,总之就是玩转Hadoop
QQ群:288410967

鲜花
1

握手

雷人

路过

鸡蛋

刚表态过的朋友 (1 人)

相关阅读

最新评论

热门频道

  • 大数据
  • 商业智能
  • 量化投资
  • 科学探索
  • 创业

即将开课

  GMT+8, 2017-12-17 20:07 , Processed in 0.135392 second(s), 26 queries .