专栏首页黑客下午茶Longhorn,Kubernetes 云原生分布式块存储

Longhorn,Kubernetes 云原生分布式块存储

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

Longhorn 使用容器(containers)和微服务(microservices)实现分布式块存储。 Longhorn 为每个块设备卷(device volume)创建一个专用的存储控制器(storage controller), 并跨存储在多个节点上的多个副本同步复制该卷。存储控制器(storage controller)和副本(replicas)本身是使用 Kubernetes 编排的。

功能特性

  • 无单点故障的企业级分布式块存储
  • 块存储增量快照
  • 备份到辅助存储(NFS或S3兼容的对象存储)建立在高效的更改块检测之上
  • 定期快照和备份
  • 自动化(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),以及保留多少定期快照和备份集。

本文分享自微信公众号 - 黑客下午茶(hi-weishao),作者:为少

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2021-08-16

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Longhorn项目

    说明:Longhorn是Kubernetes的分布式块存储系统。Longhorn轻便、可靠、强大。你可以使用kubectl apply命令或使用Helm cha...

    CNCF
  • Longhorn,企业级云原生容器分布式存储 - 支持 ReadWriteMany (RWX) 工作负载(实验性功能)

    Longhorn 通过 NFSv4 服务器(share-manager)公开常规 Longhorn 卷,原生支持 RWX 工作负载。

    为少
  • Longhorn,企业级云原生容器分布式存储 - 高可用

    数据局部性设置(data locality setting)旨在在以下情况下启用:只要有可能,至少应在与使用该卷的 pod 相同的节点上调度 Longhorn ...

    为少
  • K8s原生存储持续进化,Longhorn 1.1迎来ARM支持

    当DevOps团队同时使用Rancher和Longhorn 1.1时,他们可以轻松管理位于任意位置的持久化数据卷,无论这些持久化数据卷位于云端、数据中心抑或边缘...

    CNCF
  • Longhorn云原生容器分布式存储-Air Gap安装

    Longhorn 可以通过使用 manifest file、Helm chart 或 Rancher UI 安装在 air gapped 环境中。

    为少
  • 使用Longhorn优雅地恢复正在运行中的容器应用

    鞠宏超,Rancher研发工程师。4年云计算领域经验,2018年加入Rancher Labs,先后参与了Longhorn产品研发,Rancher2.x产品研发,...

    CNCF
  • Longhorn,企业级云原生容器分布式存储 - 监控(Prometheus+AlertManager+Grafana)

    Longhorn 在 REST 端点 http://LONGHORN_MANAGER_IP:PORT/metrics 上以 Prometheus 文本格式原生公...

    为少
  • Longhorn 云原生容器分布式存储 - Python Client

    目前,您可以使用 Longhorn UI 操作 Longhorn。同时,您可以使用 Python 访问 Longhorn API,如下所示。

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

    Longhorn 设计有两层:数据平面(data plane)和控制平面(control plane)。Longhorn Engine 是存储控制器对应数据平面...

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

    在本教程中,您将学习如何创建与 Longhorn 卷对应的持久卷 (PV) 和持久卷声明 (PVC) 的 Kubernetes 持久存储资源。您将使用 kube...

    为少
  • Longhorn 企业级云原生容器存储解决方案-部署篇

    安装 Longhorn 的 Kubernetes 集群中的每个节点都必须满足以下要求:

    为少
  • Longhorn 微服务化存储初探

    Longhorn 官方推荐的最小配置如下,如果数据并不算太重要可适当缩减和调整,具体请自行斟酌:

    CNCF
  • Longhorn,企业级云原生容器分布式存储 - 定制部署默认设置

    您可以在部署 Longhorn 时自定义它的默认设置。例如,您可以在启动 Longhorn 之前指定 Create Default Disk With Node...

    为少
  • Longhorn,企业级云原生容器分布式存储 - K8S 资源配置示例

    请注意,只有 ext4 文件系统支持在卷意外分离后(detached unexpectedly)自动重新挂载。

    为少
  • 附022.Kubernetes_v1.18.3高可用部署架构一

    Kubernetes的高可用主要指的是控制平面的高可用,即指多套Master节点组件和Etcd组件,工作节点通过负载均衡连接到各Master。

    木二
  • 附024.Kubernetes_v1.18.3高可用部署架构二

    Kubernetes的高可用主要指的是控制平面的高可用,即指多套Master节点组件和Etcd组件,工作节点通过负载均衡连接到各Master。

    木二
  • 019.Kubernetes二进制集群存储longhorn

    提示:更多介绍参考:https://github.com/longhorn/longhorn。

    木二
  • Rancher大中华区技术总监带你6分钟了解Rancher 1.5

    摘要 Rancher容器管理平台1.5版已正式与大家见面了,此次分享将由Rancher Labs大中华区技术总监介绍Rancher的版本演进历史以及Ranche...

    IT大咖说
  • 附031.Kubernetes_v1.20.4高可用部署架构二

    Kubernetes的高可用主要指的是控制平面的高可用,即指多套Master节点组件和Etcd组件,工作节点通过负载均衡连接到各Master。

    木二

扫码关注云+社区

领取腾讯云代金券