CSIを使用してObject Storage Service (OSS) ボリュームをマウントすると、csi-pluginコンポーネントはossfsプロセスを起動し、OSSサーバー上のオブジェクトをコンテナー内の指定されたパスにマウントします。 POSIXを使用して、通常のファイルを読み書きするのと同じ方法で、OSSサーバー上のオブジェクトを読み書きできます。 これにより、クラウドでのリソースアクセスと管理が容易になります。 ossfsバージョンは、CSIコンポーネントと共に反復される。 このトピックでは、ossfsのバージョンについて説明し、ossfsのバージョンを表示および変更する方法について説明します。
ossfsの仕組み
ossfsは、OSSバケットをLinuxのローカルファイルシステムにマウントするために使用されるユーザースペースファイルシステムです。 ossfsでは、ローカルファイルの管理と同じ方法でOSSオブジェクトにアクセスして管理できます。 OSSオブジェクトをシームレスに管理および共有できます。 ossfsは次の機能を提供します。
ファイルとディレクトリのアップロードとダウンロード、ユーザー権限管理など、POSIX標準で説明されているほとんどの機能をサポートします。
デフォルトでは、マルチパートアップロードと再開可能アップロードを使用してOSSオブジェクトをアップロードします。
MD5検証をサポートし、データの整合性を確保します。
ossfsはS3FSに基づいて開発されているため、すべてのS3FS機能をサポートします。
ossfsの詳細については、「ossfs」をご参照ください。
ossfsのバージョン
ossfsバージョンはx.yy.z形式で表示されます。
x.yyは、オープンソースs3fsに基づいて開発されたバージョンを示します。 履歴x.yyバージョンにロールバックするようにCSI環境変数を設定できます。
zはossfsの反復バージョンを示します。 バージョンは、OSSおよびACK環境に対する最適化を含むことができる。 例えば、バージョンは、新しい監視、認証、および暗号化機能を導入することができる。 詳細については、「csi-plugin」をご参照ください。
区別するためにオープンソースossfsバージョンとACK ossfsバージョン、. ack.1プレフィックスはACK ossfsバージョンに追加されます。1.80.6.ack.1.
ossfsメジャーバージョンのリリースノート
ファイルシステムに対する要件が高い場合は、ossfsを1.91以降に更新することを推奨します。 ossfs 1.91以降の適用可能なシナリオの詳細については、「ossfs 1.91以降のベストプラクティス」をご参照ください。 ossfsのバージョンを変更する方法の詳細については、「ossfsのバージョンを1.91以降に変更する」をご参照ください。
アーキテクチャ | ossfsバージョン | 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より前のCSIバージョン、1.26.6を除く) では、ossfsはノードで実行されます。 任意のossfsノードにログインし、次のコマンドを実行してossfsバージョンを照会できます。
/usr/local/bin/ossfs -- version
コンテナ化されたCSIバージョン (1.26.6、1.28.1以降) では、ossfsはコンテナで実行されます。 OSSボリュームがマウントされると、CSIコンポーネントはkube-system名前空間 (1.30.4より前のCSIバージョン) またはack-csi-fuse名前空間 (CSIバージョン1.30.4以降) にポッドを自動的に作成します。 次の方法を使用して、ossfsバージョンを照会できます。
次のコマンドを実行して、実行中のポッドを照会します。
CSIバージョンが1.30.4より前の場合:
kubectl -n kube-system get pod | grep csi-fuse-ossfs
CSIバージョンが1.30.4以降の場合:
kubectl -n ack-csi-fuse get pod | grep csi-fuse-ossfs
次のコマンドを実行して、ossfsのバージョンを照会します。
CSIバージョンが1.30.4より前の場合:
kubectl -n kube-system exec -it <csi-fuse-ossfs-xxxx> -- ossfs -- version
CSIバージョンが1.30.4以降の場合:
kubectl -n ack-csi-fuse exec -it <csi-fuse-ossfs-xxxx> -- ossfs -- version
ossfs 1.91以降に切り替える
方法1: CSIバージョンの更新
CSIバージョン1.30.4以降では、デフォルトでossfsはバージョン1.91以降を使用します。 CSIをアップグレードしてossfsのバージョンを変更できます。
方法2: 機能ゲートを有効にする
ossfs 1.91以降に切り替えるには、UpdateOssfsVersion
機能ゲートを有効にする必要があります。 これを行うには、次の手順を実行します。
デフォルトでは、同じノードにデプロイされ、同じOSSボリュームを共有するポッドも、同じossfsプロセスを共有します。 ossfsプロセスは、csi-fuse-ossfs-***
という名前のポッドで実行されます。 UpdateOssfsVersion
機能ゲートを有効にすると、新しく作成されたossfsコンテナはすべて、バージョンが1.91以降のossfsイメージを使用します。 OSSボリュームを使用する既存のビジネスは影響を受けません。 ossfsのバージョンを手動で更新するには、マウントターゲットが複数のポッドで共有されている場合、ossfsポッドを再起動するにはどうすればよいですか?
csi-pluginのバージョンが1.30.1以降であることを確認してください。
ACKコンソールにログインします。 左側のナビゲーションウィンドウで、[クラスター] をクリックします。
[クラスター] ページで、管理するクラスターの名前をクリックします。 左側のナビゲーションウィンドウで、 を選択します。
[アドオン] ページで、csi-pluginを見つけてそのバージョンを表示します。
csi-pluginのバージョンが1.30.1より前の場合は、右下隅の [アップグレード] をクリックしてコンポーネントを最新バージョンに更新します。
コンソールまたはkubectlを使用して、
UpdateOssfsVersion
機能ゲートを有効にします。説明コンソールを使用してフィーチャゲートを有効にすると、FeatureGateパラメーターは既存の設定を上書きします。 kubectlを使用して他のフィーチャゲートを有効にしているかどうかを確認できない場合は、kubectlを使用して上記のフィーチャゲートを有効にすることを推奨します。
コンソールの使用
csi-pluginコンポーネントが更新されたら、カードの右下隅にある [設定] をクリックします。
csi-pluginパラメーターページで、FeatureGateパラメーターUpdateOssfsVersion=trueを設定し、[OK] をクリックします。
パラメーターを追加する前に他のフィーチャゲートが有効になっている場合は、パラメーターをxxxxxx=true,yyyyy=false, UpdateOssfsVersion=true形式で設定します。
kubectlを使う
次のコマンドを実行して、csi-pluginのDaemonSetファイルを変更します。
csi-pluginコンテナー (initコンテナーではない) の
args
ファイルに-- feature-gates=UpdateOssfsVersion=true
を追加します。 変更されたargsフィールド:
kubectl -n kube-system edit ds csi-plugin
説明パラメーターを追加する前に他のフィーチャゲートが有効になっている場合は、
-- feature-gates=xxxxxx=true,yyyyy=false, UpdateOssfsVersion=true
形式でパラメーターを設定します。- args: --- endpoint=$(CSI_ENDPOINT) - --v=2 --- driver=oss,nas,disk --- feature-gates=UpdateOssfsVersion=true
関連ドキュメント
ossfs 1.91以降の新機能とストレステストの詳細については、「ossfs 1.91以降の新機能とストレステスト」をご参照ください。