Longhorn 是用于 Kubernetes 的轻量级、可靠且功能强大的分布式块存储系统。

Longhorn 使用容器(containers)和微服务(microservices)实现分布式块存储。

Longhorn 为每个块设备卷(device volume)创建一个专用的存储控制器(storage controller),

并跨存储在多个节点上的多个副本同步复制该卷。存储控制器(storage controller)和副本(replicas)本身是使用 Kubernetes 编排的。

功能特性

  • 无单点故障的企业级分布式块存储
  • 块存储增量快照
  • 备份到辅助存储(NFSS3兼容的对象存储)建立在高效的更改块检测之上
  • 定期快照和备份
  • 自动化(Automated)、无中断升级(non-disruptive upgrades)。您可以升级整个 Longhorn 软件堆栈,而不会中断正在运行的存储卷。
  • 直观的 GUI 仪表板

Longhorn 是什么?

LonghornKubernetes 的轻量级、可靠且易于使用的分布式块存储系统。

Longhorn 支持以下架构:

  1. AMD64
  2. ARM64 (实验性的)

Longhorn 是免费的开源软件。最初由 Rancher Labs 开发,现在作为 Cloud Native Computing Foundation 的沙箱项目进行开发。

使用 Longhorn,您可以:

  • 使用 Longhorn 卷作为 Kubernetes 集群中分布式有状态应用程序的持久存储
  • 将块存储划分为 Longhorn 卷,这样无论是否有云提供商,都可以使用 Kubernetes
  • 跨多个节点和数据中心复制块存储以提高可用性
  • 将备份数据存储在 NFSAWS S3 等外部存储上
  • 创建跨集群灾难恢复卷,以便可以从第二个 Kubernetes 集群的备份中快速恢复来自主 Kubernetes 集群的数据
  • 安排卷的定期快照,并安排定期备份到 NFSS3 兼容的辅助存储
  • 从备份恢复卷
  • 在不中断持久卷的情况下升级 Longhorn

Longhorn 带有独立的 UI,可以使用 HelmkubectlRancher app catalog 进行安装。

使用微服务简化分布式块存储

由于现代云环境需要数万到数百万的分布式块存储卷,一些存储控制器已经成为高度复杂的分布式系统。

相比之下,Longhorn 可以通过将一个大块存储控制器划分为多个较小的存储控制器来简化存储系统,只要这些卷仍然可以从一个公共磁盘池构建。

通过每个卷使用一个存储控制器,Longhorn 将每个卷变成了一个微服务。控制器称为 Longhorn 引擎。

Longhorn Manager 组件编排 Longhorn 引擎,使它们协同工作。

在不依赖云提供商的情况下在 Kubernetes 中使用持久化存储

Pod 可以直接引用存储,但不推荐这样做,因为它不允许 Pod 或容器是可移植的。

相反,应在 Kubernetes 持久卷 (PV) 和持久卷声明 (PVC) 中定义工作负载的存储要求。

使用 Longhorn,您可以指定卷的大小、IOPS 要求以及在为卷提供存储资源的主机上所需的同步副本数量。

然后,您的 Kubernetes 资源可以为每个 Longhorn 卷使用 PVC 和相应的 PV

或者使用 Longhorn 存储类(storage class)为工作负载自动创建 PV

Replicas 在底层磁盘或网络存储上进行精简配置。

跨多个计算或存储主机调度多个副本(Replicas)

为了提高可用性(availability),Longhorn 创建了每个卷的副本。副本包含卷的一系列快照,每个快照都存储来自前一个快照的更改。

卷的每个副本也在一个容器中运行,因此具有三个副本的卷会产生四个容器。

每个卷的副本数量可在 Longhorn 中配置,以及将安排副本的节点。Longhorn 监控每个副本的健康状况并执行修复,并在必要时重建副本。

为每个卷分配多个存储前端

常见的前端包括 Linux 内核设备(映射在 /dev/longhorn 下)和一个 iSCSI 目标。

指定定期快照和备份操作的计划

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

Longhorn,Kubernetes 云原生分布式块存储的更多相关文章

  1. Longhorn 企业级云原生分布式容器存储-券(Volume)和节点(Node)

    内容来源于官方 Longhorn 1.1.2 英文技术手册. 系列 Longhorn 是什么? Longhorn 云原生分布式块存储解决方案设计架构和概念 Longhorn 企业级云原生容器存储解决方 ...

  2. Longhorn 云原生分布式块存储解决方案设计架构和概念

    内容来源于官方 Longhorn 1.1.2 英文技术手册. 系列 Longhorn 是什么? 目录 1. 设计 1.1. Longhorn Manager 和 Longhorn Engine 1.2 ...

  3. 保姆级教程!手把手教你使用Longhorn管理云原生分布式SQL数据库!

    作者简介 Jimmy Guerrero,在开发者关系团队和开源社区拥有20多年的经验.他目前领导YugabyteDB的社区和市场团队. 本文来自Rancher Labs Longhorn是Kubern ...

  4. 云原生分布式文件存储 MinIO 教程

    文章转载自:https://mp.weixin.qq.com/s/_52kZ5jil1Cec98P5oozoA MinIO 提供开源.高性能.兼容 s3 的对象存储,为每个公共云.每个 Kuberne ...

  5. Longhorn 企业级云原生容器存储解决方案-部署篇

    内容来源于官方 Longhorn 1.1.2 英文技术手册. 系列 Longhorn 是什么? Longhorn 云原生分布式块存储解决方案设计架构和概念 安装 Longhorn 可以通过多种方式安装 ...

  6. DTCC 2020 | 阿里云李飞飞:云原生分布式数据库与数据仓库系统点亮数据上云之路

    简介: 数据库将面临怎样的变革?云原生数据库与数据仓库有哪些独特优势?在日前的 DTCC 2020大会上,阿里巴巴集团副总裁.阿里云数据库产品事业部总裁.ACM杰出科学家李飞飞就<云原生分布式数 ...

  7. Pulsar云原生分布式消息和流平台v2.8.0

    Pulsar云原生分布式消息和流平台 **本人博客网站 **IT小神 www.itxiaoshen.com Pulsar官方网站 Apache Pulsar是一个云原生的分布式消息和流媒体平台,最初创 ...

  8. K8ssandra——专为Kubernetes云原生数据而生

    DataStax最近发布了K8ssandra--一个开源的.部署于Kubernetes上的Apache Cassandra全新发行版本.K8ssandra一站式集合了在Kubernetes上部署开源版 ...

  9. VMware vSphere 7.0 Update 2 发布 - 数据中心虚拟化和 Kubernetes 云原生应用引擎

    2021 年 3 月 9 日,VMware 发布了 vSphere 7 Update 2.它可以通过 VMware Customer Connect 和 vSphere Lifecycle Manag ...

随机推荐

  1. AcWing 100. 增减序列

    给定一个长度为n的数列每次可以选择一个区间 [l,r],使下标在这个区间内的数都加一或者都减一. 求至少需要多少次操作才能使数列中的所有数都一样,并求出在保证最少次数的前提下,最终得到的数列可能有多少 ...

  2. Hibernate框架(四)缓存策略+lazy

    Hibernate作为和数据库数据打交道的框架,自然会设计到操作数据的效率问题,而对于一些频繁操作的数据,缓存策略就是提高其性能一种重要手段,而Hibernate框架是支持缓存的,而且支持一级和二级两 ...

  3. androidstudio创建第一个so文件

    前言:之前看安卓软件安全与逆向分析这书,看到ndk开发这节,发现自己连so文件都没编译操作过233,所以就直接上手试试, 感觉挺好玩的,把关键的加密流程都放进so中去实现,这周先写个demo试试,感觉 ...

  4. Vue | 路由守卫面试常考

    前言 最近在整理基础,欢迎掘友们一起交流学习 结尾有彩蛋哦! Vue Router 路由守卫 导图目录 路由守卫分类 全局路由守卫 单个路由守卫 组件路由守卫 路由守卫执行的完整过程 路由守卫分类 全 ...

  5. [Kong] basic-auth基本认证及ACL鉴权

    目录 basic-auth 1. Route上启用插件 2. 创建一个Consumer 3. 为Consumer创建凭证 4. 验证凭证 ACL 用户鉴权 1. 在route上启用ACL鉴权插件 2. ...

  6. git配置多个ssh key

    随着工作的深入,我们通常都会有多个git账户.比如公司gitlab一个账户,github或gitee有一个账户.而平时我们又回通过 配置ssh公私钥认证的方式省去繁琐的登录远程仓库的操作,不同的git ...

  7. 常见内部排序算法对比分析及C++ 实现代码

    内部排序是指在排序期间数据元素全部存放在内存的排序.外部排序是指在排序期间全部元素的个数过多,不能同时存放在内存,必须根据排序过程的要求,不断在内存和外存之间移动的排序.本次主要介绍常见的内部排序算法 ...

  8. C语言:预定义的宏

    预定义宏就是已经预先定义好的宏,我们可以直接使用,无需再重新定义.ANSI C 规定了以下几个预定义宏,它们在各个编译器下都可以使用: __LINE__:表示当前源代码的行号: __FILE__:表示 ...

  9. C语言:监听键盘

    所谓键盘监听,就是用户按下某个键时系统做出相应的处理,本章讲到的输入输出函数也是键盘监听函数的一种,例如 getchar().getche().getch() 等.下面的代码演示了 getche() ...

  10. VirtualBox 修改Android x86虚拟机的分辨率

    首先说明一下,本人使用的是Windows下的VirtualBox,android x86使用的是9.0-r2版本 一.查看virtualbox中已有的分辨率 启动虚拟机后,连续按两次E键,进入下面页面 ...