ossfs 1.0 クライアントは、CSI のイテレーションに伴いアップグレードされます。このトピックでは、バージョン形式、ossfs バージョンの確認方法、および 1.91 以降への切り替え方法について説明します。
ossfs の仕組み
ossfs 1.0 は、OSS バケットを Linux のローカルファイルシステムにマウントするユーザー空間ファイルシステムです。CSI で OSS ボリュームをマウントすると、csi-plugin は ossfs プロセスを開始し、バケットをコンテナパスにマウントして、OSS オブジェクトに対する POSIX の読み書き操作を可能にします。
ossfs 1.0 は、s3fs のすべての機能を継承し、以下の機能が追加されています。
-
ファイルとディレクトリのアップロード、ダウンロード、権限管理など、ほとんどの POSIX ファイル操作
-
デフォルトで有効になっているマルチパートアップロードと再開可能なアップロード
-
データ整合性を確保するための MD5 検証
制限事項
ossfs 1.0 は、ほとんどの POSIX ファイルシステム機能をサポートしていますが、すべての機能をサポートしているわけではありません。高性能なファイル操作のためには、ossfs 1.0 のバージョン 1.91 以降を使用してください。詳細については、「バージョン 1.91 以降を有効にするためのベストプラクティス」をご参照ください。
バージョン形式
ossfs 1.0 のバージョン番号は、x.yy.z という形式です:
-
x.yy:アップストリームの s3fs バージョンです。CSI の環境変数を使用して、特定の x.yy バージョンにロールバックできます。
-
z:ossfs のイテレーションバージョンで、モニタリング、認証、暗号化など、OSS および ACK 固有の機能強化が追加されています。詳細については、「csi-plugin」をご参照ください。
コンテナビルドには、オープンソースの ossfs リリースと区別するために .ack.1 というサフィックスが含まれています。例:1.80.6.ack.1。
バージョンの互換性
ossfs のバージョンは CSI のバージョンに依存します:
| アーキテクチャ | ossfs 1.0 バージョン | CSI バージョン |
|---|---|---|
| Arm64 | 1.91 以降 | v1.30.1-98960d8-aliyun (フィーチャーゲートで有効化) / v1.30.4-fe12624-aliyun (デフォルト) |
| Arm64 | 1.80.x | v1.20.5-ff6490f-aliyun (Arm64 をサポートする最初の CSI バージョン) |
| AMD64 | 1.91 以降 | v1.30.1-98960d8-aliyun (フィーチャーゲートで有効化) / v1.30.4-fe12624-aliyun (デフォルト) |
| AMD64 | 1.88.x | v1.22.14-820d8870-aliyun |
| AMD64 | 1.86.x | v1.16.9.43-f36bb540-aliyun |
| AMD64 | 1.80.x | 初期バージョン |
詳細については、「バージョンアップデートの機能」をご参照ください。
ossfs バージョンの確認
ossfs バージョンの確認方法は、CSI のバージョンによって異なります。
CSI 1.28.0 より前 (かつ 1.26.6 ではない):ossfs はノード上で直接実行されます。任意のノードにログインして、以下を実行します:
/usr/local/bin/ossfs --version
CSI 1.26.6 または 1.28.0 以降:ossfs はクラスター内でコンテナ Pod として実行されます。以下からお使いの CSI バージョンを選択してください。
CSI 1.30.4 以降
CSI 1.30.4 以降では、OSS ボリュームをマウントした後に、ossfs Pod が ack-csi-fuse 名前空間に作成されます。
-
実行中の ossfs Pod を一覧表示します:
kubectl -n ack-csi-fuse get pod | grep csi-fuse-ossfs -
ossfs のバージョンを確認します:
kubectl -n ack-csi-fuse exec -it <csi-fuse-ossfs-xxxx> -- ossfs --version
CSI 1.30.4 より前
1.30.4 より前の CSI バージョンでは、ossfs Pod が kube-system 名前空間に作成されます。
-
実行中の ossfs Pod を一覧表示します:
kubectl -n kube-system get pod | grep csi-fuse-ossfs -
ossfs のバージョンを確認します:
kubectl -n kube-system exec -it <csi-fuse-ossfs-xxxx> -- ossfs --version
ossfs 1.91 以降への切り替え
CSI のバージョンに応じて方法を選択してください。
CSI のアップグレード (推奨)
CSI 1.30.4 以降はデフォルトで ossfs 1.91+ を使用するため、CSI をアップグレードすると ossfs が自動的に切り替わります。
UpdatedOssfsVersion フィーチャーゲートの有効化
CSI をアップグレードできない場合は、CSI 1.30.1 以降で UpdatedOssfsVersion フィーチャーゲートを有効にしてください。
この変更による影響:
-
新しく起動された ossfs コンテナは、自動的にバージョン 1.91 以降を使用します。
-
OSS ボリュームを使用している既存のアプリケーションは、すぐには影響を受けません。
-
実行中のアプリケーションをアップグレードするには、その ossfs プロセスを再起動してください。詳細については、「共有マウントモードで ossfs プロセスを再起動する方法」をご参照ください。
デフォルトでは、同じノード上で同じ OSS ボリュームをマウントする複数の Pod は 1 つの ossfs プロセスを共有するため、共有ボリュームごとに csi-fuse-ossfs-*** Pod は 1 つだけ実行されます。
前提条件
-
csi-plugin がバージョン 1.30.1 以降であること。
csi-plugin のバージョンを確認するには:
-
ACK コンソールにログインし、左側メニューで [クラスター] をクリックします。
-
クラスター名をクリックし、左側メニューで [アドオン] をクリックします。
-
[アドオン] ページで csi-plugin を見つけ、そのバージョンを確認します。1.30.1 より前の場合は、csi-plugin カードの [アップグレード] をクリックします。
kubectl を使用した有効化
-
csi-plugin の DaemonSet を編集します:
kubectl -n kube-system edit ds csi-plugin -
csi-plugin コンテナ (init コンテナではない) の
argsセクションに、フィーチャーゲートフラグを追加します:- args: - --endpoint=$(CSI_ENDPOINT) - --v=2 - --driver=oss,nas,disk - --feature-gates=UpdatedOssfsVersion=true他のフィーチャーゲートが有効になっている場合は、既存の
--feature-gatesの値に追加します:- --feature-gates=xxxxxx=true,yyyyyy=false,UpdatedOssfsVersion=true
ACK コンソールを使用した有効化
コンソールからフィーチャーゲートを有効にすると、既存のフィーチャーゲート設定が上書きされます。他のフィーチャーゲートが有効になっているかどうかが不明な場合は、代わりに kubectl を使用してください。
-
[アドオン] ページで、csi-plugin カードの [設定] をクリックします。
-
[csi-plugin パラメーター] ページで、[FeatureGate] を
UpdatedOssfsVersion=trueに設定し、[OK] をクリックします。他のフィーチャーゲートが有効になっている場合は、xxxxxx=true,yyyyyy=false,UpdatedOssfsVersion=trueの形式を使用してください。