Ceph如何实现文件系统的横向扩展
前言
在跟一个朋友聊天的时候,聊到一个技术问题,他们的一个环境上面小文件巨多,是我目前知道的集群里面规模算非常大的了,但是目前有个问题,一方面会进行一倍的硬件的扩容,而文件的数量也在剧烈的增长着,所以有没有什么办法来 缓解这个增长的压力
当时也没想到太多的办法,只是觉得这么用下去风险太大
后来在思考了一段时间后,大概有了一个想法,这个就要看是否能把方案做下去,如果是我自己在用的集群,而非客户,我会这么去用的
方案介绍
方案一
也就是默认的方案,一般来说就是一个主MDS,然后几个备用MDS,整个一个挂载点,全局混用的空间
存在问题:
- 扩容以后,有大量的数据迁移
- 所有的元数据请求,只有一个MDS服务,到了巨型数据的时候,可能出现卡顿或MDS卡掉的问题
优点:
- 全局统一命名空间
方案二:
采用分存储池的结构,也就是将集群内的目录树分配到整个集群的多个相互独立的空间里面
存在问题:
- 同样是所有的元数据请求,只有一个MDS服务,到了巨型数据的时候,可能出现卡顿或MDS卡掉的问题
优点:
- 全局统一命名空间下面对应目录到不同的存储池当中,在进行扩容的时候,不会影响原有的数据,基本是没有迁移数据
方案三:
物理分存储池的结构并没有解决元数据压力过大的问题,而元数据的处理能力并非横向扩展的,而文件数量和集群规模都是在横向增长,所以必然是一个瓶颈点
这个方案其实很简单,相当于方案二的扩展,我们在方案二中进行了物理存储池的分离,然后把空间映射到子目录,来实现数据的分离,既然规模能够大到分物理空间,那么我们可以考虑部署多套集群,并且来真正的实现了数据处理能力的横向扩展,因为MDS,可以是多个的了,那么比较重要的问题就是统一命名空间的问题了,怎么实现,这个也简单,主要是跟客户沟通好,让客户接受提出的方案
我们在一些商业系统上面可以看到一些限制,比如单卷的大小最大支持多大,在这里我们需要跟客户沟通好,无限的扩展,会带来一些压力的风险,有方案能够解决这种问题,而这种数据量在之前是没有太多的案例可借鉴的,所以需要人为控制一个目录的最大空间,也就是单套集群的大小,下面举例来说明下
假设我们的空间一期规模为2P,二期规模要4P,三期规模6P
那么我们的命名空间上就分离出三个逻辑空间,也就是对应三套集群
弄清楚客户的存储的目录结构,一般来说客户并不太关心目录的设计,如果能够引导的情况下,可以引导客户,我们需要弄清楚目录可变化的那个点在哪里,举例说明,假如客户的数据可以去按年进行分类的话,数据就可以是
2014
2015
2016
2017
这样的增长趋势,并且数据量之前的肯定已知,未来可大概估计,并且集群准备存储多少年的数据,也是可大概预估的,那么这个环境我们就先认为到2017的数据我们放在集群一内,2017年以后的数据放在集群二内,那么挂载点是这样的
192.168.10.101:/2014
192.168.10.101:/2015
192.168.10.101:/2016
192.168.10.101:/2017
192.168.10.102:/2018
192.168.10.102:/2019
192.168.10.102:/2020
192.168.10.102:/2021
挂载到本地的服务的机器上
本地创建好目录
/share/2014
/share/2015
/share/2016
/share/2017
/share/2018
/share/2019
/share/2020
/share/2021
然后把上面的集群挂载点按名称挂载到本地的这些目录上面
本地的共享就把/share共享出去,那么用户看到的就是一个全局命名空间了,这个是用本地子目录映射的方式来实现统一命名空间,技术难度小,难点在于跟客户沟通好数据的层级结构,如果客户能够自己随意增加目录,那么更好实现了,随意的将目录分配到两个集群即可,最终能达到满意的效果就行
当然主要还是需要客户能够接受你的方案,海量小文件的情况下,分开到多个集群当然会更好些,并且集群万一崩溃,也是只会影响局部的集群了
总结
我们在利用一些新的技术的时候我们很多时候关注的是他最好的那个点,而这个点有的时候反而阻碍了我们的想法,比如集群,那就是把所有硬盘管理起来,搞成一个集群,那么为什么不能往上再走一层,我用管理的方式把多套集群在管理的层面组合成一个集群池呢?然后从多个集群里面来分配我们需要的资源即可
变更记录
| Why | Who | When |
|---|---|---|
| 创建 | 武汉-运维-磨渣 | 2017-03-29 |
Ceph如何实现文件系统的横向扩展的更多相关文章
- ext3是对ext2文件系统的一个扩展高性能日志文件系统
嵌入式开发者所做的最重要的决定之一就是部署哪种文件系统.有些文件系统性能比较高有些文件系统空间利用率比较高,还有一些文件系统设备故障或者意外断电后恢复数据比较方便. linux文件系统概念 分区 分区 ...
- presto的动态化应用(一):presto节点的横向扩展与伸缩
一.presto动态化概述 近年来,基于hadoop的sql框架层出不穷,presto也是其中的一员.从2012年发展至今,依然保持年轻的活力(版本迭代依然很快),presto的相关介绍,我们就不赘述 ...
- elasticsearch介绍集群,模拟横向扩展节点、节点宕机、改变分片
出处:[http://www.cnblogs.com/dennisit/p/4133131.html] ,防楼主删博,故保留一份! elasticsearch用于构建高可用和可扩展的系统.扩展 ...
- 在 Windows Azure 网站中进行纵向扩展和横向扩展
编辑人员注释:本文章由 Windows Azure 网站团队的项目经理 Byron Tardif 撰写. 当您开始一个新的 Web 项目,或者刚刚开始开发一般的网站和应用程序时,您可能希望从小处着手. ...
- SignalR学习笔记(五) 横向扩展之SQL Server
当一个Web应用程序达到一台服务器能力限制,即请求处理数量限制之后,有2种解决方案:纵向扩展和横向扩展. 纵向扩展即用更强的服务器(或虚拟机),或为当前的服务器添加更多的内存,CPU等 横向扩展即添加 ...
- puppet 横向扩展(三)
Table of Contents 1. 概述 2. 实验环境 3. 实验步骤 3.1. 机器B 的配置 3.2. 机器A 的配置 3.3. 测试配置结果 概述 横向扩展实验之三 – 将CA 认证服务 ...
- puppet 横向扩展(二)
Table of Contents 1. 概述 2. 实验环境 3. 实验步骤 3.1. 机器B 的环境 3.1.1. 安装puppetmaster 以及 apache passenger 3.1.2 ...
- puppet 横向扩展(一)
目录 1. 概述 2. 实验环境 3. 实验步骤 3.1. 创建puppetmaster的rack环境 3.2. 配置文件设置 3.3. 补充说明 3.4. 测试配置结果 3.4.1. 默认的负载均衡 ...
- 转mysql横向扩展和纵向扩展
Scale-up(纵向扩展)和Scale-out(横向扩展)的解释 谈到系统的可伸缩性,Scale-up(纵向扩展)和Scale-out(横向扩展)是两个常见的术语,对于初学者来说,很容易搞迷糊这两个 ...
随机推荐
- SpringBoot+MongoDB实现物流订单系统
码字不易,点赞收藏,养成习惯!原创作者公众号:bigsai.更多精彩期待与您分享!项目收录在github的MongoDB案例中,文章收录在回车课堂中如果没基础请看看前两篇(墙裂推荐)MongoDB从立 ...
- jquery的实时触发事件(textarea实时获取中文个数)
jquery的实时触发事件(textarea实时获取中文个数) (2014-09-16 11:49:50) 转载▼ 标签: 实时触发事件 中文个数 onpropertychange oninput o ...
- 震惊!OI居然还考天体运动
看图说话 看这里: 标签: 标签竟然还是模拟,简直活到爆,物理老师狂喜
- logstash-安装
1.下载 cd /usr/local/src wget https://mirrors.huaweicloud.com/logstash/7.8.0/logstash-7.8.0.tar.gz ...
- centos8上使用crond
一,查看crond的状态: [root@yjweb crontab]# systemctl status crond 说明:和其他service的执行相同: 启动:systemctl start cr ...
- 第七章 TCP和UDP原理
一.引入 1.TCP/IP协议族的传输层协议主要包括TCP和UDP 2.TCP是面向连接的可靠的传输层协议.它支持在并不可靠的网络上实现面向连接的可靠的数据传输 3.UDP是无连接的传输协议,主要用于 ...
- python第一章:基础
1.数学操作符: 数学操作符与数学基本类似 最高级:** 第二级:*././/.% 第三级:+ .- 遵循从左到右的顺序 如果想改变优先级 可以使用括号,比如:(3+2)*(5-4)=5*1=5 2. ...
- linux设置systemctl 启动脚本
centos 7 服务的systemctl 脚本一般存在:/usr/lib/systemd目录.目录下又分为system,和user之分, /usr/lib/systemd/system #系统服务, ...
- 基于SSM框架的JavaWeb通用权限管理系统
- - ->关注博主公众号[C you again],获取更多IT资源(IT技术文章,毕业设计.课程设计系统源码,经典游戏源码,HTML网页模板,PPT.简历模板,!!还可以投稿赚钱!!,点击查 ...
- 循序渐进VUE+Element 前端应用开发(23)--- 基于ABP实现前后端的附件上传,图片或者附件展示管理
在我们一般系统中,往往都会涉及到附件的处理,有时候附件是图片文件,有时候是Excel.Word等文件,一般也就是可以分为图片附件和其他附件了,图片附件可以进行裁剪管理.多个图片上传管理,及图片预览操作 ...