Longhorn 是用于 Kubernetes 的轻量级、可靠且功能强大的分布式块存储系统。
Longhorn
使用容器(containers
)和微服务(microservices
)实现分布式块存储。 Longhorn
为每个块设备卷(device volume
)创建一个专用的存储控制器(storage controller
), 并跨存储在多个节点上的多个副本同步复制该卷。存储控制器(storage controller
)和副本(replicas
)本身是使用 Kubernetes 编排的。
Automated
)、无中断升级(non-disruptive upgrades
)。您可以升级整个 Longhorn
软件堆栈,而不会中断正在运行的存储卷。GUI
仪表板Longhorn
是 Kubernetes
的轻量级、可靠且易于使用的分布式块存储系统。
Longhorn
支持以下架构:
AMD64
ARM64
(实验性的)Longhorn
是免费的开源软件。最初由 Rancher Labs
开发,现在作为 Cloud Native Computing Foundation
的沙箱项目进行开发。
使用 Longhorn
,您可以:
Longhorn
卷作为 Kubernetes
集群中分布式有状态应用程序的持久存储Longhorn
卷,这样无论是否有云提供商,都可以使用 Kubernetes
卷NFS
或 AWS S3
等外部存储上Kubernetes
集群的备份中快速恢复来自主 Kubernetes
集群的数据NFS
或 S3
兼容的辅助存储Longhorn
Longhorn
带有独立的 UI
,可以使用 Helm
、kubectl
或 Rancher app catalog
进行安装。
由于现代云环境需要数万到数百万的分布式块存储卷,一些存储控制器已经成为高度复杂的分布式系统。相比之下,Longhorn
可以通过将一个大块存储控制器划分为多个较小的存储控制器来简化存储系统,只要这些卷仍然可以从一个公共磁盘池构建。通过每个卷使用一个存储控制器,Longhorn 将每个卷变成了一个微服务。控制器称为 Longhorn 引擎。
Longhorn Manager
组件编排 Longhorn
引擎,使它们协同工作。
Pod
可以直接引用存储,但不推荐这样做,因为它不允许 Pod
或容器是可移植的。相反,应在 Kubernetes
持久卷 (PV
) 和持久卷声明 (PVC
) 中定义工作负载的存储要求。使用 Longhorn
,您可以指定卷的大小、IOPS
要求以及在为卷提供存储资源的主机上所需的同步副本数量。然后,您的 Kubernetes
资源可以为每个 Longhorn
卷使用 PVC
和相应的 PV
, 或者使用 Longhorn
存储类(storage class
)为工作负载自动创建 PV
。
Replicas
在底层磁盘或网络存储上进行精简配置。
为了提高可用性(availability
),Longhorn
创建了每个卷的副本。副本包含卷的一系列快照,每个快照都存储来自前一个快照的更改。卷的每个副本也在一个容器中运行,因此具有三个副本的卷会产生四个容器。
每个卷的副本数量可在 Longhorn
中配置,以及将安排副本的节点。Longhorn
监控每个副本的健康状况并执行修复,并在必要时重建副本。
常见的前端包括 Linux
内核设备(映射在 /dev/longhorn
下)和一个 iSCSI
目标。
指定这些操作的频率(每小时、每天、每周、每月和每年)、执行这些操作的确切时间(例如,每个星期日凌晨 3:00
),以及保留多少定期快照和备份集。