ossfs 2.0 は、Alibaba Cloud Object Storage Service (OSS) バケットをローカルファイルシステムにマウントする Filesystem in Userspace (FUSE) クライアントです。これにより、アプリケーションコンテナーは、ローカルファイルにアクセスするのと同じように POSIX 操作を使用して OSS 内のデータにアクセスできます。ossfs 1.0 と比較して、ossfs 2.0 はシーケンシャルな読み取りと書き込み、および小さいファイルの同時実行性の高い読み取りにおいてパフォーマンスが向上しています。ossfs 2.0 は、AI トレーニング、推論、ビッグデータ処理、自動運転など、高性能なストレージアクセスを必要とするシナリオに適しています。
パフォーマンスの向上
ossfs 2.0 は、シーケンシャルな読み取りと書き込み、および小さいファイルの同時実行性の高い読み取りにおいて、ossfs 1.0 を大幅に上回るパフォーマンス向上を実現します。詳細については、「Performance Testing」をご参照ください。
シーケンシャル書き込みパフォーマンス:シングルスレッドでの大きいファイルのシーケンシャル書き込みシナリオにおいて、ossfs 2.0 は ossfs 1.0 の約 18 倍の帯域幅を提供します。
シーケンシャル読み取りパフォーマンス
シングルスレッドでの大きいファイルのシーケンシャル読み取りシナリオにおいて、ossfs 2.0 は ossfs 1.0 の約 8.5 倍の帯域幅を提供します。
マルチスレッド (4 スレッド) での大きいファイルのシーケンシャル読み取りシナリオにおいて、ossfs 2.0 は ossfs 1.0 の 5 倍以上の帯域幅を提供します。
小さいファイルの同時読み取りパフォーマンス:高同時実行性 (128 スレッド) の小さいファイルの読み取りシナリオにおいて、ossfs 2.0 は ossfs 1.0 の 280 倍以上の帯域幅を提供します。
利用シーン
ossfs 2.0 は、AI トレーニング、推論、ビッグデータ処理、自動運転、その他の計算集約型ワークロードなど、高性能なストレージアクセスを必要とするシナリオに適しています。これらのワークロードは、主にシーケンシャルおよびランダム読み取り、シーケンシャル (追記のみ) 書き込みを伴い、完全な POSIX セマンティクスを必要としません。
制限事項
権限要件:AccessKey には、対象のバケットまたはプレフィックスに対する完全な権限が必要です。そうでない場合、マウント操作が失敗したり、異常に動作したりする可能性があります。
ストレージクラスの制限:アーカイブストレージ、コールドアーカイブ、またはディープコールドアーカイブのストレージクラスのバケットはマウントできません。
ファイル名の制限:Linux の制約により、ファイル名は 255 文字に制限されています。この制限を超える名前を持つ OSS 内のファイルやフォルダは、マウントポイントに表示されません。
ファイル読み取りの制限:ossfs は、対応するファイルハンドルが閉じられた後にのみ新しいファイルを OSS にアップロードします。ハンドルが閉じられる前にファイルを読み取ると、エラーが発生する可能性があります。
ファイル書き込みの制限:同じファイルへのランダム書き込みおよび同時書き込みはサポートされていません。デフォルトのパートサイズは 8,388,608 バイト (8 MiB) です。したがって、サポートされる最大ファイルサイズは 83,886,080,000 バイト (78.125 GiB) です。パートサイズは、upload_buffer_size マウントオプションを使用して設定できます。
ファイル名の変更操作 (非アトミック)
まずファイルをコピーし、次にリモートファイルを削除します。
フォルダ:この操作では、まずすべてのファイルをコピーし、次にソースファイルを一括操作で削除します。デフォルトでは、フォルダ名の変更操作は配下のファイル 200 万個に制限されています。この制限は、rename_dir_limit マウントオプションを使用して設定できます。
同時書き込みの整合性:複数のクライアントが同じバケットをマウントし、同じファイルに同時に書き込む場合、データ整合性は保証されません。
POSIX API の互換性:部分的に互換性があります。詳細については、「POSIX API のサポート」をご参照ください。
特徴
主な特徴
基本的な POSIX 互換性を提供し、OSS のサーバー側の読み取りおよび書き込みパフォーマンスの最大化に重点を置いています。
読み取り/書き込みパスのエンドツーエンドの最適化により、大きいファイルの効率的なシーケンシャル読み取りおよび書き込みパフォーマンスを実現します。
最適化されたメタデータ管理により、小さいファイルの効率的な同時ロードを可能にします。
POSIX API のサポート
次の表は、ossfs 1.0 と ossfs 2.0 の POSIX API サポートを比較したものです。
分類 | 操作/機能 | ossfs 1.0 | ossfs 2.0 |
基本的なファイル操作 |
| ||
| |||
| |||
ファイルの読み取りと書き込み |
| ||
| ランダム書き込みをサポート (ディスクキャッシュが必要) | シーケンシャル書き込みのみをサポート (ディスクキャッシュは不要) | |
| (任意のサイズに切り捨て可能) | ファイル長をゼロに切り捨てることのみをサポート | |
ファイルメタ操作 |
| ||
| |||
| |||
フォルダ操作 |
| ||
| |||
| |||
権限とプロパティ |
| ||
| |||
| |||
| |||
拡張機能 |
| ||
| |||
|
仕組み
ossfs 2.0 クライアントは、ack-csi-fuse 名前空間の Pod 内のコンテナーとして実行されます。
関連ドキュメント
静的永続ボリューム (PV) と永続ボリューム要求 (PVC) を使用して OSS バケットを ossfs 2.0 永続ボリュームとしてマウントするには、「静的な ossfs 2.0 永続ボリュームの使用」をご参照ください。
動的にプロビジョニングされたボリュームを使用して OSS バケットを ossfs 2.0 永続ボリュームとしてマウントするには、「動的な ossfs 2.0 永続ボリュームの使用」をご参照ください。