鉴于数据的增长,如今人们越来越多地谈论软件定义和分布式数据仓库,并且传统上将很多注意力放在开放式Ceph平台上。 今天,我们想谈谈在为一个大型俄罗斯部门实施数据存储项目的过程中得出的结论。

当然,在存储各种类型的数据时,马上就会想到分布式数据仓库。 从理论上讲,这种解决方案有很多优点:您可以使用任何磁盘,系统可以在任何服务器上运行(甚至是非常旧的服务器),几乎没有扩展限制。 这就是为什么几年前在俄罗斯最大的部门之一中引入这种系统的原因,该部门不仅在俄罗斯联邦的所有地区,甚至在几乎所有大城市中都设有部门。
在分析了可用的解决方案之后,选择了Ceph。 做出此决定的原因有很多:
•Ceph是一种相当成熟的产品,如今在PB级信息中已经安装了Ceph。
•大型社区(包括我们)参与了开发,这意味着存储将出现新的功能和改进。
•Ceph已经有一个很好的API,支持各种编程语言。 这很重要,因为显然需要对产品进行精炼以满足客户的要求和期望。
•许可证不收费。 否,当然,该系统需要进一步开发,但是对于客户的特定任务,无论如何都需要进行额外的开发,那么为什么不基于免费产品呢?
•最后,制裁。 应当确保国有企业下次有人提出对它们施加限制的想法,因此依靠外国尤其是美国的产品是危险的。 另一件事,开源。
实际发现Ceph的引入在几个月内逐渐发生。 首先,该存储在中部地区启动,然后我们通过连接区域数据中心来复制该解决方案。 随着每个新网络节点的出现,尽管其中的数据流增加,但存储性能也得到了提高,从而确保了区域之间信息的传输。
任何大型组织的工作特征之一就是需要存储异构信息,该信息通常是二进制文件。 正如实践所示,员工根本没有时间去弄清楚它们是什么类型的文件,对其进行分类和及时处理-信息可以更快地积累。 为了不丢失潜在的重要活动数据,必须组织其有效的存储。 例如,基于分布式存储。
在实施此类项目的过程中,我们对Ceph的使用得出了一些结论:
结论1:Ceph完全取代了所有备份解决方案正如实践所表明的那样,大多数非结构化信息的备份根本不执行,因为实施起来极为困难。 当实施Ceph时,就好像“以奖励的形式”一样获得了备份。 设置时,我们只需设置复制参数-副本数及其放置位置。 如果客户有多个数据中心,则将获得灾难性的配置,如果在不同的磁盘和服务器上有3-4个数据副本,则完全不需要额外的备份。 这样的系统比任何硬件解决方案都要好,至少在目前我们正在谈论大量数据和地理分布的系统方面。
结论2:在大型安装中,Ceph性能等于网络性能的99%。当我们将数据从PostgreSQL数据库转移到基于Ceph的存储时,在大多数情况下,上传速度等于数据传输网络带宽。 如果在某些情况下不是这种情况,则重新配置Ceph可以达到此速度。 当然,我们不是在谈论100 Gb / s的连接,而是通过用于地理分布基础设施的标准数据通道,很有可能实现10 Mbit / s,100 Mbit / s或1 Gbit / s的Ceph点点性能。 正确分配磁盘并配置信息集群就足够了。
结论3:主要是考虑到公司的特点正确配置Ceph说到设置,在系统配置阶段需要Ceph工作中的大部分专业知识。 除了复制参数外,该解决方案还允许您设置访问级别,数据保留规则等。 例如,如果我们在俄罗斯各地设有小型计算中心,则可以组织对在我们地区创建的文档和文件的快速访问,以及从任何地方访问所有公司文档的访问。 后者将以稍长的延迟和较低的速度工作,但是所有权处的这种信息“集中”为组织创造了最佳条件。
结论4:配置完成后,任何Linux管理员都可以管理CephCeph的最令人愉快的功能之一可能是,该系统已经配置好后,无需人工参与即可正常运行。 也就是说,事实证明,在远程微型数据中心中,仅包含Linux管理员就足够了,因为对下一个Ceph段的支持不需要任何其他知识。
结论5:通过外部索引系统补充Ceph,使存储方便上下文搜索如您所知,在Ceph内部没有可用于按上下文搜索的索引。 因此,当将对象输入到存储器中时,可以保存用作索引的元数据。 它们的体积很小,因此常规的关系型DBMS可以轻松应对它们。 当然,这是一个附加系统,但是这种方法使您可以根据上下文在大量非结构化数据中快速查找信息。
关于数据传输的几句话大型项目涉及多个阶段,但对我们来说也许最有趣的是将大量数据从PostgreSQL传输到新存储库的过程。 启动Ceph之后,出现了从多个数据库迁移数据而又不停止服务和业务流程并确保信息完整性的任务。
为此,我们必须为Ceph开源项目的开发做出贡献,并创建pg_rbytea迁移模块,该模块的源代码可以在链接(
https://github.com/val5244/pg_rbytea )上找到。 解决方案的本质是将数据从指定的数据库同时传输到Ceph存储库。 通过开发的模块,您可以使用Rados对象存储的抽象在不停止数据库的情况下立即迁移数据,该支持在Ceph的本机级别上实现。 顺便说一句,我们于2018年初在PG Conf上对此进行了报告(
https://pgconf.ru/2018/107082 )。
在第一阶段,将部门的职能工作所需的各种二进制数据移至存储库。 实际上,所有这些文件和对象由于其巨大的总量和模糊的结构而不清楚如何存储。 接下来,计划将各种媒体内容传输到Ceph,存储在识别和来自公司信函的附件之前创建的原始文档。
为了使所有这些功能都能在存储之上运行,开发了RESTful服务,该服务允许使用Ceph集成到客户系统中。 同样,便捷的API的存在也起了作用,它使您可以为各种信息系统创建插件服务。 因此,Ceph已成为主要的存储库,在组织内部要求越来越多的信息量和类型。
结论市场上有各种分布式数据仓库,包括商业解决方案和其他开源产品。 其中一些使用特殊的优化,其他使用压缩或使用擦除编码。 但是,在实践中,我们坚信Ceph非常适合真正的分布式环境和大容量存储,因为在这种情况下,系统性能仅受通信通道速度的限制,并且您可以通过服务器数量或数据量来节省大量许可证费用(取决于与哪个产品进行比较)。 精心调整的Ceph系统使您能够确保最佳性能,而无需受到本地管理员的现场监督。 如果引入了地理上分散的实现,那么这是一个很大的优势。