2021 年 10 月 11 日,博云正式開源 Carina 本地存盤方案,Carina 基于 Kubernetes 及 LVM 實作,提供了資料庫與中間件等有狀態應用在 Kubernetes 中運行所必須的高性能的本地存盤能力,極大減少了存盤系統的運維壓力,今年 9 月,Carina 還以首批成員身份加入了由中國信通院發起的可信開源社區共同體,并獲得可信開源專案成員證書,
Carina 最大的特點是高性能和免運維,為中間件、資料庫等有狀態服務提供了匹配本地磁盤的高 IOPS 和極低延遲的性能指標,同時易安裝、自運維能力又極大的減輕了存盤系統的運維壓力,另外,Carina 還提供了本地磁盤管理能力、PV 高級調度能力、PV 自動分層技術、卷拓撲能力、自動 failover 能力、動態 IO 限速、監控告警、多種存盤供給能力等高級功能,
目前, Carina 專案代碼已在 Github 上開源,專案地址為:https://github.com/carina-io/carina,歡迎廣大技術開發者和愛好者前去試用,
01 功能亮點
-
靈活高效的供給高 IOPS、低延遲的存盤
-
免運維,自動管理本地磁盤、自動組建 RAID
-
多種調度策略可配
-
支持帶寬 IOPS 限速
-
支持 PV 資料自動分層
-
支持 PV 自動擴容
-
支持 RAID 管理能力
-
支持容災轉移能力
-
提供塊和檔案的訪問方式
02 Why Carina?
-
Kubernetes 原生支持
完全兼容的 Kubernetes API ,無需額外開發,依賴組件很少且均為通用開源組件,
-
本地磁盤管理
自動管理本地磁盤,提供 RAID 組建、資料分層、磁盤限速等高級功能,
-
設備注冊
將本地磁盤注冊為 Kubernetes 設備,參與容器調度評分,
-
容災轉移
支持在節點洗掉,將存盤卷在其他節點重建,
-
檔案和塊存盤
同時支持為容器提供檔案存盤和塊存盤,以及在線擴容,
03 How it works
云端是標準 Kubernetes 集群,可以使用任何 CSI 存盤插件,比如 Ceph-CSI,在集群中運行 carina-controller carina-scheduler 在每個節點運行 carina-node,
Carina 主要有三部分組成,分別是 carina-controller、carina-scheduler 和 carina-node,其架構圖如下所示:
-
如上圖架構所示,Carina 能夠自動發現本地裸盤,并根據其磁盤特性劃分為 hdd 磁盤卷組及 ssd 磁盤卷組等,針對于本地資料高可用,Carina 推出了基于 bcache 的磁盤快取功能以及自動組件 RAID 功能;
-
Carina-node 是運行在每個節點上的 agent 服務,利用 lvm 技術管理本地磁盤,按照類別將本地磁盤劃分到不同的 VG 卷組,并從中劃分 LV 提供給 POD 使用;
-
Carina-scheduler 是 kubernetes 的調度插件,負責基于申請的 PV 大小,節點剩余磁盤空間大小,節點負載使用情況進行合理的調度,默認提供了 spreadout 及 binpack 兩種調度策略;
-
Carina-controller 是 Carina 的控制平面,監聽 PVC 等資源,維護 PVC,LV 之間的關系,
04 Carina VS Ceph-CSI / NFS-CSI
Carina 不同于 Ceph-CSI,NFS-CSI 等 Kubernetes 網路存盤插件,這些插件為網路存盤插件,解決了應用在 Kubernetes 場景下資料跟隨的問題,而 Carina 解決的是在資料庫和中間件場景下對掛載設備高性能讀寫的問題,
05 Carina 應用場景
-
場景一:資料庫 Redis、Mysql
Redis 作為高性能的記憶體型資料庫快取服務,同樣有資料落盤的需求,而使用網路存盤往往有比較大延遲,在使用 Carina 情況下,能夠提供和讀寫本地磁盤一致的性能,Redis 主從模式其本身已經解決了資料多地備份的問題,Carina 并不會提供更多冗余的資料備份,節省了磁盤空間,Mysql 作為嚴重依賴存盤的資料庫服務,使用 Carina 提供的存盤卷使 Mysql 在云上運行可以獲得更接近在物理機上運行的性能,
-
場景二:訊息服務 rocketmq、activemq
大多數訊息中間件都是基于記憶體的,為了維持訊息不丟失,訊息中間件還是有落盤的需求,比如對于需要 ACK 應答的訊息中間件,若是訊息非常多,訊息服務一般會選擇將時間較久的訊息落盤,對于訊息中間件來說對磁盤性能要求可謂極高,Carina 恰恰提供了等同于本地磁盤的讀寫性能,且對于訊息中間件并未有多副本存盤需求,因此 Carina 也避免了存盤多副本帶來的性能消耗.
-
場景三:普通應用 POD
Carina 的部署、運維、使用極其簡易,可以被當做一般專案的本地存盤使用,相當于 hostpath ,與 hostpath 不同的是 hostpath 要求在宿主機建立相關存盤目錄,Carina 則完全不用關心節點機器,直接創建原生 pvc 即可,
06 Join Us
Github:https://github.com/carina-io/carina
官方網站: http://www.opencarina.io
官方郵箱:[email protected]
微信群:掃碼加入微信交流群??
(入群暗號:carina)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/311947.html
標籤:其他
上一篇:阿里云 云效一站式研發平臺
下一篇:使用ffmpeg進行視頻圖片提取
