全部產品
Search
文件中心

Container Service for Kubernetes:ossfs版本說明

更新時間:Sep 03, 2024

通過CSI掛載OSS儲存卷時,csi-plugin組件將啟動ossfs進程,將OSS服務端資料掛載到容器內指定的掛載路徑。您可以通過POSIX操作讀寫服務端的檔案,像操作普通檔案那樣讀寫OSS Bucket中的Object,便於雲端儲存資源的訪問和管理。ossfs版本隨著CSI組件版本的迭代進行升級。本文介紹ossfs版本說明以及如何查看並切換ossfs版本。

功能原理

ossfs是一個使用者空間檔案系統(userspace filesystem),可以將Object Storage Service的Bucket掛載到Linux系統的本地檔案系統。通過ossfs,您可以像操作本地檔案一樣直接存取和管理OSS中的Object,從而實現資料的無縫共用和操作。主要功能如下。

  • 支援POSIX檔案協議標準的大部分功能,例如上傳下載檔案、目錄,設定使用者權限等。

  • 預設使用OSS的分區上傳和斷點續傳功能上傳檔案。

  • 支援MD5校正,保證資料的完整性。

  • 基於s3fs構建,具有s3fs的全部功能。

關於ossfs更多使用資訊,請參見ossfs

版本說明

ossfs版本的表達方式為x.yy.z。其中:

  • x.yy為ossfs基於開源s3fs的版本。x.yy版本發布時,支援通過CSI環境變數等配置項回退。

  • z為ossfs自身的迭代版本,包括OSS儲存、ACK使用環境的最佳化。例如監控、鑒權、加密等新增功能。更多版本資訊,請參見csi-plugin

  • 為了區分開源ossfs版本,容器ossfs版本還會有.ack.1尾碼,例如1.80.6.ack.1

ossfs大版本迭代記錄

重要

如果您對檔案操作效能有較高要求,建議您將ossfs版本切換至1.91及以上版本。關於ossfs 1.91及以上版本的啟用情境,請參見ossfs 1.91及以上版本啟用最佳實務。如何切換ossfs版本,請參見下文將ossfs切換至1.91及以上版本

架構類型

ossfs版本

對應CSI版本

Arm64

1.91及以上版本

  • v1.30.1-98960d8-aliyun (通過特性門控啟用)

  • v1.30.4-fe12624-aliyun(預設使用)

1.80.x

v1.20.5-ff6490f-aliyun(支援Arm64的首個CSI版本)

AMD64

1.91及以上版本

  • v1.30.1-98960d8-aliyun (通過特性門控啟用)

  • v1.30.4-fe12624-aliyun(預設使用)

1.88.x

v1.22.14-820d8870-aliyun

1.86.x

v1.16.9.43-f36bb540-aliyun

1.80.x

初始版本

查看ossfs版本

  • 在非容器化CSI版本(小於1.28且不包含1.26.6的CSI版本)中,ossfs運行在節點上,您可以登入任一節點,執行以下命令,確認ossfs版本。

    /usr/local/bin/ossfs --version
  • 在容器化CSI版本(1.26.6,或1.28.1及以上的CSI版本)中,ossfs作為Pod內的容器運行在叢集中。掛載OSS儲存卷後,CSI組件將自動在kube-system命名空間(小於1.30.4的CSI版本)或ack-csi-fuse命名空間(1.30.4及以上的CSI版本)下建立相關Pod。您可以通過以下方式確認ossfs版本。

    1. 執行以下命令,查詢正在啟動並執行Pod。

      小於1.30.4的CSI版本:

      kubectl -n kube-system get pod | grep csi-fuse-ossfs

      1.30.4及以上的CSI版本:

      kubectl -n ack-csi-fuse get pod | grep csi-fuse-ossfs
    2. 執行以下命令,確認ossfs版本。

      小於1.30.4的CSI版本:

      kubectl -n kube-system exec -it <csi-fuse-ossfs-xxxx> -- ossfs --version

      1.30.4及以上的CSI版本:

      kubectl -n ack-csi-fuse exec -it <csi-fuse-ossfs-xxxx> -- ossfs --version

將ossfs切換至1.91及以上版本

方法一:升級CSI版本

對於1.30.4及以上的CSI版本,ossfs預設已使用1.91及以上的版本,您可以直接通過升級CSI版本切換ossfs的版本。

方法二:開啟特性門控

您需要開啟UpdatedOssfsVersion特性門控以啟用1.91及以上版本的ossfs。具體操作如下:

說明

預設情況下,運行在同一節點上,且掛載同一OSS儲存卷的Pod會共用一個ossfs進程,即在叢集中只會啟動一個名為csi-fuse-ossfs-***的Pod。開啟UpdatedOssfsVersion特性門控後,新啟動的ossfs容器使用的鏡像將自動變更為1.91及以上版本,正在使用OSS儲存卷的業務不受影響。如需手動觸發當前業務使用的ossfs版本升級,請參見共用掛載方式下如何?ossfs重掛載?

  1. 確認csi-plugin版本為1.30.1及以上版本。

    1. 登入Container Service管理主控台,在左側導覽列選擇叢集

    2. 叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,選擇營運管理 > 組件管理

    3. 在組件管理頁面,尋找定位csi-plugin組件,查看組件目前的版本。

      若csi-plugin版本小於1.30.1,請單擊組件右下角升級,將組件升級至最新版本。

  2. 通過控制台或kubectl任一方式開啟UpdatedOssfsVersion特性門控。

    說明

    通過控制台開啟時,設定的FeatureGate參數將覆蓋原有的特性門控配置,若您不確定此前是否已經通過kubectl開啟過其他特性門控功能,建議您使用kubectl方式進行開啟。

    通過控制台開啟

    1. csi-plugin組件升級完成後,在csi-plugin組件卡片右下角單擊配置

    2. csi-plugin 參數配置頁面,設定FeatureGate參數為UpdatedOssfsVersion=true,然後單擊確定

      若之前已經開啟過其他特性門控,則參數填寫格式為xxxxxx=true,yyyyyy=false,UpdatedOssfsVersion=true

    通過kubectl開啟

    1. 執行以下命令修改csi-plugin的DaemonSet檔案。

    2. kubectl -n kube-system edit ds csi-plugin
    3. 在csi-plugin容器(非Init Container容器)的args中,新增參數--feature-gates=UpdatedOssfsVersion=true。修改後的args類似為:

    4. 說明

      若此前已經開啟過其他特性門控,新增參數格式為--feature-gates=xxxxxx=true,yyyyyy=false,UpdatedOssfsVersion=true

            - args:
              - --endpoint=$(CSI_ENDPOINT)
              - --v=2
              - --driver=oss,nas,disk
              - --feature-gates=UpdatedOssfsVersion=true

相關文檔

關於1.91及以上版本新增功能以及壓測效能介紹,請參見ossfs 1.91及以上版本新功能介紹及效能壓測