ossfs版本說明
通過CSI掛載OSS存儲卷時,csi-plugin組件將啟動ossfs進(jìn)程,將OSS服務(wù)端數(shù)據(jù)掛載到容器內(nèi)指定的掛載路徑。您可以通過POSIX操作讀寫服務(wù)端的文件,像操作普通文件那樣讀寫OSS Bucket中的Object,便于云端存儲資源的訪問和管理。ossfs版本隨著CSI組件版本的迭代進(jìn)行升級。本文介紹ossfs版本說明以及如何查看并切換ossfs版本。
功能原理
ossfs是一個用戶空間文件系統(tǒng)(userspace filesystem),可以將對象存儲OSS的Bucket掛載到Linux系統(tǒng)的本地文件系統(tǒng)。通過ossfs,您可以像操作本地文件一樣直接訪問和管理OSS中的Object,從而實(shí)現(xiàn)數(shù)據(jù)的無縫共享和操作。主要功能如下。
支持POSIX文件協(xié)議標(biāo)準(zhǔn)的大部分功能,例如上傳下載文件、目錄,設(shè)置用戶權(quán)限等。
默認(rèn)使用OSS的分片上傳和斷點(diǎn)續(xù)傳功能上傳文件。
支持MD5校驗(yàn),保證數(shù)據(jù)的完整性。
基于s3fs構(gòu)建,具有s3fs的全部功能。
關(guān)于ossfs更多使用信息,請參見ossfs。
版本說明
ossfs版本的表達(dá)方式為x.yy.z。其中:
x.yy為ossfs基于開源s3fs的版本。x.yy版本發(fā)布時,支持通過CSI環(huán)境變量等配置項(xiàng)回退。
z為ossfs自身的迭代版本,包括OSS存儲、ACK使用環(huán)境的優(yōu)化。例如監(jiān)控、鑒權(quán)、加密等新增功能。更多版本信息,請參見csi-plugin。
為了區(qū)分開源ossfs版本,容器ossfs版本還會有.ack.1后綴,例如1.80.6.ack.1。
ossfs大版本迭代記錄
如果您對文件操作性能有較高要求,建議您將ossfs版本切換至1.91及以上版本。關(guān)于ossfs 1.91及以上版本的啟用場景,請參見ossfs 1.91及以上版本啟用最佳實(shí)踐。如何切換ossfs版本,請參見下文將ossfs切換至1.91及以上版本。
架構(gòu)類型 | ossfs版本 | 對應(yīng)CSI版本 |
Arm64 | 1.91及以上版本 |
|
1.80.x | v1.20.5-ff6490f-aliyun(支持Arm64的首個CSI版本) | |
AMD64 | 1.91及以上版本 |
|
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運(yùn)行在節(jié)點(diǎn)上,您可以登錄任一節(jié)點(diǎn),執(zhí)行以下命令,確認(rèn)ossfs版本。
/usr/local/bin/ossfs --version
在容器化CSI版本(1.26.6,或1.28.1及以上的CSI版本)中,ossfs作為Pod內(nèi)的容器運(yùn)行在集群中。掛載OSS存儲卷后,CSI組件將自動在kube-system命名空間(小于1.30.4的CSI版本)或ack-csi-fuse命名空間(1.30.4及以上的CSI版本)下創(chuàng)建相關(guān)Pod。您可以通過以下方式確認(rèn)ossfs版本。
執(zhí)行以下命令,查詢正在運(yùn)行的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
執(zhí)行以下命令,確認(rèn)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默認(rèn)已使用1.91及以上的版本,您可以直接通過升級CSI版本切換ossfs的版本。
方法二:開啟特性門控
您需要開啟UpdatedOssfsVersion
特性門控以啟用1.91及以上版本的ossfs。具體操作如下:
默認(rèn)情況下,運(yùn)行在同一節(jié)點(diǎn)上,且掛載同一OSS存儲卷的Pod會共用一個ossfs進(jìn)程,即在集群中只會啟動一個名為csi-fuse-ossfs-***
的Pod。開啟UpdatedOssfsVersion
特性門控后,新啟動的ossfs容器使用的鏡像將自動變更為1.91及以上版本,正在使用OSS存儲卷的業(yè)務(wù)不受影響。如需手動觸發(fā)當(dāng)前業(yè)務(wù)使用的ossfs版本升級,請參見共享掛載方式下如何實(shí)現(xiàn)ossfs重掛載?。
確認(rèn)csi-plugin版本為1.30.1及以上版本。
登錄容器服務(wù)管理控制臺,在左側(cè)導(dǎo)航欄選擇集群。
在集群列表頁面,單擊目標(biāo)集群名稱,然后在左側(cè)導(dǎo)航欄,選擇 。
在組件管理頁面,查找定位csi-plugin組件,查看組件當(dāng)前版本。
若csi-plugin版本小于1.30.1,請單擊組件右下角升級,將組件升級至最新版本。
通過控制臺或kubectl任一方式開啟
UpdatedOssfsVersion
特性門控。說明通過控制臺開啟時,設(shè)置的FeatureGate參數(shù)將覆蓋原有的特性門控配置,若您不確定此前是否已經(jīng)通過kubectl開啟過其他特性門控功能,建議您使用kubectl方式進(jìn)行開啟。
通過控制臺開啟
csi-plugin組件升級完成后,在csi-plugin組件卡片右下角單擊配置。
在csi-plugin 參數(shù)配置頁面,設(shè)置FeatureGate參數(shù)為UpdatedOssfsVersion=true,然后單擊確定。
若之前已經(jīng)開啟過其他特性門控,則參數(shù)填寫格式為xxxxxx=true,yyyyyy=false,UpdatedOssfsVersion=true。
通過kubectl開啟
執(zhí)行以下命令修改csi-plugin的DaemonSet文件。
在csi-plugin容器(非Init Container容器)的
args
中,新增參數(shù)--feature-gates=UpdatedOssfsVersion=true
。修改后的args類似為:
kubectl -n kube-system edit ds csi-plugin
說明若此前已經(jīng)開啟過其他特性門控,新增參數(shù)格式為
--feature-gates=xxxxxx=true,yyyyyy=false,UpdatedOssfsVersion=true
。- args: - --endpoint=$(CSI_ENDPOINT) - --v=2 - --driver=oss,nas,disk - --feature-gates=UpdatedOssfsVersion=true
相關(guān)文檔
關(guān)于1.91及以上版本新增功能以及壓測性能介紹,請參見ossfs 1.91及以上版本新功能介紹及性能壓測。