Fisc: A Large-scale Cloud-native-oriented File System——论文泛读

FAST 2023 Paper 元数据论文阅读笔记汇总

问题和局限性

尽管云原生技术取得了进展,但现有的分布式文件系统不适合多租户云原生应用,原因有两点。

  • 它们的客户端通常较重,导致容器之间的资源复用水平较低。每个客户端都需要保留许多独占资源,而服务器只能同时承载少量容器,导致资源使用效率低下。

  • 用于云中文件系统服务的集中式网络网关无法满足云原生应用程序对性能、可用性和负载平衡的要求。基于网络网关的体系结构有一系列限制,包括(1)通过网关的次优、ms级延迟;(2)由于不知道文件语义和存储协议,无法进行数据局部优化和快速故障处理;(3)与RDMA等高性能网络堆栈不兼容,而不会对客户端进行侵入性更改;(4)网络连接和文件之间的负载不平衡;(5)硬件成本高,需要单独的网关服务器,对于 500 Tbps 带宽的存储集群,需要 5000 台 100 Gbps 网关服务器。

本文方法

我们提出了Fisc,一个面向大规模、云原生的分布式文件系统。Fisc引入了三个关键设计:

  • 轻量级文件系统客户端,通过两层资源聚合提高资源复用率。将不涉及用户的功能(例如网络堆栈和存储协议)从容器中的客户端移出,并将它们外部化到计算服务器的数据处理单元(DPU)和云服务提供商(CSP)的后端存储节点中以聚合它们的资源。因此,用于这些功能的资源可以完全复用,降低了摊销成本。同时,由于每个客户端消耗的资源大大减少,计算服务器可以为云原生应用托管大量容器。

  • 存储感知型分布式网关(SaDGW),改善I/O服务的性能、可用性和可扩展性。提供了一条具有高性能网络堆栈的直接通道,连接计算服务器和存储服务器。利用高速通道上的文件系统语义构建了一种存储感知型路由机制,以文件为粒度将客户端的文件请求从租户的前端虚拟域路由到CSP的后端物理域,而不是基于网络流。我们设计了一系列机制,如存储感知型故障处理和局部性感知的读优化,以提高Fisc的可用性。还采用了基于文件的细粒度调度机制来平衡存储节点上代理的负载。

  • 软硬件协同设计,利用基于DPU的virtio-Fisc设备,将关键功能外部化到硬件中。利用DPU实现客户端的部分功能和SaDGW的核心功能。在DPU中采用virtio-Fisc设备来卸载网络堆栈和存储协议,并提供从用户的虚拟域容器到CSP物理域的文件系统的安全高效的通道。还利用DPU中的快速路径来加速I/O处理,进一步提高Fisc的性能。

Fisc已经在DCN的生产中部署了三年,为阿里巴巴超过300万内核的应用程序提供服务。对于大规模开发,提出了一种基于SaDGW和virtio Fisc设备的抽象虚拟RPC(vRPC);易于使用,可以被其他云原生服务(如功能即服务(FaaS))所采用。与内部部署的盘古客户端相比,Fisc客户端的CPU和内存消耗分别减少了69%和20%。可用性提高了一个数量级,故障恢复从秒级到100ms级。对于在线搜索查询服务,Fisc的平均延迟和P999延迟分别为<500μs和<60ms。其平均延迟抖动小于5%。

实验

实验环境:1台计算服务器,43台盘古存储服务器

数据集:FIO

实验对比:CPU利用率、内存利用率、带宽利用率、平均延迟、尾延迟、吞吐量、IOPS

总结

针对云原生环境下的文件系统,现有方法客户端较重、资源利用率低,现有集中式网关无法满足性能、可用性、负载均衡的需求。本文提出Fisc,面向大规模、云原生的分布式文件系统。包括三个关键设计:轻量级文件系统客户端,将不涉及用户的功能从客户端移出,外部化到计算服务器的数据处理单元(DPU)和云服务提供商(CSP)的后端存储节点中以聚合它们的资源;存储感知型分布式网关(SaDGW),提供了具有高性能网络堆栈的直接通道,连接计算服务器和存储服务器。利用高速通道上的文件系统语义构建了一种存储感知型路由机制,以文件为粒度将客户端的文件请求从租户的前端虚拟域路由到CSP的后端物理域。设计存储感知型故障处理和局部性感知的读优化,采用了基于文件的细粒度调度机制来平衡存储节点上代理的负载;软硬件协同设计,利用DPU实现客户端的部分功能和SaDGW的核心功能,在DPU中采用virtio-Fisc设备来卸载网络堆栈和存储协议,并提供从用户的虚拟域容器到CSP物理域的文件系统的安全高效的通道,利用DPU中的快速路径来加速I/O处理。

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

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

相关文章

HDFS中常用的Shell命令 全面且详细

HDFS中常用的Shell命令目录 一、ls命令 二、mkdir 命令 三、put命令 四、get命令 五、mv命令 六、rm命令 七、cp命令 八、cat命令 前言 安装好hadoop环境之后&#xff0c;可以执行hdfs相关的shell命令对hdfs文件系统进行操作&#xff0c;比如文件的创建、删除、修改文…

Vue packages version mismatch 报错解决

问题 npm run dev 运行项目的过程中&#xff0c;报错 Vue packages version mismatch 解决方法 根据报错不难看出是 vue 与 vue-template-compiler 版本产生了冲突&#xff0c;vue 与 vue-template-compiler 的版本是需要匹配的。所以解决的办法就是先修改其中一个的版本将 v…

基于Springboot的旅游网管理系统设计与实现(有报告)。Javaee项目,springboot项目。

演示视频&#xff1a; 基于Springboot的旅游网管理系统设计与实现&#xff08;有报告&#xff09;。Javaee项目&#xff0c;springboot项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层…

利用nginx内部访问特性实现静态资源授权访问

在nginx中&#xff0c;将静态资源设为internal&#xff1b;然后将前端的静态资源地址改为指向后端&#xff0c;在后端的响应头部中写上静态资源地址。 近期客户对我们项目做安全性测评&#xff0c;暴露出一些安全性问题&#xff0c;其中一个是有些静态页面&#xff08;*.html&…

数据安全策略

当您在第一线担负着确保公司的信息和系统尽可能免受风险的关键职责时&#xff0c;您的数据安全策略需要复杂且多层次。威胁可能有多种形式&#xff1a;恶意软件、黑客攻击、财务或信息盗窃、破坏、间谍活动&#xff0c;甚至是您信任的员工故意或无意的活动造成的。因此&#xf…

c++:蓝桥杯中的基础算法1(枚举,双指针)

枚举 基础概念&#xff1a; 枚举&#xff08;Enum&#xff09;是一种用户定义的数据类型&#xff0c;用于定义一个有限集合的命名常量。在C中&#xff0c;枚举类型可以通过关键字enum来定义。 下面是一个简单的枚举类型的定义示例&#xff1a; #include <iostream>enum…

Android T 远程动画显示流程其二——动画的添加流程(更新中)

前言 接着上篇文章分析 Android T 远程动画显示流程其一 切入点——处理应用的显示过渡 下面&#xff0c;我们以从桌面点击一个应用启动的场景来分析远程动画的流程&#xff0c;窗口添加的流程见Android T WMS窗口相关流程 这里我们从AppTransitionController.handleAppTran…

学习python的第7天,她不再开放她的听歌榜单

我下午登录上小号&#xff0c;打开聊天消息看到了她的回复&#xff0c;我很开心兴奋&#xff0c;可是她不再开放她的听歌榜单了&#xff0c;我感觉得到&#xff0c;我要失恋了。 “因为当年电视上看没有王菲版本的” “行”。 “那你以后还会开放听歌榜单吗&#xff1f;”我…

【监控】grafana图表使用快速上手

目录 1.前言 2.连接 3.图表 4.job和path 5.总结 1.前言 上一篇文章中&#xff0c;我们使用spring actuatorPrometheusgrafana实现了对一个spring boot应用的可视化监控。 【监控】Spring BootPrometheusGrafana实现可视化监控-CSDN博客 其中对grafana只是打开了一下&am…

【Azure 架构师学习笔记】- Azure Databricks (10) -- UC 使用

本文属于【Azure 架构师学习笔记】系列。 本文属于【Azure Databricks】系列。 接上文 【Azure 架构师学习笔记】- Azure Databricks (9) – UC权限 在前面的文章&#xff1a;【Azure 架构师学习笔记】- Azure Databricks (6) - 配置Unity Catalog中演示了如何配置一个UC。 本文…

SpringBoot 学习笔记

文章目录 一、IoC二、AOP三、bean3.1 bean 生命周期3.2 三种依赖注入方式3.3 bean 线程安全 四、SpringMVC五、常用注解5.1 Scope5.2 PostConstruct 和 PreDestroy5.3 Component 和 Bean5.4 Autowired 和 Resource 六、基于 ApplicationContextAware 实现工厂模式七、事务失效八…

【了解机器学习的定义与发展历程】

曾梦想执剑走天涯&#xff0c;我是程序猿【AK】 目录 简述概要知识图谱 简述概要 了解机器学习的定义与发展历程 知识图谱 机器学习&#xff08;Machine Learning&#xff0c;ML&#xff09;是一门跨学科的学科&#xff0c;它使用计算机模拟或实现人类学习行为&#xff0c;通…

设计模式: 策略模式

文章目录 一、什么是策略模式二、策略模式结构三、使用场景案例分析1、使用场景2、案例分析&#xff08;1&#xff09;消除条件分支 一、什么是策略模式 策略模式是一种行为型设计模式&#xff0c;它允许定义一组算法&#xff0c;并将每个算法封装在独立的类中&#xff0c;使它…

解决内嵌帆软报表出现重定向问题

最近收到反馈&#xff0c;某些程序的前端通过iframe标签内嵌finebi帆软报表时&#xff0c;出现一系列问题。 问题1: 如下图所示&#xff0c;单点登录(单点登录地址schema是https)后service地址的schema协议是http, 浏览器内核的安全测试不允许http访问https。 解决方案&#xf…

【C进阶】顺序表详解

文章目录 &#x1f4dd;线性表的概念&#x1f320; 顺序表&#x1f309;顺序表的概念 &#x1f320;声明--接口&#x1f309;启动&#x1f320;初始化&#x1f309;扩容&#x1f320;尾插&#x1f309; 打印&#x1f320;销毁&#x1f309; 尾删&#x1f320;头插&#x1f309;…

matlab 线性四分之一车体模型

1、内容简介 略 57-可以交流、咨询、答疑 路面采用公式积分来获得&#xff0c;计算了车体位移、非悬架位移、动载荷等参数 2、内容说明 略 3、仿真分析 略 线性四分之一车体模型_哔哩哔哩_bilibili 4、参考论文 略

Redis高并发分布锁实战

Redis高并发分布锁实战 问题场景 场景一: 没有捕获异常 // 仅仅加锁 // 读取 stock15 Boolean ret stringRedisTemplate.opsForValue().setIfAbsent("lock_key", "1"); // jedis.setnx(k,v) // TODO 业务代码 stock-- stringRedisTemplate.delete(&quo…

php脚本输出中文在浏览器中显示乱码

问题说明 这个问题一般出现在较低版本的php中&#xff0c;原因是php和浏览器的字符解析方式不对应 &#xff0c;导致中文字符被错误解析成乱码 &#xff08;注&#xff0c;此处的php版本任意切换是依赖于小皮面板&#xff08;phpstudy&#xff09;实现的&#xff0c;感兴趣可以…

Docker容器故障排查与解决方案

Docker是一种相对使用较简单的容器&#xff0c;我们可以通过以下几种方式获取信息&#xff1a; 1、通过docker run执行命令&#xff0c;或许返回信息 2、通过docker logs 去获取日志&#xff0c;做有针对性的筛选 3、通过systemctl status docker查看docker服务状态 4、通过…

【牛牛送书 | 第四期】《高效使用Redis:一书学透数据存储与高可用集群》带你快速学习使用Redis

前言&#xff1a; 当今互联网技术日新月异&#xff0c;随着数据量的爆炸式增长&#xff0c;如何高效地存储和管理数据成为了每个公司都必须面对的挑战。与此同时&#xff0c;用户对于应用程序的响应速度和稳定性要求也越来越高。在这个背景下&#xff0c;Redis 作为一个…