ossfs は、Alibaba Cloud の Object Storage Service (OSS) バケットをローカルファイルシステムとしてマウントします。これにより、ローカルファイルと同じように OSS のデータを管理できます。
バージョンのアップグレード
OSS のソフトウェア開発キット (SDK) や OSS Connector for AI/ML を使用したモデルトレーニングの高速化 を使用したくない場合は、AI トレーニング、推論、自動運転シミュレーションなどのワークロードに ossfs 2.0 を使用できます。
ossfs 2.0 の特徴は次のとおりです。
基本的な POSIX 互換性を提供し、OSS のサーバーサイドの読み書き機能の活用に重点を置いています。
エンドツーエンドの読み書きパスの最適化により、大容量ファイルのシーケンシャルな読み書きで高いパフォーマンスを提供します。
効率的なメタデータ管理により、小容量ファイルの同時ロードで高いパフォーマンスを実現します。
ossfs の概要
ossfs は、Filesystem in Userspace (FUSE) ファイルシステムであり、OSS バケットを Linux 上のローカルファイルシステムとしてマウントできます。次の特徴をサポートしています。
ファイルやフォルダのアップロードとダウンロード、ユーザー権限の設定など、POSIX ファイルプロトコル標準のほとんどの機能をサポートしています。
デフォルトで OSS のマルチパートアップロードと再開可能なアップロード機能を使用してファイルをアップロードします。
データ整合性を確保するために MD5 検証をサポートしています。
ランタイム環境
ossfs は FUSE をベースに開発されており、FUSE をサポートするマシンでのみ実行できます。ossfs は Ubuntu、CentOS、Alibaba Cloud Linux 用のインストーラーパッケージを提供しています。他の環境で ossfs を実行するには、ソースコードからプログラムをビルドする必要があります。
Linux
CentOS 7.0 以降
Ubuntu 20.04 以降
Anolis 7、Alibaba Cloud Linux 2 以降
FUSE:バージョン 2.8.4 以降
fusermount -Vコマンドを実行して FUSE のバージョンを確認します。返されたバージョンが 2.8.4 以降 (例:fusermount version: 2.9.2) の場合、FUSE のバージョンは要件を満たしています。
制限事項
ossfs を使用してリモートバケットのデータと機能をローカルファイルシステムにマッピングする場合、次の制限事項が適用されます。
高同時実行の混合読み書きシナリオには適していません。
説明ossfs の実装では、ランダム読み取りとすべての書き込みはディスクに書き込む必要があります。高同時実行の混合読み書きシナリオでは、ディスクのパフォーマンスがボトルネックになります。
同時読み書きリクエストがリソースを競合するため、帯域幅に影響します。
ハードリンクはサポートされていません。
アーカイブストレージ、コールドアーカイブ、またはディープコールドアーカイブのバケットはマウントできません。
アップロードされたファイルを編集すると、ファイルが再アップロードされます。
メタデータ操作 (例:
list directory) は、OSS サーバーへのリモートアクセスが必要なため、パフォーマンスが低下します。ファイルまたはフォルダの名前の変更が失敗する場合があります。名前の変更操作が失敗すると、データの不整合が発生する可能性があります。
複数のクライアントが同じ OSS バケットをマウントし、同時に同じファイルに書き込む場合、データの一貫性は保証されません。
ご利用の AccessKey ペアが、ターゲットバケットまたはターゲットプレフィックス配下のリソースに対して完全な権限を持っていることを確認してください。完全な権限を付与できない場合は、少なくとも
oss:GetObject、oss:ListObjects、oss:DeleteObject、oss:PutObject、oss:AbortMultipartUpload、およびoss:ListMultipartUploadsの権限を付与する必要があります。そうしないと、マウント操作が失敗したり、正常に機能しなかったりする可能性があります。
次の手順
ossfs を使用して Object Storage Service バケットをローカルの Linux システムにマウントする前に、ossfs 1.0 のインストール と ossfs 1.0 の設定 を行う必要があります。インストールと設定が完了したら、バケットをローカルの Linux システムにマウント できます。