Hybrid Block Storage for Efficient Cloud Volume Service——论文泛读

TOS 2023 Paper 论文阅读笔记整理

问题

传统桌面和服务器应用程序向云的迁移给底层云存储带来了高性能、高可靠性和低成本的挑战。由于这些传统应用程序的I/O模式和一致性要求,与采用特定编程模型和范式(如MapReduce[22]和RDD[52])的云原生应用程序不同。使得迁移的应用程序难以享受云存储的高性能。尽管最近的研究在很大程度上提高了云卷服务的吞吐量,例如:利用磁盘并行性[35],但以低成本高性能满足云服务要求仍然具有挑战性。

本文方法

根据I/O跟踪分析表明,I/O模式具有以下特征:

  • 小型I/O在应用程序中占主导地位,因此块存储的性能在很大程度上取决于小型读/写的性能,因此固态驱动器(SDD)比硬盘驱动器(HDD)更可取。但企业级固态硬盘的每比特价格约为HDD的5-10倍[4],而且固态硬盘的能源成本远高于HDD了[42]。这使得大部分客户将所有副本存储在SSD上的成本过高。

  • 读取和写入都具有有限的局部性,表明使用SSD作为缓存层在加速应用程序的I/O方面是无效的,因为未命中率很高,而且SSD-HDD的性能差距很大。与RAMCloud[41]中的情况类似,考虑到高端SSD在延迟和IOPS方面都比HDD快三个数量级,即使1%的缓存未命中率也可能使平均I/O性能降低10倍。此外,使用缓存对改善尾延迟几乎没有帮助,这对于云存储保证服务级别协议(SLA)非常重要[23]。额外的缓存层也使块存储容易出现一致性问题[51],例如由于缓存配置错误导致Facebook服务严重中断[13]。

本文提出了分布式SSD-HDD混合存储结构 Ursa,将主副本存储在SSD上,将备份副本复制到HDD上,不使用SSD作为缓存层。

  • 通过自适应日志,将小型备份随机写入转换为日志追加,然后异步重放并合并到备份HDD,从而弥补主SSD和备份HDD之间的性能差距。

  • 为了提高效率,大型顺序写入直接在备份HDD上执行(绕过日志)。

  • 日志附加(用于小型备份写入)和副本复制(用于大型备份写入)的组合使复制和恢复变得复杂。为此设计了高效的范围优化合并树(ROMT)来索引日志,支持快速日志查询,将连续范围的键组合为单个复合键{offset,length},用于(1)过时日志附加的快速无效;(2)故障恢复期间日志数据的快速读取。

  • 在生产环境中,块存储必须为虚拟磁盘的I/O性能提供高可扩展性。因此扩展磁盘并行性优化,系统地利用了Ursa中的多级并行性,主要包括(1)磁盘上的并行I/O;(2)盘间分条、无序执行和无序完成;(3)在网络流水线中,提高Ursa的IOPS和吞吐量。

  • 复杂的SSD-HDD混合结构使得难以保证强一致性[26]并提供高可用性。因此设计了Ursa的复制协议,以满足迁移的应用程序的强一致性要求。还设计了功能丰富的控制器和高效的机制,用于在线组件升级和并行开发

实验表明,Ursa在其混合模式下实现了与仅SSD模式(将所有副本存储在SSD上)几乎相同的性能,并且在仅SSD模式下也优于其他块存储(Ceph和Sheepdog),同时实现了更高的CPU效率(IOPS和每核吞吐量)。

总结

针对生产环境中的云服务,如何在不影响性能的情况下降低成本。本文提出了分布式SSD-HDD混合存储结构Ursa,将主副本存储在SSD上,将备份副本复制到HDD上,不使用SSD作为缓存层。包括以下技术:(1)通过自适应日志,将小型随机写入转换为日志追加,异步合并到HDD,从而弥补SSD和HDD之间的性能差距。(2)为了提高效率,大型顺序写入直接在HDD上执行(绕过日志)。(3)设计了高效的范围优化合并树(ROMT)来索引日志,将连续范围的键组合为单个复合键{offset,length},支持快速日志查询。(4)对磁盘并行性优化,利用Ursa中的多级并行性,包括:磁盘上的并行I/O;盘间分条、无序执行和无序完成;在网络流水线中,提高IOPS和吞吐量。(5)设计Ursa的复制协议,以满足强一致性要求。还设计了功能丰富的控制器和高效的机制,用于在线组件升级和并行开发。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/15969.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

香橙派AIpro(OrangePi AIPro)开发板初测评

开发板简介 最近,我拿到手一款Orange Pi AI Pro 开发板,它是香橙派联合华为精心打造的高性能AI 开发板,最早发布于2023年12月,其搭载了昇腾AI 处理器,可提供8TOPS INT8 的计算能力,内存提供了8GB 和16GB两…

基于jeecgboot-vue3的Flowable新建流程定义(一)

因为这个项目license问题无法开源&#xff0c;更多技术支持与服务请加入我的知识星球。 1、vue3版本因为流程分类是动态的&#xff0c;不再固定了&#xff0c;所以新建的时候需要选择建立哪种流程类型的流程 代码如下&#xff1a; <!-- 选择模型的流程类型对话框 -->&…

算法提高之一个简单的整数问题2

算法提高之一个简单的整数问题2 核心思想&#xff1a;线段树 懒标记&#xff1a;add存每个子节点需要加的数pushdown&#xff1a;将懒标记向下存 同时清除本行懒标记 #include <iostream>#include <cstring>#include <algorithm>using namespace std;type…

数据结构(六)图

2024年5月26日一稿(王道P220) 6.1 图的基本概念 6.1.1 图的定义 6.2 图的存储及基本操作 6.2.1邻接矩阵法 6.2.2 邻接表

python web自动化(分布式测试Grid)

Grid介绍 Selenium Grid 是 Selenium 提供的⼀个⼯具&#xff0c;⽤于⽀持在多台计算机上并⾏运⾏测试。 它允许将测试分发到不同的机器和浏览器组合上&#xff0c;同时收集结果。 1.并⾏执⾏测试⽤例&#xff1a;在不同的机器上并⾏执⾏测试⽤例&#xff0c;从⽽加速整个测试过…

Vulhub——adminer

文章目录 一、CVE-2021-21311&#xff08;SSRF&#xff09;二、CVE-2021-43008&#xff08;远程文件读取&#xff09; 一、CVE-2021-21311&#xff08;SSRF&#xff09; Adminer是一个PHP编写的开源数据库管理工具&#xff0c;支持MySQL、MariaDB、PostgreSQL、SQLite、MS SQL…

如何在WRF模型中更好地设置这些海洋物理参数以提高模拟精度?

在WRF&#xff08;Weather Research and Forecasting&#xff09;模型中正确设置海洠物理参数是提高模拟精度的关键&#xff0c;特别是当模拟涉及到海洋和大气的相互作用时。以下是一些提高模拟精度的策略和建议&#xff1a; 1. 理解模拟的地区和目标 在进行参数设置之前&…

基于SpringBoot+Vue的人事管理系统

引言 目前,人事管理的系统大都是CS架构的大型系统,很少有面向机关,事业单位内部的基于BS架构的微型人事系统,因此.开发一个基于BS架构的人事信息管理系统是非常必要的.但是基于BS架构的人事系统对于安全是一个大的考验点.在人事信息系统中,功能需简单清晰,可操作性强,其次安全…

使用paddlepaddle框架构建ViT用于CIFAR10图像分类

使用paddlepaddle框架构建ViT用于CIFAR10图像分类 硬件环境&#xff1a;GPU (1 * NVIDIA T4) 运行时间&#xff1a;一个epoch大概一分钟 import paddle import time import paddle.nn as nn import paddle.nn.functional as F import paddle.vision.transforms as transforms…

CCF-GESP 等级考试 2023年3月认证C++一级真题解析

2024年03月真题 一、单选题&#xff08;每题2分&#xff0c;共30分&#xff09; 第 1 题 以下不属于计算机输入设备的有&#xff08; &#xff09;。 A. 键盘B. 音箱C. 鼠标D. 传感器 正确答案&#xff1a;B. 音箱 解析&#xff1a; A. 键盘&#xff1a;键盘是输入设备。B. …

第六节:带你全面理解vue3 浅层响应式API: shallowRef, shallowReactive, shallowReadonly

前言 前面两章,给大家讲解了vue3中ref, reactive,readonly创建响应式数据的API, 以及常用的计算属性computed, 侦听器watch,watchEffect的使用 其中reactive, ref, readonly创建的响应式数据都是深层响应. 而本章主要给大家讲解以上三个API 对应的创建浅层响应式数据的 API,…

Java面试题:Executor框架在Java并发编程中扮演什么角色?如何使用它?

在Java并发编程中&#xff0c;Executor框架扮演着核心角色&#xff0c;它提供了一种高级的、线程安全的机制来异步执行任务。Executor框架的主要目的是将任务的提交与任务的执行分离&#xff0c;从而简化了多线程编程的复杂性。 Executor框架的角色&#xff1a; 任务与线程分离…

持续总结中!2024年面试必问 20 道 Redis面试题(八)

上一篇地址&#xff1a;持续总结中&#xff01;2024年面试必问 20 道 Redis面试题&#xff08;七&#xff09;-CSDN博客 十五、使用过Redis做异步队列么&#xff0c;你是怎么用的&#xff1f; Redis作为一个高性能的键值存储系统&#xff0c;非常适合用来实现异步队列。异步队…

【STM32单片机】----实现LED灯闪烁实战

&#x1f3a9; 欢迎来到技术探索的奇幻世界&#x1f468;‍&#x1f4bb; &#x1f4dc; 个人主页&#xff1a;一伦明悦-CSDN博客 ✍&#x1f3fb; 作者简介&#xff1a; C软件开发、Python机器学习爱好者 &#x1f5e3;️ 互动与支持&#xff1a;&#x1f4ac;评论 &…

【机器学习-23】关联规则(Apriori)算法:介绍、应用与实现

在现代数据分析中&#xff0c;经常需要从大规模数据集中挖掘有用的信息。关联规则挖掘是一种强大的技术&#xff0c;可以揭示数据中的隐藏关系和规律。本文将介绍如何使用Python进行关联规则挖掘&#xff0c;以帮助您发现数据中的有趣模式。 一、引言 1. 简要介绍关联规则学习…

[处理器芯片]-5 超标量CPU实现之ALU

ALU&#xff08;Arithmetic Logic Unit&#xff0c;算术逻辑单元&#xff09;&#xff0c;是CPU执行单元中最主要的组成部分。 1 主要功能 算术运算&#xff1a;执行加法、减法、乘法和除法等算术运算。 逻辑运算&#xff1a;执行与、或、非、异或等逻辑运算。 移位运算&am…

动态路由实验—OSPF

动态路由协议实验-------OSPF 链路状态路由选择协议又被称为最短路径优先协议&#xff0c;它基SPF&#xff08;shortest path first &#xff09;算法 实验要求&#xff1a;各个PC之间能够互通 1.四台PC配置如下 PC1 PC2 PC3 PC4 2.配置各个交换机的口子的IP R1 <HUAWE…

Room注解无效原因

在Android项目中&#xff0c;如果父模块使用Kotlin&#xff0c;而子模块用Java编写&#xff0c;并且在子模块中使用了Room库&#xff0c;那么你会发现需要使用kapt而不是annotationProcessor来处理Room注解。这里有几个原因和背景知识&#xff1a; 1. 项目配置的影响 父模块的…

spiderfoot一键扫描IP信息(KALI工具系列九)

目录 1、KALI LINUX简介 2、spiderfoot工具简介 3、在KALI中使用spiderfoot 3.1 目标主机IP&#xff08;win&#xff09; 3.2 KALI的IP 4、命令示例 4.1 web访问 4.2 扫描并进行DNS解析 4.3 全面扫描 5、总结 1、KALI LINUX简介 Kali Linux 是一个功能强大、多才多…

YOLOv8+PyQt:实时检测(摄像头、视频)

1.YOLO&#xff1a;CPU实时检测&#xff08;摄像头、视频&#xff09;https://blog.csdn.net/qq_45445740/article/details/106557451 2.YOLOv8PyQt&#xff0c;实现摄像头或视频的实时检测 需要安装 PySide6 和 ultralytics pip install PySide6 pip install ultralyticsfr…