当前位置:   article > 正文

在K8S中Longhorn存储

在K8S中Longhorn存储

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

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

功能特性

  • 无单点故障的企业级分布式块存储

  • 块存储增量快照

  • 备份到辅助存储(NFS或S3兼容的对象存储)建立在高效的更改块检测之上

  • 定期快照和备份

  • 自动化(Automated)、无中断升级(non-disruptive upgrades)。您可以升级整个 Longhorn 软件堆栈,而不会中断正在运行的存储卷。

  • 直观的 GUI 仪表板

使用 Longhorn,您可以:

  • 使用 Longhorn 卷作为 Kubernetes 集群中分布式有状态应用程序的持久存储

  • 将块存储划分为 Longhorn 卷,这样无论是否有云提供商,都可以使用 Kubernetes 卷

  • 跨多个节点和数据中心复制块存储以提高可用性

  • 将备份数据存储在 NFS 或 AWS S3 等外部存储上

  • 创建跨集群灾难恢复卷,以便可以从第二个 Kubernetes 集群的备份中快速恢复来自主 Kubernetes 集群的数据

  • 安排卷的定期快照,并安排定期备份到 NFS 或 S3 兼容的辅助存储

  • 从备份恢复卷

  • 在不中断持久卷的情况下升级 Longhorn

Longhorn 带有独立的 UI,可以使用 Helmkubectl 或 Rancher 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存储

Longhorn 在 Kubernetes 集群中使用的是每个节点的本地存储空间来创建虚拟块设备卷。这意味着 Longhorn 在每个节点上使用本地磁盘空间来存储数据。这些本地磁盘空间可以是物理硬盘、SSD、或者其他存储介质。

Longhorn 通过创建 Replica 来在不同节点上复制数据,从而确保数据的可靠性和容错性。这意味着每个 Replica 都会占用节点上的存储空间。如果在集群中启用了三个副本(replicas),那么每个节点上可能会存有三份数据的副本。

请注意,Longhorn 的设计有助于提高数据的可靠性和冗余性,但也会占用节点的存储空间。因此,在部署 Longhorn 时,需要考虑每个节点的存储容量以及集群中复制的副本数量,以确保有足够的存储空间来支持数据的存储和复制。

longhorn 的特点

Longhorn 是一个用于 Kubernetes 的开源分布式块存储系统,具有许多特点,包括但不限于:

  1. 易于部署和管理: Longhorn 可以作为标准的 Kubernetes 本地存储类插件进行安装和部署,无需外部存储设备即可提供高可靠性的持久化存储。

  2. 分布式块存储: Longhorn 提供了分布式块存储解决方案,允许用户在 Kubernetes 集群中创建可靠、容错的持久化存储卷,并通过多个 Replica 实现数据的冗余备份。

  3. 快照和备份: Longhorn 支持快照和备份功能,用户可以创建卷的快照以便后续恢复或复原,也可以备份数据到远程存储位置。

  4. 动态数据复制: Longhorn 使用动态数据复制以提高数据的冗余性和可靠性,同时确保数据在集群中的分布和均衡性。

  5. 远程复制和故障转移: Longhorn 支持异地复制和故障转移功能,可以将数据镜像到其他集群,以实现跨数据中心或跨区域的数据复制和灾难恢复。

  6. 图形用户界面(GUI): Longhorn 提供直观的 Web 界面,允许用户轻松管理存储卷、快照、备份等功能。

  7. 云原生支持: Longhorn 是为云原生环境设计的,完全集成到 Kubernetes 中,支持常见的云服务提供商,如 AWS、GCP、Azure 等。

总的来说,Longhorn 提供了一个简单、易用且功能丰富的分布式块存储解决方案,为运行在 Kubernetes 上的应用程序提供稳定可靠的持久化存储支持。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/158427
推荐阅读
相关标签
  

闽ICP备14008679号