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
支援以下架構:
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
引擎,使它們協同工作。
在不依賴雲提供商的情況下在 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
),以及保留多少定期快照和備份集。