基於開源軟體構建儲存解決方案的思考

jackieathome發表於2024-04-05

近來看了一些IBM的儲存產品的資料,有一些收穫。
依據儲存軟體和搭配硬體,IBM儲存產品的組合,大致分類如下:

  • 自研儲存軟體,搭配自研專有硬體
  • 自研儲存軟體,搭配通用伺服器硬體,比如IBM Storage Scale
  • 自研儲存軟體,開放雲服務,比如IBM Cloud storage
  • 開源軟體,搭配通用伺服器,比如IBM Storage Ceph

本文主要梳理基於開源軟體搭配通用伺服器硬體來構建儲存系統的思路和工作任務清單,涉及角色如下:

  • 規劃團隊
  • 研發團隊
  • 資料團隊
  • 運維團隊

下文討論各團隊的職責和交付件。

規劃團隊

依據業務場景,站在業務視角觀察儲存系統,依據業務的資料規模、增長模型等,評估並輸出業務訪問模型、儲存的功能訴求、儲存的效能模型等。
工作輸入,如下:

  • 業務場景,比如:
    • 資料當前規模
    • 增長模型
    • 運算量
    • 運算的位置
  • 資料特徵,比如:
    • 檔案來源
    • 檔案數量
    • 檔案大小
    • 檔案的時效性比如訪問熱度、資料儲存時長
  • 業務團隊,關注人的特徵,比如:
    • 團隊陣型
      • 運營團隊
      • 運維團隊
      • 開發團隊
      • 測試團隊
    • 人力模型,比如學歷、年齡、經驗
    • 技能模型
    • 工作習慣
    • 工作交付件
    • 工作模式
  • 業務預算
    • 來源
    • 規模
    • 評估方案

工作輸出,如下:

  • 典型組網
    • 交換機
    • 網路
  • 產品組合方案
    • 軟體
      • 開源軟體
      • 作業系統發行版
      • 作業系統核心
    • 硬體
      • 伺服器
      • CPU
      • 記憶體
      • 網路卡
      • 網線
  • 功能規格
  • 效能規格
  • 驗收方案

目前常見的開源儲存軟體,比如:

  • lustre
  • ceph
  • minio
  • JuiceFS
  • CubeFS

規劃團隊需要依據客戶的訴求、業務場景、自身團隊的特點等,綜合考慮,配置不同的解決方案。

研發團隊

研發團隊承接開發和驗證兩個職能,相關的工作任務包括相容性看護、交付能力構建、社群協同等。

相容性看護

依據規劃團隊交付的典型組網和組合方案:

  • 本儲存方案中軟體和硬體的相容性,輸出各硬體、軟體的配置引數模板和指導書。
  • 本儲存方案中涉及到的系統軟體的相容性,系統軟體包括作業系統、作業系統的核心、編譯器等。
  • 本儲存方案和上層業務之間的相容性,輸出驗證結果和規避方案。
  • 本儲存方案和周邊儲存系統的相容性
    • 資料傳輸時使用的協議,比如NFS、CIFS、S3等相容性。
    • 傳輸方案,包括可用性,可靠性等。

交付能力構建

依據規劃團隊交付的典型組網和組合方案:

  • 驗證典型組網的可行性。
  • 基於典型組網,構建效能基線。
  • 效能指標,比如頻寬、IOPS、時延、吞吐量、客戶端的數量等。
  • 功能指標,比如使用者儲存可得容量、節點數量、盤數量等。
  • 其它指標,比如功耗、故障率、停機時間等。
  • 構建持續交付能力
    • 搭建流水線,從原始碼實施編譯、構建、部署、升級、驗證等。
    • 積累自動化用例,支撐方案快速迭代,提升交付效率。
  • 質量加固,比如:
    • 修復安全漏洞。
    • 更新依賴的開源軟體,支撐選型和更新版本。
    • 修復、驗證儲存軟體的問題。

與社群的協同

與客戶的協同,獲取客戶的訴求,並及時做出反饋,提升客戶的參與度和滿意度。
與上層業務應用的協同,參與上層業務應用的技術交流,瞭解業界的變化、方案和痛點,及時做出變更和調整。
與開源軟體社群的協同,積極反饋發現的問題,尋求社群的協助,同時量力而行,參與社群的各項工作。

資料團隊

和研發團隊緊密合作,依照交付規範,輸出如下研資料,如下:

  • 技術規格清單
  • 業務評估模型
  • 典型應用場景
  • 典型組網規劃和業務配置
  • 技術培訓材料
  • 業務培訓材料
  • 常見問題和案例

依照宣傳規範,輸出如下資料,如下:

  • 技術宣傳材料
  • 規劃指導書
  • 安裝、升級、擴容、巡檢指導書
  • 業務特性指南
  • 運維指南
    • 儲存業務
    • 儲存軟體
    • 系統軟體
    • 硬體,包括伺服器、盤、交換機等

運維團隊

運維團隊主要的工作任務在於支撐下游客戶更好的使用儲存系統提供的服務,同時在工作中積累運維經驗,固化為相應的流程和工具。
運維團隊的工作物件,包含如下:

  • 儲存業務
  • 儲存軟體
  • 系統軟體
  • 硬體,包括伺服器、盤、交換機等

運維團隊建設能力時,可行的思路如下:

  • 參照開源軟體的官方文件的推薦方案。
  • 基於客戶的實踐經驗。
  • 參照友商的實踐經驗、成功故事。
  • 梳理團隊自身的經驗和教訓。

運維團隊建設的能力,比如:

  • 監控能力,可基於開源軟體比如zabbixprometheus、[grafana(https://grafana.com/)等建設。
  • 日誌分析能力,可基於開源軟體elk建設。
  • 日常運維和巡檢,可基於ansible等建設。

參考資料

  • 理想汽車 x JuiceFS:從 Hadoop 到雲原生的演進與思考
  • 雲知聲:基於 JuiceFS 的超算平臺儲存實踐
  • 淺談 HPC 中的 Lustre
  • IBM Storage Scale
  • IBM Cloud storage
  • IBM Storage Ceph

相關文章