longhorn发布:基于微服务的开源分布式块存储

author author     2022-08-29     668

关键词:

Longhorn项目现已正式发布!这是一个基于云和容器部署的分布式块存储新方式。Longhorn遵循微服务的原则,利用容器将小型独立组件构建为分布式块存储,并使用容器编排来协调这些组件,形成弹性分布式系统。


Why Longhorn?


如今,基于云和容器的部署规模日益扩大,分布式块存储系统也正变得越来越复杂,单个存储控制器上的volume数量在不断增加。2000年代初,存储控制器上的volume数量只有几十个,但现代云环境却需要数万到数百万的分布式块存储卷。存储控制器变成了高度复杂的分布式系统。


分布式块存储本身比其他形式的分布式存储(如文件系统)更简单。无论系统中有多少volume,每个volume只能由单个主机进行装载。正因如此,我们设想,是否可以将大型块存储控制器分割成多个较小的存储控制器?若想要如此分割,我们需要保证这些volume仍然是从公共磁盘池构建的,并且我们需要有办法来编排这些存储控制器,让它们可以协同工作。


为了将这一想法发挥到极限,我们创建了Longhorn项目。这是一个我们认为值得探索的方向,每个控制器上只有一个volume,这将大大简化存储控制器的设计。因为控制器软件的故障域仅限于单个volume,所以控制器若崩溃,也只会影响一个volume。


Longhorn充分利用了近年来关于如何编排大量的容器和虚拟机的核心技术。例如,Longhorn并没有构建一个可以扩展到100,000个volume的高度复杂的控制器,而是出于让存储控制器简单轻便的考虑,创建了100,000个单独的控制器。然后,我们可以利用像Swarm、Mesos和Kubernetes这样的最先进的编排系统来调度这些独立的控制器,共享一组磁盘中的资源,协同工作,形成一个弹性的分布式块存储系统。


Longhorn基于微服务的设计还有很多其他优势。因为每个volume都有自己的控制器,在升级每个volume的控制器和replica容器时,是不会导致IO操作明显的中断的。 Longhorn可以创建一个长期运行的工作来编排所有live volume的升级,同时确保不会中断系统正在进行的操作。为确保升级不会导致意外的问题,Longhorn可以选择升级一小部分volume,并在升级过程中出现问题时回滚到旧版本。这些做法在现代微服务应用中已得到广泛应用,但在存储系统中并不常见。我们希望Longhorn可以助力于微服务在存储领域的更多应用。


Longhorn功能概述


  • 将本地磁盘或安装在计算或专用存储主机中的网络存储形成共享资源池。

  • 为容器和虚拟机创建块存储卷。你可以指定volume的大小,IOPS的需求,以及你想要的跨主机的同步replica的数量(这里的主机是指那些为volume提供存储资源的主机)。replica是在底层磁盘或网络存储上精简配置的。

  • 为每个volume创建一个专用的存储控制器。这可能是与大多数现有的分布式存储系统相比,Longhorn最具特色的功能。大多数现有的分布式存储系统通常采用复杂的控制器软件来服务于从数百到数百万不等的volume。但Longhorn不同,每个控制器上只有一个volume,Longhorn将每个volume都转变成了微服务。

  • 跨计算或存储主机调度多个replica。Longhorn会监测每一个replica的健康状况,对问题进行维修,并在必要时重新生成replica。

  • 以Docker容器的形式操作存储控制器和replica。例如,一个volume有三个replica,就意味着有四个容器。

  • 为每个volume分配多个存储“前端”。常见的前端包括Linux内核设备(映射到/ dev / longhorn)和iSCSI目标。Linux内核设备适用于支持Docker volume,而iSCSI目标更适合支持QEMU / KVM和VMware volume。

  • 创建volume快照(snapshot)和AWS EBS风格的备份。您可以为每个volume创建多达254个快照,这些快照可以逐个备份到NFS或S3兼容的辅助存储中。只有更改的字节会在备份操作期间被复制和存储。

  • 指定定期快照和备份操作的计划。您可以指定这些操作的频率(每小时,每天,每周,每月和每年)、执行这些操作的确切时间(例如,每个星期日凌晨3:00),以及保留多少个循环快照和备份集。


坚信开源才是技术的未来,始终秉承开源理念的Rancher Labs,此次推出的Longhorn依然是100%的开源软件。您可以通过在GitHub上下载Longhorn:https://github.com/rancher/longhorn。


本文出自 “12452495” 博客,请务必保留此出处http://12462495.blog.51cto.com/12452495/1921097

宜信开源微服务任务调度平台(sia-task)

...题。随着微服务化架构的逐步演进,单体架构逐渐演变为分布式、微服务架构。在此的背景下,很多原先的任务调度平台已经不能满足业务系统的需求。于是出现了一些基于分布式的任务调度平台。这些平台各有其特点,但各有... 查看详情

springcloud2020.0.3正式版发布,微服务开源项目matecloud同步升级

一、关于SpringCloudSpringCloud为开发者提供了快速构建分布式系统中一些常用模式的工具(例如配置管理、服务发现、断路器、智能路由、微代理、控制总线)。分布式系统的协调导致了样板模式,使用SpringCloud开发人员... 查看详情

.netcorewith微服务-使用agiledt快速实现基于可靠消息的分布式事务

前面对于分布式事务也讲了好几篇了(可靠消息最终一致性分布式事务-TCC分布式事务-2PC、3PChttps://github.com/kklldog/AgileDT开源不易,大家多多✨✨✨回顾前面一篇文章(可靠消息最终一致性)我们详细介绍了基于可靠消息的分... 查看详情

.netcore微服务之:基于consul实现服务治理

...章为.NETCore实现企业级微服务架构技术点介绍Consul是一个分布式,高可用、支持多数据中心的服务注册、发现、健康检查和配置共享的服务软件。由HashiCorp公司用Go语言开发推出的开源产品用于实现分布式系统的服务发现、服务... 查看详情

基于docker部署spark和minioserver

...e文件如下,根据docker-compose的内容,大致分为三个部分。分布式MinIO可以让你将多块硬盘(甚至在不同的机器上)组成一个对象存储服务。由于硬盘分布在不同的节点上,分布式MinIO避免了单点故障。详细参考这里Docker-compose中的... 查看详情

一个宝藏级微服务开源项目,压箱底的了(代码片段)

...开发架构,而是努力打造一套从前端模板-基础框架-分布式架构-开源项目-持续集成-自动化部署-系统监测-无缝升级的全方位J2EE企业级开发解决方案。项目介绍基于Spring+SpringMVC+Mybatis分布式敏捷开发系统架构,提供... 查看详情

springcloud微服务架构—服务注册与发现

...器、智能路由、微代理、控制总线、全局锁、决策竞选、分布式会话和集群状态管理等操作提供了一种简单的开发方式。SpringCloud包含了多个子项目(针对分布式系统中涉及的多个不同开源产品),比如:SpringCloudConfig、Spring 查看详情

springcloud微服务架构—服务注册与发现

...器、智能路由、微代理、控制总线、全局锁、决策竞选、分布式会话和集群状态管理等操作提供了一种简单的开发方式。SpringCloud包含了多个子项目(针对分布式系统中涉及的多个不同开源产品),比如:SpringCloudConfig、Spring 查看详情

【minio】基于awss3协议搭建个人云存储服务

参考技术A在2007年,GlusterFS演变为大型分布式存储方案后,任何配备合适硬件的公司,单位都可以利用个做分布式的流媒体,数据分析。在2011年,RedHat收购了GlusterFS.Minio是GlusterFS创始人之一AnandBabuPeriasamy发布新的开源项目。Minio... 查看详情

关于微服务分布式事务

分布式事务解决方案:一.基于XA协议的两阶段提交; 二.消息事务+最终一致性   所谓的消息事务就是基于消息中间件的两阶段提交,本质上是对消息中间件的一种特殊利用,它是将本地事务和发消息放在了一个分... 查看详情

构建springcloud微服务分布式云架构

大型企业分布式微服务云架构服务组件实现模块化、微服务化、原子化、灰度发布、持续集成commonserviceeurekaNetflix云端服务发现,一个基于REST的服务,用于定位服务,以实现云端中间层服务发现和故障转移。commonserviceconfigSpring... 查看详情

「架构师必备」基于springcloud的saas型微服务脚手架

...关统一鉴权、Xss防跨站***、自动代码生成、多存储系统、分布式事务、分布式定时任务等多个模块,支持多业务系统并行开发,支持多服务并行开发,可以作为后端服务的开发脚手架。代码简洁,架构清晰,非常适合学习使用。... 查看详情

一个宝藏级微服务开源项目,压箱底的了(代码片段)

...开发架构,而是努力打造一套从前端模板-基础框架-分布式架构-开源项目-持续集成-自动化部署-系统监测-无缝升级的全方位J2EE企业级开发解决方案。项目介绍基于Sp 查看详情

几种常见的微服务架构方案简述——zerocicegridspringcloud基于消息队列

...目的微服务化改造或开发进程。本文选自《架构解密:从分布式到微服务》一书,了解本书详情请点击阅读原文。本文盘点了四种常用的微服务架构方案,分别是 查看详情

惠普架构师解密从分布式到微服务,深入理解rpc内存存储检索等问题

...,受到了广大架构师与开发者的高度关注。内容简介分布式架构与微服务平台是当今IT界的关键 查看详情

微服务分布式云架构构建电子商务平台

大型企业分布式微服务云架构服务组件实现模块化、微服务化、原子化、灰度发布、持续集成commonserviceeurekaNetflix云端服务发现,一个基于REST的服务,用于定位服务,以实现云端中间层服务发现和故障转移。 commonserviceconfigSp... 查看详情

构建微服务架构springcloud:服务注册与发现(eurekaconsul)

...器、智能路由、微代理、控制总线、全局锁、决策竞选、分布式会话和集群状态管理等操作提供了一种简单的开发方式。SpringCloud包含了多个子项目(针对分布式系统中涉及的多个不同开源产品),比如:SpringCloudConfig、Spring 查看详情

分布式数据存储与管理[hdfs+hbase]

一、系统架构在分布式存储领域,相信大多数人对HDFS(HadoopDistributedFileSystem)并不陌生,它是GFS(GoogleFileSystem)的开源实现版本,解决大规模非结构化数据存储的问题。然而,HBase则是基于HDFS之上... 查看详情