当前位置:网站首页>云存储硬核技术内幕——(10)
云存储硬核技术内幕——(10)
2022-08-04 15:38:00 【用户8289326】
在前几期,我们提到了,在云计算时代,由于对存储IO及吞吐的要求迅速增加,传统SAN存储难以满足需求,基于标准x86节点的分布式存储成为了主流。
开源分布式存储的代表是Ceph。Ceph本质上是对象存储(后面会讲到),以image的形式提供RBD块,在KVM的QEMU中安装RBD块驱动,将RBD块直接挂载给虚拟机。RBD驱动会将块拆分为2MB/1MB大小的Object,每个Object拆分为几百到上千个PG,每个PG映射到N个物理磁盘上。
好了,这里的N就是今天讨论的问题——Ceph的高可用性设计。
我们知道,磁盘本身是一个损耗品,也是有固定使用寿命的,甚至可能被意外拔出。 服务器:硬盘怎么突然不在线了?
出于这点考虑,工程师们在服务器上安装了两块硬盘,通过RAID卡,让来自系统的IO被复制到两块硬盘,令两块硬盘存储的内容完全一致。当一块硬盘损坏或被意外拔出时,另一块硬盘还能够读出完整的数据。这种冗余技术叫做RAID-0。
但是,RAID-0有一个致命缺陷:在用新的硬盘替换掉损坏的硬盘的时候,需要将好的那块硬盘内容完全复制一份到新的硬盘,这个过程叫重构,将持续几个小时。在重构过程中,整个系统的IO读写性能会急剧下降(磁盘忙于读取内容向新硬盘复制)。
因此,工程师们发明了RAID-5和RAID-6。RAID-5和RAID-6的实现方式是,对一整块数据,切分成M块,根据这些数据计算出N块冗余校验数据。对于RAID-5,N=1,对于RAID-6,N=2。这样一来,任意一块磁盘损坏,由于有多块磁盘分担重构的读操作(想一想,为什么),对整个系统IO的影响相对有限。
然而,我们也知道,RAID-5和RAID-6的写操作对IO能力的损耗,由于写惩罚的存在,会成倍消耗磁盘的IO能力。因此,在分布式存储中,通常使用多副本机制,最常见的是三副本:
如图,PG落到主OSD后,主OSD所在的Node会将内容复制到另外两个副本对应的OSD节点,并最终落盘。这样,对于大量并发IO的写场景,总体的写性能为:单盘IO能力 * OSD数量 / 3,而总体的读性能为单盘IO能力 * OSD数量。
假设Ceph集群由6台服务器构成,其中每台有12块SATA机械盘,单盘IO能力为150 IOPS,那么,我们可以计算出,整个集群有72个OSD,总体IO能力为
150 * 72 / 3 = 3600 IOPS。
显然,这个性能是很难满足一般应用的需求的。
我们想到,使用SSD固态盘可以大规模提升IO能力。以常见的NVMe盘为例:
这个家伙的随机读可达150K IOPS,随机写可达80K IOPS。
如果6台服务器上,每台安装4块这样的NVMe盘,总的读IO能力可达3.6M IOPS,写能力可达640K IOPS。以70%读,30%写计算,IO能力约为1.5M IOPS。
这是一个很不错的性能。
但是,我们也注意到,NVMe或SATA SSD的价格不菲。
有没有什么办法,用少量昂贵的固态盘搭配大容量机械盘,取得较好的性能呢?
请看下期分解。
边栏推荐
- RTC 场景下的屏幕共享优化实践
- 成功 解决 @keyup.enter=“search()“ 在el-input 组件中不生效的问题
- H5 之 文件流转base64下载
- SAP ABAP SteamPunk 蒸汽朋克的最新进展 - 嵌入式蒸汽朋克
- 吴恩达机器学习[9]-神经网络学习
- Legal education combined with VR panorama, intuitively feel and learn the spirit of the rule of law
- postman “header“:{“retCode“:“999999“
- 邮差"头":{“retCode”:“999999”
- #夏日挑战赛# HarmonyOS 实现一个滑块验证
- 多商户商城系统功能拆解24讲-平台端分销会员
猜你喜欢
HarePoint Analytics for SharePoint Online
What is an artifact library in a DevOps platform?What's the use?
实战:10 种实现延迟任务的方法,附代码!
JVM Tuning-GC Fundamentals and Tuning Key Analysis
QT笔记——Q_INVOKABLE了解
小程序|炎炎夏日、清爽一夏、头像大换装
【云原生 | 从零开始学Kubernetes】kubernetes之StatefulSet详解
NUS颜水成等发布首篇《深度长尾学习》综述
Redis-哨兵模式
"Research Report on the Development of Global Unicorn Enterprises in the First Half of 2022" released - DEMO WORLD World Innovation Summit ended successfully
随机推荐
2022 Hangzhou Electric Multi-School 4
Taurus.MVC WebAPI 入门开发教程2:添加控制器输出Hello World。
性能提升400倍丨外汇掉期估值计算优化案例
Manacher(求解最长回文子串)
学 Go,最常用的技能是什么?打日志
How to monitor code cyclomatic complexity by refactoring indicators
Crawler Xiaobai Notes (yesterday's supplement to pay attention to parsing data)
皕杰报表配置文件report_config.xml里都配置了什么?
OGG判断mgr状态并自动启动脚本
Http-Sumggling缓存漏洞分析
Game network UDP + FEC + KCP
面渣逆袭:MySQL六十六问,两万字+五十图详解
What is the difference between member variable and local variable
2022杭电多校3
如何优雅的消除系统重复代码?
What are the useful IT asset management platforms?
numpy入门详细代码
Redis 高可用
吴恩达机器学习[12]-机器学习系统设计
【已解决】allure无法生成json文件和AttributeError: module ‘allure‘ has no attribute ‘severity_level‘