作者简介
吴硕,SUSE Senior Software Development Engineer,已为 Longhorn 项目工作近四年,是项目 maintainer 之一。
本文将介绍 Longhorn 的基本功能和架构,replica 和 backup 这两个最重要的特性以及使用案例,帮助大家了解 Longhorn 的价值所在以及使用方法。
Longhorn 是一个轻量的、可靠易用的、为 Kubernetes 设计的分布式存储系统,100% 开源,现已成为 CNCF 孵化项目。
Longhorn 作为存储系统,最重要、最基本的功能就是为 Kubernetes 的工作负载提供持久存储,我们称为 Longhorn volume。它利用集群工作节点本身的存储设备实现存储,这种超聚合的方式是 Longhorn 的设计理念之一,也可以很好地和 SUSE 另外一个项目——Harvester 集成。
为了保证高可用性,Longhorn 首先支持跨节点或跨可用区(AZ)的数据复制,即 Replication。如果整个集群或者恰好 volume 的所有 replica 都突然不可用,就需要将数据进一步备份(backup)到集群外部了。
Longhorn 支持将数据上传到 NFS 或者 S3 compatible 的存储方案。利用外部的备份数据,Longhorn 可以做集群级别的容灾恢复。关于数据备份本身,用户不可能每次手动发起请求,所以 Longhorn 支持周期性的 backup 和 snapshot,这个功能一般称为 cron job 或者 recurring job。
关于 Longhorn 升级,我们的要求是不能够影响用户或者已经运行的 volume 读写,所以每次 Longhorn 版本升级都是无中断升级。
今年 Longhorn 面向 VM 推出了新功能 backing image。假如用户想要起数十个或者上百个 VM,为每个 VM 单独下载一份一模一样的 SLES 或 Ubuntu 等 image,是非常浪费时间和空间的。在这一场景下,客户只需下载一份 image 作为只读的底层文件,并让所有 VM 共用即可。
此外,Longhorn 还有更多扩展功能,在此就不一一赘述了。

Longhorn 提供了一套 GUI 界面,如下图。用户可以通过 GUI 查看整体存储状况,管理可用的节点及相应的磁盘空间。


最重要的还是 volume 相关界面。打开 Longhorn 详细界面可以看到 volume 状态、应用信息以及 snapshot 相关信息。


此外,还有 backup、recurring job、setting